Symptoms

Due to changes in PBA 5.5 Plugin SDK, custom plugins should be changed prior to rebuilding.

Cause

Due to stability and quality enhancements made in the internal structure of PBA 5.5, Domain Plugin SDK has changed compared to the previous version. These changes require custom plugins to be altered accordingly before rebuilding with the new SDK.

Resolution

The following changes to customer plugins should be implemented before compiling:

1. The following files, which were included in the generated example template in the previous versions of the SDK, are not used anymore (and do not get generated during compilation), therefore they have to be removed from the plugin code to avoid compilation errors:

autoconsts.h

internals.h

2. In case any custom types were added into .type file, they should be checked for multiple constants with the same value within a single LISA type. Such types should not be used, so it is necessary to make sure that within each LISA type there is not more than one constant with the same value (however, the textual representation can still be the same).

3. All LISA classes used in each .cpp file MUST be included explicitly at the top of that .cpp file using the following instruction:

#include <internals/<LISA_CLASS_NAME>.hpp>

4. For checkID and getEntry functions, one of the two values - either ORDBMS::READ_ONLY or ORDBMS::FOR_UPDATE - should be explicitly passed as the last parameter (access mode).

5. Functions of the std::string class are not accessible from objects of the Str class anymore and should be replaced by their equivalents. For example, str.empty must be replaced by str.IsEmpty. For the full list of functions exposed by the Str class you can refer to atypes.h usually located in /usr/local/stellart/include/stlrt/.

6. Functions _EnumID2LocaleID_<CONTAINER NAME>_ and _enum_to_string_ are not used (and not generated) anymore. They should be replaced with the calls of "translate" function of a respective LISA type class in the source code:

::translate(value);

For example, enum_to_string(dom.Status.value(), AC_DOMAIN_STATUS) will become AC_DOMAIN_STATUS::translate(dom.Status.value())

7. The following files included as a part of the generated plugin template were changed in the new SDK: abstractbodies.cc, PLUGINBASE.lsa and PLUGINBASE.type. Therefore the old versions of these files should be replaced by the new versions provided with the SDK.

8. For ECommerce plugins Decrypt privilege has been removed in scope of internal request PBA-45902 (as the privilege was not actually used). If you had the privilege - remove it from the source code of the plugin.

Please note that starting from BA 5.5 validation of the plugin customization .xml files is being performed when ~/bm/tools/configure.pl is executed.

Internal content