Skip to content

Commit 3e90c7a

Browse files
refactor: replace deprecated context fetch (#135)
1 parent 9712c62 commit 3e90c7a

File tree

9 files changed

+37
-8
lines changed

9 files changed

+37
-8
lines changed

hypertrace-core-graphql-common-schema/src/main/java/org/hypertrace/core/graphql/common/fetcher/InjectableDataFetcher.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.hypertrace.core.graphql.common.fetcher;
22

3+
import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;
4+
35
import graphql.schema.DataFetcher;
46
import graphql.schema.DataFetchingEnvironment;
57
import java.util.concurrent.CompletableFuture;
@@ -18,7 +20,7 @@ protected InjectableDataFetcher(
1820

1921
@Override
2022
public final CompletableFuture<T> get(DataFetchingEnvironment environment) throws Exception {
21-
return this.getOrCreateImplementation(environment.getContext()).get(environment);
23+
return this.getOrCreateImplementation(contextFromEnvironment(environment)).get(environment);
2224
}
2325

2426
private DataFetcher<CompletableFuture<T>> getOrCreateImplementation(

hypertrace-core-graphql-context/src/main/java/org/hypertrace/core/graphql/context/DefaultGraphQlRequestContextBuilder.java

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ private DefaultGraphQlRequestContext(HttpServletRequest request) {
5151
this.request = request;
5252
this.cachingKey =
5353
new DefaultContextualCacheKey(this, this.getTenantId().orElse(DEFAULT_CONTEXT_ID));
54+
this.put(GraphQlRequestContext.class, this);
5455
}
5556

5657
@Override

hypertrace-core-graphql-context/src/main/java/org/hypertrace/core/graphql/context/GraphQlRequestContext.java

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import graphql.kickstart.execution.context.GraphQLKickstartContext;
44
import graphql.schema.DataFetcher;
5+
import graphql.schema.DataFetchingEnvironment;
56
import java.util.Map;
67
import java.util.Optional;
78
import java.util.concurrent.CompletableFuture;
@@ -26,4 +27,8 @@ <T> DataFetcher<CompletableFuture<T>> constructDataFetcher(
2627
ContextualCachingKey getCachingKey();
2728

2829
String getRequestId();
30+
31+
static GraphQlRequestContext contextFromEnvironment(DataFetchingEnvironment environment) {
32+
return environment.getGraphQlContext().get(GraphQlRequestContext.class);
33+
}
2934
}

hypertrace-core-graphql-log-event-schema/src/main/java/org/hypertrace/core/graphql/log/event/fetcher/LogEventFetcher.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.hypertrace.core.graphql.log.event.fetcher;
22

3+
import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;
4+
35
import graphql.schema.DataFetcher;
46
import graphql.schema.DataFetchingEnvironment;
57
import java.util.concurrent.CompletableFuture;
@@ -30,7 +32,9 @@ static final class LogEventFetcherImpl
3032
public CompletableFuture<LogEventResultSet> get(DataFetchingEnvironment environment) {
3133
return this.requestBuilder
3234
.build(
33-
environment.getContext(), environment.getArguments(), environment.getSelectionSet())
35+
contextFromEnvironment(environment),
36+
environment.getArguments(),
37+
environment.getSelectionSet())
3438
.flatMap(this.logEventDao::getLogEvents)
3539
.toCompletionStage()
3640
.toCompletableFuture();

hypertrace-core-graphql-metadata-schema/src/main/java/org/hypertrace/core/graphql/metadata/fetcher/MetadataFetcher.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.hypertrace.core.graphql.metadata.fetcher;
22

3+
import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;
4+
35
import graphql.schema.DataFetcher;
46
import graphql.schema.DataFetchingEnvironment;
57
import java.util.List;
@@ -30,7 +32,7 @@ static final class MetadataFetcherImpl
3032
@Override
3133
public CompletableFuture<List<AttributeMetadata>> get(DataFetchingEnvironment environment) {
3234
return this.attributeStore
33-
.getAllExternal(environment.getContext())
35+
.getAllExternal(contextFromEnvironment(environment))
3436
.flatMap(this.responseBuilder::build)
3537
.toCompletionStage()
3638
.toCompletableFuture();

hypertrace-core-graphql-metadata-schema/src/test/java/org/hypertrace/core/graphql/metadata/fetcher/MetadataFetcherTest.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.junit.jupiter.api.BeforeEach;
1818
import org.junit.jupiter.api.Test;
1919
import org.junit.jupiter.api.extension.ExtendWith;
20+
import org.mockito.Answers;
2021
import org.mockito.Mock;
2122
import org.mockito.junit.jupiter.MockitoExtension;
2223

@@ -25,7 +26,10 @@ class MetadataFetcherTest {
2526

2627
@Mock MetadataResponseBuilder mockResponseBuilder;
2728
@Mock AttributeStore mockAttributeStore;
28-
@Mock DataFetchingEnvironment mockDataFetchingEnvironment;
29+
30+
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
31+
DataFetchingEnvironment mockDataFetchingEnvironment;
32+
2933
@Mock AttributeModel mockModel;
3034
@Mock AttributeMetadata mockMetadata;
3135
@Mock GraphQlRequestContext mockContext;
@@ -35,7 +39,8 @@ class MetadataFetcherTest {
3539
void beforeEach() {
3640
List<AttributeModel> mockModelResult = List.of(mockModel);
3741
List<AttributeMetadata> mockMetadataResult = List.of(mockMetadata);
38-
when(this.mockDataFetchingEnvironment.getContext()).thenReturn(this.mockContext);
42+
when(this.mockDataFetchingEnvironment.getGraphQlContext().get(GraphQlRequestContext.class))
43+
.thenReturn(this.mockContext);
3944
when(this.mockAttributeStore.getAllExternal(eq(this.mockContext)))
4045
.thenReturn(Single.just(mockModelResult));
4146
when(this.mockResponseBuilder.build(eq(mockModelResult)))

hypertrace-core-graphql-span-schema/src/main/java/org/hypertrace/core/graphql/span/fetcher/ExportSpanFetcher.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.hypertrace.core.graphql.span.fetcher;
22

3+
import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;
4+
35
import graphql.schema.DataFetcher;
46
import graphql.schema.DataFetchingEnvironment;
57
import io.reactivex.rxjava3.core.Single;
@@ -34,7 +36,7 @@ static final class ExportSpanFetcherImpl
3436
public CompletableFuture<ExportSpanResult> get(DataFetchingEnvironment environment) {
3537
Single<SpanRequest> spanRequest =
3638
this.requestBuilder.build(
37-
environment.getContext(),
39+
contextFromEnvironment(environment),
3840
environment.getArguments(),
3941
SpanAttributes.SPAN_ATTRIBUTES,
4042
LogEventAttributes.LOG_EVENT_ATTRIBUTES);

hypertrace-core-graphql-span-schema/src/main/java/org/hypertrace/core/graphql/span/fetcher/SpanFetcher.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.hypertrace.core.graphql.span.fetcher;
22

3+
import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;
4+
35
import graphql.schema.DataFetcher;
46
import graphql.schema.DataFetchingEnvironment;
57
import java.util.concurrent.CompletableFuture;
@@ -29,7 +31,9 @@ static final class SpanFetcherImpl implements DataFetcher<CompletableFuture<Span
2931
public CompletableFuture<SpanResultSet> get(DataFetchingEnvironment environment) {
3032
return this.requestBuilder
3133
.build(
32-
environment.getContext(), environment.getArguments(), environment.getSelectionSet())
34+
contextFromEnvironment(environment),
35+
environment.getArguments(),
36+
environment.getSelectionSet())
3337
.flatMap(this.spanDao::getSpans)
3438
.toCompletionStage()
3539
.toCompletableFuture();

hypertrace-core-graphql-trace-schema/src/main/java/org/hypertrace/core/graphql/trace/fetcher/TraceFetcher.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.hypertrace.core.graphql.trace.fetcher;
22

3+
import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;
4+
35
import graphql.schema.DataFetcher;
46
import graphql.schema.DataFetchingEnvironment;
57
import java.util.concurrent.CompletableFuture;
@@ -29,7 +31,9 @@ static final class TraceFetcherImpl implements DataFetcher<CompletableFuture<Tra
2931
public CompletableFuture<TraceResultSet> get(DataFetchingEnvironment environment) {
3032
return this.requestBuilder
3133
.build(
32-
environment.getContext(), environment.getArguments(), environment.getSelectionSet())
34+
contextFromEnvironment(environment),
35+
environment.getArguments(),
36+
environment.getSelectionSet())
3337
.flatMap(this.traceDao::getTraces)
3438
.toCompletionStage()
3539
.toCompletableFuture();

0 commit comments

Comments
 (0)