diff --git a/site/src/pages/release-notes/1.31.0.mdx b/site/src/pages/release-notes/1.31.0.mdx new file mode 100644 index 00000000000..0c05a67822a --- /dev/null +++ b/site/src/pages/release-notes/1.31.0.mdx @@ -0,0 +1,168 @@ +--- +date: 2024-11-13 +--- + +## 🌟 New features + +- You can now set TLS configurations dynamically using `TlsProvider` #5033 #5228 + - You can create a which specifies dynamically. + ```java + // return a TlsKeyPair for host patterns + TlsProvider tlsProvider = TlsProvider + .builder() + .keyPair("*.a.com", TlsKeyPair.of(...)) + .keyPair("*.b.com", TlsKeyPair.of(...)) + .build(); + + // return a TlsKeyPair dynamically + TlsKeyPair tlsKeyPair = hostname -> TlsKeyPair.of(...); + ``` + - The can be used for both server and clients. + ```java + // client-side + ClientFactory + .builder() + .tlsProvider(tlsProvider); + + // server-side + Server + .builder() + .tlsProvider(tlsProvider); + ``` +- You can customize how in-flight requests are terminated during server shutdown by specifying a . #5941 + ```java + GracefulShutdown gracefulShutdown = + GracefulShutdown.builder() + .shutdownErrorFunction((ctx, req) -> { + logger.info("Not gracefully terminated!"); + return new MyException(); + }) + .build(); + + Server + .builder() + .gracefulShutdown(gracefulShutdown); + ``` +- You can access the raw request path via . #5931 #5932 + ```java + ServiceRequestContext ctx = ...; + String rawPath = ctx.rawPath(); + ``` +- More static factory methods are added for . #5954 + ```java + ResponseEntity response = ResponseEntity.of(200); + ResponseEntity response = ResponseEntity.of("Hello!"); + ``` +- You can specify or to set a timeout + for an or . #5744 #5761 + ```java + HttpRequest + .streaming(HttpMethod.GET, "/") + .timeout(Duration.ofSeconds(1)) // timeout if there is a delay exceeding 1 second between each data chunk + ``` +- You can now register your server to or retrieve from +a [Nacos](https://nacos.io/) registry server. #5365 #5409 + - Use to register the to [Nacos](https://nacos.io/): + ```java + Server server = + Server.builder() + ...; + server.addListener( + NacosUpdatingListener.builder(nacosUri, "my-service") + ... + .build()); + ``` + - Use for clients: + ```java + EndpointGroup group = NacosEndpointGroup.of(nacosUri, "my-service"); + WebClient client = WebClient.of(SessionProtocol.HTTP, group); + ``` +- An experimental `micrometer-context` module has been added. You can propagate via [Project Reactor](https://projectreactor.io/)'s `Context`. #5145 #5577 + ```java + ContextRegistry + .getInstance() + .registerThreadLocalAccessor(new RequestContextThreadLocalAccessor()); + Hooks.enableAutomaticContextPropagation(); + ``` + +## 📈 Improvements + +- The GraalVM native image metadata has been updated to reflect recent code changes. #5946 +- now supports `disable_active_health_check` #5879 + +## 🛠️ Bug fixes + +- DNS resolver now correctly adds search domains for hostnames with trailing dots. #5963 +- CORS headers for failed requests are now correctly set even when a custom is configured. #5493 #5939 +- Fixed a bug where is incompatible with the OpenTelemetry gRPC agent. #5937 #5938 +- Spring Actuator correctly collects metrics when using Spring WebFlux integration. #5882 #5884 + +## ☢️ Breaking changes + +- ABI compatibility of has been broken. #5954 + +## 🏚️ Deprecations + +- has been deprecated in favor of . + +## ⛓ Dependencies + +- Brotli4j 1.16.0 → 1.17.0 +- java-control-plane 1.0.45 → 1.0.46 +- Eureka 2.0.3 → 2.0.4 +- fastutil 8.5.14 → 8.5.15 +- GraphQL Kotlin 7.1.4 → 8.2.1 +- Java gRPC 1.65.1 → 1.68.1 +- Guava 33.2.1-jre → 33.3.1-jre +- Jackson 2.17.2 → 2.18.1 +- Jetty +- 11.0.22 → 11.0.24 +- 12.0.12 → 12.0.14 +- Kotlin 3.8.0 → 3.8.1 +- Kotlin coroutines 1.8.1 → 1.9.0 +- Fabric8 Kubernetes Client 6.13.1 → 6.13.4 +- Micrometer 1.13.2 → 1.13.6 +- Micrometer Tracing 1.3.2 → 1.3.5 +- Netty 4.1.112.Final → 4.1.114.Fin +- prometheus 1.3.1 → 1.3.2al +- Protobuf 3.25.1 → 3.25.5 +- protobuf-jackson 2.5.0 → 2.6.0 +- Reactor 3.6.8 → 3.6.11 +- RXJava 3.1.8 → 3.1.9 +- Sangria 4.1.1 → 4.2.2 +- Scala +- 2.12.19 → 2.12.20 +- 2.13.14 → 2.13.15 +- 3.4.2 → 3.6.1 +- Spring 6.1.11 → 6.1.14 +- Spring Boot 3.3.2 → 3.3.5 +- Tomcat +- 9.0.91 → 9.0.96 +- 10.1.26 → 10.1.31 + +## 🗑 Maybe ignore + +- !PENDING! Can upgrade websocket request with multiple connection value #5957 #5958 + +## 🙇 Thank you + + \ No newline at end of file