Skip to content

Commit a7ae98d

Browse files
committed
fix: support new graphql context
fixes #393
1 parent cea4114 commit a7ae98d

19 files changed

+86
-134
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ subprojects {
9292

9393
jacocoTestReport {
9494
reports {
95-
xml.enabled = true
96-
html.enabled = false
97-
csv.enabled = false
95+
xml.required = true
96+
html.required = false
97+
csv.required = false
9898
}
9999
}
100100

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=12.0.1-SNAPSHOT
1+
version=13.0.0-SNAPSHOT
22
group=com.graphql-java-kickstart
33
PROJECT_NAME=graphql-java-servlet
44
PROJECT_DESC=GraphQL Java Kickstart

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/GraphQLInvokerSubjectProxy.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/context/ContextSetting.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public enum ContextSetting {
4747
public GraphQLBatchedInvocationInput getBatch(
4848
List<GraphQLRequest> requests,
4949
GraphQLSchema schema,
50-
Supplier<GraphQLContext> contextSupplier,
50+
Supplier<GraphQLKickstartContext> contextSupplier,
5151
Object root) {
5252
switch (this) {
5353
case PER_QUERY_WITH_INSTRUMENTATION:
Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,36 @@
11
package graphql.kickstart.execution.context;
22

3+
import java.util.HashMap;
4+
import java.util.Map;
35
import java.util.Objects;
4-
import java.util.Optional;
5-
import javax.security.auth.Subject;
66
import org.dataloader.DataLoaderRegistry;
77

88
/**
99
* An object for the DefaultGraphQLContextBuilder to return. Can be extended to include more
1010
* context.
1111
*/
12-
public class DefaultGraphQLContext implements GraphQLContext {
13-
14-
private final Subject subject;
12+
public class DefaultGraphQLContext implements GraphQLKickstartContext {
1513

1614
private final DataLoaderRegistry dataLoaderRegistry;
1715

18-
public DefaultGraphQLContext(DataLoaderRegistry dataLoaderRegistry, Subject subject) {
16+
public DefaultGraphQLContext(DataLoaderRegistry dataLoaderRegistry) {
1917
this.dataLoaderRegistry =
2018
Objects.requireNonNull(dataLoaderRegistry, "dataLoaderRegistry is required");
21-
this.subject = subject;
2219
}
2320

2421
public DefaultGraphQLContext() {
25-
this(new DataLoaderRegistry(), null);
22+
this(new DataLoaderRegistry());
2623
}
2724

2825
@Override
29-
public Optional<Subject> getSubject() {
30-
return Optional.ofNullable(subject);
26+
public DataLoaderRegistry getDataLoaderRegistry() {
27+
return dataLoaderRegistry;
3128
}
3229

3330
@Override
34-
public DataLoaderRegistry getDataLoaderRegistry() {
35-
return dataLoaderRegistry;
31+
public Map<Object, Object> getMapOfContext() {
32+
Map<Object, Object> map = new HashMap<>();
33+
map.put(DataLoaderRegistry.class, dataLoaderRegistry);
34+
return map;
3635
}
3736
}

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/context/DefaultGraphQLContextBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
public class DefaultGraphQLContextBuilder implements GraphQLContextBuilder {
55

66
@Override
7-
public GraphQLContext build() {
7+
public GraphQLKickstartContext build() {
88
return new DefaultGraphQLContext();
99
}
1010
}

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/context/GraphQLContextBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
public interface GraphQLContextBuilder {
44

55
/** @return the graphql context */
6-
GraphQLContext build();
6+
GraphQLKickstartContext build();
77
}
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package graphql.kickstart.execution.context;
22

3-
import java.util.Optional;
4-
import javax.security.auth.Subject;
3+
import java.util.Map;
54
import lombok.NonNull;
65
import org.dataloader.DataLoaderRegistry;
76

87
/** Represents the context required by the servlet to execute a GraphQL request. */
9-
public interface GraphQLContext {
10-
11-
/** @return the subject to execute the query as. */
12-
Optional<Subject> getSubject();
8+
public interface GraphQLKickstartContext {
139

1410
/** @return the Dataloader registry to use for the execution. Must not return <code>null</code> */
1511
@NonNull
1612
DataLoaderRegistry getDataLoaderRegistry();
13+
14+
Map<Object, Object> getMapOfContext();
1715
}

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/input/GraphQLSingleInvocationInput.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55
import graphql.ExecutionInput;
66
import graphql.execution.ExecutionId;
77
import graphql.kickstart.execution.GraphQLRequest;
8-
import graphql.kickstart.execution.context.GraphQLContext;
8+
import graphql.kickstart.execution.context.GraphQLKickstartContext;
99
import graphql.schema.GraphQLSchema;
10-
import java.util.Collections;
1110
import java.util.List;
12-
import java.util.Optional;
13-
import javax.security.auth.Subject;
1411

1512
/** Represents a single GraphQL execution. */
1613
public class GraphQLSingleInvocationInput implements GraphQLInvocationInput {
@@ -19,32 +16,24 @@ public class GraphQLSingleInvocationInput implements GraphQLInvocationInput {
1916

2017
private final ExecutionInput executionInput;
2118

22-
private final Subject subject;
23-
2419
public GraphQLSingleInvocationInput(
25-
GraphQLRequest request, GraphQLSchema schema, GraphQLContext context, Object root) {
20+
GraphQLRequest request, GraphQLSchema schema, GraphQLKickstartContext context, Object root) {
2621
this.schema = schema;
2722
this.executionInput = createExecutionInput(request, context, root);
28-
subject = context.getSubject().orElse(null);
2923
}
3024

3125
/** @return the schema to use to execute this query. */
3226
public GraphQLSchema getSchema() {
3327
return schema;
3428
}
3529

36-
/** @return a subject to execute the query as. */
37-
public Optional<Subject> getSubject() {
38-
return Optional.ofNullable(subject);
39-
}
40-
4130
private ExecutionInput createExecutionInput(
42-
GraphQLRequest graphQLRequest, GraphQLContext context, Object root) {
31+
GraphQLRequest graphQLRequest, GraphQLKickstartContext context, Object root) {
4332
return ExecutionInput.newExecutionInput()
4433
.query(graphQLRequest.getQuery())
4534
.operationName(graphQLRequest.getOperationName())
4635
.context(context)
47-
.graphQLContext(Collections.singletonMap(context.getClass(), context))
36+
.graphQLContext(context.getMapOfContext())
4837
.root(root)
4938
.variables(graphQLRequest.getVariables())
5039
.extensions(graphQLRequest.getExtensions())
@@ -61,5 +50,4 @@ public ExecutionInput getExecutionInput() {
6150
public List<String> getQueries() {
6251
return singletonList(executionInput.getQuery());
6352
}
64-
6553
}

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/input/PerQueryBatchedInvocationInput.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import graphql.kickstart.execution.GraphQLRequest;
66
import graphql.kickstart.execution.context.ContextSetting;
7-
import graphql.kickstart.execution.context.GraphQLContext;
7+
import graphql.kickstart.execution.context.GraphQLKickstartContext;
88
import graphql.schema.GraphQLSchema;
99
import java.util.List;
1010
import java.util.function.Supplier;
@@ -21,7 +21,7 @@ public class PerQueryBatchedInvocationInput implements GraphQLBatchedInvocationI
2121
public PerQueryBatchedInvocationInput(
2222
List<GraphQLRequest> requests,
2323
GraphQLSchema schema,
24-
Supplier<GraphQLContext> contextSupplier,
24+
Supplier<GraphQLKickstartContext> contextSupplier,
2525
Object root,
2626
ContextSetting contextSetting) {
2727
invocationInputs =

0 commit comments

Comments
 (0)