From c2e10ab8be8496397e62479b04718941410995d8 Mon Sep 17 00:00:00 2001 From: "$(git --no-pager log --format=format:'%an' -n 1)" Date: Thu, 23 Jan 2025 17:16:35 -0800 Subject: [PATCH] Add data fetcher references in schema provider for @DgsEntityFetcher methods --- .../netflix/graphql/dgs/internal/DgsSchemaProvider.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt b/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt index 433032a9c..afc5ffc47 100644 --- a/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt +++ b/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt @@ -611,12 +611,19 @@ class DgsSchemaProvider .forEach { method -> val dgsEntityFetcherAnnotation = method.getAnnotation(DgsEntityFetcher::class.java) + val entityFetcherTypeName = dgsEntityFetcherAnnotation.name + val coordinateName = "_entities.$entityFetcherTypeName" + + val mergedAnnotations = + MergedAnnotations + .from(method, MergedAnnotations.SearchStrategy.TYPE_HIERARCHY) + dataFetcherInfo.dataFetchers += + DataFetcherReference(dgsComponent.instance, method, mergedAnnotations, "Query", coordinateName) + val enableInstrumentation = method.getAnnotation(DgsEnableDataFetcherInstrumentation::class.java)?.value ?: false - val entityFetcherTypeName = dgsEntityFetcherAnnotation.name if (enableInstrumentation) { - val coordinateName = "__entities.$entityFetcherTypeName" dataFetcherInfo.tracingEnabled += coordinateName dataFetcherInfo.metricsEnabled += coordinateName }