You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/07/09 17:38:26 UTC

[isis] branch v2 updated: ISIS-2142 removes deprecated NatureOfService.VIEW_MENU_ONLY

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

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


The following commit(s) were added to refs/heads/v2 by this push:
     new d4b09c7  ISIS-2142 removes deprecated NatureOfService.VIEW_MENU_ONLY
d4b09c7 is described below

commit d4b09c703e51f6a45b856310a01aebe98b36bf57
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jul 9 19:38:16 2019 +0200

    ISIS-2142 removes deprecated NatureOfService.VIEW_MENU_ONLY
---
 .../isis/applib/annotation/NatureOfService.java    | 114 ++++++++++++---------
 .../services/confview/ConfigurationMenu.java       |   2 +-
 .../applib/services/layout/LayoutServiceMenu.java  |   2 +-
 .../services/metamodel/MetaModelServicesMenu.java  |   2 +-
 .../services/swagger/SwaggerServiceMenu.java       |   2 +-
 .../actions/layout/ActionLayoutFacetFactory.java   |  11 +-
 ...uFacetDerivedFromDomainServiceFacetFactory.java |   4 +-
 .../object/domainservice/DomainServiceFacet.java   |   9 +-
 .../services/swagger/internal/Generation.java      |   3 +-
 ...tionLayoutAnnotationFacetFactoryJunit4Test.java |  77 +++++++-------
 ...etDerivedFromDomainServiceFacetFactoryTest.java |  71 ++++++-------
 ...etDerivedFromDomainServiceFacetFactoryTest.java |   4 +-
 .../runtime/services/hsqldb/HsqlDbManagerMenu.java |   2 +-
 .../services/i18n/po/TranslationServicePoMenu.java |   2 +-
 .../webapp/modules/h2console/H2ManagerMenu.java    |   2 +-
 .../resources/DomainServiceResourceServerside.java |   1 -
 .../dom/actions/assoc/AssociatedActionMenu.java    |   2 +-
 .../dom/actions/async/AsyncActionMenu.java         |   2 +-
 .../actions/depargs/DependentArgsActionMenu.java   |   2 +-
 .../main/java/domainapp/dom/error/ErrorMenu.java   |   2 +-
 .../src/main/java/domainapp/dom/jee/JeeMenu.java   |   2 +-
 .../src/main/java/domainapp/dom/tabs/TabMenu.java  |   2 +-
 .../java/domainapp/dom/tooltip/TooltipMenu.java    |   2 +-
 .../main/java/domainapp/dom/tree/TreeDemoMenu.java |   2 +-
 .../domainapp/dom/types/FeaturedTypesMenu.java     |   2 +-
 .../java/domainapp/dom/impl/HelloWorldObjects.java |   2 +-
 .../modules/simple/dom/impl/SimpleObjects.java     |   2 +-
 .../java/domainapp/dom/impl/HelloWorldObjects.java |   2 +-
 .../modules/simple/dom/impl/SimpleObjects.java     |   2 +-
 .../legacy/fixturespec/FixtureScriptsDefault.java  |   2 +-
 30 files changed, 171 insertions(+), 165 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
index cf47dac..44910bb 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
@@ -23,54 +23,70 @@ package org.apache.isis.applib.annotation;
  */
 public enum NatureOfService {
 
-    /**
-     * The service's actions appear in the viewer, for example in the menu bar.
-     */
-    VIEW,
-    /**
-     * TODO: v2: remove for v2
-     *
-     * @deprecated - use {@link #VIEW} instead
-     */
-    @Deprecated
-    VIEW_MENU_ONLY,
-    /**
-     * TODO: v2: remove for v2
-     *
-     * @deprecated - use mixins instead
-     */
-    @Deprecated
-    VIEW_CONTRIBUTIONS_ONLY,
-    /**
-     * The services actions should only be visible in the REST API exposed by the Restful Objects viewer.
-     */
-    VIEW_REST_ONLY,
-    /**
-     * The service's actions do not appear on menus and are not contributed.
-     */
-    DOMAIN;
-
-    boolean isViewRestOnly() {
-        return this == VIEW_REST_ONLY;
-    }
-    boolean isView() {
-        return this == VIEW;
-    }
-    @Deprecated
-    boolean isViewMenuOnly() {
-        return this == VIEW_MENU_ONLY;
-    }
-    @Deprecated
-    boolean isViewContributionsOnly() {
-        return this == VIEW_CONTRIBUTIONS_ONLY;
-    }
-    boolean isDomain() {
-        return this == DOMAIN;
-    }
-
-    @Deprecated
-    boolean isViewOrViewMenuOnly() {
-        return isView() || isViewMenuOnly();
-    }
+	/**
+	 * The service's actions appear in the viewer, for example in the menu bar.
+	 */
+	VIEW,
+
+	/**
+	 * The services actions should only be visible in the REST API exposed by the Restful Objects viewer.
+	 */
+	VIEW_REST_ONLY,
+
+	/**
+	 * The service's actions do not appear on menus and are not contributed.
+	 */
+	DOMAIN,
+
+
+	//    /**
+	//     * TODO: v2: remove for v2
+	//     *
+	//     * @deprecated - use {@link #VIEW} instead
+	//     */
+	//    @Deprecated
+	//    VIEW_MENU_ONLY,
+
+	/**
+	 * TODO: v2: remove for v2
+	 *
+	 * @deprecated - use mixins instead
+	 */
+	@Deprecated
+	VIEW_CONTRIBUTIONS_ONLY,
+
+	;
+
+	// -- BASIC PREDICATES
+
+	public boolean isViewRestOnly() {
+		return this == VIEW_REST_ONLY;
+	}
+
+	public boolean isView() {
+		return this == VIEW;
+	}
+
+	public boolean isDomain() {
+		return this == DOMAIN;
+	}
+
+	// -- ADVANCED PREDICATES
+
+	// -- DEPRECATIONS
+
+	@Deprecated
+	boolean isViewContributionsOnly() {
+		return this == VIEW_CONTRIBUTIONS_ONLY;
+	}
+
+	/**
+	 * @implNote introduced as a refactoring step, should be removed if no longer required
+	 */
+	public boolean isContributingToViewer() {
+		return
+			//this != NatureOfService.VIEW_MENU_ONLY &&
+	        this != NatureOfService.DOMAIN;
+	}
 
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
index 12f1c3b..590e983 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.ConfigurationMenu"
         )
 @DomainServiceLayout(
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
index 6ee27f4..05df23c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
@@ -35,7 +35,7 @@ import org.apache.isis.applib.value.Clob;
 import org.apache.isis.commons.internal.base._Strings;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.LayoutServiceMenu"
         )
 @DomainServiceLayout(
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
index a65f6b5..8d80824 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
@@ -48,7 +48,7 @@ import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.schema.metamodel.v1.MetamodelDto;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.MetaModelServicesMenu"
         )
 @DomainServiceLayout(
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
index 72f8ba6..89b3fb9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
@@ -32,7 +32,7 @@ import org.apache.isis.commons.internal.resources._Resources;
 
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.SwaggerServiceMenu"
         )
 @DomainServiceLayout(
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
index a71400a..a108b8c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
@@ -21,7 +21,6 @@ package org.apache.isis.metamodel.facets.actions.layout;
 import java.util.List;
 
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
@@ -129,9 +128,8 @@ public class ActionLayoutFacetFactory extends FacetFactoryAbstract implements Co
 
     private static boolean isContributingService(final ObjectSpecification spec) {
         final DomainServiceFacet domainServiceFacet = spec.getFacet(DomainServiceFacet.class);
-        return domainServiceFacet != null && !domainServiceFacet.isNoop() &&
-                domainServiceFacet.getNatureOfService() != NatureOfService.VIEW_MENU_ONLY &&
-                domainServiceFacet.getNatureOfService() != NatureOfService.DOMAIN;
+        return domainServiceFacet != null && !domainServiceFacet.isNoop() && 
+        		domainServiceFacet.getNatureOfService().isContributingToViewer();
     }
 
     private static boolean isMixinObject(final ObjectSpecification spec) {
@@ -140,11 +138,6 @@ public class ActionLayoutFacetFactory extends FacetFactoryAbstract implements Co
         return b;
     }
 
-    // UNUSED
-    protected boolean skipContributing(final DomainServiceFacet domainServiceFacet) {
-        return domainServiceFacet == null || domainServiceFacet.isNoop() || domainServiceFacet.getNatureOfService() == NatureOfService.VIEW_MENU_ONLY || domainServiceFacet.getNatureOfService() == NatureOfService.DOMAIN;
-    }
-
     @Override
     public void process(ProcessContributeeMemberContext processMemberContext) {
         final FacetHolder holder = processMemberContext.getFacetHolder();
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java
index 17bad6c..7235db2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.java
@@ -48,8 +48,8 @@ public class NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory extends F
         }
 
         final NatureOfService natureOfService = domainServiceFacet.getNatureOfService();
-        if(natureOfService == NatureOfService.VIEW_MENU_ONLY || natureOfService == NatureOfService.VIEW) {
-            return;
+        if(natureOfService.isView()) {
+        	return;
         }
 
         final FacetedMethod facetHolder = processMethodContext.getFacetHolder();
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/DomainServiceFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/DomainServiceFacet.java
index 1729a83..902307d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/DomainServiceFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/DomainServiceFacet.java
@@ -41,12 +41,9 @@ public interface DomainServiceFacet extends Facet {
      * Corresponds to {@link org.apache.isis.applib.annotation.DomainService#nature()}.
      *
      * <p>
-     *     If set to {@link org.apache.isis.applib.annotation.NatureOfService#VIEW_MENU_ONLY} or {@link org.apache.isis.applib.annotation.NatureOfService#DOMAIN}, then {@link org.apache.isis.metamodel.facets.actions.notcontributed.NotContributedFacet} is
-     *     derived for all actions.
-     * </p>
-     *
-     * <p>
-     *     If set to {@link org.apache.isis.applib.annotation.NatureOfService#VIEW_CONTRIBUTIONS_ONLY} or {@link org.apache.isis.applib.annotation.NatureOfService#DOMAIN}, then {@link org.apache.isis.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet} is
+     *     If set to {@link org.apache.isis.applib.annotation.NatureOfService#DOMAIN}, 
+     *     then {@link org.apache.isis.metamodel.facets.actions.notcontributed.NotContributedFacet} and
+     *     {@link org.apache.isis.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet} is
      *     derived for all actions.
      * </p>
      */
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/internal/Generation.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/internal/Generation.java
index 17d2e40..25e48f8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/internal/Generation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/internal/Generation.java
@@ -137,8 +137,7 @@ class Generation {
                     domainServiceFacet.getNatureOfService() != NatureOfService.VIEW_REST_ONLY) {
                 continue;
             }
-            if (    domainServiceFacet.getNatureOfService() != NatureOfService.VIEW_MENU_ONLY &&
-                    domainServiceFacet.getNatureOfService() != NatureOfService.VIEW &&
+            if (    domainServiceFacet.getNatureOfService() != NatureOfService.VIEW &&
                     domainServiceFacet.getNatureOfService() != NatureOfService.VIEW_REST_ONLY) {
                 continue;
             }
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
index a2b4f64..08a9133 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
@@ -284,44 +284,45 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
 
         }
 
-        @Test
-        public void onDomainServiceForViewMenuOnly() {
-
-            // given
-            @DomainService(nature = NatureOfService.VIEW_MENU_ONLY)
-            class CustomerService {
-
-                @ActionLayout(contributed = Contributed.AS_NEITHER)
-                public String name() {
-                    return "Joe";
-                }
-            }
-
-            context.checking(new Expectations() {{
-                allowing(mockSpecificationLoader).loadSpecification(CustomerService.class);
-                will(returnValue(mockObjSpec));
-
-                allowing(mockObjSpec).getFacet(DomainServiceFacet.class);
-                will(returnValue(new DomainServiceFacetAbstract(mockObjSpec, null, NatureOfService.VIEW_MENU_ONLY) { }));
-
-                allowing(mockObjSpec).getFacet(MixinFacet.class);
-                will(returnValue(null));
-
-            }});
-
-            expectNoMethodsRemoved();
-
-            facetedMethod = FacetedMethod.createForAction(CustomerService.class, "name");
-
-            // when
-            facetFactory.process(new FacetFactory.ProcessMethodContext(
-            		CustomerService.class, null, facetedMethod.getMethod(), mockMethodRemover, facetedMethod));
-
-            // then
-            final Facet facet = facetedMethod.getFacet(NotContributedFacet.class);
-            assertThat(facet, CoreMatchers.is(nullValue()));
-
-        }
+//TODO[2142] NatureOfService.VIEW_MENU_ONLY was deprecated, remove ? 
+//        @Test
+//        public void onDomainServiceForViewMenuOnly() {
+//
+//            // given
+//            @DomainService(nature = NatureOfService.VIEW_MENU_ONLY)
+//            class CustomerService {
+//
+//                @ActionLayout(contributed = Contributed.AS_NEITHER)
+//                public String name() {
+//                    return "Joe";
+//                }
+//            }
+//
+//            context.checking(new Expectations() {{
+//                allowing(mockSpecificationLoader).loadSpecification(CustomerService.class);
+//                will(returnValue(mockObjSpec));
+//
+//                allowing(mockObjSpec).getFacet(DomainServiceFacet.class);
+//                will(returnValue(new DomainServiceFacetAbstract(mockObjSpec, null, NatureOfService.VIEW_MENU_ONLY) { }));
+//
+//                allowing(mockObjSpec).getFacet(MixinFacet.class);
+//                will(returnValue(null));
+//
+//            }});
+//
+//            expectNoMethodsRemoved();
+//
+//            facetedMethod = FacetedMethod.createForAction(CustomerService.class, "name");
+//
+//            // when
+//            facetFactory.process(new FacetFactory.ProcessMethodContext(
+//            		CustomerService.class, null, facetedMethod.getMethod(), mockMethodRemover, facetedMethod));
+//
+//            // then
+//            final Facet facet = facetedMethod.getFacet(NotContributedFacet.class);
+//            assertThat(facet, CoreMatchers.is(nullValue()));
+//
+//        }
 
         @Test
         public void onDomainServiceForDomainWithBoth() {
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacetFactoryTest.java
index 9ee8e92..17e4844 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacetFactoryTest.java
@@ -49,41 +49,42 @@ public class NotContributedFacetDerivedFromDomainServiceFacetFactoryTest extends
         facetFactory = new NotContributedFacetDerivedFromDomainServiceFacetFactory();
     }
 
-    @Test
-    public void whenMenu() throws Exception {
-
-        // given
-        @DomainService(nature = NatureOfService.VIEW_MENU_ONLY)
-        class CustomerService {
-
-            public String name() {
-                return "Joe";
-            }
-        }
-
-        context.checking(new Expectations() {{
-            allowing(mockSpecificationLoader).loadSpecification(CustomerService.class);
-            will(returnValue(mockObjSpec));
-
-            allowing(mockObjSpec).getFacet(DomainServiceFacet.class);
-            will(returnValue(new DomainServiceFacetAbstract(mockObjSpec, null, NatureOfService.VIEW_MENU_ONLY) {
-            }));
-        }});
-
-        expectNoMethodsRemoved();
-
-        facetedMethod = FacetedMethod.createForAction(CustomerService.class, "name");
-
-        // when
-        facetFactory.process(new FacetFactory.ProcessMethodContext(CustomerService.class, null, facetedMethod.getMethod(), mockMethodRemover, facetedMethod));
-
-        // then
-        final Facet facet = facetedMethod.getFacet(NotContributedFacet.class);
-        assertThat(facet, is(not(nullValue())));
-        assertThat(facet instanceof NotContributedFacetDerivedFromDomainServiceFacet, is(true));
-        final NotContributedFacetDerivedFromDomainServiceFacet facetDerivedFromDomainServiceFacet = (NotContributedFacetDerivedFromDomainServiceFacet) facet;
-        assertThat(facetDerivedFromDomainServiceFacet.getNatureOfService(), equalTo(NatureOfService.VIEW_MENU_ONLY));
-    }
+//TODO[2142] NatureOfService.VIEW_MENU_ONLY was deprecated, remove ?
+//    @Test
+//    public void whenMenu() throws Exception {
+//
+//        // given
+//        @DomainService(nature = NatureOfService.VIEW_MENU_ONLY)
+//        class CustomerService {
+//
+//            public String name() {
+//                return "Joe";
+//            }
+//        }
+//
+//        context.checking(new Expectations() {{
+//            allowing(mockSpecificationLoader).loadSpecification(CustomerService.class);
+//            will(returnValue(mockObjSpec));
+//
+//            allowing(mockObjSpec).getFacet(DomainServiceFacet.class);
+//            will(returnValue(new DomainServiceFacetAbstract(mockObjSpec, null, NatureOfService.VIEW_MENU_ONLY) {
+//            }));
+//        }});
+//
+//        expectNoMethodsRemoved();
+//
+//        facetedMethod = FacetedMethod.createForAction(CustomerService.class, "name");
+//
+//        // when
+//        facetFactory.process(new FacetFactory.ProcessMethodContext(CustomerService.class, null, facetedMethod.getMethod(), mockMethodRemover, facetedMethod));
+//
+//        // then
+//        final Facet facet = facetedMethod.getFacet(NotContributedFacet.class);
+//        assertThat(facet, is(not(nullValue())));
+//        assertThat(facet instanceof NotContributedFacetDerivedFromDomainServiceFacet, is(true));
+//        final NotContributedFacetDerivedFromDomainServiceFacet facetDerivedFromDomainServiceFacet = (NotContributedFacetDerivedFromDomainServiceFacet) facet;
+//        assertThat(facetDerivedFromDomainServiceFacet.getNatureOfService(), equalTo(NatureOfService.VIEW_MENU_ONLY));
+//    }
 
     @Test
     public void whenDomain() throws Exception {
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactoryTest.java
index 5479d15..6146bab 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/notinservicemenu/derived/NotInServiceMenuFacetDerivedFromDomainServiceFacetFactoryTest.java
@@ -160,7 +160,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
     public void whenMenu() throws Exception {
 
         // given
-        @DomainService(nature = NatureOfService.VIEW_MENU_ONLY)
+        @DomainService(nature = NatureOfService.VIEW)
         class CustomerService {
 
             public String name() {
@@ -173,7 +173,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
             will(returnValue(mockObjSpec));
 
             allowing(mockObjSpec).getFacet(DomainServiceFacet.class);
-            will(returnValue(new DomainServiceFacetAbstract(mockObjSpec, null, NatureOfService.VIEW_MENU_ONLY) {
+            will(returnValue(new DomainServiceFacetAbstract(mockObjSpec, null, NatureOfService.VIEW) {
             }));
         }});
 
diff --git a/core/runtime-extensions/src/main/java/org/apache/isis/runtime/services/hsqldb/HsqlDbManagerMenu.java b/core/runtime-extensions/src/main/java/org/apache/isis/runtime/services/hsqldb/HsqlDbManagerMenu.java
index d1812f2..12b08cb 100644
--- a/core/runtime-extensions/src/main/java/org/apache/isis/runtime/services/hsqldb/HsqlDbManagerMenu.java
+++ b/core/runtime-extensions/src/main/java/org/apache/isis/runtime/services/hsqldb/HsqlDbManagerMenu.java
@@ -34,7 +34,7 @@ import org.apache.isis.runtime.system.context.IsisContext;
 import org.hsqldb.util.DatabaseManagerSwing;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.HsqlDbManagerMenu"
         )
 @DomainServiceLayout(
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java
index 45499b0..9fc51c4 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.value.Clob;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.TranslationServicePoMenu"
         )
 @DomainServiceLayout(
diff --git a/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/h2console/H2ManagerMenu.java b/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/h2console/H2ManagerMenu.java
index 31d0e83..58a3f05 100644
--- a/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/h2console/H2ManagerMenu.java
+++ b/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/h2console/H2ManagerMenu.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.value.LocalResourcePath;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.H2ManagerMenu"
         )
 @DomainServiceLayout(
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
index 8156fb7..0e429cf1 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
@@ -65,7 +65,6 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
             }
             final NatureOfService natureOfService = facet.getNatureOfService();
             return  natureOfService == NatureOfService.VIEW ||
-                    natureOfService == NatureOfService.VIEW_MENU_ONLY ||
                     natureOfService == NatureOfService.VIEW_REST_ONLY;
     };
 
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/actions/assoc/AssociatedActionMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/actions/assoc/AssociatedActionMenu.java
index f477d27..58da532 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/actions/assoc/AssociatedActionMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/actions/assoc/AssociatedActionMenu.java
@@ -29,7 +29,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 @DomainObjectLayout(named="Associated Action")
 public class AssociatedActionMenu {
     
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/actions/async/AsyncActionMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/actions/async/AsyncActionMenu.java
index 1242871..8eeb55e 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/actions/async/AsyncActionMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/actions/async/AsyncActionMenu.java
@@ -29,7 +29,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 @DomainObjectLayout(named="Async Actions")
 public class AsyncActionMenu {
     
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/actions/depargs/DependentArgsActionMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/actions/depargs/DependentArgsActionMenu.java
index b39bc10..ab2b0b0 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/actions/depargs/DependentArgsActionMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/actions/depargs/DependentArgsActionMenu.java
@@ -29,7 +29,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 @DomainObjectLayout(named="Associated Action")
 public class DependentArgsActionMenu {
     
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/error/ErrorMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/error/ErrorMenu.java
index 63af618..e47d483 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/error/ErrorMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/error/ErrorMenu.java
@@ -29,7 +29,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 @DomainObjectLayout(named="Error Handling")
 public class ErrorMenu {
     
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/jee/JeeMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/jee/JeeMenu.java
index b3f4e42..284a17a 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/jee/JeeMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/jee/JeeMenu.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 public class JeeMenu {
     
     @Inject private FactoryService factoryService;
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/tabs/TabMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/tabs/TabMenu.java
index 0b56bb4..cf35e12 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/tabs/TabMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/tabs/TabMenu.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 public class TabMenu {
     
     @Inject private FactoryService factoryService;
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/tooltip/TooltipMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/tooltip/TooltipMenu.java
index 91fb320..d31b2bc 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/tooltip/TooltipMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/tooltip/TooltipMenu.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 public class TooltipMenu {
     
     @Inject private FactoryService factoryService;
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/tree/TreeDemoMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/tree/TreeDemoMenu.java
index 85cee25..224ef1e 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/tree/TreeDemoMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/tree/TreeDemoMenu.java
@@ -30,7 +30,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 import domainapp.utils.DemoStub;
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 @DomainObjectLayout(named="Tree Demo")
 public class TreeDemoMenu {
 
diff --git a/examples/apps/demo/src/main/java/domainapp/dom/types/FeaturedTypesMenu.java b/examples/apps/demo/src/main/java/domainapp/dom/types/FeaturedTypesMenu.java
index 6c89896..a2a1ef2 100644
--- a/examples/apps/demo/src/main/java/domainapp/dom/types/FeaturedTypesMenu.java
+++ b/examples/apps/demo/src/main/java/domainapp/dom/types/FeaturedTypesMenu.java
@@ -32,7 +32,7 @@ import domainapp.dom.types.text.TextDemo;
 import domainapp.dom.types.time.TemporalDemo;
 import lombok.val;
 
-@DomainService(nature=NatureOfService.VIEW_MENU_ONLY)
+@DomainService(nature=NatureOfService.VIEW)
 @DomainObjectLayout(named="Featured Types")
 public class FeaturedTypesMenu {
     
diff --git a/examples/apps/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/examples/apps/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index beb75c2..5c4f6cd 100644
--- a/examples/apps/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/examples/apps/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -35,7 +35,7 @@ import org.apache.isis.jdo.jdosupport.IsisJdoSupport_v3_2;
 import domainapp.dom.types.Name;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "helloworld.HelloWorldObjects"
 )
 public class HelloWorldObjects {
diff --git a/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java b/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index 7fa9f26..2ab7708 100644
--- a/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
+++ b/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
@@ -36,7 +36,7 @@ import org.apache.isis.jdo.jdosupport.IsisJdoSupport_v3_2;
 import domainapp.modules.simple.dom.types.Name;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "simple.SimpleObjects"
 )
 public class SimpleObjects {
diff --git a/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index d305490..58a167c 100644
--- a/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -38,7 +38,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import domainapp.dom.types.Name;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "${artifactId}.HelloWorldObjects"
 )
 public class HelloWorldObjects {
diff --git a/examples/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java b/examples/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index 6e6ed6f..b289961 100644
--- a/examples/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
+++ b/examples/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
@@ -39,7 +39,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import domainapp.modules.simple.dom.types.Name;
 
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "simple.SimpleObjects"
 )
 public class SimpleObjects {
diff --git a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/fixturespec/FixtureScriptsDefault.java b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/fixturespec/FixtureScriptsDefault.java
index 2c73c05..238e071 100644
--- a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/fixturespec/FixtureScriptsDefault.java
+++ b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/fixturespec/FixtureScriptsDefault.java
@@ -64,7 +64,7 @@ import org.apache.isis.extensions.fixtures.legacy.fixturescripts.FixtureScripts;
  * </p>
  */
 @DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
+        nature = NatureOfService.VIEW,
         objectType = "isisApplib.FixtureScriptsDefault"
         )
 @DomainServiceLayout(