Skip to content

Commit f423903

Browse files
committed
Add graphql builder configurer to be able to customize the GraphQL instance being built
1 parent 59168a2 commit f423903

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/GraphQLBuilder.java

+9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class GraphQLBuilder {
1818
private Supplier<PreparsedDocumentProvider> preparsedDocumentProviderSupplier = () -> NoOpPreparsedDocumentProvider.INSTANCE;
1919
@Getter
2020
private Supplier<Instrumentation> instrumentationSupplier = () -> SimpleInstrumentation.INSTANCE;
21+
private Supplier<GraphQLBuilderConfigurer> graphQLBuilderConfigurerSupplier = () -> builder -> {};
2122

2223
public GraphQLBuilder executionStrategyProvider(Supplier<ExecutionStrategyProvider> supplier) {
2324
if (supplier != null) {
@@ -40,6 +41,13 @@ public GraphQLBuilder instrumentation(Supplier<Instrumentation> supplier) {
4041
return this;
4142
}
4243

44+
public GraphQLBuilder graphQLBuilderConfigurer(Supplier<GraphQLBuilderConfigurer> supplier) {
45+
if (supplier != null) {
46+
graphQLBuilderConfigurerSupplier = supplier;
47+
}
48+
return this;
49+
}
50+
4351
public GraphQL build(GraphQLSchemaProvider schemaProvider) {
4452
return build(schemaProvider.getSchema());
4553
}
@@ -78,6 +86,7 @@ public GraphQL build(GraphQLSchema schema,
7886
if (containsDispatchInstrumentation(instrumentation)) {
7987
builder.doNotAddDefaultInstrumentations();
8088
}
89+
graphQLBuilderConfigurerSupplier.get().configure(builder);
8190
return builder.build();
8291
}
8392

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package graphql.kickstart.execution.config;
2+
3+
import graphql.GraphQL;
4+
5+
public interface GraphQLBuilderConfigurer {
6+
7+
void configure(GraphQL.Builder builder);
8+
9+
}

0 commit comments

Comments
 (0)