Skip to content
This repository was archived by the owner on Dec 19, 2023. It is now read-only.

Commit 2e44461

Browse files
authored
Merge pull request #142 from graphql-java-kickstart/bugfix/140-object-mapper
Bugfix/140 object mapper
2 parents ceece7d + 514fa38 commit 2e44461

File tree

9 files changed

+26
-44
lines changed

9 files changed

+26
-44
lines changed

example-graphql-tools/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ repositories {
2929
dependencies {
3030
compile(project(":graphql-spring-boot-starter"))
3131
compile(project(":graphiql-spring-boot-starter"))
32+
compile(project(":voyager-spring-boot-starter"))
3233
compile "com.graphql-java-kickstart:graphql-java-tools:$LIB_GRAPHQL_JAVA_TOOLS_VER"
3334

3435
compile("org.springframework.boot:spring-boot-starter-web:$LIB_SPRING_BOOT_VER")

example-graphql-tools/src/main/resources/application.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ spring:
33
name: graphql-java-tools-app
44
server:
55
port: 9000
6+
servlet:
7+
context-path: /abc
68
graphiql:
79
headers:
810
Authorization: "Bearer 05bd9a5f3fe0408f89520946b0fe1b06"

graphiql-spring-boot-autoconfigure/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1818
*/
1919
dependencies{
20-
compile "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
20+
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
21+
2122
compile "org.springframework.boot:spring-boot-autoconfigure:$LIB_SPRING_BOOT_VER"
2223
compile "org.apache.commons:commons-text:1.1"
2324
compileOnly "org.springframework.boot:spring-boot-starter-web:$LIB_SPRING_BOOT_VER"

graphql-spring-boot-autoconfigure/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@
1818
*/
1919

2020
dependencies {
21-
compile "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
21+
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
22+
2223
compile "org.springframework.boot:spring-boot-autoconfigure:$LIB_SPRING_BOOT_VER"
2324
compile "org.springframework.boot:spring-boot-starter-websocket:$LIB_SPRING_BOOT_VER"
2425
compile "com.graphql-java-kickstart:graphql-java-servlet:$LIB_GRAPHQL_SERVLET_VER"
2526
compile "commons-io:commons-io:$LIB_COMMONS_IO_VER"
2627
compile "com.graphql-java-kickstart:graphql-java-tools:$LIB_GRAPHQL_JAVA_TOOLS_VER"
27-
28+
2829
compileOnly "org.springframework.boot:spring-boot-starter-web:$LIB_SPRING_BOOT_VER"
2930

3031
testCompile "com.graphql-java:graphql-java:$LIB_GRAPHQL_JAVA_VER"

graphql-spring-boot-autoconfigure/src/main/java/com/oembedler/moon/graphql/boot/GraphQLJavaToolsAutoConfiguration.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@
88
import graphql.schema.GraphQLSchema;
99
import graphql.servlet.GraphQLSchemaProvider;
1010
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
1112
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
1213
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1314
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1415
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
16+
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
1517
import org.springframework.context.annotation.Bean;
1618
import org.springframework.context.annotation.Configuration;
1719

1820
import java.io.IOException;
1921
import java.util.List;
20-
import java.util.Optional;
2122

2223
import static com.coxautodev.graphql.tools.SchemaParserOptions.newOptions;
2324

@@ -26,6 +27,7 @@
2627
*/
2728
@Configuration
2829
@ConditionalOnClass(SchemaParser.class)
30+
@AutoConfigureAfter({JacksonAutoConfiguration.class})
2931
public class GraphQLJavaToolsAutoConfiguration {
3032

3133
@Autowired(required = false)
@@ -43,19 +45,13 @@ public SchemaStringProvider schemaStringProvider() {
4345
return new ClasspathResourceSchemaStringProvider();
4446
}
4547

46-
@Bean
47-
@ConditionalOnMissingBean
48-
public ObjectMapper objectMapper() {
49-
return new ObjectMapper();
50-
}
51-
5248
@Bean
5349
@ConditionalOnBean({GraphQLResolver.class})
5450
@ConditionalOnMissingBean
5551
public SchemaParser schemaParser(
5652
List<GraphQLResolver<?>> resolvers,
5753
SchemaStringProvider schemaStringProvider,
58-
Optional<PerFieldObjectMapperProvider> perFieldObjectMapperProvider
54+
PerFieldObjectMapperProvider perFieldObjectMapperProvider
5955
) throws IOException {
6056
SchemaParserBuilder builder = dictionary != null ? new SchemaParserBuilder(dictionary) : new SchemaParserBuilder();
6157

@@ -68,9 +64,9 @@ public SchemaParser schemaParser(
6864

6965
if (options != null) {
7066
builder.options(options);
71-
} else if (perFieldObjectMapperProvider.isPresent()) {
67+
} else if (perFieldObjectMapperProvider != null) {
7268
final SchemaParserOptions.Builder optionsBuilder =
73-
newOptions().objectMapperProvider(perFieldObjectMapperProvider.get());
69+
newOptions().objectMapperProvider(perFieldObjectMapperProvider);
7470
builder.options(optionsBuilder.build());
7571
}
7672

graphql-spring-boot-autoconfigure/src/main/java/com/oembedler/moon/graphql/boot/GraphQLWebAutoConfiguration.java

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
package com.oembedler.moon.graphql.boot;
2121

22-
import com.coxautodev.graphql.tools.PerFieldObjectMapperProvider;
2322
import com.fasterxml.jackson.databind.InjectableValues;
2423
import com.fasterxml.jackson.databind.ObjectMapper;
2524
import graphql.execution.AsyncExecutionStrategy;
@@ -29,28 +28,10 @@
2928
import graphql.execution.instrumentation.Instrumentation;
3029
import graphql.execution.preparsed.PreparsedDocumentProvider;
3130
import graphql.schema.GraphQLSchema;
32-
import graphql.servlet.AbstractGraphQLHttpServlet;
33-
import graphql.servlet.DefaultExecutionStrategyProvider;
34-
import graphql.servlet.DefaultGraphQLSchemaProvider;
35-
import graphql.servlet.ExecutionStrategyProvider;
36-
import graphql.servlet.GraphQLContextBuilder;
37-
import graphql.servlet.GraphQLErrorHandler;
38-
import graphql.servlet.GraphQLInvocationInputFactory;
39-
import graphql.servlet.GraphQLObjectMapper;
40-
import graphql.servlet.GraphQLQueryInvoker;
41-
import graphql.servlet.GraphQLRootObjectBuilder;
42-
import graphql.servlet.GraphQLSchemaProvider;
43-
import graphql.servlet.GraphQLServletListener;
44-
import graphql.servlet.ObjectMapperConfigurer;
45-
import graphql.servlet.ObjectMapperProvider;
46-
import graphql.servlet.SimpleGraphQLHttpServlet;
31+
import graphql.servlet.*;
4732
import org.springframework.beans.factory.annotation.Autowired;
4833
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
49-
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
50-
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
51-
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
52-
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
53-
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
34+
import org.springframework.boot.autoconfigure.condition.*;
5435
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
5536
import org.springframework.boot.context.properties.EnableConfigurationProperties;
5637
import org.springframework.boot.web.servlet.ServletRegistrationBean;
@@ -205,15 +186,15 @@ public GraphQLQueryInvoker queryInvoker(ExecutionStrategyProvider executionStrat
205186

206187
@Bean
207188
@ConditionalOnMissingBean
208-
public GraphQLObjectMapper graphQLObjectMapper(Optional<ObjectMapperProvider> objectMapperProvider) {
189+
public GraphQLObjectMapper graphQLObjectMapper(ObjectMapperProvider objectMapperProvider) {
209190
GraphQLObjectMapper.Builder builder = newBuilder();
210191

211192
if (errorHandler != null) {
212193
builder.withGraphQLErrorHandler(errorHandler);
213194
}
214195

215-
if (objectMapperProvider.isPresent()){
216-
builder.withObjectMapperProvider(objectMapperProvider.get());
196+
if (objectMapperProvider != null){
197+
builder.withObjectMapperProvider(objectMapperProvider);
217198
} else if (objectMapperConfigurer != null) {
218199
builder.withObjectMapperConfigurer(objectMapperConfigurer);
219200
}
@@ -256,9 +237,4 @@ private MultipartConfigElement multipartConfigElement() {
256237
return Optional.ofNullable(multipartConfigElement).orElse(new MultipartConfigElement(""));
257238
}
258239

259-
@Bean
260-
@ConditionalOnMissingBean
261-
public ObjectMapper objectMapper() {
262-
return new ObjectMapper();
263-
}
264240
}

graphql-spring-boot-autoconfigure/src/test/java/com/oembedler/moon/graphql/boot/test/AbstractAutoConfigurationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.oembedler.moon.graphql.boot.test;
22

33
import org.junit.After;
4+
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
45
import org.springframework.boot.test.util.TestPropertyValues;
56
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
67
import org.springframework.context.annotation.AnnotationConfigRegistry;
@@ -55,6 +56,7 @@ protected void load(Class<?> config, String... environment) {
5556

5657
getRegistry().register(config);
5758
getRegistry().register(autoConfiguration);
59+
getRegistry().register(JacksonAutoConfiguration.class);
5860

5961
loadServletContext();
6062
getContext().refresh();

graphql-spring-boot-test-autoconfigure/src/main/java/com/graphql/spring/boot/test/GraphQLTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import graphql.schema.idl.SchemaParser;
1414
import graphql.servlet.*;
1515
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
16+
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
1617
import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration;
1718
import org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration;
1819
import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration;
@@ -92,7 +93,8 @@ Class<?>[] classes() default {
9293
GraphQLWebAutoConfiguration.class,
9394
GraphQLTestAutoConfiguration.class,
9495
PropertySourcesPlaceholderConfigurer.class,
95-
WebSocketServletAutoConfiguration.class
96+
WebSocketServletAutoConfiguration.class,
97+
JacksonAutoConfiguration.class
9698
};
9799

98100
@AliasFor(

voyager-spring-boot-autoconfigure/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1818
*/
1919
dependencies{
20-
compile "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
20+
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
21+
2122
compile "org.springframework.boot:spring-boot-autoconfigure:$LIB_SPRING_BOOT_VER"
2223
compile "org.apache.commons:commons-text:1.1"
2324
compileOnly "org.springframework.boot:spring-boot-starter-web:$LIB_SPRING_BOOT_VER"

0 commit comments

Comments
 (0)