Skip to content

Commit

Permalink
Fixes for graphql-java update.
Browse files Browse the repository at this point in the history
  • Loading branch information
srinivasankavitha committed Oct 17, 2024
1 parent d9967ae commit 8c0f64f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 14 deletions.
6 changes: 3 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ repositories {
}

dependencies {
implementation(platform("com.netflix.graphql.dgs:graphql-dgs-platform-dependencies:8.5.6"))
implementation(platform("com.netflix.graphql.dgs:graphql-dgs-platform-dependencies:9.1.3"))
implementation("com.netflix.graphql.dgs:graphql-dgs-spring-boot-starter")
implementation("com.netflix.graphql.dgs:graphql-dgs-extended-scalars")
implementation("org.springframework.boot:spring-boot-starter-web:3.3.+")
Expand All @@ -58,8 +58,8 @@ dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.9.0")

testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test")
testImplementation("org.springframework.boot:spring-boot-starter-test:3.3.+")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
}

tasks.withType<com.netflix.graphql.dgs.codegen.gradle.GenerateJavaTask> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ class ReviewsDataFetcher(private val reviewsService: ReviewsService) {
val reviewsDataLoader: DataLoader<Int, List<Review>> = dfe.getDataLoader(ReviewsDataLoader::class.java)

//Because the reviews field is on Show, the getSource() method will return the Show instance.
val show : Show = dfe.getSource()
val show : Show? = dfe.getSource()

//Load the reviews from the DataLoader. This call is async and will be batched by the DataLoader mechanism.
return reviewsDataLoader.load(show.id)
return reviewsDataLoader.load(show?.id)
}

@DgsMutation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import graphql.ExecutionResult
import graphql.execution.instrumentation.InstrumentationContext
import graphql.execution.instrumentation.InstrumentationState
import graphql.execution.instrumentation.SimpleInstrumentation
import graphql.execution.instrumentation.SimplePerformantInstrumentation
import graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters
import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters
import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters
import graphql.schema.DataFetcher
Expand All @@ -34,22 +36,22 @@ import java.util.concurrent.CompletableFuture
* Example Instrumentation class that prints the time each datafetcher takes.
*/
@Component
class ExampleTracingInstrumentation: SimpleInstrumentation() {
class ExampleTracingInstrumentation: SimplePerformantInstrumentation() {

val logger : Logger = LoggerFactory.getLogger(ExampleTracingInstrumentation::class.java)

override fun createState(): InstrumentationState {
override fun createState(parameters: InstrumentationCreateStateParameters): InstrumentationState {
return TraceState()
}

override fun beginExecution(parameters: InstrumentationExecutionParameters): InstrumentationContext<ExecutionResult> {
val state: TraceState = parameters.getInstrumentationState()
override fun beginExecution(parameters: InstrumentationExecutionParameters, state: InstrumentationState): InstrumentationContext<ExecutionResult>? {
require(state is TraceState)
state.traceStartTime = System.currentTimeMillis()

return super.beginExecution(parameters)
return super.beginExecution(parameters, state)
}

override fun instrumentDataFetcher(dataFetcher: DataFetcher<*>, parameters: InstrumentationFieldFetchParameters): DataFetcher<*> {
override fun instrumentDataFetcher(dataFetcher: DataFetcher<*>, parameters: InstrumentationFieldFetchParameters, state: InstrumentationState): DataFetcher<*> {

// We only care about user code
if(parameters.isTrivialDataFetcher || parameters.executionStepInfo.path.toString().startsWith("/__schema")) {
Expand All @@ -75,12 +77,12 @@ class ExampleTracingInstrumentation: SimpleInstrumentation() {
}
}

override fun instrumentExecutionResult(executionResult: ExecutionResult, parameters: InstrumentationExecutionParameters): CompletableFuture<ExecutionResult> {
val state: TraceState = parameters.getInstrumentationState()
override fun instrumentExecutionResult(executionResult: ExecutionResult, parameters: InstrumentationExecutionParameters, state: InstrumentationState): CompletableFuture<ExecutionResult> {
require(state is TraceState)
val totalTime = System.currentTimeMillis() - state.traceStartTime
logger.info("Total execution time: ${totalTime}ms")

return super.instrumentExecutionResult(executionResult, parameters)
return super.instrumentExecutionResult(executionResult, parameters, state)
}

private fun findDatafetcherTag(parameters: InstrumentationFieldFetchParameters): String {
Expand Down

0 comments on commit 8c0f64f

Please sign in to comment.