Skip to content

refactor: replace deprecated context fetch #135

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.hypertrace.core.graphql.common.fetcher;

import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.util.concurrent.CompletableFuture;
Expand All @@ -18,7 +20,7 @@ protected InjectableDataFetcher(

@Override
public final CompletableFuture<T> get(DataFetchingEnvironment environment) throws Exception {
return this.getOrCreateImplementation(environment.getContext()).get(environment);
return this.getOrCreateImplementation(contextFromEnvironment(environment)).get(environment);
}

private DataFetcher<CompletableFuture<T>> getOrCreateImplementation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ private DefaultGraphQlRequestContext(HttpServletRequest request) {
this.request = request;
this.cachingKey =
new DefaultContextualCacheKey(this, this.getTenantId().orElse(DEFAULT_CONTEXT_ID));
this.put(GraphQlRequestContext.class, this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import graphql.kickstart.execution.context.GraphQLKickstartContext;
import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
Expand All @@ -26,4 +27,8 @@ <T> DataFetcher<CompletableFuture<T>> constructDataFetcher(
ContextualCachingKey getCachingKey();

String getRequestId();

static GraphQlRequestContext contextFromEnvironment(DataFetchingEnvironment environment) {
return environment.getGraphQlContext().get(GraphQlRequestContext.class);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.hypertrace.core.graphql.log.event.fetcher;

import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.util.concurrent.CompletableFuture;
Expand Down Expand Up @@ -30,7 +32,9 @@ static final class LogEventFetcherImpl
public CompletableFuture<LogEventResultSet> get(DataFetchingEnvironment environment) {
return this.requestBuilder
.build(
environment.getContext(), environment.getArguments(), environment.getSelectionSet())
contextFromEnvironment(environment),
environment.getArguments(),
environment.getSelectionSet())
.flatMap(this.logEventDao::getLogEvents)
.toCompletionStage()
.toCompletableFuture();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.hypertrace.core.graphql.metadata.fetcher;

import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.util.List;
Expand Down Expand Up @@ -30,7 +32,7 @@ static final class MetadataFetcherImpl
@Override
public CompletableFuture<List<AttributeMetadata>> get(DataFetchingEnvironment environment) {
return this.attributeStore
.getAllExternal(environment.getContext())
.getAllExternal(contextFromEnvironment(environment))
.flatMap(this.responseBuilder::build)
.toCompletionStage()
.toCompletableFuture();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

Expand All @@ -25,7 +26,10 @@ class MetadataFetcherTest {

@Mock MetadataResponseBuilder mockResponseBuilder;
@Mock AttributeStore mockAttributeStore;
@Mock DataFetchingEnvironment mockDataFetchingEnvironment;

@Mock(answer = Answers.RETURNS_DEEP_STUBS)
DataFetchingEnvironment mockDataFetchingEnvironment;

@Mock AttributeModel mockModel;
@Mock AttributeMetadata mockMetadata;
@Mock GraphQlRequestContext mockContext;
Expand All @@ -35,7 +39,8 @@ class MetadataFetcherTest {
void beforeEach() {
List<AttributeModel> mockModelResult = List.of(mockModel);
List<AttributeMetadata> mockMetadataResult = List.of(mockMetadata);
when(this.mockDataFetchingEnvironment.getContext()).thenReturn(this.mockContext);
when(this.mockDataFetchingEnvironment.getGraphQlContext().get(GraphQlRequestContext.class))
.thenReturn(this.mockContext);
when(this.mockAttributeStore.getAllExternal(eq(this.mockContext)))
.thenReturn(Single.just(mockModelResult));
when(this.mockResponseBuilder.build(eq(mockModelResult)))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.hypertrace.core.graphql.span.fetcher;

import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import io.reactivex.rxjava3.core.Single;
Expand Down Expand Up @@ -34,7 +36,7 @@ static final class ExportSpanFetcherImpl
public CompletableFuture<ExportSpanResult> get(DataFetchingEnvironment environment) {
Single<SpanRequest> spanRequest =
this.requestBuilder.build(
environment.getContext(),
contextFromEnvironment(environment),
environment.getArguments(),
SpanAttributes.SPAN_ATTRIBUTES,
LogEventAttributes.LOG_EVENT_ATTRIBUTES);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.hypertrace.core.graphql.span.fetcher;

import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.util.concurrent.CompletableFuture;
Expand Down Expand Up @@ -29,7 +31,9 @@ static final class SpanFetcherImpl implements DataFetcher<CompletableFuture<Span
public CompletableFuture<SpanResultSet> get(DataFetchingEnvironment environment) {
return this.requestBuilder
.build(
environment.getContext(), environment.getArguments(), environment.getSelectionSet())
contextFromEnvironment(environment),
environment.getArguments(),
environment.getSelectionSet())
.flatMap(this.spanDao::getSpans)
.toCompletionStage()
.toCompletableFuture();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.hypertrace.core.graphql.trace.fetcher;

import static org.hypertrace.core.graphql.context.GraphQlRequestContext.contextFromEnvironment;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.util.concurrent.CompletableFuture;
Expand Down Expand Up @@ -29,7 +31,9 @@ static final class TraceFetcherImpl implements DataFetcher<CompletableFuture<Tra
public CompletableFuture<TraceResultSet> get(DataFetchingEnvironment environment) {
return this.requestBuilder
.build(
environment.getContext(), environment.getArguments(), environment.getSelectionSet())
contextFromEnvironment(environment),
environment.getArguments(),
environment.getSelectionSet())
.flatMap(this.traceDao::getTraces)
.toCompletionStage()
.toCompletableFuture();
Expand Down