Skip to content

Commit

Permalink
chore(deps): Update dependency versions to align with Spring Boot 3.3…
Browse files Browse the repository at this point in the history
….2 managed dependencies (#487)

* ---
updated-dependencies:
- dependency-name: com.graphql-java:graphql-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Resolve breaking changes

* Update hibernate.version to 6.5.2.Final

* Update hibernate.version to 6.4.6.Final

* Update hibernate.version to 6.5.2.Final

* Update activiti-cloud.version to 8.6.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Igor Dianov <igor@dianov.com>
  • Loading branch information
dependabot[bot] and igdianov authored Aug 8, 2024
1 parent 405ea8b commit dbbdc10
Show file tree
Hide file tree
Showing 10 changed files with 52 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@
*/
package com.introproventures.graphql.jpa.query.autoconfigure;

import com.introproventures.graphql.jpa.query.schema.JavaScalarsWiringPostProcessor;
import graphql.GraphQL;
import graphql.execution.instrumentation.Instrumentation;
import graphql.schema.GraphQLSchema;
import java.util.List;
import java.util.function.Consumer;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.ObjectProvider;
Expand Down Expand Up @@ -113,4 +115,12 @@ public GraphQlSource graphQlSource(
public JavaScalarsRuntimeWiringConfigurer javaScalarsRuntimeWiringConfigurer() {
return new JavaScalarsRuntimeWiringConfigurer();
}

@Bean
@ConditionalOnMissingBean
public GraphQlSourceBuilderCustomizer javaScalarGraphQlSourceBuilderCustomizer() {
return customizer -> {
customizer.typeVisitorsToTransformSchema(List.of(new JavaScalarsWiringPostProcessor.Visitor()));
};
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.introproventures.graphql.jpa.query.autoconfigure;

import com.introproventures.graphql.jpa.query.schema.JavaScalars;
import com.introproventures.graphql.jpa.query.schema.JavaScalarsWiringPostProcessor;
import graphql.schema.idl.RuntimeWiring;
import org.springframework.graphql.execution.RuntimeWiringConfigurer;

Expand All @@ -10,7 +9,5 @@ public class JavaScalarsRuntimeWiringConfigurer implements RuntimeWiringConfigur
@Override
public void configure(RuntimeWiring.Builder wiringBuilder) {
JavaScalars.scalars().forEach(wiringBuilder::scalar);

wiringBuilder.transformer(new JavaScalarsWiringPostProcessor());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -363,10 +363,12 @@ public void configure(GraphQLShemaRegistration registry) {
.coercing(new JavaScalars.GraphQLObjectCoercing())
.build()
)
.scalar(ExtendedScalars.GraphQLLong)
.transformer(new JavaScalarsWiringPostProcessor());
.scalar(ExtendedScalars.GraphQLLong);

registry.register(new SchemaGenerator().makeExecutableSchema(typeRegistry, wiring.build()));
registry.register(
new JavaScalarsWiringPostProcessor()
.process(new SchemaGenerator().makeExecutableSchema(typeRegistry, wiring.build()))
);
}
}
}
Expand Down
8 changes: 4 additions & 4 deletions dependencies/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
</description>

<properties>
<spring-boot.version>3.2.3</spring-boot.version>
<graphql-java.version>21.4</graphql-java.version>
<spring-boot.version>3.3.2</spring-boot.version>
<graphql-java.version>22.1</graphql-java.version>
<evo-inflector.version>1.3</evo-inflector.version>
<joda-time.version>2.12.7</joda-time.version>
<graphql-java-extended-scalars.version>21.0</graphql-java-extended-scalars.version>
<graphql-java-extended-scalars.version>22.0</graphql-java-extended-scalars.version>
<jakarta.persistence-api.version>3.1.0</jakarta.persistence-api.version>
<hibernate.version>6.4.6.Final</hibernate.version>
<hibernate.version>6.5.2.Final</hibernate.version>
</properties>

<dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,22 @@
import graphql.schema.GraphQLSchemaElement;
import graphql.schema.GraphQLTypeVisitorStub;
import graphql.schema.SchemaTransformer;
import graphql.schema.idl.SchemaGeneratorPostProcessing;
import graphql.util.TraversalControl;
import graphql.util.TraverserContext;
import graphql.util.TreeTransformerUtil;
import java.util.function.Function;

public class JavaScalarsWiringPostProcessor implements SchemaGeneratorPostProcessing {
public class JavaScalarsWiringPostProcessor {

public JavaScalarsWiringPostProcessor() {}

@Override
public GraphQLSchema process(GraphQLSchema originalSchema) {
Visitor visitor = new Visitor();

return SchemaTransformer.transformSchema(originalSchema, visitor);
}

class Visitor extends GraphQLTypeVisitorStub {
public static class Visitor extends GraphQLTypeVisitorStub {

private boolean schemaChanged = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@
import graphql.execution.ExecutionStrategy;
import graphql.execution.instrumentation.ChainedInstrumentation;
import graphql.execution.instrumentation.Instrumentation;
import graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentation;
import graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentationOptions;
import graphql.schema.GraphQLCodeRegistry;
import graphql.schema.GraphQLSchema;
import graphql.schema.visibility.GraphqlFieldVisibility;
Expand All @@ -45,7 +43,6 @@ public class GraphQLJpaExecutorContext implements GraphQLExecutorContext {
private final Supplier<GraphqlFieldVisibility> graphqlFieldVisibility;
private final Supplier<Instrumentation> instrumentation;
private final Supplier<GraphQLContext> graphqlContext;
private final Supplier<DataLoaderDispatcherInstrumentationOptions> dataLoaderDispatcherInstrumentationOptions;
private final Supplier<DataLoaderRegistry> dataLoaderRegistry;
private final Supplier<ExecutionStrategy> queryExecutionStrategy;
private final Supplier<ExecutionStrategy> mutationExecutionStrategy;
Expand All @@ -57,7 +54,6 @@ private GraphQLJpaExecutorContext(Builder builder) {
this.graphqlFieldVisibility = builder.graphqlFieldVisibility;
this.instrumentation = builder.instrumentation;
this.graphqlContext = builder.graphqlContext;
this.dataLoaderDispatcherInstrumentationOptions = builder.dataLoaderDispatcherInstrumentationOptions;
this.dataLoaderRegistry = builder.dataLoaderRegistry;
this.queryExecutionStrategy = builder.queryExecutionStrategy;
this.mutationExecutionStrategy = builder.mutationExecutionStrategy;
Expand Down Expand Up @@ -93,13 +89,7 @@ public DataLoaderRegistry newDataLoaderRegistry() {
}

public Instrumentation newIstrumentation() {
DataLoaderDispatcherInstrumentationOptions options = dataLoaderDispatcherInstrumentationOptions.get();

DataLoaderDispatcherInstrumentation dispatcherInstrumentation = new DataLoaderDispatcherInstrumentation(
options
);

List<Instrumentation> list = Arrays.asList(dispatcherInstrumentation, instrumentation.get());
List<Instrumentation> list = Arrays.asList(instrumentation.get());

return new ChainedInstrumentation(list);
}
Expand All @@ -126,27 +116,23 @@ public interface IGraphQLSchemaStage {
}

public interface IBuildStage {
public IBuildStage executionInputFactory(GraphQLExecutionInputFactory executionInputFactory);
IBuildStage executionInputFactory(GraphQLExecutionInputFactory executionInputFactory);

public IBuildStage graphqlFieldVisibility(Supplier<GraphqlFieldVisibility> graphqlFieldVisibility);
IBuildStage graphqlFieldVisibility(Supplier<GraphqlFieldVisibility> graphqlFieldVisibility);

public IBuildStage instrumentation(Supplier<Instrumentation> instrumentation);
IBuildStage instrumentation(Supplier<Instrumentation> instrumentation);

public IBuildStage graphqlContext(Supplier<GraphQLContext> graphqlContext);
IBuildStage graphqlContext(Supplier<GraphQLContext> graphqlContext);

public IBuildStage dataLoaderDispatcherInstrumentationOptions(
Supplier<DataLoaderDispatcherInstrumentationOptions> dataLoaderDispatcherInstrumentationOptions
);
IBuildStage dataLoaderRegistry(Supplier<DataLoaderRegistry> dataLoaderRegistry);

public IBuildStage dataLoaderRegistry(Supplier<DataLoaderRegistry> dataLoaderRegistry);
IBuildStage queryExecutionStrategy(Supplier<ExecutionStrategy> queryExecutionStrategy);

public IBuildStage queryExecutionStrategy(Supplier<ExecutionStrategy> queryExecutionStrategy);
IBuildStage mutationExecutionStrategy(Supplier<ExecutionStrategy> mutationExecutionStrategy);

public IBuildStage mutationExecutionStrategy(Supplier<ExecutionStrategy> mutationExecutionStrategy);
IBuildStage subscriptionExecutionStrategy(Supplier<ExecutionStrategy> subscriptionExecutionStrategy);

public IBuildStage subscriptionExecutionStrategy(Supplier<ExecutionStrategy> subscriptionExecutionStrategy);

public GraphQLJpaExecutorContext build();
GraphQLJpaExecutorContext build();
}

/**
Expand All @@ -159,7 +145,6 @@ public static final class Builder implements IGraphQLSchemaStage, IBuildStage {
private Supplier<GraphqlFieldVisibility> graphqlFieldVisibility;
private Supplier<Instrumentation> instrumentation;
private Supplier<GraphQLContext> graphqlContext;
private Supplier<DataLoaderDispatcherInstrumentationOptions> dataLoaderDispatcherInstrumentationOptions;
private Supplier<DataLoaderRegistry> dataLoaderRegistry;
private Supplier<ExecutionStrategy> queryExecutionStrategy;
private Supplier<ExecutionStrategy> mutationExecutionStrategy;
Expand Down Expand Up @@ -197,15 +182,6 @@ public IBuildStage graphqlContext(Supplier<GraphQLContext> graphqlContext) {
return this;
}

@Override
public IBuildStage dataLoaderDispatcherInstrumentationOptions(
Supplier<DataLoaderDispatcherInstrumentationOptions> dataLoaderDispatcherInstrumentationOptions
) {
this.dataLoaderDispatcherInstrumentationOptions = dataLoaderDispatcherInstrumentationOptions;

return this;
}

@Override
public IBuildStage dataLoaderRegistry(Supplier<DataLoaderRegistry> dataLoaderRegistry) {
this.dataLoaderRegistry = dataLoaderRegistry;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import graphql.execution.SubscriptionExecutionStrategy;
import graphql.execution.instrumentation.Instrumentation;
import graphql.execution.instrumentation.SimpleInstrumentation;
import graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentationOptions;
import graphql.schema.GraphQLSchema;
import graphql.schema.visibility.DefaultGraphqlFieldVisibility;
import graphql.schema.visibility.GraphqlFieldVisibility;
Expand All @@ -45,11 +44,6 @@ public class GraphQLJpaExecutorContextFactory implements GraphQLExecutorContextF
DefaultGraphqlFieldVisibility.DEFAULT_FIELD_VISIBILITY;
private Supplier<Instrumentation> instrumentation = () -> new SimpleInstrumentation();
private Supplier<GraphQLContext> graphqlContext = () -> GraphQLContext.newContext().build();
private Supplier<DataLoaderDispatcherInstrumentationOptions> dataLoaderDispatcherInstrumentationOptions = () -> {
DataLoaderDispatcherInstrumentationOptions options = DataLoaderDispatcherInstrumentationOptions.newOptions();

return logger.isDebugEnabled() ? options.includeStatistics(true) : options;
};

private Supplier<DataLoaderOptions> dataLoaderOptions = () -> DataLoaderOptions.newOptions();

Expand All @@ -74,7 +68,6 @@ public GraphQLExecutorContext newExecutorContext(GraphQLSchema graphQLSchema) {
.graphqlFieldVisibility(graphqlFieldVisibility)
.instrumentation(instrumentation)
.graphqlContext(graphqlContext)
.dataLoaderDispatcherInstrumentationOptions(dataLoaderDispatcherInstrumentationOptions)
.dataLoaderRegistry(dataLoaderRegistry)
.queryExecutionStrategy(queryExecutionStrategy)
.mutationExecutionStrategy(mutationExecutionStrategy)
Expand Down Expand Up @@ -106,13 +99,6 @@ public GraphQLJpaExecutorContextFactory withGraphqlContext(Supplier<GraphQLConte
return this;
}

public GraphQLJpaExecutorContextFactory withDataLoaderDispatcherInstrumentationOptions(
Supplier<DataLoaderDispatcherInstrumentationOptions> dataLoaderDispatcherInstrumentationOptions
) {
this.dataLoaderDispatcherInstrumentationOptions = dataLoaderDispatcherInstrumentationOptions;
return this;
}

public GraphQLJpaExecutorContextFactory withQueryExecutionStrategy(
Supplier<ExecutionStrategy> queryExecutionStrategy
) {
Expand Down Expand Up @@ -149,8 +135,4 @@ public Supplier<Instrumentation> getInstrumentation() {
public Supplier<GraphQLContext> getGraphqlContext() {
return graphqlContext;
}

public Supplier<DataLoaderDispatcherInstrumentationOptions> getDataLoaderDispatcherInstrumentationOptions() {
return dataLoaderDispatcherInstrumentationOptions;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1306,7 +1306,16 @@ protected Predicate getObjectFieldPredicate(
new Field(objectField.getName())
);

if (Arrays.asList(Logical.EXISTS, Logical.NOT_EXISTS).contains(logical)) {
List<Map<String, Object>> logicalArguments = Optional
.ofNullable(environment.getArgument(logical.name()))
.filter(List.class::isInstance)
.map(List.class::cast)
.orElseGet(List::of);

final var isMultipleLogical =
logicalArguments.stream().filter(it -> it.containsKey(objectField.getName())).count() >= 1;

if (Arrays.asList(Logical.EXISTS, Logical.NOT_EXISTS).contains(logical) || isMultipleLogical) {
AbstractQuery<?> query = environment.getRoot();
Subquery<?> subquery = query.subquery(attribute.getJavaType());
From<?, ?> correlation = Root.class.isInstance(from)
Expand All @@ -1329,28 +1338,17 @@ protected Predicate getObjectFieldPredicate(

Predicate exists = cb.exists(subquery.select((Join) correlationJoin).where(restriction));

return logical == Logical.EXISTS ? exists : cb.not(exists);
return logical == Logical.NOT_EXISTS ? cb.not(exists) : exists;
}

AbstractQuery<?> query = environment.getRoot();
Boolean isFetch = environment.getLocalContext();
boolean isOptional = isOptionalAttribute(attribute);
List<Map<String, Object>> logicalArguments = Optional
.ofNullable(environment.getArgument(logical.name()))
.filter(List.class::isInstance)
.map(List.class::cast)
.orElseGet(List::of);
final AbstractQuery<?> query = environment.getRoot();
final Boolean isFetch = environment.getLocalContext();
final boolean isOptional = isOptionalAttribute(attribute);

final From<?, ?> context = (isSubquery(query) || isCountQuery(query) || !isFetch)
? reuseJoin(from, objectField.getName(), isOptional)
: reuseFetch(from, objectField.getName(), isOptional);

From<?, ?> context;
if (logicalArguments.stream().filter(it -> it.containsKey(objectField.getName())).count() >= 1) {
context =
isOptional ? from.join(objectField.getName(), JoinType.LEFT) : from.join(objectField.getName());
} else {
context =
(isSubquery(query) || isCountQuery(query) || !isFetch)
? reuseJoin(from, objectField.getName(), isOptional)
: reuseFetch(from, objectField.getName(), isOptional);
}
return getArgumentPredicate(
cb,
context,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,6 @@ public void testInstrumentationDisabled() {
ExecutionResult result = executor.execute(query);

// then
assertThat(result.getExtensions().get("tracing")).isNull();
assertThat(result.getExtensions()).isNull();
}
}
3 changes: 2 additions & 1 deletion tests/gatling/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@

<properties>
<java.version>21</java.version>
<activiti-cloud.version>8.4.0</activiti-cloud.version>
<activiti-cloud.version>8.6.0</activiti-cloud.version>
<gatling.version>3.10.5</gatling.version>
<gatling-maven-plugin.version>4.8.2</gatling-maven-plugin.version>
<hibernate.version>6.4.10.Final</hibernate.version>
</properties>

<dependencies>
Expand Down

0 comments on commit dbbdc10

Please sign in to comment.