armeria-0.43.0
New features
-
#499 Unframed GRPC support
-
#504 Allow adding a listener to any
EndpointGroupimplementations- Add
ListeneableandAbstractListenableas a common utility
- Add
-
#507 More convenient deferred construction of
RpcResponseandHttpResponse-
Before:
// RpcResponse DefaultRpcResponse res = new DefaultRpcResponse(); CompletableFuture<Object> future = doAsync(); future.whenComplete((value, cause) -> { if (cause != null) { res.completeExceptionally(cause); } else { res.complete(value); } }); return res; // HttpResponse DeferredHttpResponse res = new DeferredHttpResponse(); CompletableFuture<HttpResponse> future = doAsync(); future.whenComplete((actualRes, cause) -> { if (cause != null) { res.close(cause); } else { res.delegate(actualRes); } }); return res;
-
After:
// RpcResponse return RpcResponse.from(doAsync()); // HttpResponse return HttpResponse.from(doAsync());
-
-
#507 Add
RpcResponse.join()andRpcResponse.getNow() -
#507 Add
Exceptions.throwUnsafely()
Improvements
- #476 Reduce the number of memory copies in
THttpService - #495 Update GRPC to 1.2.0
- #509 Support
Booleantype inDynamicHttpService
Bug fixes
- #492 Health check metric is not always correct.
- #496
NullPointerExceptionwhen aggregating an HTTP message with a trailing header - #503
AssertionErrorinThriftDocServicePlugin.toTypeSignature() - #504
OrElseEndpointGroupdoes not handle dynamic endpoint changes correctly
Known issues
- This release depends on Netty 4.1.9, which has a bug related with domain name resolution. If you are in an IPv4 environment, specify the
-Djava.net.preferIPv4Stack=trueoption to work around it. We will release a new version that depends on the Netty version with the fixes once it's available.