Releases: seedstack/business
Releases · seedstack/business
v4.5.0
v4.4.0
- [new] Support qualifiers for repositories and factories in FluentAssembler DSL.
- [new] Support
@identity
generators in composite embedded identifiers.
v4.3.1
- [new] Shortcut to combine two specifications in the specification builder DSL.
- [fix] Accept Guice-specific
@Named
annotation as qualifier, in addition to all JSR-330 qualifiers.
v4.3.0
- [new] Fluent assembler now has a String based argument on the DSL chain to simplify the use of Named Assemblers
- [new] DomainEventHandler has a priority field to allow fine-grained control over execution order
- [new] Events can now be annotated with @PriorizedEvent, that allows an instance of DomainEventInterceptor to take control of event handlers that are launched (By default, PriorityEventHandlerInterceptoris being used if not stated explicitly)
- [chg] BaseAssembler and BaseTupleAssembler now has a default implementation that simplifies the creation of one way assemblers
- [chg] Built and tested with OpenJDK 11 (target is still 1.8).
- [chg] Updated Seed version to 3.9.1
v4.2.2
- [fix] Fix potential resource leak in
DataManagerImpl
.
v4.2.1
- [new] Java 9 compatibility.
- [new] Add sorting support to
BaseInMemoryRepository
. - [chg] Make
SizePicker
(specialization for page-based pagination) extendLimitPicker
. - [fix]
ComparableSpecification
and its descendant were not properly evaluating the comparison result.
v4.2.0
- [new] Paginator can now paginate streams and iterables of arbitrary objects (not only aggregates through repositories).
v4.1.1
- [chg] The class configuration
defaultRepository
anddefaultAssembler
are now real defaults and don't clash with code-based bindings anymore.
v4.1.0
- [new] Add
business-migrate
module to help migration from 3.x based projects.
v4.0.0
- [new] A default implementation of
getId()
has been added inBaseEntity
which searches for a field named "id" or annotated with@Identity
. - [new] DDD specifications have been added.
- [new] A specification builder allows to create DDD specifications with a fluent DSL.
- [new] Add SPI and base infrastructure for specification translation.
- [new] New methods in the
Repository
interface allow to work on multiple aggregates with specifications. - [new] Business framework now takes advantage of Java 8 features (notably streams and optional).
- [new]
FluentAssembler
can now assemble and merge streams of objects among other useful types (arrays, lists, sets, slices, pages and arbitrary collections). - [new] A pagination DSL injectable through the
Paginator
interface has been added. - [new] Add an in-memory default implementation of repository (useful for testing or other specific use-cases).
- [new] Annotating an implementation with
@Overriding
will allow it to override an existing similar implementation. - [new] It is now possible to specify the qualifier of the identity generator directly on the identity field.
- [chg] Extracted ModelMapper automatic assemblers to a separate add-on.
- [brk] The
@MatchingFactoryParameter
annotation has been renamed to@FactoryArgument
. - [brk] The
@MatchingEntityId
annotation has been renamed to@AggregateId
. - [brk] The
typeIndex()
method of@FactoryArgument
and@AggregateId
annotations has been renamed toaggregateIndex()
. - [brk] The
Assembler
methodsassembleDtoFromAggregate()
,assembleDtoFromAggregate()
andmergeAggregateWithDto()
have been renamed tocreateDtoFromAggregate()
,mergeAggregateIntoDto()
andmergeDtoIntoAggregate()
respectively. - [brk] The
BaseAssembler
andBaseTupleAssembler
now follow theAssembler
interface (no moredo*()
methods). - [brk] The
getEntityId()
method ofEntity
has been renamed togetId()
. - [brk] The
Repository
interface has been refactored as a collection-like interface. - [brk] The
Factory
andGenericFactory
interfaces are merged into a uniqueFactory
interface. - [brk] The
DomainObject
interface has been removed. - [brk] The old pagination API has been removed.
- [brk] Intermediate interfaces of
FluentAssembler
DSL have been renamed. - [brk] Generic events have been replaced by domain-only events.
- [brk] The interface
IdentityHandler
has been renamed toIdentityGenerator
to better reflect its responsibility. - [brk] The
source
parameter from@Identity
annotation has been removed. This is better done in class configuration. - [brk] The
handler
parameter of the@Identity
annotation has been renamedgenerator
.