date |
---|
2020-10-22 |
- You can now bind a type://GrpcService to a custom route path. #3072 #3083
This is useful if you want to serve an unframed gRPC service with RESTful routes.
ServerBuilder sb = ... sb.service(GrpcService.builder() // Bind 'getProfile()' method to '/v1/api/users/profile' .addService("/v1/api/users/profile", userService, UserServiceGrpc.getProfile()) // Bind 'getFriends()' method to '/v1/api/users/friends' .addService("/v1/api/users/friends", userService, UserServiceGrpc.getFriends()) .build());
- You can now use type://DecodingService for decoding a compressed request. #1521 #3087
- You can now use type://HttpResponse#ofRedirect(String) for easily sending a redirect response. #914 #3059
// The status is HttpStatus.TEMPORARY_REDIRECT. HttpResponse.ofRedirect("/new-location"); HttpResponse.ofRedirect("/new-location/%s", someVar); // Redirect with the specified redirection status. HttpResponse.ofRedirect(HttpStatus.MOVED_PERMANENTLY, "/new-location");
- You can now choose a path when a Thrift/gRPC service has more than one path in the type://DocService. #2167 #3024
- You can now cancel a service's request or client's response with type://CancellationException or
any
Throwable
using type://RequestContext#cancel() or type://RequestContext#cancel(Throwable)?full. #3046 #3080ClientRequestContext cctx = ...; // Cancel a client's response with ResponseCancellationException cctx.cancel(); cctx.cancel(new RuntimeException("A custom error message")); ServiceRequestContext sctx = ...; // Cancel a service's request with RequestCancellationException sctx.cancel(); sctx.cancel(new RuntimeException("A custom error message"));
- Do not launch two servers if both
armeria-spring-boot2-autoconfigure
andarmeria-spring-boot2-webflux-autoconfigure
are in the class path. #3056 #3102 - You no longer see a previously selected input when the input box of
Go to
menu is clicked. #3095
- You now get proper 404 Not Found status when
routeDecorator()
is used and the endpoint of the request doesn't exist. #3120 - You no longer see duplicated MDC keys anymore when
armeria-logback
is applied. #3044 #3105 - You can now get the normal response even though the request is not fully sent. #3115
- You can now use milliseconds as an interval unit in type://EurekaEndpointGroup. #3108
- You no longer see
UNKNOWN
error code while sending stream messages with Reactive gRPC stub. #3090 #3099 TTEXT_NAMED_ENUM
now correctly serializes enums when used inside maps. #3091- type://BraveClient and type://BraveService do not override
the default
(Client|Server)(Request|Response)Parser
anymore. #3023 #3111 - Armeria client now sets the default path(
/
) properly if a path is empty. #3098 - You no longer see an outdated JS bundle in the browser when the type://DocService page is rebuilt. #3094
- The following methods have been deprecated in favor of their
millis
-accepting versions: #3108- type://EurekaEndpointGroupBuilder.registryFetchIntervalSeconds()
- type://EurekaUpdatingServerListener.leaseDurationSeconds()
- type://EurekaUpdatingServerListener.renewalIntervalSeconds()
- The following methods have been deprecated in favor of their
*Cancelling
and*Cancelled
versions: #3080- type://ClientRequestContext.whenResponseTimingOut()
- type://ClientRequestContext.whenResponseTimedOut()
- type://ServiceRequestContext.whenRequestTimingOut()
- type://ServiceRequestContext.whenRequestTimedOut()
- N/A
- Brave 5.12.6 → 5.12.7
- Caffeine 2.8.5 → 2.8.6
- Dropwizard 1.3.24 → 1.3.25
- Dropwizard Metrics 4.1.12.1 → 4.1.13
- Eureka 1.9.26 → 1.10.7
- gRPC-Java 1.32.1 → 1.33.0
- Guava 29.0 → 30.0
- java-jwt 3.10.3 → 3.11.0
- Jetty 9.4.31 → 9.4.32
- Micrometer 1.3.12 → 1.3.14
- Netty 4.1.52 → 4.1.53
- RxJava2 2.2.19 → 2.2.20
- RxJava3 3.0.6 → 3.0.7
- Spring Boot 2.1.16 → 2.1.17
- Spring 5.1.17 → 5.1.18
- Tomcat8 8.5.57 → 8.5.58
- Tomcat9 9.0.38 → 9.0.39
<ThankYou usernames={[ 'adriancole', 'anuraaga', 'cnabro', 'ghkim3221', 'heowc', 'ikhoon', 'joonhaeng', 'jrhee17', 'KarboniteKream', 'kojilin', 'kowshikn', 'minwoox', 'policeman-kh', 'trustin', 'tumile' ]} />