Skip to content

Commit dba2de4

Browse files
committed
workaround next graphql-java changes
1 parent 7384e87 commit dba2de4

File tree

1 file changed

+24
-30
lines changed

1 file changed

+24
-30
lines changed

core/src/main/java/com/github/bsideup/graphql/reactive/ReactiveExecutionStrategy.java

+24-30
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.stream.Stream;
2121
import java.util.stream.StreamSupport;
2222

23-
import static graphql.execution.ExecutionParameters.newParameters;
2423
import static java.util.stream.Collectors.toList;
2524

2625
public class ReactiveExecutionStrategy extends ExecutionStrategy {
@@ -33,17 +32,11 @@ public ExecutionResult execute(ExecutionContext context, ExecutionParameters par
3332
context,
3433
source,
3534
__ -> fields.entrySet().stream(),
36-
(entry, sourceValue) -> {
37-
ReactiveContext subContext = new ReactiveContext(context, entry.getKey());
38-
39-
ExecutionParameters newParameters = newParameters()
40-
.typeInfo(parameters.typeInfo())
41-
.fields(parameters.fields())
42-
.arguments(parameters.arguments())
43-
.source(source == null ? null : sourceValue)
44-
.build();
45-
return resolveField(subContext, newParameters, entry.getValue());
46-
},
35+
(entry, sourceValue) -> resolveField(
36+
new ReactiveContext(context, entry.getKey()),
37+
transformParametersSource(parameters, source == null ? null : sourceValue),
38+
entry.getValue()
39+
),
4740
results -> {
4841
Map<Object, Object> result = new HashMap<>();
4942
for (Object entry : results) {
@@ -77,15 +70,7 @@ protected ExecutionResult completeValue(ExecutionContext context, ExecutionParam
7770

7871
if ((fieldType instanceof GraphQLScalarType || fieldType instanceof GraphQLEnumType) && result instanceof Publisher) {
7972
Flowable<Change> changesFlow = Flowable.fromPublisher((Publisher<?>) result)
80-
.map(it -> {
81-
ExecutionParameters newParameters = newParameters()
82-
.source(it)
83-
.fields(parameters.fields())
84-
.typeInfo(parameters.typeInfo())
85-
.build();
86-
87-
return new Change(context, completeValue(context, newParameters, fields).getData());
88-
});
73+
.map(it -> new Change(context, completeValue(context, transformParametersSource(parameters, it), fields).getData()));
8974

9075
return new ExecutionResultImpl(changesFlow, null);
9176
}
@@ -107,15 +92,11 @@ protected ExecutionResult completeValue(ExecutionContext context, ExecutionParam
10792
AtomicInteger i = new AtomicInteger();
10893
return stream.map(it -> new SimpleEntry<>(i.getAndIncrement(), adapt(it)));
10994
},
110-
(entry, __) -> {
111-
ExecutionParameters newParameters = ExecutionParameters.newParameters()
112-
.source(entry.getValue())
113-
.fields(parameters.fields())
114-
.arguments(parameters.arguments())
115-
.typeInfo(parameters.typeInfo().asType(wrappedType))
116-
.build();
117-
return completeValue(new ReactiveContext(context, entry.getKey()), newParameters, fields);
118-
},
95+
(entry, __) -> completeValue(
96+
new ReactiveContext(context, entry.getKey()),
97+
transformParametersSource(parameters, entry.getValue(), parameters.typeInfo().asType(wrappedType)),
98+
fields
99+
),
119100
results -> Stream.of(results)
120101
.map(SimpleEntry.class::cast)
121102
.sorted(Comparator.comparingInt(it -> (Integer) it.getKey()))
@@ -127,6 +108,19 @@ protected ExecutionResult completeValue(ExecutionContext context, ExecutionParam
127108
return super.completeValue(context, parameters, fields);
128109
}
129110

111+
protected ExecutionParameters transformParametersSource(ExecutionParameters parameters, Object newSource) {
112+
return transformParametersSource(parameters, newSource, parameters.typeInfo());
113+
}
114+
115+
protected ExecutionParameters transformParametersSource(ExecutionParameters parameters, Object newSource, TypeInfo typeInfo) {
116+
return ExecutionParameters.newParameters()
117+
.source(newSource)
118+
.fields(parameters.fields())
119+
.arguments(parameters.arguments())
120+
.typeInfo(typeInfo)
121+
.build();
122+
}
123+
130124
protected <K, V> ExecutionResultImpl complexChangesFlow(
131125
ExecutionContext context,
132126
Object source,

0 commit comments

Comments
 (0)