Apama 10.15.4 | Release Notes | What's New In Apama 9.12 | Connectivity plug-ins enhancements in 9.12
 
Connectivity plug-ins enhancements in 9.12
Apama 9.12 includes the following connectivity plug-ins enhancements:
*The plugins stanza that is used in the configuration file for the connectivity plug-ins has been renamed to connectivityPlugins. It is recommended that you start using the new name in your configuration files. See also Overview of using connectivity plug-ins.
*The --connectivityConfig option which is available for the correlator executable has been renamed to --config. It is recommended that you start using the new name. In addition, it is now possible to specify multiple .yaml files containing connectivity plug-in configuration, which will be merged together. It is also possible now to specify a directory containing .yaml and .properties files. It is no longer possible to specify a YAML file that does not have the .yaml file extension; this will now result in an error. See also Starting the correlator.
*A new -D option is available for the correlator executable, which specifies a value for a substitution property to be used by configuration files specified with the --config option of the correlator executable. See Starting the correlator. Using this option is similar to specifying the substitution using a .properties file.
*Properties file substitution is now supported, allowing any user-supplied ${varname} substitution variables to be replaced inside the configuration files for the connectivity plug-ins (.yaml files). See Using properties files.
*Chains can now be defined under both the startChains and dynamicChains stanzas in the configuration file. Chains defined under dynamicChains are not instantiated at startup, but instead can be created dynamically from EPL. See also Configuration file for connectivity plug-ins and Creating dynamic chains from EPL.
Dynamic chains are also used by the Digital Event Services transport and the Universal Messaging transport.
*A new predefined Unit Test Harness codec is provided. The Unit Test Harness codec and the new Null Transport transport make it easy to send test messages into a connectivity chain and/or to write out received messages to a text file, without the need to write any EPL in the correlator, which is very useful for writing unit tests for connectivity plug-ins, and especially codecs. For more information, see The Unit Test Harness codec connectivity plug-in.
*A new predefined Diagnostic codec is provided, which can be used to diagnose issues with connectivity plug-ins. It logs the events that go through a connectivity chain in either direction. For more information, see The Diagnostic codec connectivity plug-in.
*The behavior of the Mapper codec has changed as follows: A mapFrom rule where the source field does not exist now uses the default value if the defaultValue exists or if a subsequent mapFrom rule exists for the same destination field. An error is no longer raised in this case.
For example, let us assume that there is no field b in the metadata and the configuration looks as follows:
mapperCodec:
SomeType:
towardsHost:
mapFrom:
- payload.a: metadata.b
defaultValue:
- payload.a: "someDefaultValue"
In the previous version, an error was raised with the message that b does not exist. As of 9.12, the default value for the payload field a (that is, someDefaultValue) is used rather than raising an error. However, if the destination field (which is payload.a in the above example) is also not defined with defaultValue, then an error is raised.
In addition, a new boolean allowMissing is available. By default, this is set to false. When set to true, an error is not raised when a defaultValue has not been set and a source field is missing. allowMissing needs to be defined at the same level as the event types. For more information, see The Mapper codec connectivity plug-in.
*The behavior of the allowMissing configuration property in the apama.eventMap host plug-in has changed. Previously only missing fields were set to their default values. As of this version, fields with empty values (null in Java) are also set to their default values. Similarly, empty values in nested events, elements in sequences and key/value pairs in dictionaries are also set to their default values. See also Translating EPL events using the apama.eventMap host plug-in.
*New configuration properties suppressLoopback, description and remoteAddress are now available for the apama.eventMap and apama.eventString host plug-ins. For more information, see Host plug-ins and configuration.
*You can now use the jvmOptions key in the configuration file to specify JVM options which the correlator is to pass to the embedded JVM. See also Specifying JVM options.
*If you are building C++ plug-ins, you now need to link against the apclient library (instead of apconnectivity). See also Building C++ plug-ins.