Apama 10.15.0 | Release Notes | What's New In Apama 10.0 | Miscellaneous changes in 10.0 affecting backwards compatibility
 
Miscellaneous changes in 10.0 affecting backwards compatibility
The following changes in Apama 10.0 affect backwards compatibility to previous Apama versions:
*Apama 10.0 incorporates the ICU (International Components for Unicode) time-zone data update 2016j, which is the most recent update at the time of release. This will update time-zone data used by the correlator and Time Format EPL plug-in.
In addition, Apama 10.0 contains an upgrade from ICU 3.8.1 to ICU 58.1 which contains some small behavioral differences which may affect your applications:
*When formatting time in UTC, the output for a GMT+offset time zone is now GMT rather than GMT+00:00 (non-UTC time zones are unaffected).
*The format/parse symbol z no longer uses time-zone short codes such as EST due to ambiguity. It now uses GMT+offset formats. The behavior of the V, VV and VVV format/parse symbols has also changed. If you wish to specify time zones by name, you should always use the location-based names, such as America/New_York using the format/parse symbol VV. For more information, see Format specification for the TimeFormat functions.
*When parsing time strings, trailing characters in the string after matching the whole pattern are ignored.
*When parsing time strings, separator characters (such as a hyphen (-) or others which do not have a specific meaning) will match any such string of those characters of any length (at least one). This means that the pattern yyyy-MM-dd will now match 2016//11/15.
*Some locale settings have fixes that may change the returned value for the "week of year" (that is, w and W).
*The chainInstanceId argument of the createChain method must now specify a unique identifier. Thus, an error is now thrown if a chain with a duplicate ID is to be created. See also Creating dynamic chains from EPL.
*There is a change in functionality in the case of YAML configuration files. With previous versions, it was possible to specify, for example, ${PARENT_DIR}foo on Windows. This was a valid specification as PARENT_DIR was expanded with a trailing slash. As of Apama 10.0, this is no longer valid. It is now required that you also specify the slash:
${PARENT_DIR}/foo
This behavior is now in line with PARENT_DIR on Linux, and with APAMA_HOME and APAMA_WORK on Windows and Linux.
*The message metadata in connectivity plug-ins can now also store non-string values. For connectivity plug-ins in C++, these changes are not backwards compatible. See Connectivity plug-ins enhancements in 10.0 for more information.
*The nullTerminated configuration option of the String codec now defaults to false. This means that the String codec no longer adds a null-terminator in messages towards the transport when converting to a byte[] (Java) or buffer_t (C++) type. This change has been made to be more compatible with the common use case. To enable the old behavior (such as when using the Universal Messaging transport connectivity plug-in to connect to a legacy Apama application), set nullTerminated to true in the String codec configuration. See also The String codec connectivity plug-in.
*When mapping nEventProperties to metadata, the Universal Messaging transport connectivity plug-in now uses the prefix um.properties. You can use the Mapper codec to enable the original behavior. See also Connectivity plug-ins enhancements in 10.0.
*The Mapper and Classifier codecs can now contain a period (.) for both payload and metadata rules. Custom codecs and transports may need changes to support this. See also Connectivity plug-ins enhancements in 10.0.
*The ConnectivityPlugins.mon file now also requires the new ConnectivityPluginsControl.mon file from the same directory. This is important if you inject files manually. If you are using Software AG Designer to develop applications that use any connectivity plug-in bundles, this does not matter to you as Software AG Designer automatically upgrades the set of .mon files that you are using.
*As of 10.0, ifpresent and any are reserved words in EPL. Projects that are using either of these as an identifier will fail in 10.0.