Skip to content

Commit 5c6c3a6

Browse files
committed
Upgrade to Spring Framework 7.0.0-M7
Closes gh-1266
1 parent dfc4123 commit 5c6c3a6

File tree

6 files changed

+32
-8
lines changed

6 files changed

+32
-8
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description = "Spring for GraphQL"
66

77
ext {
88
moduleProjects = [project(":spring-graphql"), project(":spring-graphql-test")]
9-
springFrameworkVersion = "7.0.0-M6"
9+
springFrameworkVersion = "7.0.0-M7"
1010
graphQlJavaVersion = "24.1"
1111
springBootVersion = "3.4.3"
1212
}

spring-graphql/src/main/java/org/springframework/graphql/client/DefaultSyncHttpGraphQlClientBuilder.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import org.springframework.http.HttpHeaders;
2424
import org.springframework.http.converter.HttpMessageConverter;
25+
import org.springframework.http.converter.HttpMessageConverters;
2526
import org.springframework.util.Assert;
2627
import org.springframework.web.client.RestClient;
2728
import org.springframework.web.util.DefaultUriBuilderFactory;
@@ -90,18 +91,26 @@ public DefaultSyncHttpGraphQlClientBuilder headers(Consumer<HttpHeaders> headers
9091
}
9192

9293
@Override
94+
@SuppressWarnings("removal")
9395
public DefaultSyncHttpGraphQlClientBuilder messageConverters(Consumer<List<HttpMessageConverter<?>>> configurer) {
9496
this.restClientBuilder.messageConverters(configurer);
9597
return this;
9698
}
9799

100+
@Override
101+
public DefaultSyncHttpGraphQlClientBuilder configureMessageConverters(Consumer<HttpMessageConverters.ClientBuilder> configurer) {
102+
this.restClientBuilder.configureMessageConverters(configurer);
103+
return this;
104+
}
105+
98106
@Override
99107
public DefaultSyncHttpGraphQlClientBuilder restClient(Consumer<RestClient.Builder> configurer) {
100108
configurer.accept(this.restClientBuilder);
101109
return this;
102110
}
103111

104112
@Override
113+
@SuppressWarnings("removal")
105114
public HttpSyncGraphQlClient build() {
106115

107116
this.restClientBuilder.messageConverters((converters) -> {

spring-graphql/src/main/java/org/springframework/graphql/client/HttpMessageConverterDelegate.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,13 @@ private HttpMessageConverterDelegate() {
6262
}
6363

6464
@SuppressWarnings("unchecked")
65-
static HttpMessageConverter<Object> findJsonConverter(List<HttpMessageConverter<?>> converters) {
66-
return (HttpMessageConverter<Object>) converters.stream()
67-
.filter((converter) -> converter.canRead(Map.class, MediaType.APPLICATION_JSON))
68-
.findFirst()
69-
.orElseThrow(() -> new IllegalArgumentException("No JSON HttpMessageConverter"));
65+
static HttpMessageConverter<Object> findJsonConverter(Iterable<HttpMessageConverter<?>> converters) {
66+
for (HttpMessageConverter<?> converter : converters) {
67+
if (converter.canRead(Map.class, MediaType.APPLICATION_JSON)) {
68+
return (HttpMessageConverter<Object>) converter;
69+
}
70+
}
71+
throw new IllegalArgumentException("No JSON HttpMessageConverter");
7072
}
7173

7274
static HttpMessageConverterEncoder asEncoder(HttpMessageConverter<Object> converter) {

spring-graphql/src/main/java/org/springframework/graphql/client/HttpSyncGraphQlClient.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import org.springframework.http.HttpHeaders;
2424
import org.springframework.http.converter.HttpMessageConverter;
25+
import org.springframework.http.converter.HttpMessageConverters;
2526
import org.springframework.web.client.RestClient;
2627

2728

@@ -112,17 +113,28 @@ interface Builder<B extends Builder<B>> extends GraphQlClient.SyncBuilder<B> {
112113
* data to higher level objects.
113114
* @param configurer the configurer to apply
114115
* @return this builder
116+
* @deprecated since 2.0 in favor of {@link #configureMessageConverters(Consumer)}.
115117
*/
118+
@Deprecated(since = "2.0.0", forRemoval = true)
116119
B messageConverters(Consumer<List<HttpMessageConverter<?>>> configurer);
117120

121+
/**
122+
* Configure message converters for JSON for use in the
123+
* {@link org.springframework.graphql.GraphQlResponse} to convert response
124+
* data to higher level objects.
125+
* @param configurer the configurer to apply
126+
* @return this builder
127+
*/
128+
B configureMessageConverters(Consumer<HttpMessageConverters.ClientBuilder> configurer);
129+
118130
/**
119131
* Customize the underlying {@code RestClient}.
120132
* <p>Note that some properties of {@code RestClient.Builder} like the base URL,
121133
* headers, and message converters can be customized through this builder.
122134
* @param builderConsumer a consumer that customizes the {@code RestClient}.
123135
* @see #url(String)
124136
* @see #header(String, String...)
125-
* @see #messageConverters(Consumer)
137+
* @see #configureMessageConverters(Consumer)
126138
*/
127139
B restClient(Consumer<RestClient.Builder> builderConsumer);
128140

spring-graphql/src/main/java/org/springframework/graphql/client/HttpSyncGraphQlTransport.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ private static MediaType initContentType(RestClient webClient) {
6262

6363

6464
@Override
65+
@SuppressWarnings("NullAway")
6566
public GraphQlResponse execute(GraphQlRequest request) {
6667

6768
Map<String, Object> body = this.restClient.post()

spring-graphql/src/test/java/org/springframework/graphql/client/HttpSyncGraphQlClientBuilderTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ void codecConfigurerRegistersJsonPathMappingProvider() {
195195
TestJacksonJsonConverter testConverter = new TestJacksonJsonConverter();
196196

197197
HttpSyncGraphQlClient.Builder<?> builder = this.setup.initBuilder();
198-
builder.messageConverters(converters -> converters.add(0, testConverter));
198+
builder.configureMessageConverters((configurer) -> configurer.jsonMessageConverter(testConverter));
199199

200200
String document = "{me {name}}";
201201
MovieCharacter character = MovieCharacter.create("Luke Skywalker");

0 commit comments

Comments
 (0)