Posted on March 08, 2020
Spine 1.5.0
Base
This release includes numerous API updates and performance improvements.
The most noticeable are listed below.
Time.currentTime()
now returns the time with microsecond precision. The values are emulated, increasing for each consequent call (#504, #512).(constraint_for)
is now supported by the Spine compiler (#505).- Support for the new Column API has been added to the Spine compiler (#508).
- Logging API has been extended (#513).
For more details please navigate to the list of the closed pull requests and their descriptions.
Core Java
This major update of the library brings a number of new features and performance improvements.
- Projections now support an automated run-time catch-up (#1221).
- The client API was made less error-prone by enforcing the strong typing for the columns and properties of Entities and Events. The list of the model fields is generated as Java code by the Spine compiler at build-time (#1229, #1246).
- A data migration API is now available for
ProcessManager
s andProjection
s. It automates the process of updating the existing data upon the changes in the domain model (#1241). - The logging records made from within the Entity handlers now print the full signature of the called method (#1242).
- It is now possible to specify an actor when composing a test scenario with
BlackBoxBoundedContext
API (#1242). CommandBus
is no longer responsible for validating the first field of the transmittedCommand
s; instead, this is a job of theRepository
for the targetEntity
(#1245).
The API of InboxMessage
has been changed so that any of the existing InboxMessages
become
incompatible (#1239). Please make sure to deliver the messages
from all of your production Inbox
es prior to updating to the new version.
Also, a number of minor improvements and issues were addressed. Please see the list of closed pull requests for more details.
Bootstrap, Web, JDBC Storage, Google Cloud Java, Time, Money libraries’ artifacts were published as compatible with the Spine framework in version 1.5.0.