1717 */
1818public class SimpleGraphQLServlet extends GraphQLServlet {
1919
20+ /**
21+ * @deprecated use {@link #builder()} instead.
22+ */
23+ @ Deprecated
2024 public SimpleGraphQLServlet (GraphQLSchema schema ) {
2125 this (schema , new DefaultExecutionStrategyProvider ());
2226 }
2327
28+ /**
29+ * @deprecated use {@link #builder()} instead.
30+ */
31+ @ Deprecated
2432 public SimpleGraphQLServlet (GraphQLSchema schema , ExecutionStrategy executionStrategy ) {
2533 this (schema , new DefaultExecutionStrategyProvider (executionStrategy ));
2634 }
2735
36+ /**
37+ * @deprecated use {@link #builder()} instead.
38+ */
39+ @ Deprecated
2840 public SimpleGraphQLServlet (GraphQLSchema schema , ExecutionStrategyProvider executionStrategyProvider ) {
2941 this (schema , executionStrategyProvider , null , null , null , null , null , null , null );
3042 }
3143
44+ /**
45+ * @deprecated use {@link #builder()} instead.
46+ */
47+ @ Deprecated
3248 public SimpleGraphQLServlet (final GraphQLSchema schema , ExecutionStrategyProvider executionStrategyProvider , ObjectMapperConfigurer objectMapperConfigurer , List <GraphQLServletListener > listeners , Instrumentation instrumentation , GraphQLErrorHandler errorHandler , GraphQLContextBuilder contextBuilder , GraphQLRootObjectBuilder rootObjectBuilder , PreparsedDocumentProvider preparsedDocumentProvider ) {
3349 this (new DefaultGraphQLSchemaProvider (schema ), executionStrategyProvider , objectMapperConfigurer , listeners , instrumentation , errorHandler , contextBuilder , rootObjectBuilder , preparsedDocumentProvider );
3450 }
3551
52+ /**
53+ * @deprecated use {@link #builder()} instead.
54+ */
55+ @ Deprecated
3656 public SimpleGraphQLServlet (GraphQLSchemaProvider schemaProvider , ExecutionStrategyProvider executionStrategyProvider , ObjectMapperConfigurer objectMapperConfigurer , List <GraphQLServletListener > listeners , Instrumentation instrumentation , GraphQLErrorHandler errorHandler , GraphQLContextBuilder contextBuilder , GraphQLRootObjectBuilder rootObjectBuilder , PreparsedDocumentProvider preparsedDocumentProvider ) {
3757 super (objectMapperConfigurer , listeners , null );
3858
@@ -70,6 +90,18 @@ public SimpleGraphQLServlet(GraphQLSchemaProvider schemaProvider, ExecutionStrat
7090 }
7191 }
7292
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+
73105 private final GraphQLSchemaProvider schemaProvider ;
74106 private final ExecutionStrategyProvider executionStrategyProvider ;
75107 private final Instrumentation instrumentation ;
@@ -78,6 +110,69 @@ public SimpleGraphQLServlet(GraphQLSchemaProvider schemaProvider, ExecutionStrat
78110 private final GraphQLRootObjectBuilder rootObjectBuilder ;
79111 private final PreparsedDocumentProvider preparsedDocumentProvider ;
80112
113+ public static SimpleGraphQLServlet create (GraphQLSchema schema ) {
114+ return new Builder (schema ).build ();
115+ }
116+
117+ public static Builder builder (GraphQLSchema schema ) {
118+ return new Builder (schema );
119+ }
120+
121+ public static class Builder {
122+ private final GraphQLSchemaProvider schemaProvider ;
123+ private ExecutionStrategyProvider executionStrategyProvider = new DefaultExecutionStrategyProvider ();
124+ private ObjectMapperConfigurer objectMapperConfigurer ;
125+ private List <GraphQLServletListener > listeners ;
126+ private Instrumentation instrumentation = NoOpInstrumentation .INSTANCE ;
127+ private GraphQLErrorHandler errorHandler = new DefaultGraphQLErrorHandler ();
128+ private GraphQLContextBuilder contextBuilder = new DefaultGraphQLContextBuilder ();
129+ private GraphQLRootObjectBuilder rootObjectBuilder = new DefaultGraphQLRootObjectBuilder ();
130+ private PreparsedDocumentProvider preparsedDocumentProvider = NoOpPreparsedDocumentProvider .INSTANCE ;
131+
132+ public Builder (GraphQLSchema schema ) {
133+ this .schemaProvider = new DefaultGraphQLSchemaProvider (schema );
134+ }
135+
136+ public Builder withExecutionStrategyProvider (ExecutionStrategyProvider provider ) {
137+ this .executionStrategyProvider = provider ;
138+ return this ;
139+ }
140+
141+ public Builder withObjectMapperConfigurer (ObjectMapperConfigurer configurer ) {
142+ this .objectMapperConfigurer = configurer ;
143+ return this ;
144+ }
145+
146+ public Builder withInstrumentation (Instrumentation instrumentation ) {
147+ this .instrumentation = instrumentation ;
148+ return this ;
149+ }
150+
151+ public Builder withGraphQLErrorHandler (GraphQLErrorHandler handler ) {
152+ this .errorHandler = handler ;
153+ return this ;
154+ }
155+
156+ public Builder withGraphQLContextBuilder (GraphQLContextBuilder context ) {
157+ this .contextBuilder = context ;
158+ return this ;
159+ }
160+
161+ public Builder withGraphQLRootObjectBuilder (GraphQLRootObjectBuilder rootObject ) {
162+ this .rootObjectBuilder = rootObject ;
163+ return this ;
164+ }
165+
166+ public Builder withPreparsedDocumentProvider (PreparsedDocumentProvider provider ) {
167+ this .preparsedDocumentProvider = provider ;
168+ return this ;
169+ }
170+
171+ public SimpleGraphQLServlet build () {
172+ return new SimpleGraphQLServlet (this );
173+ }
174+ }
175+
81176 @ Override
82177 protected GraphQLSchemaProvider getSchemaProvider () {
83178 return schemaProvider ;
0 commit comments