Releases: pellse/assembler
Releases · pellse/assembler
Assembler v0.0.9
This version adds support for Akka Stream through the AkkaSourceAdapter
Assembler v0.0.8
The following changes are available in this release:
- Support for RxJava through
ObservableAdapter
andFlowableAdapter
- Implementations of
AssemblerAdapter
are not responsible anymore to handle error conversion, this is now done in the core code
Assembler v0.0.7
This release contains the following changes:
- Removed
SynchronousAdapter
and replaced withStreamAdapter
- This allows the new
StreamAdapter
to be configurable to process Java 8 Streams synchronously or in parallel through a newparallel
flag
- This allows the new
CompletableFutureAdapter
now converts any exception according to the suppliederrorConverter
- DSL previously exposed by
AssemblerBuilder
is now part ofAssembler
- Added
withErrorConverter()
toAssembler
to add the ability to specify a custom error converter - Removed dependency on the Lombok library as it is used only for testing
Assembler v0.0.6
The following changes were integrated into this release:
- Deleted assembler-synchronous module and move the assembler synchronous implementation in assembler-core
- Fixed issue #2 by adding support for
CompletableFuture
in assembler-core, so now supporting aggregation of service calls asynchronously is just a matter of switching from aSynchronousAdapter
to aCompletableFutureAdapter
:
CompletableFuture<List<Transaction>> transactions = assemblerOf(Transaction.class)
.fromSupplier(this::getCustomers, Customer::getCustomerId)
.assembleWith(
oneToOne(this::getBillingInfoForCustomers, BillingInfo::getCustomerId)
oneToManyAsList(this::getAllOrdersForCustomers, OrderItem::getCustomerId),
Transaction::new)
.using(completableFutureAdapter());
Assembler v0.0.5
2 major changes were introduced in this release:
- A new fluent api to construct the assembler, here is a usage example:
List<Transaction> transactions = assemblerOf(Transaction.class)
.fromSupplier(this::getCustomers, Customer::getCustomerId)
.assembleWith(
oneToOne(this::getBillingInfoForCustomers, BillingInfo::getCustomerId),
oneToManyAsList(this::getAllOrdersForCustomers, OrderItem::getCustomerId),
Transaction::new)
.using(synchronousAssemblerAdapter())
.collect(toList());
- Fixed issue #8, by default it is assumed to be an
ArrayList
when no id collection supplier is specified, but now we can also specify a per mapper id collection supplier e.g.:
oneToOne(this::getBillingInfoForCustomers, BillingInfo::getCustomerId, HashSet::new),
oneToManyAsList(this::getAllOrdersForCustomers, OrderItem::getCustomerId, LinkedList::new)