Apama 10.15.5 | Release Notes | What's New In Apama 10.3.0 | Miscellaneous changes in 10.3.0 affecting backwards compatibility
 
Miscellaneous changes in 10.3.0 affecting backwards compatibility
The following changes in Apama 10.3.0 affect backwards compatibility to previous Apama versions:
*The Row.set() action of the MemoryStore can be used to set non-schema fields in distributed stores which support them. With previous versions, setting a field with an empty any has set a field with the value empty. As of this version, setting a field with an empty any removes the non-schema field with the given name.
*The engine_deploy tool now fails to generate output when the input project contains errors. This changes the way in which the output is shown when Ant is run for an Ant-exported project. With previous versions, the Ant build was successful and the errors were shown afterwards while injecting the files. As of this version, the errors are already shown in the console when the Ant build fails.
*With previous versions, the correlator incorrectly converted a float of the form -0.0 or a decimal of the form -0.0d to a "0" string (that is, the minus sign was missing). As of this version, this is correctly converted to a "-0" string. This change may lead to a backward compatibility issue for any software using Apama that is checking exclusively for "0" strings (without minus signs) and cannot handle the case of a string of the from "-0".
*The location of the following files in your Apama installation has changed from Apama/monitors/ to Apama/monitors/cumulocity/9.0/:
*Cumulocity_EventDefinitions.mon
*Cumulocity_ServiceMonitor.mon
*Cumulocity_Utils.mon
These files were also delivered with 10.2.0.1. If you are explicitly using these files in a script or manual injection ordering, update the location of these files.
*The Docker images provided by Software AG are now configured to run processes as the sagadmin user by default within containers. For more information, see Quick start to using an Apama image.
*Previous releases of Apama in Docker Store declared the ${APAMA_WORK} directory to be a volume. This made it hard to use the work directory when creating your own derived images because of limitations on how it is handled. Therefore, the VOLUME declaration has been removed. If you need to restore this functionality, you can add a VOLUME statement in your own derivative Dockerfile after populating the work directory.
*The MQTT transport connectivity plug-in now uses TLS version 1.2. This may affect existing deployments. See also Configuring the connection to MQTT.
*Apama now ships Python 3.6.6 instead of Python 2.7. You may have existing PySys tests written in Python 2 that you may wish to migrate to Python 3. It is recommended to refer to the internet for the details of what this change from Python 2 to Python 3 entails, as well as recipes for upgrading test cases. It is likely that updates will be required, particularly around the handling of strings, file I/O and print statements. There are many tools, such as 2to3.py, available to aid in this. Support for Python 2.7 is now deprecated; see also Removed and deprecated features in 10.3.0.
Although Python 2.7 is no longer shipped, you can continue to use existing PySys tests written for Python 2 with Apama 10.3.0. However, you have to manually copy the pysys and apama directories from the Apama\third_party\python\Lib\site-packages directory on Windows or the Apama/third_party/python/lib/python2.7/site-packages directory on Linux into your own Python 2.7.13 installation. On Windows, you must also ensure that the pywin32 library is installed into your Python 2 installation (from https://pypi.org/).
*With PySys 1.3, the pysys.py run command now returns a non-zero exit code if any tests failed (previously, this command returned 0 on any failed tests). See also PySys changes in 10.3.0.
*The docker module contains classes to help create and orchestrate Docker and Kubernetes images from within PySys. This module has been renamed to apama.docker. In this release, the old name docker can still be used, but is deprecated. If you run Python with deprecation warnings enabled, you will see a warning if you are using the old name. It is recommended that you update your tests to use apama.docker because the docker module name will be removed in a future release.
*The defaultValue rule of the Mapper codec will no longer always be applied to metadata fields, and instead will only be applied in the case of an empty/null metadata field. See also The Mapper codec connectivity plug-in.