Posted on August 08, 2016

Spine 0.5

Core Java

Spine Version 0.5 is all about event enrichments.

Features & Improvements

  • In this release we introduced Event enrichments - extra information of an event based on its type and content. The mechanism for enriching messages is based on FieldOptions of Protobuf message definitions. Just mark an enrichment message with enrichment_for annotation, its fields - with by annotation, and register functions which would transform corresponding event (or context) fields to enrichment fields. There can be multiple enrichments for an event, and one enrichment can be used for multiple events.

  • It is now required to define type_url_prefix Protobuf file option in all .proto files, so that Spine can use your Protobuf types properly.

    *As direct imports make dependency analysis much easier, we removed public imports in all .proto files.

  • In this version, we excluded slf4j-jdk14 from the published dependencies and now use it only for tests. As a Library, we provide logging facade API, not specific logger binding. Target apps are free to use any binding they need.

  • Starting from 0.5, an ability to use custom Connection Pool or Data Source is added in JDBC-based storage implementation. Also, it is possible to customize all the DB tables and queries easily, by overriding them.

  • It is possible to configure Spine Gradle Protobuf plugin with a custom target, source, and other paths.

  • Few important classes were covered with tests. Overall test coverage increased by 2.5%.

Below let us list the issues that, however, no longer endanger your development process.

  • Fixed invalid entries in known_types.properties.
  • Issues with error messages were fixed.

Dependency Updates

As always, we strive for the latest and greatest. With the new release we updated to:

  • gRPC 1.0.0-pre2
  • Protobuf 3.0.0