0.81.0 release notes
8th March 2019
New features
A user now can generate
cache-control
header value programmatically. #1615HttpHeaders headers = HttpHeaders.of(); HttpFileBuilder fileBuilder = HttpFileBuilder.of(...); HttpFileServiceBuilder fileServiceBuilder = HttpFileServiceBuilder.forFileSystem(...); // Before: headers.set(HttpHeaderNames.CACHE_CONTROL, "no-cache, no-store, must-revalidate")); fileBuilder.setHeader(HttpHeaderNames.CACHE_CONTROL, "max-age=86400, no-cache, must-revalidate"); fileServiceBuilder.setHeader(HttpHeaderNames.CACHE_CONTROL, "public, max-age=3600"); // After: headers.setObject(HttpHeaderNames.CACHE_CONTROL, ServerCacheControl.DISABLED); fileBuilder.cacheControl(new ServerCacheControlBuilder() .maxAgeSeconds(86400) .noCache() .mustRevalidate() .build()); fileServiceBuilder.cacheControl(new ServerCacheControlBuilder() .cachePublic() .maxAgeSeconds(3600) .build());
Armeria supports gRPC Server Reflection. #1623
ServerBuilder sb = new ServerBuilder(); sb.service(new GrpcServiceBuilder().addService(new MyHelloService()) .addService(ProtoReflectionService.newInstance()) .build());
Added
StreamMessage.drailAll(...)
to simply collect all the elements from theStreamMessage
. #1620HttpResponse res = HttpResponse.of(HttpHeaders.of(HttpStatus.OK) .contentType(PLAIN_TEXT_UTF_8), HttpData.ofUtf8("bob"), HttpHeaders.of(CONTENT_MD5, "hash")); // Simply collect all the elements. List<HttpObject> drained = res.drainAll().join(); assertThat(drained).containsExactly( HttpHeaders.of(HttpStatus.OK) .contentType(PLAIN_TEXT_UTF_8), HttpData.of(StandardCharsets.UTF_8, "bob"), HttpHeaders.of(CONTENT_MD5, "hash"));
A user is able to see the HTTP trailers in a
RequestLog
. #1614
Improvements
- Added more logging to
SamlService
to inform the reasons of the failure. #1629 - Various documentation updates. #1604, #1607, #1610, #1611, #1613, #1618, #1626, #1627, #1628
Bug fixes
- Fixed a bug where HTTP trailers is added to message headers. #1620
- Fixed a bug where the TLS handshake exception pollutes the log message. #1612
- Fixed a bug where Server-Sent Events messages miss the
end-of-line
character. #1610 - Fixed an API design flaw where a user cannot specify more than one decorator when adding a
ServiceWithPathMappings
. #1627 - Fixed a bug where
contentPreview
is not working correctly. #1624 - Fixed a bug where a
StackOverFlowError
is raised while finding annotations inAnnotationUtil
. #1635 - Fixed a bug where the Armeria actuator sends the response with the incorrect media type. #1641
Breaking Change
- The
HttpHeaders
is added toget()
inHttpVfs
as a parameter. #1615- A user can easily add the
HttpHeaders
when building anHttpFile
.
- A user can easily add the
Dependencies
- Caffeine 2.6.2 -> 2.7.0
- Curator 4.1.0 -> 4.2.0
- gRPC 1.18.0 -> 1.19.0
- Hibernate Validator 6.0.14 -> 6.0.15
- Jetty 9.4.14 -> 9.4.15
- protobuf-java 3.5.1 -> 3.6.1
- RxJava 2.2.6 -> 2.2.7
- SLF4J 1.7.25 -> 1.7.26
- Spring Boot 2.1.2 -> 2.1.3