Posted on May 03, 2019

Spine 1.0.0-pre7

Core Java

API Changes in Core Modules

  • @Subscribe methods now should be package-private, not public;
  • @Apply methods now should be private, not package-private;
  • @Assign methods cannot return Nothing anymore. This feature was kept in Process Managers for backward compatibility. Now, we recommend that clients create domain-specific events even if they are not to be handled;
  • many getter methods are renamed in order to remove the get and is prefixes. This code style will be propagated to the components which are not yet affected in the nearest future;
  • DefaultRepository is introduced in order to avoid creating empty repository classes;
  • Javadoc is revised and fixed.

API Changes in Non-Core Modules

  • the new ValidatingOptionFactory SPI allows users to configure custom Protobuf validating options;
  • (when) option is moved to spine/time/time_options.proto. It is now applicable to all time options which capture time, not only google.protobuf.Timestamp;
  • MethodFactory allows to generate methods into specific Protobuf definitions. Generated methods are configured via the modelCompiler.methods Gradle config;
  • modelCompiler.interfaces config allows to mark certain Protobuf definitions with a certain Java interface.

This version updates nearly all the dependency versions.
See config/gradle/dependencies.gradle for the details.