Releases: seedstack/business
Releases · seedstack/business
v4.5.0
v4.4.0
- [new] Support qualifiers for repositories and factories in FluentAssembler DSL.
- [new] Support
@identitygenerators in composite embedded identifiers.
v4.3.1
- [new] Shortcut to combine two specifications in the specification builder DSL.
- [fix] Accept Guice-specific
@Namedannotation 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]
ComparableSpecificationand 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
defaultRepositoryanddefaultAssemblerare now real defaults and don't clash with code-based bindings anymore.
v4.1.0
- [new] Add
business-migratemodule to help migration from 3.x based projects.
v4.0.0
- [new] A default implementation of
getId()has been added inBaseEntitywhich 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
Repositoryinterface allow to work on multiple aggregates with specifications. - [new] Business framework now takes advantage of Java 8 features (notably streams and optional).
- [new]
FluentAssemblercan 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
Paginatorinterface 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
@Overridingwill 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
@MatchingFactoryParameterannotation has been renamed to@FactoryArgument. - [brk] The
@MatchingEntityIdannotation has been renamed to@AggregateId. - [brk] The
typeIndex()method of@FactoryArgumentand@AggregateIdannotations has been renamed toaggregateIndex(). - [brk] The
AssemblermethodsassembleDtoFromAggregate(),assembleDtoFromAggregate()andmergeAggregateWithDto()have been renamed tocreateDtoFromAggregate(),mergeAggregateIntoDto()andmergeDtoIntoAggregate()respectively. - [brk] The
BaseAssemblerandBaseTupleAssemblernow follow theAssemblerinterface (no moredo*()methods). - [brk] The
getEntityId()method ofEntityhas been renamed togetId(). - [brk] The
Repositoryinterface has been refactored as a collection-like interface. - [brk] The
FactoryandGenericFactoryinterfaces are merged into a uniqueFactoryinterface. - [brk] The
DomainObjectinterface has been removed. - [brk] The old pagination API has been removed.
- [brk] Intermediate interfaces of
FluentAssemblerDSL have been renamed. - [brk] Generic events have been replaced by domain-only events.
- [brk] The interface
IdentityHandlerhas been renamed toIdentityGeneratorto better reflect its responsibility. - [brk] The
sourceparameter from@Identityannotation has been removed. This is better done in class configuration. - [brk] The
handlerparameter of the@Identityannotation has been renamedgenerator.