We're working on next minor release of the Holon Platform, that is expected to be stable and generally available by the end of March.
The release date was moved to April 20 to spend more time reviewing the documentation and providing more support material, such as tutorials and examples.
Along with all the latest bug fixes, there is also a lot of useful features that made it to this milestone.
As a minor release, the public Java API is fully compatible with the previous version, for a seamless migration with a minimal effort from version 5.0.0.
Below is a list of the of the new and noteworthy features, listed by module.
PropertySet object now supports identifier properties declaration, which can be used to provide a virtual primary key to distinguish a PropertyBox instance from another, both at Java object level (equals and hashCode) and at persistence architecture level.Property architecture was made even more flexible and extensible, providing configuration hooks for custom logic and introducing PathProperty extensions to easily deal with main property data types in a more consistent way. For example, the StringProperty interface can be used for String data type, the NumericProperty one for numeric types and so on.ExpressionResolver based architecture through smart caching strategies and a revision of the internal expression resolution logic.Expression based architecture, which is the foundation, above all, of the Datastore API and the abstract query engine. This lead to a more consistent and extensible architecture, along with considerable performance improvements and a better foundation for future Datastore developments, including asynchronous and reactive implementations.Datastore, allowing to manage transactions in a platform agnostic way, independently from the underlying persistence technology.Json Java API to easily deal with JSON serialization and deserialization in a JSON provider independent way, with full Property and PropertyBox support. At the moment, the supported JSON provider are Jackson and Gson.java.time.* Date and Time API data types, including the support within a PropertyBox.java.time.* Date and Time API with JSON when a PropertyBox is used as data transfer object in JAX-RS endpoints.Datastore artifact. This lead to greater extensibility, a more consistent operation resolution strategy and remarkable performance improvements.PropertySet identifier properties to detect the persistent entities primary keys avoiding additional database accesses.PropertySet identifier properties to make more easy and quick to setup data bound UI objects.@PushStateNavigation strategy for Navigator.Property based one.The reference manual will be updated to reflect the API changes and to document all new features. Detailed release notes and changelog will be provided when new release will be made available and published.
So stay tuned!