-
Notifications
You must be signed in to change notification settings - Fork 896
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add release notes for 1.22.0 (#4656)
- Loading branch information
Showing
1 changed file
with
135 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
--- | ||
date: 2023-02-09 | ||
--- | ||
|
||
## 🌟 New features | ||
|
||
- <type://CircuitBreakerClient> integration with Resilience4j's circuit breaker is now available. #1469 #4139 | ||
- Note that `armeria-resilience4j2` requires Java 17 or higher. | ||
```java | ||
Resilience4jCircuitBreakerMapping mapping = | ||
Resilience4jCircuitBreakerMapping.of(); | ||
BlockingWebClient client = WebClient | ||
.builder() | ||
.decorator(CircuitBreakerClient | ||
.builder(CircuitBreakerRule.onException()) | ||
.handler(Resilience4JCircuitBreakerClientHandler.of(mapping)) // 👈👈👈 | ||
.newDecorator()) | ||
... | ||
``` | ||
- You can now use <type://AsyncServerInterceptor> to asynchronously intercept gRPC service calls. #4647 | ||
```java | ||
class AuthServerInterceptor implements AsyncServerInterceptor { | ||
@Override | ||
<I, O> CompletableFuture<Listener<I>> asyncInterceptCall( | ||
ServerCall<I, O> call, Metadata headers, ServerCallHandler<I, O> next) { | ||
return authorizer.authorize(headers).thenApply(result -> { | ||
if (result) { | ||
return next.startCall(call, headers); | ||
} else { | ||
throw new AuthenticationException("Invalid access"); | ||
} | ||
}); | ||
} | ||
} | ||
|
||
GrpcService.builder() | ||
.intercept(new AuthServerInterceptor()) // 👈👈👈 | ||
.addService(...) | ||
... | ||
``` | ||
- <type://@Blocking> annotation can now be used with gRPC services. #4389 #4585 | ||
```java | ||
@Blocking // 👈👈👈 applies to all methods in the class | ||
class MyGrpcServiceImpl extends MyGrpcServiceImplBase { | ||
@Blocking // 👈👈👈 applies to a single method | ||
public void blockingCall(...) { | ||
... | ||
} | ||
} | ||
``` | ||
- Armeria server with Spring integration can now be configured to bind to non-ip addresses. #4597 #4598 | ||
- The authenticated remote user set by <type://RequestLogBuilder#authenticatedUser(String)> is now logged in access | ||
logs. #4634 | ||
- <type://DocService> now exposes [JSON Schema](https://json-schema.org/) via the `/schemas.json` endpoint. #4518 | ||
|
||
## 📈 Improvements | ||
|
||
- <type://Server#reconfigure(ServerConfigurator)> now dynamically updates TLS configurations correctly. #4637 | ||
- Thrift [typedefs](http://diwakergupta.github.io/thrift-missing-guide/#_typedefs) are | ||
now correctly displayed in <type://DocService>. #4628 | ||
- <type://DocService> front-end assets are now compressed using gzip instead of Brotli. #4616 | ||
- An exception is raised if TLS is set for a port-based virtual host. #4588 | ||
|
||
## 🛠️ Bug fixes | ||
|
||
- A `NullPointerException` is not raised anymore when an aborted <type://StreamMessage> is collected. #4652 | ||
- A <type://ClosedSessionException> is not set to <type://RequestLog#responseCause()> anymore when | ||
an HTTP/1 connection is closed after response data has been fully sent. #4632 | ||
- [gRPC HTTP/JSON transcoding](https://cloud.google.com/endpoints/docs/grpc/transcoding) now doesn't throw an exception when used with nested messages. #4631 #4641 | ||
- `431 Request Header Fields Too Large` is now returned instead of `400 Bad Request` if the header size exceeds <type://ServerConfig#http1MaxHeaderSize()>. #4609 #4655 | ||
- Warnings on duplicate parameters in <type://DocService> are no longer visible when annotations are added to Kotlin data classes. #4645 | ||
- [gRPC HTTP/JSON transcoding](https://cloud.google.com/endpoints/docs/grpc/transcoding) now correctly interprets `google.protobuf.FieldMask` type as a string. #4633 #4640 | ||
- gRPC metadata is now exposed via <type://StatusRuntimeException> in <type://RequestLog#responseCause()>. #4635 #4636 | ||
- Square brackets "`[]`" that are specified in path segments are correctly encoded. #4607 #4615 | ||
- <type://DecodingService> and <type://DecodingClient> now correctly limit the max length of decompressed streaming data. #4613 | ||
- Client-side gRPC callback `ClientCall.Listener.onHeaders()` is now invoked correctly. #4583 #4608 | ||
- <type://DocService> now correctly displays multiple example requests for a single endpoint. #4576 #4605 | ||
|
||
## 🏚️ Deprecations | ||
|
||
- `ArmeriaSettings.ports.ip` is deprecated in favor of `ArmeriaSettings.ports.address`. #4597 #4598 | ||
|
||
## ☢️ Breaking changes | ||
|
||
- Armeria's gRPC services now try to throw a `StatusRuntimeException` instead of a `StatusException`. #4658 | ||
- Note that users are still recommended to perform error handling for both `StatusRuntimeException` and `StatusException` | ||
for gRPC services. | ||
- We are planning on stopping support for integration with Spring Boot 1. Please join the discussion at our | ||
[Github issue](https://github.com/line/armeria/issues/4651) if you have any opinions. #4651 | ||
|
||
## ⛓ Dependencies | ||
|
||
- Brave 5.14.1 → 5.15.0 | ||
- Dropwizard-metrics 4.2.13 → 4.2.15 | ||
- GraphQL Kotlin 6.3.2 → 6.3.5 | ||
- gRPC Java 1.49.1 → 1.52.1 | ||
- Hibernate Validator 6.2.3.Final → 6.2.5.Final | ||
- Jackson 2.14.1 → 2.14.2 | ||
- java-jwt 4.2.1 → 4.2.2 | ||
- Kafka client 3.3.1 → 3.4.0 | ||
- Kotlin 1.7.22 → 1.8.10 | ||
- Micrometer 4.10.0 → 4.11.0 | ||
- Netty 4.1.86.Final → 4.1.87.Final | ||
- io_uring 0.0.16.Final → 0.0.17.Final | ||
- Protobuf 3.21.1 → 3.21.7 | ||
- Resteasy 5.0.4.Final → 5.0.5.Final | ||
- RxJava3 3.1.5 → 3.1.6 | ||
- Sangria 3.4.1 → 3.5.0 | ||
- Scala3 3.2.0 → 3.2.2 | ||
- ScalaPB 0.11.12 → 0.11.13 | ||
- ScalaPB JSON 0.12.0 → 0.12.1 | ||
- Spring 5.3.23 → 5.3.25 | ||
- Spring Boot 2.7.4 → 2.7.8 | ||
- Tomcat8 8.5.84 → 8.5.85 | ||
- Tomcat9 9.0.70 → 9.0.71 | ||
|
||
## 🙇 Thank you | ||
|
||
<ThankYou usernames={[ | ||
'cormoran', | ||
'daniel-itunu', | ||
'Dogacel', | ||
'heesuk-ahn', | ||
'hyperxpro', | ||
'ikhoon', | ||
'j-min5u', | ||
'jrhee17', | ||
'kezhenxu94', | ||
'kojilin', | ||
'minwoox', | ||
'sullis', | ||
'ta7uw', | ||
'tomatophobia', | ||
'trustin' | ||
]} /> |