Posted on November 03, 2018
Spine 1.0.0-pre1
Base
This is a pre-release of the base
library.
Changes since version 0.11.0
This release contains numerous small improvements in the code base, such as:
Color
model is improved, as the transparency channel is added to the basic RGB color definition;Money
and utilities for working with money were moved into a separate repository;- build-time and test-time logging was improved by removing unnecessary build warnings and introducing a JUnit extension for muting redundant test output;
- several new convenient APIs added (see
Identifier.generate(Class)
); - entity IDs are now always validated as if
(required) = true
.
Core Java
This is a preview release of the Spine 1.0 version.
New Maven Repository
In this version one more artifact repository is introduced:
- Releases: https://spine.mycloudrepo.io/public/repositories/releases
- Snapshots: https://spine.mycloudrepo.io/public/repositories/snapshots
The previously used repository is also maintained.
Features and Improvements
Since 0.10.0 several significant features were introduced, making the framework near the feature completeness:
- Provide automatic idempotency for the business entities.
- Allow to subscribe to the entity state updates.
- Allow to produce a command in response to an event or a command — the
@Command
ing methods. - Introduce
System
bounded context, which tracks the history of eachCommand
,Event
andEntity
, allowing to trace paths and consequences of incoming end-user imperatives. - Make
Rejection
s a special kind ofEvent
s to simplify thinking for framework users.
For more details on the features please see #733, #804 and #810 and consult the source code.
In addition the framework now uses Error Prone with a conjunction with the Checker Framework, which allows to catch the potential issues on a compilation stage.
Lots of other less significant improvements were introduced, addressing the issues reported from the real-world use-cases.
Dependency Updates
The framework dependencies were updated as follows.
- gRPC 1.15.0
- Protobuf 3.6.1
- Protobuf Gradle plugin 0.8.5
- Guava 26.0-jre
- JUnit 5.3.1
- Google Truth 0.42