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.
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.