This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new 51c633beb1 CAUSEWAY-3697: purge filter SPI (from prev. commits)
51c633beb1 is described below

commit 51c633beb1e4c938924273bbd7e240b30cd4cf10
Author: Andi Huber <[email protected]>
AuthorDate: Thu Mar 14 13:21:54 2024 +0100

    CAUSEWAY-3697: purge filter SPI (from prev. commits)
---
 api/applib/src/main/java/module-info.java          |  1 -
 .../scope/ActionContributionFilterService.java     | 45 -----------------
 core/metamodel/src/main/java/module-info.java      |  1 -
 .../metamodel/context/HasMetaModelContext.java     | 11 ----
 .../object/domainservice/DomainServiceFacet.java   | 54 --------------------
 .../domainservice/DomainServiceFacetAbstract.java  | 59 ----------------------
 .../DomainServiceFacetAnnotationFactory.java       | 35 +------------
 .../DomainServiceFacetForAnnotation.java           | 57 ---------------------
 .../causeway/core/metamodel/util/Facets.java       |  5 --
 .../DomainServiceFacetAnnotationFactoryTest.java   | 10 ++--
 .../bootstrap/MenuBarsServiceBootstrap.java        |  2 +-
 .../services/menu/MenuUiServiceDefault.java        |  2 +-
 .../swagger/internal/_OpenApiModelFactory.java     |  7 +--
 .../viewer/context/ResourceContext.java            |  7 ---
 .../resources/DomainServiceResourceServerside.java |  2 +-
 .../resources/DomainServicesListReprRenderer.java  |  2 +-
 .../viewer/resources/HomePageReprRenderer.java     |  2 +-
 17 files changed, 11 insertions(+), 291 deletions(-)

diff --git a/api/applib/src/main/java/module-info.java 
b/api/applib/src/main/java/module-info.java
index b4a89c800f..bfd4bca708 100644
--- a/api/applib/src/main/java/module-info.java
+++ b/api/applib/src/main/java/module-info.java
@@ -97,7 +97,6 @@ module org.apache.causeway.applib {
     exports org.apache.causeway.applib.services.repository;
     exports org.apache.causeway.applib.services.routing;
     exports org.apache.causeway.applib.services.scratchpad;
-    exports org.apache.causeway.applib.services.scope;
     exports org.apache.causeway.applib.services.session;
     exports org.apache.causeway.applib.services.sitemap;
     exports org.apache.causeway.applib.services.sudo;
diff --git 
a/api/applib/src/main/java/org/apache/causeway/applib/services/scope/ActionContributionFilterService.java
 
b/api/applib/src/main/java/org/apache/causeway/applib/services/scope/ActionContributionFilterService.java
deleted file mode 100644
index 7167d1fade..0000000000
--- 
a/api/applib/src/main/java/org/apache/causeway/applib/services/scope/ActionContributionFilterService.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.causeway.applib.services.scope;
-
-import org.springframework.lang.Nullable;
-
-import org.apache.causeway.applib.annotation.DomainService;
-import org.apache.causeway.applib.id.LogicalType;
-
-/**
- * Optional SPI to limit the scope of {@link DomainService} actions that 
contribute to UI or Web-API(s).
- *
- * @since 2.0.0 {index}
- */
-public interface ActionContributionFilterService {
-
-    /**
-     * Whether {@link LogicalType} represents a domain-service
-     * that contributes actions to the UI.
-     */
-    boolean isContributingToUi(final @Nullable LogicalType logicalType);
-
-    /**
-     * Whether {@link LogicalType} represents a domain-service
-     * that contributes actions to the Web API(s).
-     */
-    boolean isContributingToWebApi(final @Nullable LogicalType logicalType);
-
-}
diff --git a/core/metamodel/src/main/java/module-info.java 
b/core/metamodel/src/main/java/module-info.java
index 1a13c1ce55..084d238751 100644
--- a/core/metamodel/src/main/java/module-info.java
+++ b/core/metamodel/src/main/java/module-info.java
@@ -46,7 +46,6 @@ open module org.apache.causeway.core.metamodel {
     exports org.apache.causeway.core.metamodel.facets.object.bookmarkpolicy;
     exports org.apache.causeway.core.metamodel.facets.object.callbacks;
     exports org.apache.causeway.core.metamodel.facets.object.domainobject;
-    exports org.apache.causeway.core.metamodel.facets.object.domainservice;
     exports 
org.apache.causeway.core.metamodel.facets.object.domainservicelayout;
     exports org.apache.causeway.core.metamodel.facets.object.entity;
     exports org.apache.causeway.core.metamodel.facets.object.grid;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/context/HasMetaModelContext.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/context/HasMetaModelContext.java
index ed7893779a..0149cfac46 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/context/HasMetaModelContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/context/HasMetaModelContext.java
@@ -43,7 +43,6 @@ import org.apache.causeway.core.config.CausewayConfiguration;
 import org.apache.causeway.core.config.environment.CausewaySystemEnvironment;
 import org.apache.causeway.core.config.viewer.web.WebAppContextPath;
 import org.apache.causeway.core.metamodel.execution.MemberExecutorService;
-import 
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.causeway.core.metamodel.facets.object.icon.ObjectIconService;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.ObjectManager;
@@ -210,14 +209,4 @@ public interface HasMetaModelContext {
         return getMetaModelContext().streamServiceAdapters();
     }
 
-    default Stream<ManagedObject> streamServicesContributingToWebApi() {
-        return streamServiceAdapters()
-                
.filter(object->DomainServiceFacet.contributingToWebApi().test(object.getSpecification()));
-    }
-
-    default Stream<ManagedObject> streamServicesContributingToUi() {
-        return streamServiceAdapters()
-                
.filter(object->DomainServiceFacet.contributingToUi().test(object.getSpecification()));
-    }
-
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
deleted file mode 100644
index 79d02c8bdf..0000000000
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.causeway.core.metamodel.facets.object.domainservice;
-
-import java.util.function.Predicate;
-
-import org.apache.causeway.core.metamodel.facetapi.Facet;
-import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
-
-public interface DomainServiceFacet extends Facet {
-
-    /**
-     * Whether facetHolder represents a service that contributes actions to 
the UI.
-     * May or may not also contribute to the Web API(s).
-     */
-    boolean isContributingToUi();
-
-    /**
-     * Whether facetHolder represents a service that contributes actions the 
Web API(s).
-     * May or may not also contribute to the UI.
-     */
-    boolean isContributingToWebApi();
-
-    // -- PREDICATES
-
-    static Predicate<ObjectSpecification> contributingToUi() {
-        return spec-> spec.lookupFacet(DomainServiceFacet.class)
-                .map(DomainServiceFacet::isContributingToUi)
-                .orElse(false);
-    }
-
-    static Predicate<ObjectSpecification> contributingToWebApi() {
-        return spec-> spec.lookupFacet(DomainServiceFacet.class)
-                .map(DomainServiceFacet::isContributingToWebApi)
-                .orElse(false);
-    }
-
-}
\ No newline at end of file
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/DomainServiceFacetAbstract.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/DomainServiceFacetAbstract.java
deleted file mode 100644
index e546cb9e86..0000000000
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/DomainServiceFacetAbstract.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.causeway.core.metamodel.facets.object.domainservice;
-
-import java.util.function.BiConsumer;
-
-import org.apache.causeway.core.metamodel.facetapi.Facet;
-import org.apache.causeway.core.metamodel.facetapi.FacetAbstract;
-import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
-
-import lombok.Getter;
-import lombok.NonNull;
-
-public abstract class DomainServiceFacetAbstract
-extends FacetAbstract
-implements DomainServiceFacet {
-
-    private static final Class<? extends Facet> type() {
-        return DomainServiceFacet.class;
-    }
-
-    @Getter(onMethod_={@Override})
-    private final boolean contributingToUi;
-
-    @Getter(onMethod_={@Override})
-    private final boolean contributingToWebApi;
-
-    public DomainServiceFacetAbstract(
-            final boolean contributingToUi,
-            final boolean contributingToWebApi,
-            final @NonNull FacetHolder facetHolder) {
-        super(DomainServiceFacetAbstract.type(), facetHolder);
-        this.contributingToUi = contributingToUi;
-        this.contributingToWebApi = contributingToWebApi;
-    }
-
-    @Override
-    public void visitAttributes(final BiConsumer<String, Object> visitor) {
-        super.visitAttributes(visitor);
-        visitor.accept("isContributingToUi", isContributingToUi());
-        visitor.accept("isContributingToWebApi", isContributingToWebApi());
-    }
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
index 38af74c7f0..1464b8f992 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
@@ -18,24 +18,14 @@
  */
 package 
org.apache.causeway.core.metamodel.facets.object.domainservice.annotation;
 
-import java.util.List;
 import java.util.stream.Collectors;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
 import org.apache.causeway.applib.annotation.DomainService;
-import org.apache.causeway.applib.id.LogicalType;
-import 
org.apache.causeway.applib.services.scope.ActionContributionFilterService;
-import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.facetapi.FeatureType;
 import org.apache.causeway.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.causeway.core.metamodel.facets.FacetFactoryAbstract;
-import 
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.causeway.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAssociation;
 import 
org.apache.causeway.core.metamodel.specloader.validator.ValidationFailure;
@@ -46,20 +36,8 @@ public class DomainServiceFacetAnnotationFactory
 extends FacetFactoryAbstract
 implements MetaModelRefiner {
 
-    private final Can<ActionContributionFilterService> 
actionContributionFilterServices;
-
-    @Component
-    public static class FilterHolder {
-        @Autowired(required = false)
-        List<ActionContributionFilterService> actionContributionFilterServices;
-        Can<ActionContributionFilterService> toCan() {
-            return Can.ofCollection(actionContributionFilterServices);
-        }
-    }
-
     public DomainServiceFacetAnnotationFactory(final MetaModelContext mmc) {
         super(mmc, FeatureType.OBJECTS_ONLY);
-        this.actionContributionFilterServices = 
mmc.getServiceInjector().injectServicesInto(new FilterHolder()).toCan();
     }
 
     @Override
@@ -68,19 +46,8 @@ implements MetaModelRefiner {
         if (!domainServiceIfAny.isPresent()) {
             return;
         }
-
         val facetHolder = processClassContext.getFacetHolder();
 
-        val logicalType = _Casts.castTo(ObjectSpecification.class, facetHolder)
-                .map(ObjectSpecification::getLogicalType)
-                
.orElseGet(()->LogicalType.fqcn(processClassContext.getCls())); // JUnit support
-
-        addFacet(
-                new DomainServiceFacetForAnnotation(
-                        logicalType,
-                        actionContributionFilterServices,
-                        facetHolder));
-
         addFacetIfPresent(
                 AliasedFacetForDomainServiceAnnotation
                     .create(domainServiceIfAny, processClassContext.getCls(), 
facetHolder));
@@ -91,7 +58,7 @@ implements MetaModelRefiner {
 
         programmingModel.addValidatorSkipManagedBeans(spec->{
 
-            if(!spec.containsFacet(DomainServiceFacet.class)) {
+            if(!spec.isDomainService()) {
                 return;
             }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetForAnnotation.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetForAnnotation.java
deleted file mode 100644
index 671d05a5fc..0000000000
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetForAnnotation.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package 
org.apache.causeway.core.metamodel.facets.object.domainservice.annotation;
-
-import org.apache.causeway.applib.id.LogicalType;
-import 
org.apache.causeway.applib.services.scope.ActionContributionFilterService;
-import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
-import 
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacetAbstract;
-
-public class DomainServiceFacetForAnnotation
-extends DomainServiceFacetAbstract {
-
-    public DomainServiceFacetForAnnotation(
-            final LogicalType logicalType,
-            final Can<ActionContributionFilterService> filterServices,
-            final FacetHolder holder) {
-        super(evaluateIsContributingToUi(logicalType, filterServices),
-                evaluateIsContributingToWebApi(logicalType, filterServices),
-                holder);
-    }
-
-    // -- HELPER
-
-    private static boolean evaluateIsContributingToUi(
-            final LogicalType logicalType,
-            final Can<ActionContributionFilterService> filterServices) {
-        var veto = filterServices.stream()
-            .anyMatch(spi->!spi.isContributingToUi(logicalType));
-        return !veto;
-    }
-
-    private static boolean evaluateIsContributingToWebApi(
-            final LogicalType logicalType,
-            final Can<ActionContributionFilterService> filterServices) {
-        var veto = filterServices.stream()
-            .anyMatch(spi->!spi.isContributingToWebApi(logicalType));
-        return !veto;
-    }
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
index 54e61e7b29..1bc3fd0149 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
@@ -54,7 +54,6 @@ import 
org.apache.causeway.core.metamodel.facets.collections.collection.defaultv
 import 
org.apache.causeway.core.metamodel.facets.members.cssclass.CssClassFacet;
 import 
org.apache.causeway.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import 
org.apache.causeway.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
-import 
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import 
org.apache.causeway.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
 import org.apache.causeway.core.metamodel.facets.object.grid.GridFacet;
 import org.apache.causeway.core.metamodel.facets.object.icon.IconFacet;
@@ -183,10 +182,6 @@ public final class Facets {
             
.orElseGet(ParameterConfigOptions.PrecedingParametersPolicy::defaultsIfNotSpecifiedOtherwise);
     }
 
-    public boolean domainServiceIsPresent(final ObjectSpecification 
objectSpec) {
-        return objectSpec.containsFacet(DomainServiceFacet.class);
-    }
-
     public Optional<MenuBar> domainServiceLayoutMenuBar(final 
ObjectSpecification objectSpec) {
         return objectSpec.lookupFacet(DomainServiceLayoutFacet.class)
             .map(DomainServiceLayoutFacet::getMenuBar);
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactoryTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactoryTest.java
index 87a2192950..fbad9b2ae0 100644
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactoryTest.java
+++ 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactoryTest.java
@@ -27,7 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.causeway.applib.annotation.DomainService;
 import org.apache.causeway.core.metamodel.facets.FacetFactoryTestAbstract;
-import 
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacet;
+import 
org.apache.causeway.core.metamodel.facets.object.logicaltype.AliasedFacet;
 
 class DomainServiceFacetAnnotationFactoryTest
 extends FacetFactoryTestAbstract {
@@ -47,7 +47,7 @@ extends FacetFactoryTestAbstract {
     @Test
     void aggregatedAnnotationPickedUpOnClass() {
 
-        @DomainService
+        @DomainService(aliased = "Test")
         class Customers {
         }
 
@@ -55,11 +55,9 @@ extends FacetFactoryTestAbstract {
             //when
             facetFactory.process(processClassContext);
             //then
-            var facet = facetHolder.getFacet(DomainServiceFacet.class);
+            var facet = facetHolder.getFacet(AliasedFacet.class);
             assertNotNull(facet);
-            assertTrue(facet instanceof DomainServiceFacetForAnnotation);
-            DomainServiceFacetForAnnotation domainServiceFacet = 
(DomainServiceFacetForAnnotation) facet;
-            assertNotNull(domainServiceFacet);
+            assertTrue(facet instanceof 
AliasedFacetForDomainServiceAnnotation);
 
             assertNoMethodsRemoved();
         });
diff --git 
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.java
 
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.java
index e3a757d4d1..9f59a51e71 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.java
@@ -263,7 +263,7 @@ implements MenuBarsService {
     private BSMenuBars menuBarsFromAnnotationsOnly() {
         final BSMenuBars menuBars = new BSMenuBars();
 
-        val visibleServiceAdapters = 
metaModelContext.streamServicesContributingToUi()
+        val visibleServiceAdapters = metaModelContext.streamServiceAdapters()
                 .filter(this::isVisibleAdapterForMenu)
                 .collect(Can.toCan());
 
diff --git 
a/viewers/commons/services/src/main/java/org/apache/causeway/viewer/commons/services/menu/MenuUiServiceDefault.java
 
b/viewers/commons/services/src/main/java/org/apache/causeway/viewer/commons/services/menu/MenuUiServiceDefault.java
index 358c6351a5..7b34e4499c 100644
--- 
a/viewers/commons/services/src/main/java/org/apache/causeway/viewer/commons/services/menu/MenuUiServiceDefault.java
+++ 
b/viewers/commons/services/src/main/java/org/apache/causeway/viewer/commons/services/menu/MenuUiServiceDefault.java
@@ -79,7 +79,7 @@ implements MenuUiService {
     // -- HELPER
 
     private List<String> select(final DomainServiceLayout.MenuBar 
menuBarSelect) {
-        return metaModelContext.streamServicesContributingToUi()
+        return metaModelContext.streamServiceAdapters()
                 .filter(with(menuBarSelect))
                 .map(ManagedObject::getSpecification)
                 .map(ObjectSpecification::getLogicalTypeName)
diff --git 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/swagger/internal/_OpenApiModelFactory.java
 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/swagger/internal/_OpenApiModelFactory.java
index 9c6d966b76..d5dbbb2171 100644
--- 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/swagger/internal/_OpenApiModelFactory.java
+++ 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/causeway/viewer/restfulobjects/rendering/service/swagger/internal/_OpenApiModelFactory.java
@@ -36,7 +36,6 @@ import org.apache.causeway.applib.services.swagger.Visibility;
 import org.apache.causeway.commons.internal.base._Refs;
 import org.apache.causeway.commons.internal.collections._Lists;
 import org.apache.causeway.commons.internal.collections._Sets;
-import 
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
@@ -160,10 +159,6 @@ class _OpenApiModelFactory {
 
         for (val spec : specificationLoader.snapshotSpecifications()) {
 
-            if(!DomainServiceFacet.contributingToWebApi().test(spec)) {
-                continue;
-            }
-
             val serviceActions = _Util.actionsOf(spec, visibility, 
classExcluder);
             if(serviceActions.isEmpty()) {
                 continue;
@@ -193,7 +188,7 @@ class _OpenApiModelFactory {
         // but this is now done by SpecificationLoader itself)
         for (final ObjectSpecification objectSpec : 
specificationLoader.snapshotSpecifications()) {
 
-            if(Facets.domainServiceIsPresent(objectSpec)
+            if(objectSpec.isDomainService()
                     || Facets.mixinIsPresent(objectSpec)) {
                 continue;
             }
diff --git 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext.java
 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext.java
index 45b89f4f92..5c01c04389 100644
--- 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext.java
+++ 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/context/ResourceContext.java
@@ -23,7 +23,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import java.util.stream.Stream;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -40,7 +39,6 @@ import org.apache.causeway.commons.internal.collections._Sets;
 import org.apache.causeway.commons.internal.primitives._Ints;
 import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
-import 
org.apache.causeway.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
 import org.apache.causeway.viewer.restfulobjects.applib.JsonRepresentation;
@@ -255,9 +253,4 @@ implements IResourceContext {
     @Setter //(onMethod = @__(@Override))
     private ObjectAdapterLinkTo objectAdapterLinkTo;
 
-    public final Stream<ManagedObject> streamServicesEnabledForWebApi() {
-        return metaModelContext.streamServiceAdapters()
-                
.filter(object->DomainServiceFacet.contributingToWebApi().test(object.getSpecification()));
-    }
-
 }
diff --git 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
index 64b048feb4..a9c869cf5f 100644
--- 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
+++ 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
@@ -78,7 +78,7 @@ implements DomainServiceResource {
         val resourceContext = createResourceContext(
                 RepresentationType.LIST, Where.STANDALONE_TABLES, 
RepresentationService.Intent.NOT_APPLICABLE);
 
-        final Stream<ManagedObject> serviceAdapters = 
resourceContext.streamServicesContributingToWebApi();
+        final Stream<ManagedObject> serviceAdapters = 
resourceContext.streamServiceAdapters();
 
         final DomainServicesListReprRenderer renderer = new 
DomainServicesListReprRenderer(
                 resourceContext, null, JsonRepresentation.newMap());
diff --git 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServicesListReprRenderer.java
 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServicesListReprRenderer.java
index 5c6525cae6..213fb15dc6 100644
--- 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServicesListReprRenderer.java
+++ 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/DomainServicesListReprRenderer.java
@@ -54,7 +54,7 @@ public class DomainServicesListReprRenderer extends 
ListReprRenderer {
         final LinkFollowSpecs linkFollower = 
getLinkFollowSpecs().follow("links");
         if (linkFollower.matches(link)) {
             final DomainServicesListReprRenderer renderer = new 
DomainServicesListReprRenderer(getResourceContext(), linkFollower, 
JsonRepresentation.newMap());
-            
renderer.with(resourceContext.streamServicesContributingToWebApi());
+            renderer.with(resourceContext.streamServiceAdapters());
             link.mapPutJsonRepresentation("value", renderer.render());
         }
         getLinks().arrayAdd(link);
diff --git 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
index fb769ea784..58f584f0cb 100644
--- 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
+++ 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/resources/HomePageReprRenderer.java
@@ -72,7 +72,7 @@ extends ReprRendererAbstract<Void> {
         
addLinkToUser(getResourceContext().getInteractionService().currentInteractionContextElseFail());
         addLinksToApplicationLogos();
         addLinkToMenuBars();
-        
addLinkToServices(metaModelContext.streamServicesContributingToWebApi());
+        addLinkToServices(metaModelContext.streamServiceAdapters());
         addLinkToVersion();
         
addLinkToDomainTypes(getResourceContext().getMetaModelContext().getSpecificationLoader().snapshotSpecifications());
 

Reply via email to