1010import javax .servlet .http .HttpServletRequest ;
1111import javax .servlet .http .HttpServletResponse ;
1212import java .util .List ;
13- import java .util .Map ;
1413import java .util .Optional ;
1514
1615/**
1716 * @author Andrew Potter
1817 */
1918public class SimpleGraphQLServlet extends GraphQLServlet {
2019
20+ /**
21+ * @deprecated use {@link #builder(GraphQLSchema)} instead.
22+ */
23+ @ Deprecated
2124 public SimpleGraphQLServlet (GraphQLSchema schema ) {
2225 this (schema , new DefaultExecutionStrategyProvider ());
2326 }
2427
28+ /**
29+ * @deprecated use {@link #builder(GraphQLSchema)} instead.
30+ */
31+ @ Deprecated
2532 public SimpleGraphQLServlet (GraphQLSchema schema , ExecutionStrategy executionStrategy ) {
2633 this (schema , new DefaultExecutionStrategyProvider (executionStrategy ));
2734 }
2835
36+ /**
37+ * @deprecated use {@link #builder(GraphQLSchema)} instead.
38+ */
39+ @ Deprecated
2940 public SimpleGraphQLServlet (GraphQLSchema schema , ExecutionStrategyProvider executionStrategyProvider ) {
3041 this (schema , executionStrategyProvider , null , null , null , null , null , null , null );
3142 }
3243
44+ /**
45+ * @deprecated use {@link #builder(GraphQLSchema)} instead.
46+ */
47+ @ Deprecated
3348 public SimpleGraphQLServlet (final GraphQLSchema schema , ExecutionStrategyProvider executionStrategyProvider , ObjectMapperConfigurer objectMapperConfigurer , List <GraphQLServletListener > listeners , Instrumentation instrumentation , GraphQLErrorHandler errorHandler , GraphQLContextBuilder contextBuilder , GraphQLRootObjectBuilder rootObjectBuilder , PreparsedDocumentProvider preparsedDocumentProvider ) {
3449 this (new DefaultGraphQLSchemaProvider (schema ), executionStrategyProvider , objectMapperConfigurer , listeners , instrumentation , errorHandler , contextBuilder , rootObjectBuilder , preparsedDocumentProvider );
3550 }
3651
52+ /**
53+ * @deprecated use {@link #builder(GraphQLSchemaProvider)} instead.
54+ */
55+ @ Deprecated
3756 public SimpleGraphQLServlet (GraphQLSchemaProvider schemaProvider , ExecutionStrategyProvider executionStrategyProvider , ObjectMapperConfigurer objectMapperConfigurer , List <GraphQLServletListener > listeners , Instrumentation instrumentation , GraphQLErrorHandler errorHandler , GraphQLContextBuilder contextBuilder , GraphQLRootObjectBuilder rootObjectBuilder , PreparsedDocumentProvider preparsedDocumentProvider ) {
3857 super (objectMapperConfigurer , listeners , null );
3958
@@ -71,6 +90,18 @@ public SimpleGraphQLServlet(GraphQLSchemaProvider schemaProvider, ExecutionStrat
7190 }
7291 }
7392
93+ private SimpleGraphQLServlet (Builder builder ) {
94+ super (builder .objectMapperConfigurer , builder .listeners , null );
95+
96+ this .schemaProvider = builder .schemaProvider ;
97+ this .executionStrategyProvider = builder .executionStrategyProvider ;
98+ this .instrumentation = builder .instrumentation ;
99+ this .errorHandler = builder .errorHandler ;
100+ this .contextBuilder = builder .contextBuilder ;
101+ this .rootObjectBuilder = builder .rootObjectBuilder ;
102+ this .preparsedDocumentProvider = builder .preparsedDocumentProvider ;
103+ }
104+
74105 private final GraphQLSchemaProvider schemaProvider ;
75106 private final ExecutionStrategyProvider executionStrategyProvider ;
76107 private final Instrumentation instrumentation ;
@@ -79,6 +110,81 @@ public SimpleGraphQLServlet(GraphQLSchemaProvider schemaProvider, ExecutionStrat
79110 private final GraphQLRootObjectBuilder rootObjectBuilder ;
80111 private final PreparsedDocumentProvider preparsedDocumentProvider ;
81112
113+ public static SimpleGraphQLServlet create (GraphQLSchema schema ) {
114+ return new Builder (schema ).build ();
115+ }
116+
117+ public static SimpleGraphQLServlet create (GraphQLSchemaProvider schemaProvider ) {
118+ return new Builder (schemaProvider ).build ();
119+ }
120+
121+ public static Builder builder (GraphQLSchema schema ) {
122+ return new Builder (schema );
123+ }
124+
125+ public static Builder builder (GraphQLSchemaProvider schemaProvider ) {
126+ return new Builder (schemaProvider );
127+ }
128+
129+ public static class Builder {
130+ private final GraphQLSchemaProvider schemaProvider ;
131+ private ExecutionStrategyProvider executionStrategyProvider = new DefaultExecutionStrategyProvider ();
132+ private ObjectMapperConfigurer objectMapperConfigurer ;
133+ private List <GraphQLServletListener > listeners ;
134+ private Instrumentation instrumentation = NoOpInstrumentation .INSTANCE ;
135+ private GraphQLErrorHandler errorHandler = new DefaultGraphQLErrorHandler ();
136+ private GraphQLContextBuilder contextBuilder = new DefaultGraphQLContextBuilder ();
137+ private GraphQLRootObjectBuilder rootObjectBuilder = new DefaultGraphQLRootObjectBuilder ();
138+ private PreparsedDocumentProvider preparsedDocumentProvider = NoOpPreparsedDocumentProvider .INSTANCE ;
139+
140+ public Builder (GraphQLSchema schema ) {
141+ this (new DefaultGraphQLSchemaProvider (schema ));
142+ }
143+
144+ public Builder (GraphQLSchemaProvider schemaProvider ) {
145+ this .schemaProvider = schemaProvider ;
146+ }
147+
148+ public Builder withExecutionStrategyProvider (ExecutionStrategyProvider provider ) {
149+ this .executionStrategyProvider = provider ;
150+ return this ;
151+ }
152+
153+ public Builder withObjectMapperConfigurer (ObjectMapperConfigurer configurer ) {
154+ this .objectMapperConfigurer = configurer ;
155+ return this ;
156+ }
157+
158+ public Builder withInstrumentation (Instrumentation instrumentation ) {
159+ this .instrumentation = instrumentation ;
160+ return this ;
161+ }
162+
163+ public Builder withGraphQLErrorHandler (GraphQLErrorHandler handler ) {
164+ this .errorHandler = handler ;
165+ return this ;
166+ }
167+
168+ public Builder withGraphQLContextBuilder (GraphQLContextBuilder context ) {
169+ this .contextBuilder = context ;
170+ return this ;
171+ }
172+
173+ public Builder withGraphQLRootObjectBuilder (GraphQLRootObjectBuilder rootObject ) {
174+ this .rootObjectBuilder = rootObject ;
175+ return this ;
176+ }
177+
178+ public Builder withPreparsedDocumentProvider (PreparsedDocumentProvider provider ) {
179+ this .preparsedDocumentProvider = provider ;
180+ return this ;
181+ }
182+
183+ public SimpleGraphQLServlet build () {
184+ return new SimpleGraphQLServlet (this );
185+ }
186+ }
187+
82188 @ Override
83189 protected GraphQLSchemaProvider getSchemaProvider () {
84190 return schemaProvider ;
@@ -104,11 +210,6 @@ protected Instrumentation getInstrumentation() {
104210 return instrumentation ;
105211 }
106212
107- @ Override
108- protected Map <String , Object > transformVariables (GraphQLSchema schema , String query , Map <String , Object > variables ) {
109- return variables ;
110- }
111-
112213 @ Override
113214 protected GraphQLErrorHandler getGraphQLErrorHandler () {
114215 return errorHandler ;
0 commit comments