Skip to content

Commit 2027238

Browse files
committed
Incorporate breaking changes and deprecations
1 parent 2e14de7 commit 2027238

File tree

6 files changed

+89
-55
lines changed

6 files changed

+89
-55
lines changed

src/main/java/graphql/annotations/processor/retrievers/fieldBuilders/DirectivesBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import graphql.annotations.processor.ProcessingElementsContainer;
2727
import graphql.annotations.processor.exceptions.GraphQLAnnotationsException;
2828
import graphql.annotations.processor.util.DirectiveJavaAnnotationUtil;
29+
import graphql.schema.GraphQLAppliedDirective;
30+
import graphql.schema.GraphQLAppliedDirectiveArgument;
2931
import graphql.schema.GraphQLArgument;
3032
import graphql.schema.GraphQLDirective;
3133
import graphql.schema.GraphQLScalarType;
@@ -135,7 +137,7 @@ private void transformArgument(Annotation annotation, GraphQLDirective.Builder d
135137
Object value;
136138
if ( graphQLArgument.getType() instanceof GraphQLScalarType )
137139
{
138-
value = ((GraphQLScalarType) graphQLArgument.getType()).getCoercing().parseValue(argumentValue);
140+
value = ((GraphQLScalarType) graphQLArgument.getType()).getCoercing().serialize(argumentValue);
139141
}
140142
else
141143
{
@@ -161,8 +163,8 @@ private void transformArgument(String[] argumentValues, GraphQLDirective.Builder
161163
if (graphQLArgument.getType() instanceof GraphQLScalarType) {
162164

163165
try {
164-
Object value = ((GraphQLScalarType) graphQLArgument.getType()).getCoercing().parseValue(argumentValue);
165-
builder.value( value );
166+
Object value = ((GraphQLScalarType) graphQLArgument.getType()).getCoercing().serialize(argumentValue);
167+
builder.value(value);
166168
} catch (Exception e) {
167169
throw new GraphQLAnnotationsException(COULD_NOT_PARSE_ARGUMENT_VALUE_TO_ARGUMENT_TYPE, e);
168170
}

src/main/java/graphql/annotations/processor/util/CodeRegistryUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ public static void wrapDataFetcher(GraphQLFieldDefinition fieldDefinition, Annot
4343
* @return the data fetcher
4444
*/
4545
public static DataFetcher getDataFetcher(GraphQLCodeRegistry.Builder codeRegistryBuilder, GraphQLSchemaElement parentElement, GraphQLFieldDefinition fieldDefinition) {
46-
return codeRegistryBuilder.getDataFetcher((GraphQLFieldsContainer) parentElement, fieldDefinition);
46+
return codeRegistryBuilder.getDataFetcher(FieldCoordinates.coordinates((GraphQLFieldsContainer) parentElement, fieldDefinition), fieldDefinition);
4747
}
4848
}

src/main/java/graphql/annotations/strategies/EnhancedExecutionStrategy.java

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,53 +23,43 @@
2323

2424
import java.util.HashMap;
2525
import java.util.Optional;
26-
import java.util.concurrent.CompletableFuture;
2726

2827
public class EnhancedExecutionStrategy extends AsyncSerialExecutionStrategy {
2928

3029
private static final String CLIENT_MUTATION_ID = "clientMutationId";
3130

3231
@Override
33-
protected CompletableFuture<ExecutionResult> resolveField(ExecutionContext executionContext, ExecutionStrategyParameters parameters) {
32+
protected Object resolveField(ExecutionContext executionContext, ExecutionStrategyParameters parameters) {
3433
GraphQLObjectType parentType = (GraphQLObjectType) parameters.getExecutionStepInfo().getUnwrappedNonNullType();
3534
GraphQLFieldDefinition fieldDef = getFieldDef(executionContext.getGraphQLSchema(), parentType, parameters.getField().getSingleField());
3635
if (fieldDef == null) return null;
3736

38-
if (fieldDef.getName().contentEquals(CLIENT_MUTATION_ID)) {
37+
return super.resolveField(executionContext, parameters);
38+
}
39+
40+
@Override
41+
protected FieldValueInfo completeValue(ExecutionContext executionContext, ExecutionStrategyParameters parameters) throws NonNullableFieldWasNullException {
42+
graphql.schema.GraphQLType fieldType = parameters.getExecutionStepInfo().getType();
43+
44+
if (parameters.getExecutionStepInfo().getFieldDefinition().getName().contentEquals(CLIENT_MUTATION_ID)) {
3945
Field field = (Field) executionContext.getOperationDefinition().getSelectionSet().getSelections().get(0);
4046
Argument argument = field.getArguments().get(0);
4147

4248
Object clientMutationId;
4349
if (argument.getValue() instanceof VariableReference) {
4450
VariableReference ref = (VariableReference) argument.getValue();
45-
HashMap mutationInputVariables = (HashMap) executionContext.getVariables().get(ref.getName());
51+
HashMap mutationInputVariables = (HashMap) executionContext.getCoercedVariables().get(ref.getName());
4652
clientMutationId = mutationInputVariables.get(CLIENT_MUTATION_ID);
4753
} else {
4854
ObjectValue value = (ObjectValue) field.getArguments().get(0).getValue();
4955
StringValue clientMutationIdVal = (StringValue) value.getObjectFields().stream()
50-
.filter(f -> f.getName().contentEquals(CLIENT_MUTATION_ID))
51-
.findFirst().get().getValue();
56+
.filter(f -> f.getName().contentEquals(CLIENT_MUTATION_ID))
57+
.findFirst().get().getValue();
5258
clientMutationId = clientMutationIdVal.getValue();
5359
}
54-
55-
ExecutionStepInfo fieldTypeInfo = ExecutionStepInfo.newExecutionStepInfo().type(fieldDef.getType()).parentInfo(parameters.getExecutionStepInfo()).build();
56-
ExecutionStrategyParameters newParameters = ExecutionStrategyParameters.newParameters()
57-
.fields(parameters.getFields())
58-
.nonNullFieldValidator(parameters.getNonNullFieldValidator())
59-
.executionStepInfo(fieldTypeInfo)
60-
.source(clientMutationId)
61-
.build();
62-
63-
64-
return completeValue(executionContext, newParameters).getFieldValue();
65-
} else {
66-
return super.resolveField(executionContext, parameters);
60+
return super.completeValue(executionContext, withSource(parameters, clientMutationId));
6761
}
68-
}
6962

70-
@Override
71-
protected FieldValueInfo completeValue(ExecutionContext executionContext, ExecutionStrategyParameters parameters) throws NonNullableFieldWasNullException {
72-
graphql.schema.GraphQLType fieldType = parameters.getExecutionStepInfo().getType();
7363
Object result = parameters.getSource();
7464
if (result instanceof Enum && fieldType instanceof GraphQLEnumType) {
7565
Object value = ((GraphQLEnumType) fieldType).parseValue(((Enum) result).name());

src/test/java/graphql/annotations/GraphQLIterableAndArrayTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,10 @@ public void queryWithArrayWithinAnArray() {
138138
}
139139

140140
private Object getQueryResultAtIndex(ExecutionResult result, String queryName, int index) {
141-
return ((ArrayList) (((LinkedHashMap) result.getData()).get(queryName))).get(index);
141+
return ((List) (((LinkedHashMap) result.getData()).get(queryName))).get(index);
142142
}
143143

144144
private Object getQueryResultAtCell(ExecutionResult result, String queryName, int rowIndex, int columnIndex) {
145-
return (((ArrayList) (getQueryResultAtIndex(result, queryName, rowIndex))).get(columnIndex));
145+
return (((List) (getQueryResultAtIndex(result, queryName, rowIndex))).get(columnIndex));
146146
}
147147
}

src/test/java/graphql/annotations/directives/DirectiveWiringMapRetrieverTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import graphql.annotations.processor.DirectiveAndWiring;
2020
import graphql.annotations.processor.ProcessingElementsContainer;
2121
import graphql.annotations.processor.exceptions.GraphQLAnnotationsException;
22+
import graphql.introspection.Introspection;
2223
import graphql.schema.GraphQLDirective;
2324
import org.testng.annotations.Test;
2425

@@ -67,8 +68,8 @@ public void getDirectiveWiringMap_noDirectivesInRegistry_throwAGraphQLAnnotation
6768
public void getDirectiveWiringMap_wiringClassIsPrivate_throwAGraphQLAnnotationsException() throws Exception {
6869
// Arrange
6970
DirectiveWiringMapRetriever directiveWiringMapRetriever = new DirectiveWiringMapRetriever();
70-
GraphQLDirective upperCase = newDirective().name("upperCase").build();
71-
GraphQLDirective lowerCase = newDirective().name("lowerCase").build();
71+
GraphQLDirective upperCase = newDirective().name("upperCase").validLocation(Introspection.DirectiveLocation.FIELD).build();
72+
GraphQLDirective lowerCase = newDirective().name("lowerCase").validLocation(Introspection.DirectiveLocation.FIELD).build();
7273
ProcessingElementsContainer container = new ProcessingElementsContainer();
7374
container.getDirectiveRegistry().put("upperCase", new DirectiveAndWiring(upperCase, ThirdWiringClass.class));
7475
container.getDirectiveRegistry().put("lowerCase", new DirectiveAndWiring(lowerCase, SecondWiringClass.class));
@@ -87,8 +88,8 @@ public void getDirectiveWiringMap_wiringClassIsPrivate_throwAGraphQLAnnotationsE
8788
public void getDirectiveWiringMap_directivesAreInRegistry_returnCorrectMap() throws Exception {
8889
// Arrange
8990
DirectiveWiringMapRetriever directiveWiringMapRetriever = new DirectiveWiringMapRetriever();
90-
GraphQLDirective upperCase = newDirective().name("upperCase").build();
91-
GraphQLDirective lowerCase = newDirective().name("lowerCase").build();
91+
GraphQLDirective upperCase = newDirective().name("upperCase").validLocation(Introspection.DirectiveLocation.FIELD).build();
92+
GraphQLDirective lowerCase = newDirective().name("lowerCase").validLocation(Introspection.DirectiveLocation.FIELD).build();
9293
ProcessingElementsContainer container = new ProcessingElementsContainer();
9394
container.getDirectiveRegistry().put("upperCase", new DirectiveAndWiring(upperCase, WiringClass.class));
9495
container.getDirectiveRegistry().put("lowerCase", new DirectiveAndWiring(lowerCase, SecondWiringClass.class));

0 commit comments

Comments
 (0)