Skip to content

Releases: seedstack/business

v4.5.0

17 Apr 20:17
Compare
Choose a tag to compare
  • [chg] Java 21 support.
  • [chg] Update Seed version to 3.15.0.

v4.4.0

09 May 07:18
Compare
Choose a tag to compare
  • [new] Support qualifiers for repositories and factories in FluentAssembler DSL.
  • [new] Support @identity generators in composite embedded identifiers.

v4.3.1

06 Aug 14:07
Compare
Choose a tag to compare
  • [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

17 Dec 15:44
Compare
Choose a tag to compare
  • [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

03 Sep 20:35
Compare
Choose a tag to compare
  • [fix] Fix potential resource leak in DataManagerImpl.

v4.2.1

04 May 16:35
Compare
Choose a tag to compare
  • [new] Java 9 compatibility.
  • [new] Add sorting support to BaseInMemoryRepository.
  • [chg] Make SizePicker (specialization for page-based pagination) extend LimitPicker.
  • [fix] ComparableSpecification and its descendant were not properly evaluating the comparison result.

v4.2.0

05 Dec 12:45
Compare
Choose a tag to compare
  • [new] Paginator can now paginate streams and iterables of arbitrary objects (not only aggregates through repositories).

v4.1.1

04 Dec 10:58
Compare
Choose a tag to compare
  • [chg] The class configuration defaultRepository and defaultAssembler are now real defaults and don't clash with code-based bindings anymore.

v4.1.0

01 Dec 08:37
Compare
Choose a tag to compare
  • [new] Add business-migrate module to help migration from 3.x based projects.

v4.0.0

30 Nov 23:04
Compare
Choose a tag to compare
  • [new] A default implementation of getId() has been added in BaseEntity 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 to aggregateIndex().
  • [brk] The Assembler methods assembleDtoFromAggregate(), assembleDtoFromAggregate() and mergeAggregateWithDto() have been renamed to createDtoFromAggregate(), mergeAggregateIntoDto() and mergeDtoIntoAggregate() respectively.
  • [brk] The BaseAssembler and BaseTupleAssembler now follow the Assembler interface (no more do*() methods).
  • [brk] The getEntityId() method of Entity has been renamed to getId().
  • [brk] The Repository interface has been refactored as a collection-like interface.
  • [brk] The Factory and GenericFactory interfaces are merged into a unique Factory 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 to IdentityGenerator 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 renamed generator.