info
You're seeing the release note of an old version. Check out the latest release note.
v0.81.0
March 8, 2019
New features
-
A user now can generate
cache-controlheader 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
SamlServiceto 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-linecharacter. #1610 - Fixed an API design flaw where a user cannot specify more than one decorator when adding a
ServiceWithPathMappings. #1627 - Fixed a bug where
contentPreviewis not working correctly. #1624 - Fixed a bug where a
StackOverFlowErroris 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
HttpHeadersis added toget()inHttpVfsas a parameter. #1615- A user can easily add the
HttpHeaderswhen 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