Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add release note for 1.31.0 #5970

Merged
merged 15 commits into from
Nov 14, 2024
Merged
143 changes: 143 additions & 0 deletions site/src/pages/release-notes/1.31.0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
date: 2024-11-13
---

## 🌟 New features

- You can now set TLS configurations dynamically using <type://TlsProvider> #5033 #5228
trustin marked this conversation as resolved.
Show resolved Hide resolved
- You can create a <type://TlsProvider> which specifies <type://TlsKeyPair> 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
TlsProvider tlsProvider = hostname -> TlsKeyPair.of(...);
```
- The <type://TlsProvider> can be used for both server and clients.
jrhee17 marked this conversation as resolved.
Show resolved Hide resolved
```java
// client-side
ClientFactory
.builder()
.tlsProvider(tlsProvider);

// server-side
Server
.builder()
.tlsProvider(tlsProvider);
```
- You can access the raw request path via <type://ServiceRequestContext#rawPath()>. #5931 #5932
```java
ServiceRequestContext ctx = ...;
String rawPath = ctx.rawPath();
```
- More static factory methods are added for <type://ResponseEntity>. #5954
```java
ResponseEntity<Object> response = ResponseEntity.of(200);
ResponseEntity<String> response = ResponseEntity.of("Hello!");
```
- You can specify <type://HttpRequest#timeout(Duration)> or <type://HttpResponse#timeout(Duration)> to set a timeout
for an <type://HttpRequest> or <type://HttpResponse>. #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 <typeplural://Endpoint> from
a [Nacos](https://nacos.io/) registry server. #5365 #5409
- Use <type://NacosUpdatingListener> to register the <typeplural://Server> to [Nacos](https://nacos.io/):
```java
Server server =
Server.builder()
...;
jrhee17 marked this conversation as resolved.
Show resolved Hide resolved
server.addListener(
NacosUpdatingListener.builder(nacosUri, "my-service")
...
.build());
jrhee17 marked this conversation as resolved.
Show resolved Hide resolved
```
- Use <type://NacosEndpointGroup> for clients:
```java
EndpointGroup group = NacosEndpointGroup.of(nacosUri, "my-service");
WebClient client = WebClient.of(SessionProtocol.HTTP, group);
```

## 📈 Improvements

- The GraalVM native image metadata has been updated to reflect recent code changes. #5946
trustin marked this conversation as resolved.
Show resolved Hide resolved
- <type://XdsEndpointGroup> 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 <type://ServerErrorHandler> is configured. #5493 #5939
- Fixed a bug where <type://AsyncServerInterceptor> 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 <type://ResponseEntity#of(ResponseHeaders)> has been broken. #5954

## ⛓ 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
jrhee17 marked this conversation as resolved.
Show resolved Hide resolved
- 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.Final
- prometheus 1.3.1 → 1.3.2
- 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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove?


- !PENDING! Can upgrade websocket request with multiple connection value #5957 #5958
jrhee17 marked this conversation as resolved.
Show resolved Hide resolved

## 🙇 Thank you

<ThankYou usernames={[
'Bue-von-hon',
'JiwonKKang',
'KarboniteKream',
'KonaEspresso94',
'Mina-1316',
'be-hase',
'blue-hope',
'chickenchickenlove',
'friscoMad',
'ikhoon',
'jrhee17',
'kabigon-sung',
'minwoox',
'my4-dev',
'roderick675',
'sjy982',
'trustin',
'yzfeng2020'
]} />
Loading