Skip to content

Commit

Permalink
Update to graphql-java 19.0
Browse files Browse the repository at this point in the history
FlowSubscriptionExecutionStrategy needs to be updated to
pass instrumentationState to instrumentations per
graphql-java/graphql-java#2769

ValidationError string changed slightly so adjust assertions.
  • Loading branch information
josephlbarnett committed Jul 28, 2022
1 parent 87e1412 commit cd9e805
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
Expand Up @@ -25,6 +25,8 @@ import graphql.execution.ExecutionStrategy
import graphql.execution.ExecutionStrategyParameters
import graphql.execution.SimpleDataFetcherExceptionHandler
import graphql.execution.SubscriptionExecutionStrategy
import graphql.execution.instrumentation.ExecutionStrategyInstrumentationContext
import graphql.execution.instrumentation.SimpleInstrumentationContext
import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters
import graphql.execution.instrumentation.parameters.InstrumentationExecutionStrategyParameters
import graphql.execution.instrumentation.parameters.InstrumentationFieldParameters
Expand Down Expand Up @@ -55,7 +57,9 @@ class FlowSubscriptionExecutionStrategy(dfe: DataFetcherExceptionHandler) : Exec

val instrumentation = executionContext.instrumentation
val instrumentationParameters = InstrumentationExecutionStrategyParameters(executionContext, parameters)
val executionStrategyCtx = instrumentation.beginExecutionStrategy(instrumentationParameters)
val executionStrategyCtx = ExecutionStrategyInstrumentationContext.nonNullCtx(
instrumentation.beginExecutionStrategy(instrumentationParameters, executionContext.instrumentationState)
)

val sourceEventStream = createSourceEventStream(executionContext, parameters)

Expand Down Expand Up @@ -142,7 +146,9 @@ class FlowSubscriptionExecutionStrategy(dfe: DataFetcherExceptionHandler) : Exec
val subscribedFieldStepInfo = createSubscribedFieldStepInfo(executionContext, newParameters)

val i13nFieldParameters = InstrumentationFieldParameters(executionContext) { subscribedFieldStepInfo }
val subscribedFieldCtx = instrumentation.beginSubscribedFieldEvent(i13nFieldParameters)
val subscribedFieldCtx = SimpleInstrumentationContext.nonNullCtx(
instrumentation.beginSubscribedFieldEvent(i13nFieldParameters, executionContext.instrumentationState)
)

val fetchedValue = unboxPossibleDataFetcherResult(newExecutionContext, parameters, eventPayload)

Expand All @@ -161,7 +167,7 @@ class FlowSubscriptionExecutionStrategy(dfe: DataFetcherExceptionHandler) : Exec
)

return overallResult.thenCompose { executionResult ->
instrumentation.instrumentExecutionResult(executionResult, i13ExecutionParameters)
instrumentation.instrumentExecutionResult(executionResult, i13ExecutionParameters, executionContext.instrumentationState)
}
}

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Expand Up @@ -22,7 +22,7 @@ kotlinxSerializationVersion = 1.3.2
androidPluginVersion = 7.1.2
classGraphVersion = 4.8.143
federationGraphQLVersion = 0.9.0
graphQLJavaVersion = 18.0
graphQLJavaVersion = 19.0
graphQLJavaDataLoaderVersion = 3.1.3
jacksonVersion = 2.13.2
kotlinPoetVersion = 1.11.0
Expand Down
Expand Up @@ -18,6 +18,7 @@ package com.expediagroup.graphql.server.spring.execution
import com.expediagroup.graphql.server.operations.Query
import com.expediagroup.graphql.server.types.GraphQLRequest
import graphql.introspection.IntrospectionQuery
import org.hamcrest.core.StringContains
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
Expand Down Expand Up @@ -50,7 +51,8 @@ class IntrospectionIT(@Autowired private val testClient: WebTestClient) {
.expectBody()
.jsonPath("$.data").doesNotExist()
.jsonPath("$.errors").isArray
.jsonPath("$.errors[0].message").isEqualTo("Validation error of type FieldUndefined: Field 'queryType' in type '__Schema' is undefined @ '__schema/queryType'")
.jsonPath("$.errors[0].message").value(StringContains.containsString("Validation error"))
.jsonPath("$.errors[0].message").value(StringContains.containsString("Field 'queryType' in type '__Schema' is undefined"))
}

@Configuration
Expand Down

0 comments on commit cd9e805

Please sign in to comment.