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

Commit b5fd868

Browse files
committed
Added ability to specify SchemaParserOptions.Builder options that can't be coerced using application properties so that one does not need to override the build entirely to add to the schema parser options
1 parent 532e04b commit b5fd868

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package graphql.kickstart.tools.boot;
22

3+
import com.coxautodev.graphql.tools.CoroutineContextProvider;
34
import com.coxautodev.graphql.tools.GraphQLResolver;
5+
import com.coxautodev.graphql.tools.ObjectMapperConfigurer;
46
import com.coxautodev.graphql.tools.PerFieldObjectMapperProvider;
7+
import com.coxautodev.graphql.tools.ProxyHandler;
58
import com.coxautodev.graphql.tools.SchemaParser;
69
import com.coxautodev.graphql.tools.SchemaParserBuilder;
710
import com.coxautodev.graphql.tools.SchemaParserDictionary;
811
import com.coxautodev.graphql.tools.SchemaParserOptions;
12+
import com.coxautodev.graphql.tools.SchemaParserOptions.GenericWrapper;
913
import com.coxautodev.graphql.tools.TypeDefinitionFactory;
1014
import com.fasterxml.jackson.databind.ObjectMapper;
1115
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
@@ -16,6 +20,8 @@
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)