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 7db94e3cfd621007a14d4a417fe19842542d09ed
Author: danhaywood <[email protected]>
AuthorDate: Sun Feb 11 12:36:00 2024 +0000

    CAUSEWAY-3676: refactors top level query/mutation a little more
---
 viewers/graphql/test/src/test/resources/schema.gql | 158 ++++++---------------
 .../integration/GraphQlSourceForCauseway.java      |  10 +-
 .../viewer/toplevel/GqlvTopLevelMutation.java      |   1 -
 .../graphql/viewer/toplevel/GqlvTopLevelQuery.java |  17 ++-
 4 files changed, 61 insertions(+), 125 deletions(-)

diff --git a/viewers/graphql/test/src/test/resources/schema.gql 
b/viewers/graphql/test/src/test/resources/schema.gql
index 65b53a6d18..b7d6eb65ee 100644
--- a/viewers/graphql/test/src/test/resources/schema.gql
+++ b/viewers/graphql/test/src/test/resources/schema.gql
@@ -22,6 +22,50 @@ directive @specifiedBy(
     url: String!
   ) on SCALAR
 
+type Mutation {
+  causeway_applib_PropertyNode__mixedIn(_gqlv_target: 
causeway_applib_PropertyNode__gqlv_input, mixedIn: Boolean!): 
causeway_applib_PropertyNode
+  causeway_applib_node_ActionNode__mixedIn(_gqlv_target: 
causeway_applib_node_ActionNode__gqlv_input, mixedIn: Boolean!): 
causeway_applib_node_ActionNode
+  causeway_applib_node_CollectionNode__mixedIn(_gqlv_target: 
causeway_applib_node_CollectionNode__gqlv_input, mixedIn: Boolean!): 
causeway_applib_node_CollectionNode
+  causeway_applib_node_FacetNode__shadowed(_gqlv_target: 
causeway_applib_node_FacetNode__gqlv_input, shadowed: Boolean!): 
causeway_applib_node_FacetNode
+  causeway_conf_ConfigurationProperty__key(_gqlv_target: 
causeway_conf_ConfigurationProperty__gqlv_input, key: String!): 
causeway_conf_ConfigurationProperty
+  causeway_conf_ConfigurationProperty__value(_gqlv_target: 
causeway_conf_ConfigurationProperty__gqlv_input, value: String!): 
causeway_conf_ConfigurationProperty
+  causeway_schema_metamodel_v2_DomainClassDto__actions(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, actions: String!): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__annotations(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, annotations: String!): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__collections(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, collections: String!): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__facets(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, facets: String!): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__id(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, id: String!): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__majorVersion(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, majorVersion: String): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__minorVersion(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, minorVersion: String): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__properties(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, properties: String!): 
causeway_schema_metamodel_v2_DomainClassDto
+  causeway_schema_metamodel_v2_DomainClassDto__service(_gqlv_target: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input, service: Boolean!): 
causeway_schema_metamodel_v2_DomainClassDto
+  
causeway_testing_fixtures_FixtureResult__fixtureScriptClassName(_gqlv_target: 
causeway_testing_fixtures_FixtureResult__gqlv_input, fixtureScriptClassName: 
String): causeway_testing_fixtures_FixtureResult
+  causeway_testing_fixtures_FixtureResult__key(_gqlv_target: 
causeway_testing_fixtures_FixtureResult__gqlv_input, key: String!): 
causeway_testing_fixtures_FixtureResult
+  causeway_testing_fixtures_FixtureResult__object(_gqlv_target: 
causeway_testing_fixtures_FixtureResult__gqlv_input, object: String!): 
causeway_testing_fixtures_FixtureResult
+  
org_apache_causeway_core_metamodel_inspect_model_MemberNode__mixedIn(_gqlv_target:
 org_apache_causeway_core_metamodel_inspect_model_MemberNode__gqlv_input, 
mixedIn: Boolean!): org_apache_causeway_core_metamodel_inspect_model_MemberNode
+  
org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__friendlyName(_gqlv_target:
 
org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__gqlv_input,
 friendlyName: String!): 
org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript
+  university_admin_AdminMenu__actionWithDisabledParam(firstParam: String!, 
secondParam: String!, thirdParameter: String!): String
+  university_admin_AdminMenu__actionWithHiddenParam(firstParam: String!, 
secondParam: String!): String
+  university_admin_AdminMenu__adminAction: String
+  university_admin_AdminMenu__otherAdminAction: String
+  university_dept_Department__addStaffMember(_gqlv_target: 
university_dept_Department__gqlv_input, staffMember: 
university_dept_StaffMember__gqlv_input!): university_dept_Department
+  university_dept_Department__addStaffMembers(_gqlv_target: 
university_dept_Department__gqlv_input, staffMembers: 
[university_dept_StaffMember__gqlv_input]): university_dept_Department
+  university_dept_Department__changeDeptHead(_gqlv_target: 
university_dept_Department__gqlv_input, newDeptHead: 
university_dept_DeptHead__gqlv_input!): university_dept_Department
+  university_dept_Department__changeName(_gqlv_target: 
university_dept_Department__gqlv_input, newName: String!): 
university_dept_Department
+  university_dept_Department__deptHead(_gqlv_target: 
university_dept_Department__gqlv_input, deptHead: 
university_dept_DeptHead__gqlv_input): university_dept_Department
+  university_dept_Department__name(_gqlv_target: 
university_dept_Department__gqlv_input, name: String!): 
university_dept_Department
+  university_dept_Department__removeStaffMember(_gqlv_target: 
university_dept_Department__gqlv_input, staffMember: 
university_dept_StaffMember__gqlv_input!): university_dept_Department
+  university_dept_Departments__createDepartment(deptHead: 
university_dept_DeptHead__gqlv_input, name: String!): university_dept_Department
+  university_dept_DeptHead__changeDepartment(_gqlv_target: 
university_dept_DeptHead__gqlv_input, department: 
university_dept_Department__gqlv_input!): university_dept_DeptHead
+  university_dept_DeptHead__changeName(_gqlv_target: 
university_dept_DeptHead__gqlv_input, newName: String!): 
university_dept_DeptHead
+  university_dept_DeptHead__department(_gqlv_target: 
university_dept_DeptHead__gqlv_input, department: 
university_dept_Department__gqlv_input): university_dept_DeptHead
+  university_dept_DeptHead__name(_gqlv_target: 
university_dept_DeptHead__gqlv_input, name: String): university_dept_DeptHead
+  university_dept_StaffMember__department(_gqlv_target: 
university_dept_StaffMember__gqlv_input, department: 
university_dept_Department__gqlv_input): university_dept_StaffMember
+  university_dept_StaffMember__grade(_gqlv_target: 
university_dept_StaffMember__gqlv_input, grade: String!): 
university_dept_StaffMember
+  university_dept_StaffMember__name(_gqlv_target: 
university_dept_StaffMember__gqlv_input, name: String!): 
university_dept_StaffMember
+  university_dept_StaffMember__photo(_gqlv_target: 
university_dept_StaffMember__gqlv_input, photo: String): 
university_dept_StaffMember
+  university_dept_Staff__createStaffMember(department: 
university_dept_Department__gqlv_input!, name: String!): 
university_dept_StaffMember
+}
+
 type Query {
   _gqlv_lookup__causeway_applib_DomainObjectList(object: 
causeway_applib_DomainObjectList__gqlv_input): causeway_applib_DomainObjectList
   _gqlv_lookup__causeway_applib_FacetGroupNode(object: 
causeway_applib_FacetGroupNode__gqlv_input): causeway_applib_FacetGroupNode
@@ -84,7 +128,6 @@ type 
causeway_applib_DomainObjectList__actionArguments__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(actionArguments: String): causeway_applib_DomainObjectList
   validate(actionArguments: String): String
 }
 
@@ -92,7 +135,6 @@ type 
causeway_applib_DomainObjectList__actionId__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(actionId: String): causeway_applib_DomainObjectList
   validate(actionId: String): String
 }
 
@@ -100,7 +142,6 @@ type 
causeway_applib_DomainObjectList__actionOwningFqcn__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(actionOwningFqcn: String): causeway_applib_DomainObjectList
   validate(actionOwningFqcn: String): String
 }
 
@@ -108,7 +149,6 @@ type 
causeway_applib_DomainObjectList__elementTypeFqcn__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(elementTypeFqcn: String!): causeway_applib_DomainObjectList
   validate(elementTypeFqcn: String): String
 }
 
@@ -126,7 +166,6 @@ type causeway_applib_DomainObjectList__title__gqlv_property 
{
   disabled: String
   get: String!
   hidden: Boolean
-  set(title: String!): causeway_applib_DomainObjectList
   validate(title: String): String
 }
 
@@ -146,7 +185,6 @@ type causeway_applib_FacetGroupNode__facets__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(facets: String!): causeway_applib_FacetGroupNode
   validate(facets: String): String
 }
 
@@ -158,7 +196,6 @@ type causeway_applib_FacetGroupNode__gqlv_meta {
 type causeway_applib_FacetGroupNode__parentNode__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): 
causeway_applib_FacetGroupNode
   validate(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String
 }
 
@@ -183,7 +220,6 @@ type 
causeway_applib_ParameterNode__parameter__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(parameter: String!): causeway_applib_ParameterNode
   validate(parameter: String): String
 }
 
@@ -191,7 +227,6 @@ type 
causeway_applib_ParameterNode__parentNode__gqlv_property {
   disabled: String
   get: causeway_applib_node_ActionNode!
   hidden: Boolean
-  set(parentNode: causeway_applib_node_ActionNode__gqlv_input!): 
causeway_applib_ParameterNode
   validate(parentNode: causeway_applib_node_ActionNode__gqlv_input): String
 }
 
@@ -217,7 +252,6 @@ type causeway_applib_PropertyNode__mixedIn__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(mixedIn: Boolean!): causeway_applib_PropertyNode
   validate(mixedIn: Boolean): String
 }
 
@@ -225,7 +259,6 @@ type 
causeway_applib_PropertyNode__parentNode__gqlv_property {
   disabled: String
   get: causeway_applib_TypeNode!
   hidden: Boolean
-  set(parentNode: causeway_applib_TypeNode__gqlv_input!): 
causeway_applib_PropertyNode
   validate(parentNode: causeway_applib_TypeNode__gqlv_input): String
 }
 
@@ -233,7 +266,6 @@ type causeway_applib_PropertyNode__property__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(property: String!): causeway_applib_PropertyNode
   validate(property: String): String
 }
 
@@ -247,7 +279,6 @@ type 
causeway_applib_RoleMemento__description__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(description: String!): causeway_applib_RoleMemento
   validate(description: String): String
 }
 
@@ -260,7 +291,6 @@ type causeway_applib_RoleMemento__name__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(name: String!): causeway_applib_RoleMemento
   validate(name: String): String
 }
 
@@ -280,7 +310,6 @@ type 
causeway_applib_TypeNode__domainClassDto__gqlv_property {
   disabled: String
   get: causeway_schema_metamodel_v2_DomainClassDto!
   hidden: Boolean
-  set(domainClassDto: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input!): 
causeway_applib_TypeNode
   validate(domainClassDto: 
causeway_schema_metamodel_v2_DomainClassDto__gqlv_input): String
 }
 
@@ -292,7 +321,6 @@ type causeway_applib_TypeNode__gqlv_meta {
 type causeway_applib_TypeNode__parentNode__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): 
causeway_applib_TypeNode
   validate(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String
 }
 
@@ -315,7 +343,6 @@ type 
causeway_applib_UserMemento__authenticationCode__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(authenticationCode: String!): causeway_applib_UserMemento
   validate(authenticationCode: String): String
 }
 
@@ -324,7 +351,6 @@ type 
causeway_applib_UserMemento__authenticationSource__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(authenticationSource: String!): causeway_applib_UserMemento
   validate(authenticationSource: String): String
 }
 
@@ -332,7 +358,6 @@ type causeway_applib_UserMemento__avatarUrl__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(avatarUrl: String): causeway_applib_UserMemento
   validate(avatarUrl: String): String
 }
 
@@ -345,7 +370,6 @@ type 
causeway_applib_UserMemento__impersonating__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(impersonating: Boolean!): causeway_applib_UserMemento
   validate(impersonating: Boolean): String
 }
 
@@ -353,7 +377,6 @@ type 
causeway_applib_UserMemento__languageLocale__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(languageLocale: String): causeway_applib_UserMemento
   validate(languageLocale: String): String
 }
 
@@ -361,7 +384,6 @@ type 
causeway_applib_UserMemento__multiTenancyToken__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(multiTenancyToken: String): causeway_applib_UserMemento
   validate(multiTenancyToken: String): String
 }
 
@@ -369,7 +391,6 @@ type causeway_applib_UserMemento__name__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(name: String!): causeway_applib_UserMemento
   validate(name: String): String
 }
 
@@ -377,7 +398,6 @@ type 
causeway_applib_UserMemento__numberFormatLocale__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(numberFormatLocale: String): causeway_applib_UserMemento
   validate(numberFormatLocale: String): String
 }
 
@@ -385,7 +405,6 @@ type causeway_applib_UserMemento__realName__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(realName: String): causeway_applib_UserMemento
   validate(realName: String): String
 }
 
@@ -399,7 +418,6 @@ type 
causeway_applib_UserMemento__timeFormatLocale__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(timeFormatLocale: String): causeway_applib_UserMemento
   validate(timeFormatLocale: String): String
 }
 
@@ -426,7 +444,6 @@ type causeway_applib_node_ActionNode__action__gqlv_property 
{
   disabled: String
   get: String!
   hidden: Boolean
-  set(action: String!): causeway_applib_node_ActionNode
   validate(action: String): String
 }
 
@@ -444,7 +461,6 @@ type 
causeway_applib_node_ActionNode__mixedIn__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(mixedIn: Boolean!): causeway_applib_node_ActionNode
   validate(mixedIn: Boolean): String
 }
 
@@ -452,7 +468,6 @@ type 
causeway_applib_node_ActionNode__parentNode__gqlv_property {
   disabled: String
   get: causeway_applib_TypeNode!
   hidden: Boolean
-  set(parentNode: causeway_applib_TypeNode__gqlv_input!): 
causeway_applib_node_ActionNode
   validate(parentNode: causeway_applib_TypeNode__gqlv_input): String
 }
 
@@ -473,7 +488,6 @@ type 
causeway_applib_node_CollectionNode__collection__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(collection: String!): causeway_applib_node_CollectionNode
   validate(collection: String): String
 }
 
@@ -486,7 +500,6 @@ type 
causeway_applib_node_CollectionNode__mixedIn__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(mixedIn: Boolean!): causeway_applib_node_CollectionNode
   validate(mixedIn: Boolean): String
 }
 
@@ -494,7 +507,6 @@ type 
causeway_applib_node_CollectionNode__parentNode__gqlv_property {
   disabled: String
   get: causeway_applib_TypeNode!
   hidden: Boolean
-  set(parentNode: causeway_applib_TypeNode__gqlv_input!): 
causeway_applib_node_CollectionNode
   validate(parentNode: causeway_applib_TypeNode__gqlv_input): String
 }
 
@@ -514,7 +526,6 @@ type 
causeway_applib_node_FacetAttrNode__facetAttr__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(facetAttr: String!): causeway_applib_node_FacetAttrNode
   validate(facetAttr: String): String
 }
 
@@ -527,7 +538,6 @@ type 
causeway_applib_node_FacetAttrNode__parentNode__gqlv_property {
   disabled: String
   get: causeway_applib_node_FacetNode!
   hidden: Boolean
-  set(parentNode: causeway_applib_node_FacetNode__gqlv_input!): 
causeway_applib_node_FacetAttrNode
   validate(parentNode: causeway_applib_node_FacetNode__gqlv_input): String
 }
 
@@ -548,7 +558,6 @@ type causeway_applib_node_FacetNode__facet__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(facet: String!): causeway_applib_node_FacetNode
   validate(facet: String): String
 }
 
@@ -560,7 +569,6 @@ type causeway_applib_node_FacetNode__gqlv_meta {
 type causeway_applib_node_FacetNode__parentNode__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): 
causeway_applib_node_FacetNode
   validate(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String
 }
 
@@ -568,7 +576,6 @@ type 
causeway_applib_node_FacetNode__shadowed__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(shadowed: Boolean!): causeway_applib_node_FacetNode
   validate(shadowed: Boolean): String
 }
 
@@ -598,7 +605,6 @@ type 
causeway_conf_ConfigurationProperty__key__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(key: String!): causeway_conf_ConfigurationProperty
   validate(key: String): String
 }
 
@@ -606,7 +612,6 @@ type 
causeway_conf_ConfigurationProperty__value__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(value: String!): causeway_conf_ConfigurationProperty
   validate(value: String): String
 }
 
@@ -657,7 +662,6 @@ type 
causeway_feat_ApplicationFeatureViewModel__memberName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(memberName: String!): causeway_feat_ApplicationFeatureViewModel
   validate(memberName: String): String
 }
 
@@ -665,14 +669,12 @@ type 
causeway_feat_ApplicationFeatureViewModel__namespaceName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(namespaceName: String!): causeway_feat_ApplicationFeatureViewModel
   validate(namespaceName: String): String
 }
 
 type causeway_feat_ApplicationFeatureViewModel__parent__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): 
causeway_feat_ApplicationFeatureViewModel
   validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): 
String
 }
 
@@ -680,7 +682,6 @@ type 
causeway_feat_ApplicationFeatureViewModel__typeSimpleName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(typeSimpleName: String!): causeway_feat_ApplicationFeatureViewModel
   validate(typeSimpleName: String): String
 }
 
@@ -707,7 +708,6 @@ type 
causeway_feat_ApplicationNamespace__memberName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(memberName: String!): causeway_feat_ApplicationNamespace
   validate(memberName: String): String
 }
 
@@ -715,14 +715,12 @@ type 
causeway_feat_ApplicationNamespace__namespaceName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(namespaceName: String!): causeway_feat_ApplicationNamespace
   validate(namespaceName: String): String
 }
 
 type causeway_feat_ApplicationNamespace__parent__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): 
causeway_feat_ApplicationNamespace
   validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): 
String
 }
 
@@ -730,7 +728,6 @@ type 
causeway_feat_ApplicationNamespace__typeSimpleName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(typeSimpleName: String!): causeway_feat_ApplicationNamespace
   validate(typeSimpleName: String): String
 }
 
@@ -760,7 +757,6 @@ type 
causeway_feat_ApplicationTypeAction__actionSemantics__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(actionSemantics: String!): causeway_feat_ApplicationTypeAction
   validate(actionSemantics: String): String
 }
 
@@ -773,7 +769,6 @@ type 
causeway_feat_ApplicationTypeAction__memberName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(memberName: String!): causeway_feat_ApplicationTypeAction
   validate(memberName: String): String
 }
 
@@ -781,14 +776,12 @@ type 
causeway_feat_ApplicationTypeAction__namespaceName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(namespaceName: String!): causeway_feat_ApplicationTypeAction
   validate(namespaceName: String): String
 }
 
 type causeway_feat_ApplicationTypeAction__parent__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): 
causeway_feat_ApplicationTypeAction
   validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): 
String
 }
 
@@ -796,7 +789,6 @@ type 
causeway_feat_ApplicationTypeAction__returnType__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(returnType: String!): causeway_feat_ApplicationTypeAction
   validate(returnType: String): String
 }
 
@@ -804,7 +796,6 @@ type 
causeway_feat_ApplicationTypeAction__typeSimpleName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(typeSimpleName: String!): causeway_feat_ApplicationTypeAction
   validate(typeSimpleName: String): String
 }
 
@@ -822,7 +813,6 @@ type 
causeway_feat_ApplicationTypeCollection__derived__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(derived: Boolean!): causeway_feat_ApplicationTypeCollection
   validate(derived: Boolean): String
 }
 
@@ -830,7 +820,6 @@ type 
causeway_feat_ApplicationTypeCollection__elementType__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(elementType: String!): causeway_feat_ApplicationTypeCollection
   validate(elementType: String): String
 }
 
@@ -843,7 +832,6 @@ type 
causeway_feat_ApplicationTypeCollection__memberName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(memberName: String!): causeway_feat_ApplicationTypeCollection
   validate(memberName: String): String
 }
 
@@ -851,14 +839,12 @@ type 
causeway_feat_ApplicationTypeCollection__namespaceName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(namespaceName: String!): causeway_feat_ApplicationTypeCollection
   validate(namespaceName: String): String
 }
 
 type causeway_feat_ApplicationTypeCollection__parent__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): 
causeway_feat_ApplicationTypeCollection
   validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): 
String
 }
 
@@ -866,7 +852,6 @@ type 
causeway_feat_ApplicationTypeCollection__typeSimpleName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(typeSimpleName: String!): causeway_feat_ApplicationTypeCollection
   validate(typeSimpleName: String): String
 }
 
@@ -887,7 +872,6 @@ type 
causeway_feat_ApplicationTypeMember__memberName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(memberName: String!): causeway_feat_ApplicationTypeMember
   validate(memberName: String): String
 }
 
@@ -895,14 +879,12 @@ type 
causeway_feat_ApplicationTypeMember__namespaceName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(namespaceName: String!): causeway_feat_ApplicationTypeMember
   validate(namespaceName: String): String
 }
 
 type causeway_feat_ApplicationTypeMember__parent__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): 
causeway_feat_ApplicationTypeMember
   validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): 
String
 }
 
@@ -910,7 +892,6 @@ type 
causeway_feat_ApplicationTypeMember__typeSimpleName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(typeSimpleName: String!): causeway_feat_ApplicationTypeMember
   validate(typeSimpleName: String): String
 }
 
@@ -930,7 +911,6 @@ type 
causeway_feat_ApplicationTypeProperty__derived__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(derived: Boolean!): causeway_feat_ApplicationTypeProperty
   validate(derived: Boolean): String
 }
 
@@ -943,7 +923,6 @@ type 
causeway_feat_ApplicationTypeProperty__maxLength__gqlv_property {
   disabled: String
   get: Int
   hidden: Boolean
-  set(maxLength: Int): causeway_feat_ApplicationTypeProperty
   validate(maxLength: Int): String
 }
 
@@ -951,7 +930,6 @@ type 
causeway_feat_ApplicationTypeProperty__memberName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(memberName: String!): causeway_feat_ApplicationTypeProperty
   validate(memberName: String): String
 }
 
@@ -959,14 +937,12 @@ type 
causeway_feat_ApplicationTypeProperty__namespaceName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(namespaceName: String!): causeway_feat_ApplicationTypeProperty
   validate(namespaceName: String): String
 }
 
 type causeway_feat_ApplicationTypeProperty__parent__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): 
causeway_feat_ApplicationTypeProperty
   validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): 
String
 }
 
@@ -974,7 +950,6 @@ type 
causeway_feat_ApplicationTypeProperty__returnType__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(returnType: String!): causeway_feat_ApplicationTypeProperty
   validate(returnType: String): String
 }
 
@@ -982,7 +957,6 @@ type 
causeway_feat_ApplicationTypeProperty__typeSimpleName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(typeSimpleName: String!): causeway_feat_ApplicationTypeProperty
   validate(typeSimpleName: String): String
 }
 
@@ -990,7 +964,6 @@ type 
causeway_feat_ApplicationTypeProperty__typicalLength__gqlv_property {
   disabled: String
   get: Int
   hidden: Boolean
-  set(typicalLength: Int): causeway_feat_ApplicationTypeProperty
   validate(typicalLength: Int): String
 }
 
@@ -1015,7 +988,6 @@ type 
causeway_feat_ApplicationType__memberName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(memberName: String!): causeway_feat_ApplicationType
   validate(memberName: String): String
 }
 
@@ -1023,14 +995,12 @@ type 
causeway_feat_ApplicationType__namespaceName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(namespaceName: String!): causeway_feat_ApplicationType
   validate(namespaceName: String): String
 }
 
 type causeway_feat_ApplicationType__parent__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input!): 
causeway_feat_ApplicationType
   validate(parent: causeway_feat_ApplicationFeatureViewModel__gqlv_input): 
String
 }
 
@@ -1044,7 +1014,6 @@ type 
causeway_feat_ApplicationType__typeSimpleName__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(typeSimpleName: String!): causeway_feat_ApplicationType
   validate(typeSimpleName: String): String
 }
 
@@ -1065,7 +1034,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__actions__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(actions: String!): causeway_schema_metamodel_v2_DomainClassDto
   validate(actions: String): String
 }
 
@@ -1073,7 +1041,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__annotations__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(annotations: String!): causeway_schema_metamodel_v2_DomainClassDto
   validate(annotations: String): String
 }
 
@@ -1081,7 +1048,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__collections__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(collections: String!): causeway_schema_metamodel_v2_DomainClassDto
   validate(collections: String): String
 }
 
@@ -1089,7 +1055,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__facets__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(facets: String!): causeway_schema_metamodel_v2_DomainClassDto
   validate(facets: String): String
 }
 
@@ -1102,7 +1067,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__id__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(id: String!): causeway_schema_metamodel_v2_DomainClassDto
   validate(id: String): String
 }
 
@@ -1110,7 +1074,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__majorVersion__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(majorVersion: String): causeway_schema_metamodel_v2_DomainClassDto
   validate(majorVersion: String): String
 }
 
@@ -1118,7 +1081,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__minorVersion__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(minorVersion: String): causeway_schema_metamodel_v2_DomainClassDto
   validate(minorVersion: String): String
 }
 
@@ -1126,7 +1088,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__properties__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(properties: String!): causeway_schema_metamodel_v2_DomainClassDto
   validate(properties: String): String
 }
 
@@ -1134,7 +1095,6 @@ type 
causeway_schema_metamodel_v2_DomainClassDto__service__gqlv_property {
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(service: Boolean!): causeway_schema_metamodel_v2_DomainClassDto
   validate(service: Boolean): String
 }
 
@@ -1170,7 +1130,6 @@ type 
causeway_testing_fixtures_FixtureResult__className__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(className: String!): causeway_testing_fixtures_FixtureResult
   validate(className: String): String
 }
 
@@ -1178,7 +1137,6 @@ type 
causeway_testing_fixtures_FixtureResult__fixtureScriptClassName__gqlv_prope
   disabled: String
   get: String
   hidden: Boolean
-  set(fixtureScriptClassName: String): causeway_testing_fixtures_FixtureResult
   validate(fixtureScriptClassName: String): String
 }
 
@@ -1191,14 +1149,12 @@ type 
causeway_testing_fixtures_FixtureResult__key__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(key: String!): causeway_testing_fixtures_FixtureResult
   validate(key: String): String
 }
 
 type causeway_testing_fixtures_FixtureResult__object__gqlv_property {
   disabled: String
   hidden: Boolean
-  set(object: String!): causeway_testing_fixtures_FixtureResult
   validate(object: String): String
 }
 
@@ -1293,7 +1249,6 @@ type 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_meta {
 type 
org_apache_causeway_core_metamodel_inspect_model_MMNode__parentNode__gqlv_property
 {
   disabled: String
   hidden: Boolean
-  set(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input!): 
org_apache_causeway_core_metamodel_inspect_model_MMNode
   validate(parentNode: 
org_apache_causeway_core_metamodel_inspect_model_MMNode__gqlv_input): String
 }
 
@@ -1318,7 +1273,6 @@ type 
org_apache_causeway_core_metamodel_inspect_model_MemberNode__mixedIn__gqlv_
   disabled: String
   get: Boolean!
   hidden: Boolean
-  set(mixedIn: Boolean!): 
org_apache_causeway_core_metamodel_inspect_model_MemberNode
   validate(mixedIn: Boolean): String
 }
 
@@ -1326,7 +1280,6 @@ type 
org_apache_causeway_core_metamodel_inspect_model_MemberNode__parentNode__gq
   disabled: String
   get: causeway_applib_TypeNode!
   hidden: Boolean
-  set(parentNode: causeway_applib_TypeNode__gqlv_input!): 
org_apache_causeway_core_metamodel_inspect_model_MemberNode
   validate(parentNode: causeway_applib_TypeNode__gqlv_input): String
 }
 
@@ -1340,7 +1293,6 @@ type 
org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__f
   disabled: String
   get: String!
   hidden: Boolean
-  set(friendlyName: String!): 
org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript
   validate(friendlyName: String): String
 }
 
@@ -1353,7 +1305,6 @@ type 
org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript__q
   disabled: String
   get: String!
   hidden: Boolean
-  set(qualifiedName: String!): 
org_apache_causeway_testing_fixtures_applib_fixturescripts_FixtureScript
   validate(qualifiedName: String): String
 }
 
@@ -1373,7 +1324,6 @@ type 
university_admin_AdminMenu__actionWithDisabledParam__firstParam__gqlv_actio
 type university_admin_AdminMenu__actionWithDisabledParam__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeNonIdempotent(firstParam: String!, secondParam: String!, 
thirdParameter: String!): String
   params: 
university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_params
   validate(firstParam: String, secondParam: String, thirdParameter: String): 
String
 }
@@ -1405,7 +1355,6 @@ type 
university_admin_AdminMenu__actionWithHiddenParam__firstParam__gqlv_action_
 type university_admin_AdminMenu__actionWithHiddenParam__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeNonIdempotent(firstParam: String!, secondParam: String!): String
   params: university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_params
   validate(firstParam: String, secondParam: String): String
 }
@@ -1424,14 +1373,12 @@ type 
university_admin_AdminMenu__actionWithHiddenParam__secondParam__gqlv_action
 type university_admin_AdminMenu__adminAction__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeNonIdempotent: String
   validate: String
 }
 
 type university_admin_AdminMenu__otherAdminAction__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeNonIdempotent: String
   validate: String
 }
 
@@ -1934,7 +1881,6 @@ type university_dept_Department {
 type university_dept_Department__addStaffMember__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeIdempotent(staffMember: university_dept_StaffMember__gqlv_input!): 
university_dept_Department
   params: university_dept_Department__addStaffMember__gqlv_action_params
   validate(staffMember: university_dept_StaffMember__gqlv_input): String
 }
@@ -1953,7 +1899,6 @@ type 
university_dept_Department__addStaffMember__staffMember__gqlv_action_parame
 type university_dept_Department__addStaffMembers__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeIdempotent(staffMembers: [university_dept_StaffMember__gqlv_input]): 
university_dept_Department
   params: university_dept_Department__addStaffMembers__gqlv_action_params
   validate(staffMembers: [university_dept_StaffMember__gqlv_input]): String
 }
@@ -1972,7 +1917,6 @@ type 
university_dept_Department__addStaffMembers__staffMembers__gqlv_action_para
 type university_dept_Department__changeDeptHead__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeIdempotent(newDeptHead: university_dept_DeptHead__gqlv_input!): 
university_dept_Department
   params: university_dept_Department__changeDeptHead__gqlv_action_params
   validate(newDeptHead: university_dept_DeptHead__gqlv_input): String
 }
@@ -1992,7 +1936,6 @@ type 
university_dept_Department__changeDeptHead__newDeptHead__gqlv_action_parame
 type university_dept_Department__changeName__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeIdempotent(newName: String!): university_dept_Department
   params: university_dept_Department__changeName__gqlv_action_params
   validate(newName: String): String
 }
@@ -2013,7 +1956,6 @@ type university_dept_Department__deptHead__gqlv_property {
   disabled: String
   get: university_dept_DeptHead
   hidden: Boolean
-  set(deptHead: university_dept_DeptHead__gqlv_input): 
university_dept_Department
   validate(deptHead: university_dept_DeptHead__gqlv_input): String
 }
 
@@ -2027,14 +1969,12 @@ type university_dept_Department__name__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(name: String!): university_dept_Department
   validate(name: String): String
 }
 
 type university_dept_Department__removeStaffMember__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeIdempotent(staffMember: university_dept_StaffMember__gqlv_input!): 
university_dept_Department
   params: university_dept_Department__removeStaffMember__gqlv_action_params
   validate(staffMember: university_dept_StaffMember__gqlv_input): String
 }
@@ -2072,7 +2012,6 @@ type 
university_dept_Departments__createDepartment__deptHead__gqlv_action_parame
 type university_dept_Departments__createDepartment__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeNonIdempotent(deptHead: university_dept_DeptHead__gqlv_input, name: 
String!): university_dept_Department
   params: university_dept_Departments__createDepartment__gqlv_action_params
   validate(deptHead: university_dept_DeptHead__gqlv_input, name: String): 
String
 }
@@ -2131,7 +2070,6 @@ type 
university_dept_DeptHead__changeDepartment__department__gqlv_action_paramet
 type university_dept_DeptHead__changeDepartment__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeIdempotent(department: university_dept_Department__gqlv_input!): 
university_dept_DeptHead
   params: university_dept_DeptHead__changeDepartment__gqlv_action_params
   validate(department: university_dept_Department__gqlv_input): String
 }
@@ -2143,7 +2081,6 @@ type 
university_dept_DeptHead__changeDepartment__gqlv_action_params {
 type university_dept_DeptHead__changeName__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeIdempotent(newName: String!): university_dept_DeptHead
   params: university_dept_DeptHead__changeName__gqlv_action_params
   validate(newName: String): String
 }
@@ -2164,7 +2101,6 @@ type university_dept_DeptHead__department__gqlv_property {
   disabled: String
   get: university_dept_Department
   hidden: Boolean
-  set(department: university_dept_Department__gqlv_input): 
university_dept_DeptHead
   validate(department: university_dept_Department__gqlv_input): String
 }
 
@@ -2178,7 +2114,6 @@ type university_dept_DeptHead__name__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(name: String): university_dept_DeptHead
   validate(name: String): String
 }
 
@@ -2231,7 +2166,6 @@ type 
university_dept_StaffMember__department__gqlv_property {
   disabled: String
   get: university_dept_Department
   hidden: Boolean
-  set(department: university_dept_Department__gqlv_input): 
university_dept_StaffMember
   validate(department: university_dept_Department__gqlv_input): String
 }
 
@@ -2246,7 +2180,6 @@ type university_dept_StaffMember__grade__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(grade: String!): university_dept_StaffMember
   validate(grade: String): String
 }
 
@@ -2254,7 +2187,6 @@ type university_dept_StaffMember__name__gqlv_property {
   disabled: String
   get: String!
   hidden: Boolean
-  set(name: String!): university_dept_StaffMember
   validate(name: String): String
 }
 
@@ -2262,7 +2194,6 @@ type university_dept_StaffMember__photo__gqlv_property {
   disabled: String
   get: String
   hidden: Boolean
-  set(photo: String): university_dept_StaffMember
   validate(photo: String): String
 }
 
@@ -2276,7 +2207,6 @@ type 
university_dept_Staff__createStaffMember__department__gqlv_action_parameter
 type university_dept_Staff__createStaffMember__gqlv_action {
   disabled: String
   hidden: Boolean
-  invokeNonIdempotent(department: university_dept_Department__gqlv_input!, 
name: String!): university_dept_StaffMember
   params: university_dept_Staff__createStaffMember__gqlv_action_params
   validate(department: university_dept_Department__gqlv_input, name: String): 
String
 }
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 4860a59f26..222c7707b3 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
@@ -109,13 +109,9 @@ public class GraphQlSourceForCauseway implements 
GraphQlSource {
         val codeRegistryBuilder = GraphQLCodeRegistry.newCodeRegistry();
         val context = new Context(codeRegistryBuilder, bookmarkService, 
specificationLoader, typeMapper, serviceRegistry, causewayConfiguration, 
causewaySystemEnvironment);
 
-        // top-level query type and (dependent on configuration) the top-level 
mutation type
-        val topLevelQuery = new GqlvTopLevelQuery(context);
-
         // domain objects
-        val objectSpecifications = context.objectSpecifications();
         val domainObjects = new LinkedHashMap<ObjectSpecification, 
GqlvDomainObject>();
-        objectSpecifications.forEach(objectSpec -> {
+        context.objectSpecifications().forEach(objectSpec -> {
             switch (objectSpec.getBeanSort()) {
 
                 case ABSTRACT:
@@ -132,8 +128,12 @@ public class GraphQlSourceForCauseway implements 
GraphQlSource {
             }
         });
 
+        // top-level query type and (dependent on configuration) the top-level 
mutation type
+        val topLevelQuery = new GqlvTopLevelQuery(context);
+
         // add lookup to top-level query
         domainObjects.forEach(topLevelQuery::addLookupFor);
+
         topLevelQuery.buildQueryType();
 
         val topLevelMutation =
diff --git 
a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelMutation.java
 
b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelMutation.java
index 9f11f63532..8b19244dc1 100644
--- 
a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelMutation.java
+++ 
b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelMutation.java
@@ -60,7 +60,6 @@ public class GqlvTopLevelMutation
         buildMutationType();
 
         addDataFetchers();
-
     }
 
 
diff --git 
a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java
 
b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java
index cb2c7d5643..dcdedbb5ff 100644
--- 
a/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java
+++ 
b/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/toplevel/GqlvTopLevelQuery.java
@@ -45,23 +45,30 @@ public class GqlvTopLevelQuery implements 
GqlvDomainService.Holder {
         this.context = context;
         queryBuilder = newObject().name("Query");
 
-        val objectSpecifications = context.objectSpecifications();
-
 
         // add services to top-level query
-        objectSpecifications.forEach(objectSpec -> {
+        context.objectSpecifications().forEach(objectSpec -> {
             switch (objectSpec.getBeanSort()) {
                 case MANAGED_BEAN_CONTRIBUTING: // @DomainService
                     
context.serviceRegistry.lookupBeanById(objectSpec.getLogicalTypeName())
                             .ifPresent(servicePojo -> {
                                 addDomainService(objectSpec, servicePojo, 
context);
-                                addDataFetchers();
                             });
                     break;
             }
         });
 
-
+        // add services to top-level query
+        context.objectSpecifications().forEach(objectSpec -> {
+            switch (objectSpec.getBeanSort()) {
+                case MANAGED_BEAN_CONTRIBUTING: // @DomainService
+                    
context.serviceRegistry.lookupBeanById(objectSpec.getLogicalTypeName())
+                            .ifPresent(servicePojo -> {
+                                addDataFetchers();
+                            });
+                    break;
+            }
+        });
     }
 
 


Reply via email to