This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch CAUSEWAY-3676 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit d132572dad2fe5089cc2743bd7e91216f817ea20 Author: danhaywood <[email protected]> AuthorDate: Mon Feb 12 21:02:24 2024 +0000 CAUSEWAY-3676: converts Context into a @Component --- .../causeway/viewer/graphql/model/context/Context.java | 12 +++++++++++- .../viewer/graphql/model/domain/GqlvDomainObject.java | 4 +--- .../viewer/graphql/model/domain/GqlvDomainService.java | 4 +--- .../viewer/graphql/model/toplevel/GqlvTopLevelQuery.java | 9 ++++----- .../graphql/viewer/integration/GraphQlSourceForCauseway.java | 11 +++-------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/context/Context.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/context/Context.java index aeced311fe..4278015d26 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/context/Context.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/context/Context.java @@ -31,18 +31,25 @@ import org.apache.causeway.core.metamodel.objectmanager.ObjectManager; import org.apache.causeway.core.metamodel.spec.ActionScope; import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; +import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainObject; +import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainService; import org.apache.causeway.viewer.graphql.model.registry.GraphQLTypeRegistry; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; +import org.springframework.stereotype.Component; + import lombok.RequiredArgsConstructor; import java.util.Comparator; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +@Component @RequiredArgsConstructor public class Context { - public final GraphQLCodeRegistry.Builder codeRegistryBuilder; + public final GraphQLCodeRegistry.Builder codeRegistryBuilder = GraphQLCodeRegistry.newCodeRegistry(); public final BookmarkService bookmarkService; public final SpecificationLoader specificationLoader; public final TypeMapper typeMapper; @@ -52,6 +59,9 @@ public class Context { public final ObjectManager objectManager; public final GraphQLTypeRegistry graphQLTypeRegistry; + public final Map<ObjectSpecification, GqlvDomainService> domainServiceBySpec = new LinkedHashMap<>(); + public final Map<ObjectSpecification, GqlvDomainObject> domainObjectBySpec = new LinkedHashMap<>(); + public ImmutableEnumSet<ActionScope> getActionScope() { return causewaySystemEnvironment.getDeploymentType().isProduction() ? ActionScope.PRODUCTION_ONLY diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java index e21bb2f075..893bd2a2ab 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java @@ -65,12 +65,10 @@ public class GqlvDomainObject @Getter private final GraphQLInputObjectType gqlInputObjectType; - private final static Map<ObjectSpecification, GqlvDomainObject> domainObjectBySpec = new LinkedHashMap<>(); - public static GqlvDomainObject of( final ObjectSpecification objectSpecification, final Context context) { - return domainObjectBySpec.computeIfAbsent(objectSpecification, spec -> new GqlvDomainObject(spec, context)); + return context.domainObjectBySpec.computeIfAbsent(objectSpecification, spec -> new GqlvDomainObject(spec, context)); } private GqlvDomainObject( diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java index b216dbdc4f..d259c7a196 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java @@ -44,13 +44,11 @@ public class GqlvDomainService private final Map<String, GqlvAction> actions = new LinkedHashMap<>(); - private final static Map<ObjectSpecification, GqlvDomainService> domainServiceBySpec = new LinkedHashMap<>(); - public static GqlvDomainService of( final ObjectSpecification objectSpecification, final Object servicePojo, final Context context) { - return domainServiceBySpec.computeIfAbsent(objectSpecification, spec -> new GqlvDomainService(spec, servicePojo, context)); + return context.domainServiceBySpec.computeIfAbsent(objectSpecification, spec -> new GqlvDomainService(spec, servicePojo, context)); } public GqlvDomainService( diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java index eff065063f..1d5f7e7015 100644 --- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java +++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/toplevel/GqlvTopLevelQuery.java @@ -9,7 +9,6 @@ import org.apache.causeway.viewer.graphql.model.context.Context; import org.apache.causeway.viewer.graphql.model.domain.GqlvAbstractCustom; import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainObject; import org.apache.causeway.viewer.graphql.model.domain.GqlvDomainService; -import org.apache.causeway.viewer.graphql.model.domain.GqlvScenario; import org.apache.causeway.viewer.graphql.model.domain.Parent; public class GqlvTopLevelQuery @@ -19,7 +18,7 @@ public class GqlvTopLevelQuery private final List<GqlvDomainService> domainServices = new ArrayList<>(); private final List<GqlvDomainObject> domainObjects = new ArrayList<>(); - private final GqlvScenario scenario; +// private final GqlvScenario scenario; public GqlvTopLevelQuery(final Context context) { super("Query", context); @@ -56,8 +55,8 @@ public class GqlvTopLevelQuery addChildField(domainObject.getLookupField()); } - scenario = new GqlvScenario(context); - addChildField(scenario.getField()); +// scenario = new GqlvScenario(context); +// addChildField(scenario.getField()); buildObjectType(); } @@ -79,6 +78,6 @@ public class GqlvTopLevelQuery domainObjects.forEach(domainObject -> domainObject.addDataFetchers(this)); - scenario.addDataFetchers(this); +// scenario.addDataFetchers(this); } } diff --git a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java index 092dfb67f7..182c776ad5 100644 --- a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java +++ b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/integration/GraphQlSourceForCauseway.java @@ -55,11 +55,9 @@ public class GraphQlSourceForCauseway implements GraphQlSource { private final CausewayConfiguration causewayConfiguration; private final CausewaySystemEnvironment causewaySystemEnvironment; private final SpecificationLoader specificationLoader; - private final ServiceRegistry serviceRegistry; - private final ObjectManager objectManager; - private final BookmarkService bookmarkService; private final GraphQLTypeRegistry graphQLTypeRegistry; - private final TypeMapper typeMapper; + private final Context context; + private final AsyncExecutionStrategyResolvingWithinInteraction executionStrategy; @PostConstruct @@ -97,9 +95,6 @@ public class GraphQlSourceForCauseway implements GraphQlSource { throw new IllegalStateException("Metamodel is not fully introspected"); } - val codeRegistryBuilder = GraphQLCodeRegistry.newCodeRegistry(); - val context = new Context(codeRegistryBuilder, bookmarkService, specificationLoader, typeMapper, serviceRegistry, causewayConfiguration, causewaySystemEnvironment, objectManager, graphQLTypeRegistry); - // top-level query and mutation type val topLevelQuery = new GqlvTopLevelQuery(context); val topLevelMutation = @@ -114,7 +109,7 @@ public class GraphQlSourceForCauseway implements GraphQlSource { } // finalize the fetcher/mutator code that's been added - val codeRegistry = codeRegistryBuilder.build(); + val codeRegistry = context.codeRegistryBuilder.build(); // build the schema return GraphQLSchema.newSchema()
