Release notes

Unless noted otherwise in the release notes, Sponge releases (starting with version 1.5.0) that have the same major.minor numbers are compatible.

1.10.0 (2019-05-10)

Added new callback functions in knowledge bases: onBeforeLoad and onAfterLoad.

Added support for registering data types (EngineOperations methods addType, getType and getTypes). A registered data type instance has its property DataType.registeredType set to a name of a registered type.

Added support for RecordType inheritance.

Added support for automatic use of auth tokens in the REST API client.

Added a thread local session to the REST API service. The session provides access to a logged user and a Camel exchange.

Fixed the bug that caused a NullPointerException when sending a record with a null value of a field in the REST API request.

Moved the sponge-mpd dependency (GPL) from sponge-standalone-extensions to sponge-distribution and changed the sponge-standalone-extensions license to Apache.

Dependencies upgrade.

1.8.0 (2019-03-04)

API change: Action arguments and result metadata are now specified as data types. ArgMeta and ResultMeta classes have been removed.

API change: The processor metadata properties, data type properties have to be specified using the builder-style methods, e.g. self.withLabel("Label").withDescription("Description"). The builder-style methods in the metadata classes follow the naming convention with<Property>, e.g. BinaryType().mimeType("image/png") is now BinaryType().withMimeType("image/png").

API change: Renamed ArgProvidedMeta to ProvidedMeta, ArgProvidedValue to ProvidedValue and ProvidedMeta.depends to ProvidedMeta.dependencies.

API change: The Action.onProvideArgs(names, current, provided) has been changed to Action.onProvideArgs(ProvideArgsContext context).

1.7.0 (2019-02-01)

API change: A provided argument specification in now placed in the ArgProvidedMeta class, not directly in the ArgMeta as before.

API change: Removed LabeledValue and ArgProvidedValue.valueSetDisplayNames because of a new support for an annotated value set.

API change: Removed inputString, inputBinary, inputFile, outputFile, errorFile, outputLineConsumer, errorLineConsumer methods from the ProcessConfigurationBuilder. The preferred way to configure redirects is to use inputAs…​, outputAs…​ and errorAs…​ methods.

Added new methods callIfExists in the EngineOperations.

Added Processor.version and verification of an action qualified version in the REST API.

Dependencies upgrade.

1.6.0 (2019-01-11)

A noteworthy new feature: There is a possibility to provide action argument values and possible value sets in the action configuration. It makes easier creating a generic UI for an action call that reads and presents the actual state of the entities that are to be changed by the action and its arguments.

Added a new REST API operation actionArgs that fetches the provided action arguments from the server.

A type for an action argument or result metadata may specify one or more tags.

Dependencies upgrade.

1.3.3 (2018-07-12)

Added a new attribute to the REST API actions operation that allows specifying an action name or a regular expression.

Added a new ActionType type that allows using a result of one action to be a type for another action argument or result.

Fixed the error that may happen while loading optional knowledge base files if a directory doesnt’t exist.

The sponge-core artifact now shades the Reflections artifact (that use Guava).

1.3.2 (2018-07-06)

Fixed the error that may happen while loading optional knowledge base files using the SpringKnowledgeBaseFileProvider.

Libraries upgrade (most notably Spring to version 5).

1.3.1 (2018-07-04)

Java-based processors may be enabled and disabled by scanning Java packages (enableJavaByScan).

Knowledge base files may be specified using wildcards.

Support for custom roles in the REST API. Roles are represented as String rather than an enumeration.

Support for complex data types in the REST API. A type specification in action metadata has changed.

Minor bug fixes.

Dependencies upgrade.

1.3.0 (2018-06-20)

API change: Action.onCall callback method behavior has been changed to dynamic. Custom actions define onCall methods with the arbitrary number of named arguments, for example def onCall(self, value, text): in Python.

Added support for specifying non script knowledge bases in an XML configuration.

A type of a script knowledge base is no logger required in an XML configuration when knowledge base files are specified.

The sponge-core artifact now shades Guava, so the sponge-core-shaded artifact has been removed since it is no longer needed.

Downgraded Jython to version 2.7.0 to prevent stability issues.

Added sponge-external group of projects in order to provide functionalities that require licenses incompatible with Apache 2.0.

Added MPD support (in sponge-external, because it is GNU GPL 3.0 licensed).

Dependencies upgrade.

1.0.6 (2017-12-01)

The new, shaded version of sponge-core named sponge-core-shaded for an embedded use in custom applications that experience version conflicts in Guava or Quartz. Now you have to explicitly add a dependency to either sponge-core or sponge-core-shaded in your pom.xml.

Support for integration with CPython using Py4J.

The new startup system event.

Dependencies upgrade.

1.0.5 (2017-10-12)

API change: The EngineOperations method callAction has been renamed to call.

The new attribute required in the knowledge base file configuration that, if set to false, allows specifying optional (non existing) knowledge base files.

Script knowledge base files are looked up also in the file system relative to the XML configuration file parent directory.

Abstract processor classes in script knowledge bases are now compatible with the auto-enable mechanism. The support for abstract processors is implemented for Python, Groovy, Ruby but not for JavaScript.

CamelProducerAction may be also set in the Camel In message header named CamelSpongeAction.

SpringEngine may be configured not to start immediately (see SpringEngineBuilder.autoStartup method).

Improvements in the interactive mode of the standalone command-line application (now JLine is used, supporting for example a command history).

Fixed the error preventing substitution of properties defined via the EngineBuilder API in the properties section in the XML configuration files.

1.0.4 (2017-09-20)

Implementation of unordered rules, i.e. rules that listen to unordered sequences of events. Unordered rules is a new feature that should be treated as an experimental one.

API change: The Rule methods setConditions and setAllConditions have been renamed respectively to addConditions and addJavaConditions.

Fixed the error in the interactive mode of the standalone application preventing exit when using exit or quit command.

Dependencies upgrade.

Distribution as a Docker container.

1.0.3 (2017-08-30)

Optimization of event set processors initialization.

Optimization of creating new instances of processors in script-based interpreters.

API change: onInit in correlators will be invoked after onAcceptAsFirst, not before.