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

Commit 8ce945e

Browse files
authored
Merge pull request #350 from bsara/schema-parser-options
SchemaParserOptions.Builder Beans
2 parents 1f22207 + 00cc6f0 commit 8ce945e

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

graphql-kickstart-spring-boot-autoconfigure-tools/src/main/java/graphql/kickstart/tools/boot/GraphQLJavaToolsAutoConfiguration.java

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
package graphql.kickstart.tools.boot;
22

3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
5+
import com.fasterxml.jackson.module.kotlin.KotlinModule;
6+
import graphql.kickstart.tools.CoroutineContextProvider;
37
import graphql.kickstart.tools.GraphQLResolver;
8+
import graphql.kickstart.tools.ObjectMapperConfigurer;
49
import graphql.kickstart.tools.PerFieldObjectMapperProvider;
10+
import graphql.kickstart.tools.ProxyHandler;
511
import graphql.kickstart.tools.SchemaParser;
612
import graphql.kickstart.tools.SchemaParserBuilder;
713
import graphql.kickstart.tools.SchemaParserDictionary;
814
import graphql.kickstart.tools.SchemaParserOptions;
15+
import graphql.kickstart.tools.SchemaParserOptions.GenericWrapper;
916
import graphql.kickstart.tools.TypeDefinitionFactory;
10-
import com.fasterxml.jackson.databind.ObjectMapper;
11-
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
12-
import com.fasterxml.jackson.module.kotlin.KotlinModule;
1317
import graphql.kickstart.execution.config.GraphQLSchemaProvider;
1418
import graphql.schema.GraphQLScalarType;
1519
import graphql.schema.GraphQLSchema;
1620
import graphql.schema.idl.SchemaDirectiveWiring;
1721
import java.io.IOException;
1822
import java.util.List;
23+
24+
import kotlin.coroutines.CoroutineContext;
1925
import lombok.extern.slf4j.Slf4j;
2026
import org.springframework.beans.factory.annotation.Autowired;
2127
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
@@ -51,6 +57,18 @@ public class GraphQLJavaToolsAutoConfiguration {
5157
@Autowired(required = false)
5258
private List<SchemaDirectiveWiring> directiveWirings;
5359

60+
@Autowired(required = false)
61+
private List<GenericWrapper> genericWrappers;
62+
63+
@Autowired(required = false)
64+
private ObjectMapperConfigurer objectMapperConfigurer;
65+
66+
@Autowired(required = false)
67+
private List<ProxyHandler> proxyHandlers;
68+
69+
@Autowired(required = false)
70+
private CoroutineContextProvider coroutineContextProvider;
71+
5472
@Autowired(required = false)
5573
private List<TypeDefinitionFactory> typeDefinitionFactories;
5674

@@ -73,9 +91,24 @@ public SchemaParserOptions.Builder optionsBuilder(
7391

7492
if (perFieldObjectMapperProvider != null) {
7593
optionsBuilder.objectMapperProvider(perFieldObjectMapperProvider);
94+
} else {
95+
optionsBuilder.objectMapperConfigurer(objectMapperConfigurer);
7696
}
97+
7798
optionsBuilder.introspectionEnabled(props.isIntrospectionEnabled());
7899

100+
if (genericWrappers != null) {
101+
optionsBuilder.genericWrappers(genericWrappers);
102+
}
103+
104+
if (proxyHandlers != null) {
105+
proxyHandlers.forEach(optionsBuilder::addProxyHandler);
106+
}
107+
108+
if (coroutineContextProvider != null) {
109+
optionsBuilder.coroutineContextProvider(coroutineContextProvider);
110+
}
111+
79112
if (typeDefinitionFactories != null) {
80113
typeDefinitionFactories.forEach(optionsBuilder::typeDefinitionFactory);
81114
}

0 commit comments

Comments
 (0)