You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/10/09 16:30:11 UTC

[isis] branch dev/2.0.0/ISIS-1742-remove-deprecations updated (136a712 -> 07fed9d)

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

danhaywood pushed a change to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 136a712  ISIS-1742: updates docs, removal of query APIs from DomainObjectContainer
     new 73120db  ISIS-1742: removes @Command annotation and supporting facets
     new b0fdcf8  ISIS-1742: removes @Disabled annotation and supporting facets etc.
     new 1d9ee7e  ISIS-1742: removes reference to @Command and @Disabled from docs
     new 9441868  ISIS-1742: deletes @Hidden, supporting facets and updates .adoc
     new ee32a8a  ISIS-1742: removes @Ignore annotation, update facet factory and updates .adoc
     new 2cc55bf  ISIS-1742: removes @Immutable annotation, update facet factory and updates .adoc
     new eb550c3  ISIS-1742: deletes @Bulk annotation and supporting facets.  Updates .adoc
     new ef89e2d  ISIS-1742: deletes @NotContributed annotation, facets and .adocs.
     new 7d46a07  ISIS-1742: moves NotContributedAs enum from applib to metamodel (core)
     new 07fed9d  ISIS-1742: renames NotContributedFacet methods

The 10 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../asciidoc/guides/rgant/_rgant-Programmatic.adoc |   2 +-
 .../main/asciidoc/guides/rgant/_rgant-Title.adoc   |   9 +-
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |  51 ----
 ...vc_application-layer-api_BackgroundService.adoc |  46 ++--
 ...rgsvc_application-layer-api_CommandContext.adoc |   2 +-
 ...rgsvc_application-layer-api_WrapperFactory.adoc |  36 ++-
 .../guides/rgsvc/_rgsvc_core-domain-api.adoc       |  34 ---
 .../_ugfun_core-concepts_deployment-options.adoc   |   2 +-
 .../_ugtst_integ-test-support_typical-usage.adoc   |   4 +-
 .../pages/common-use-cases/common-use-cases.adoc   |   2 +-
 .../isis/applib/RecreatableDomainObject.java       |   5 -
 .../applib/adapters/ValueSemanticsProvider.java    |   1 -
 .../org/apache/isis/applib/annotation/Bulk.java    | 277 ---------------------
 .../org/apache/isis/applib/annotation/Command.java | 103 --------
 .../isis/applib/annotation/CommandExecuteIn.java   |  18 --
 .../apache/isis/applib/annotation/Disabled.java    |  49 ----
 .../org/apache/isis/applib/annotation/Hidden.java  |  43 ----
 .../org/apache/isis/applib/annotation/Ignore.java  |  37 ---
 .../apache/isis/applib/annotation/Immutable.java   |  43 ----
 .../apache/isis/applib/annotation/InvokeOn.java    |  19 --
 .../apache/isis/applib/annotation/InvokedOn.java   |  24 --
 .../isis/applib/annotation/NotContributed.java     |  85 -------
 .../isis/applib/services/command/Command.java      |  21 +-
 .../applib/services/command/CommandDefault.java    |  16 +-
 .../services/command/spi/CommandService.java       |   2 +-
 .../applib/services/wrapper/WrapperFactory.java    |   1 -
 .../isis/core/metamodel/adapter/ObjectAdapter.java |   4 +-
 .../action/ActionAnnotationFacetFactory.java       |  99 +-------
 .../action/bulk/BulkFacetForActionAnnotation.java  |   5 +-
 .../action/bulk/BulkFacetForBulkAnnotation.java    |  49 ----
 .../actions/action/bulk/BulkFacetObjectOnly.java   |   4 +-
 .../command/CommandFacetForActionAnnotation.java   |  10 +-
 ...ommandFacetForActionAnnotationAsConfigured.java |   8 +-
 .../command/CommandFacetForCommandAnnotation.java  |  54 ----
 .../command/CommandFacetFromConfiguration.java     |  10 +-
 ...DisabledFacetForDisabledAnnotationOnAction.java |  48 ----
 .../HiddenFacetForHiddenAnnotationOnAction.java    |  46 ----
 ...ctionInvocationFacetForDomainEventAbstract.java |   2 +-
 .../metamodel/facets/actions/bulk/BulkFacet.java   |   6 +-
 .../facets/actions/bulk/BulkFacetAbstract.java     |   6 +-
 .../facets/actions/command/CommandFacet.java       |  11 +-
 .../actions/command/CommandFacetAbstract.java      |  17 +-
 ...tContributedFacetForActionLayoutAnnotation.java |  12 +-
 .../notcontributed/NotContributedFacet.java        |  31 ++-
 .../NotContributedFacetAbstract.java               |  32 ++-
 .../annotation/NotContributedFacetAnnotation.java  |  36 ---
 .../NotContributedFacetAnnotationFactory.java      |  72 ------
 ...tributedFacetDerivedFromDomainServiceFacet.java |   4 +-
 .../NotContributedFacetDerivedFromMixinFacet.java  |   4 +-
 .../CollectionAnnotationFacetFactory.java          |  30 +--
 ...bledFacetForDisabledAnnotationOnCollection.java |  48 ----
 ...HiddenFacetForHiddenAnnotationOnCollection.java |  46 ----
 .../DomainObjectAnnotationFacetFactory.java        |  17 +-
 .../annotation/HiddenFacetOnTypeAnnotation.java    |  36 ---
 .../HiddenFacetOnTypeAnnotationFactory.java        |  71 ------
 .../RemoveAnnotatedMethodsFacetFactory.java        |   4 +-
 .../ImmutableFacetForImmutableAnnotation.java      |  49 ----
 .../property/PropertyAnnotationFacetFactory.java   |  31 +--
 .../command/CommandFacetForPropertyAnnotation.java |  10 +-
 ...mandFacetForPropertyAnnotationAsConfigured.java |   8 +-
 ...sabledFacetForDisabledAnnotationOnProperty.java |  45 ----
 .../HiddenFacetForHiddenAnnotationOnProperty.java  |  46 ----
 ...tySetterOrClearFacetForDomainEventAbstract.java |   2 +-
 .../core/metamodel/spec/feature/ObjectAction.java  |   6 +-
 .../specloader/specimpl/ObjectActionDefault.java   |  13 -
 .../specloader/specimpl/ObjectMemberAbstract.java  |   4 +-
 .../dflt/ProgrammingModelFacetsJava5.java          |   7 -
 .../action/ActionAnnotationFacetFactoryTest.java   |  91 +------
 ...DisabledAnnotationOnActionFacetFactoryTest.java | 137 ----------
 .../HiddenAnnotationOnActionFacetFactoryTest.java  | 111 ---------
 ...tionLayoutAnnotationFacetFactoryJunit4Test.java |  14 +-
 .../NotContributedFacetAnnotationFactoryTest.java  | 104 --------
 ...bledAnnotationOnCollectionFacetFactoryTest.java |   3 +-
 ...ddenAnnotationOnCollectionFacetFactoryTest.java |  64 -----
 .../DomainObjectAnnotationFacetFactoryTest.java    |  36 ---
 ...ObjectAnnotationFacetFactoryTest_immutable.java |  90 -------
 ...sabledAnnotationOnPropertyFacetFactoryTest.java |   4 +-
 ...HiddenAnnotationOnPropertyFacetFactoryTest.java |  64 -----
 .../domainservice/ObjectLoaderFixture.java         |   2 -
 .../system/persistence/PersistenceSession.java     |  10 +-
 .../collection/bulk/BulkActionsLinkFactory.java    |  10 -
 todo-deprecation-list.txt                          |  28 +--
 82 files changed, 245 insertions(+), 2498 deletions(-)
 delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
 delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/Command.java
 delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java
 delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java
 delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/Ignore.java
 delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/Immutable.java
 delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributed.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForCommandAnnotation.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/disabled/DisabledFacetForDisabledAnnotationOnAction.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForHiddenAnnotationOnAction.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotation.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/disabled/DisabledFacetForDisabledAnnotationOnCollection.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/hidden/HiddenFacetForHiddenAnnotationOnCollection.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotation.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/ImmutableFacetForImmutableAnnotation.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/disabled/DisabledFacetForDisabledAnnotationOnProperty.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/hidden/HiddenFacetForHiddenAnnotationOnProperty.java
 delete mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/DisabledAnnotationOnActionFacetFactoryTest.java
 delete mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/HiddenAnnotationOnActionFacetFactoryTest.java
 delete mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactoryTest.java
 delete mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/HiddenAnnotationOnCollectionFacetFactoryTest.java
 delete mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest_immutable.java
 delete mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/HiddenAnnotationOnPropertyFacetFactoryTest.java

-- 
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].

[isis] 10/10: ISIS-1742: renames NotContributedFacet methods

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 07fed9de5aad31debdaee9518d6597380171c284
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 17:24:33 2017 +0100

    ISIS-1742: renames NotContributedFacet methods
---
 .../facets/actions/notcontributed/NotContributedFacet.java  |  4 ++--
 .../actions/notcontributed/NotContributedFacetAbstract.java | 10 ++++++----
 .../ActionLayoutAnnotationFacetFactoryJunit4Test.java       | 13 +++++++++----
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
index a82b085..8dbacc1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
@@ -32,8 +32,8 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
  */
 public interface NotContributedFacet extends Facet {
 
-    public NotContributedAs value();
-    public Contributed inverseValue();
+    public NotContributedAs notContributed();
+    public Contributed contributed();
 
     public boolean toActions();
     public boolean toAssociations();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
index 9c70d64..5cde40c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
@@ -51,23 +51,25 @@ public abstract class NotContributedFacetAbstract extends FacetAbstract implemen
     }
 
     @Override
-    public NotContributedAs value() {
+    public NotContributedAs notContributed() {
         return as;
     }
 
     @Override
-    public Contributed inverseValue() {
+    public Contributed contributed() {
         return contributed;
     }
 
     @Override
     public boolean toActions() {
-        return value() == NotContributedAs.EITHER || value() == NotContributedAs.ACTION;
+        // not contributed to actions if...
+        return contributed() == Contributed.AS_NEITHER || contributed() == Contributed.AS_ASSOCIATION;
     }
 
     @Override
     public boolean toAssociations() {
-        return value() == NotContributedAs.EITHER || value() == NotContributedAs.ASSOCIATION;
+        // not contributed to associations if...
+        return contributed() == Contributed.AS_NEITHER || contributed() == Contributed.AS_ACTION;
     }
 
 }
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
index 999674c..d54eea3 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
@@ -156,7 +156,8 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.ACTION));
+            assertThat(facetImpl.notContributed(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.ACTION));
+            assertThat(facetImpl.contributed(), CoreMatchers.equalTo(Contributed.AS_ASSOCIATION));
 
         }
 
@@ -194,7 +195,8 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.ASSOCIATION));
+            assertThat(facetImpl.notContributed(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.ASSOCIATION));
+            assertThat(facetImpl.contributed(), CoreMatchers.equalTo(Contributed.AS_ACTION));
         }
 
         @Test
@@ -230,7 +232,9 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.EITHER));
+            assertThat(facetImpl.notContributed(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.EITHER));
+            assertThat(facetImpl.contributed(), CoreMatchers.equalTo(Contributed.AS_NEITHER));
+
         }
 
         @Test
@@ -267,7 +271,8 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.EITHER));
+            assertThat(facetImpl.notContributed(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.EITHER));
+            assertThat(facetImpl.contributed(), CoreMatchers.equalTo(Contributed.AS_NEITHER));
 
         }
 

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 08/10: ISIS-1742: deletes @NotContributed annotation, facets and .adocs.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit ef89e2d7ed34e5a7e524bd819bc152cea442b036
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 16:51:51 2017 +0100

    ISIS-1742: deletes @NotContributed annotation, facets and .adocs.
    
    Retains NotContributed.As enum, moved out to NotContributedAs enum.
    Also introduces Contributed value to NotContributedFacet
---
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |   9 --
 .../isis/applib/annotation/NotContributed.java     |  85 -----------------
 .../isis/applib/annotation/NotContributedAs.java   |  28 ++++++
 ...tContributedFacetForActionLayoutAnnotation.java |  13 ++-
 .../notcontributed/NotContributedFacet.java        |   6 +-
 .../NotContributedFacetAbstract.java               |  31 ++++--
 .../annotation/NotContributedFacetAnnotation.java  |  36 -------
 .../NotContributedFacetAnnotationFactory.java      |  72 --------------
 ...tributedFacetDerivedFromDomainServiceFacet.java |   5 +-
 .../NotContributedFacetDerivedFromMixinFacet.java  |   5 +-
 .../dflt/ProgrammingModelFacetsJava5.java          |   3 -
 ...tionLayoutAnnotationFacetFactoryJunit4Test.java |  10 +-
 .../NotContributedFacetAnnotationFactoryTest.java  | 104 ---------------------
 todo-deprecation-list.txt                          |   4 +-
 14 files changed, 75 insertions(+), 336 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index d7544a5..681c3cf 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -30,15 +30,6 @@ The annotations listed in the table below are still supported by Apache Isis, bu
 |
 
 
-|`@NotContributed`
-|Indicates that a domain service action is not rendered as an action on the (entity) types of its parameters.
-For 1-arg query-only actions, controls whether the domain service action is rendered as a property or collection on the entity type of its parameter.
-|Use xref:../rgant/rgant.adoc#_rgant-DomainService_nature[`@DomainService#nature()`] to specify whether any of the actions in a domain service should appear in the menu bars (applies at type level, not action level).
-For individual actions, use xref:../rgant/rgant.adoc#_rgant-ActionLayout_contributedAs[`@ActionLayout#` +
-`contributedAs()`] to specify whether any individual action should be contributed only as an action or as an association (property or collection).
-|UI
-|
-
 |`@NotInServiceMenu`
 |Indicates that a domain service should not be rendered in the application menu (at top of page in Wicket viewer).
 |xref:../rgant/rgant.adoc#_rgant-DomainService_nature[`@DomainService#nature()`] to signify that none of the actions in a domain service should appear in the menu bars
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributed.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributed.java
deleted file mode 100644
index 0ea2741..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributed.java
+++ /dev/null
@@ -1,85 +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.isis.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Indicates the a (repository) action should not be contributed, either as
- * an object action, or as an association (property/collection), or as either.
- * <p/>
- * <p/>
- * It may still be appear in the repository menu (unless it has been annotated
- * as {@link NotInServiceMenu}).
- * <p/>
- * <p/>
- * If annotated with {@link Hidden}, then also implies that the
- * menu should not be contributed.
- * <p/>
- * <p/>
- * Has no meaning for actions on regular entities.
- *
- * @deprecated - to not contribute at all, move action to a service whose {@link org.apache.isis.applib.annotation.DomainService#nature() nature} is {@link org.apache.isis.applib.annotation.NatureOfService#VIEW_MENU_ONLY} or {@link org.apache.isis.applib.annotation.NatureOfService#DOMAIN}; to contribute only as an action or as an association, ensure action is in a service whose nature is {@link org.apache.isis.applib.annotation.NatureOfService#VIEW} or {@link org.apache.isis.applib.annot [...]
- */
-@Deprecated
-@Inherited
-@Target({ElementType.METHOD})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface NotContributed {
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    public enum As {
-        ACTION,
-        ASSOCIATION,
-        EITHER,
-        NEITHER; /* ie contributed as both ! */
-
-        /**
-         * @deprecated
-         */
-        @Deprecated
-        public static As from(final Contributed contributed) {
-            if(contributed == null) { return null; }
-            switch (contributed) {
-                case AS_ACTION: return As.ASSOCIATION;
-                case AS_ASSOCIATION: return As.ACTION;
-                case AS_NEITHER: return As.EITHER;
-                case AS_BOTH: return null;
-            }
-            return null;
-        }
-
-    }
-
-    /**
-     * @deprecated
-     * @return
-     */
-    @Deprecated
-    As value() default As.EITHER;
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributedAs.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributedAs.java
new file mode 100644
index 0000000..2c5eaa8
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributedAs.java
@@ -0,0 +1,28 @@
+package org.apache.isis.applib.annotation;
+
+/**
+ * @deprecated
+ */
+@Deprecated
+public enum NotContributedAs {
+    ACTION,
+    ASSOCIATION,
+    EITHER,
+    NEITHER; /* ie contributed as both ! */
+
+    /**
+     * @deprecated
+     */
+    @Deprecated
+    public static NotContributedAs notFrom(final Contributed contributed) {
+        if(contributed == null) { return null; }
+        switch (contributed) {
+            case AS_ACTION: return NotContributedAs.ASSOCIATION;
+            case AS_ASSOCIATION: return NotContributedAs.ACTION;
+            case AS_NEITHER: return NotContributedAs.EITHER;
+            case AS_BOTH: return null;
+        }
+        return null;
+    }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
index 7273c48..8cdc9e6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Contributed;
-import org.apache.isis.applib.annotation.NotContributed;
+import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
@@ -35,15 +35,18 @@ public class NotContributedFacetForActionLayoutAnnotation extends NotContributed
             return null;
         }
         final Contributed contributed = actionLayout.contributed();
-        final NotContributed.As as = NotContributed.As.from(contributed);
+        final NotContributedAs as = NotContributedAs.notFrom(contributed);
         if(as == null) {
             return null;
         }
-        return new NotContributedFacetForActionLayoutAnnotation(as, holder);
+        return new NotContributedFacetForActionLayoutAnnotation(as, contributed, holder);
     }
 
-    private NotContributedFacetForActionLayoutAnnotation(final NotContributed.As as, final FacetHolder holder) {
-        super(as, holder);
+    private NotContributedFacetForActionLayoutAnnotation(
+            final NotContributedAs as,
+            final Contributed contributed,
+            final FacetHolder holder) {
+        super(as, contributed, holder);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
index 7d80dca..3819a2f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
@@ -19,7 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.notcontributed;
 
-import org.apache.isis.applib.annotation.NotContributed.As;
+import org.apache.isis.applib.annotation.Contributed;
+import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 /**
@@ -32,7 +33,8 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
  */
 public interface NotContributedFacet extends Facet {
 
-    public As value();
+    public NotContributedAs value();
+    public Contributed inverseValue();
 
     public boolean toActions();
     public boolean toAssociations();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
index c98815e..ee03c94 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
@@ -19,41 +19,56 @@
 
 package org.apache.isis.core.metamodel.facets.actions.notcontributed;
 
-import org.apache.isis.applib.annotation.NotContributed.As;
+import org.apache.isis.applib.annotation.Contributed;
+import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public abstract class NotContributedFacetAbstract extends FacetAbstract implements NotContributedFacet {
 
-    private final As as;
+    private final NotContributedAs as;
+    private final Contributed contributed;
 
     public static Class<? extends Facet> type() {
         return NotContributedFacet.class;
     }
 
-    public NotContributedFacetAbstract(final As as, final FacetHolder holder) {
-        this(as, holder, Derivation.NOT_DERIVED);
+    public NotContributedFacetAbstract(
+            final NotContributedAs as,
+            final Contributed contributed,
+            final FacetHolder holder) {
+        this(as, contributed, holder, Derivation.NOT_DERIVED);
     }
 
-    public NotContributedFacetAbstract(final As as, final FacetHolder holder, final Derivation derivation) {
+    public NotContributedFacetAbstract(
+            final NotContributedAs as,
+            final Contributed contributed,
+            final FacetHolder holder,
+            final Derivation derivation) {
         super(type(), holder, derivation);
         this.as = as;
+        this.contributed = contributed;
     }
 
     @Override
-    public As value() {
+    public NotContributedAs value() {
         return as;
     }
 
     @Override
+    public Contributed inverseValue() {
+        return contributed;
+    }
+
+    @Override
     public boolean toActions() {
-        return value() == As.EITHER || value() == As.ACTION;
+        return value() == NotContributedAs.EITHER || value() == NotContributedAs.ACTION;
     }
 
     @Override
     public boolean toAssociations() {
-        return value() == As.EITHER || value() == As.ASSOCIATION;
+        return value() == NotContributedAs.EITHER || value() == NotContributedAs.ASSOCIATION;
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotation.java
deleted file mode 100644
index a9cb337..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotation.java
+++ /dev/null
@@ -1,36 +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.isis.core.metamodel.facets.actions.notcontributed.annotation;
-
-import org.apache.isis.applib.annotation.NotContributed.As;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class NotContributedFacetAnnotation extends NotContributedFacetAbstract {
-
-    public NotContributedFacetAnnotation(As as, final FacetHolder holder) {
-        super(as, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
deleted file mode 100644
index 407fcb8..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactory.java
+++ /dev/null
@@ -1,72 +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.isis.core.metamodel.facets.actions.notcontributed.annotation;
-
-import org.apache.isis.applib.annotation.NotContributed;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
-import org.apache.isis.core.metamodel.progmodel.DeprecatedMarker;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class NotContributedFacetAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, DeprecatedMarker {
-
-    private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(NotContributed.class);
-
-    public NotContributedFacetAnnotationFactory() {
-        super(FeatureType.ACTIONS_ONLY);
-    }
-
-    @Override
-    public void process(final ProcessMethodContext processMethodContext) {
-        final NotContributed annotation = Annotations.getAnnotation(processMethodContext.getMethod(), NotContributed.class);
-        final NotContributedFacet facet = create(annotation, processMethodContext.getFacetHolder());
-        FacetUtil.addFacet(validator.flagIfPresent(facet, processMethodContext));
-    }
-
-    private NotContributedFacet create(final NotContributed annotation, final FacetHolder holder) {
-        return annotation == null ? null : new NotContributedFacetAnnotation(annotation.value(), holder);
-    }
-
-    @Override
-    public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
-        metaModelValidator.add(validator);
-    }
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = servicesInjector.getConfigurationServiceInternal();
-        validator.setConfiguration(configuration);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java
index 3dd7ec4..66ae56b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java
@@ -19,8 +19,9 @@
 package org.apache.isis.core.metamodel.facets.actions.notcontributed.derived;
 
 
+import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.NotContributed;
+import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
 
@@ -30,7 +31,7 @@ public class NotContributedFacetDerivedFromDomainServiceFacet extends NotContrib
     private final NatureOfService natureOfService;
 
     public NotContributedFacetDerivedFromDomainServiceFacet(final NatureOfService natureOfService, final FacetHolder holder) {
-        super(NotContributed.As.EITHER, holder, Derivation.DERIVED);
+        super(NotContributedAs.EITHER, Contributed.AS_NEITHER , holder, Derivation.DERIVED);
         this.natureOfService = natureOfService;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java
index 8e8fea3..f7bf3df 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java
@@ -19,7 +19,8 @@
 package org.apache.isis.core.metamodel.facets.actions.notcontributed.derived;
 
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.NotContributed;
+import org.apache.isis.applib.annotation.Contributed;
+import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
 
@@ -31,7 +32,7 @@ public class NotContributedFacetDerivedFromMixinFacet extends NotContributedFace
 
     public NotContributedFacetDerivedFromMixinFacet(
             final FacetHolder holder) {
-        super(NotContributed.As.NEITHER, holder, Derivation.DERIVED);
+        super(NotContributedAs.NEITHER, Contributed.AS_NEITHER, holder, Derivation.DERIVED);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index c88e412..04d36c7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -23,7 +23,6 @@ import org.apache.isis.core.metamodel.facets.actions.action.ActionChoicesForColl
 import org.apache.isis.core.metamodel.facets.actions.defaults.method.ActionDefaultsFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.actions.homepage.annotation.HomePageFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.actions.layout.ActionLayoutFacetFactory;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.annotation.NotContributedFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacetFactory;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacetFactory;
 import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.annotation.NotInServiceMenuFacetAnnotationFactory;
@@ -292,8 +291,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
 
         addFactory(new EncodableFacetAnnotationElseConfigurationFactory());
         
-        addFactory(new NotContributedFacetAnnotationFactory());
-
         addFactory(new NotInServiceMenuFacetAnnotationFactory());
 
         addFactory(new NotInServiceMenuFacetViaMethodFactory());
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
index c314caa..3bf9b7a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.NotContributed;
+import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
 import org.apache.isis.core.metamodel.facets.FacetFactory;
@@ -157,7 +157,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributed.As.ACTION));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.ACTION));
 
         }
 
@@ -195,7 +195,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributed.As.ASSOCIATION));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.ASSOCIATION));
         }
 
         @Test
@@ -231,7 +231,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributed.As.EITHER));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.EITHER));
         }
 
         @Test
@@ -268,7 +268,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributed.As.EITHER));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.EITHER));
 
         }
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactoryTest.java
deleted file mode 100644
index 289c8bc..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/annotation/NotContributedFacetAnnotationFactoryTest.java
+++ /dev/null
@@ -1,104 +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.isis.core.metamodel.facets.actions.notcontributed.annotation;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.NotContributed;
-import org.apache.isis.applib.annotation.NotContributed.As;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class NotContributedFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
-
-    private NotContributedFacetAnnotationFactory facetFactory;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        facetFactory = new NotContributedFacetAnnotationFactory();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        facetFactory = null;
-        super.tearDown();
-    }
-
-    public void testAnnotationPickedUp() {
-        class CustomerRepository {
-            @NotContributed
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(CustomerRepository.class, "someAction");
-
-        facetFactory.process(new ProcessMethodContext(CustomerRepository.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final NotContributedFacet facet = facetedMethod.getFacet(NotContributedFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof NotContributedFacetAbstract);
-        assertThat(facet.value(), is(As.EITHER));
-
-        assertNoMethodsRemoved();
-    }
-
-    public void testAnnotationPickedUpWithAsAssociation() {
-        class CustomerRepository {
-            @NotContributed(As.ASSOCIATION)
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(CustomerRepository.class, "someAction");
-        
-        facetFactory.process(new ProcessMethodContext(CustomerRepository.class, null, actionMethod, methodRemover, facetedMethod));
-        
-        final NotContributedFacet facet = facetedMethod.getFacet(NotContributedFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof NotContributedFacetAbstract);
-        assertThat(facet.value(), is(As.ASSOCIATION));
-        
-        assertNoMethodsRemoved();
-    }
-    
-    public void testAnnotationPickedUpWithAsAction() {
-        class CustomerRepository {
-            @NotContributed(As.ACTION)
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(CustomerRepository.class, "someAction");
-        
-        facetFactory.process(new ProcessMethodContext(CustomerRepository.class, null, actionMethod, methodRemover, facetedMethod));
-        
-        final NotContributedFacet facet = facetedMethod.getFacet(NotContributedFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof NotContributedFacetAbstract);
-        assertThat(facet.value(), is(As.ACTION));
-        
-        assertNoMethodsRemoved();
-    }
-    
-}
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index f3b4994..e8b3ef2 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -11,9 +11,6 @@ org.apache.isis.applib
 org.apache.isis.applib.annotation
 
 
-
-
-
     Mandatory.java - entire annotation, use @Property(optionality=...) and @Parameter(optionality=...), or @javax.annotations.Nullable
     Optional.java - entire annotation, use @Property(optionality=...) and @Parameter(optionality=...), or @javax.annotations.Nullable
 
@@ -42,6 +39,7 @@ org.apache.isis.applib.events - entire package.  These event classes supported o
                                 redundant as @Xxx(domainEvent=...) on member achieves much the same effect using event bus
 org.apache.isis.applib.filter  - entire package of Filter classes; use guava Predicate instead.
 
+
 org.apache.isis.applib.fixturescripts
     FixtureScript.java  - various methods to simplify API
         add(...) - use addResult(...) instead

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 01/10: ISIS-1742: removes @Command annotation and supporting facets

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 73120dbfe44cb24f717354196f6380b6611edf93
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 14:36:44 2017 +0100

    ISIS-1742: removes @Command annotation and supporting facets
---
 .../org/apache/isis/applib/annotation/Command.java | 103 ---------------------
 .../isis/applib/annotation/CommandExecuteIn.java   |  18 ----
 .../isis/applib/services/command/Command.java      |  21 ++---
 .../applib/services/command/CommandDefault.java    |  16 ++--
 .../services/command/spi/CommandService.java       |   2 +-
 .../action/ActionAnnotationFacetFactory.java       |  18 +---
 .../command/CommandFacetForActionAnnotation.java   |  10 +-
 ...ommandFacetForActionAnnotationAsConfigured.java |   8 +-
 .../command/CommandFacetForCommandAnnotation.java  |  54 -----------
 .../command/CommandFacetFromConfiguration.java     |  10 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |   2 +-
 .../facets/actions/command/CommandFacet.java       |  11 ++-
 .../actions/command/CommandFacetAbstract.java      |  17 ++--
 .../command/CommandFacetForPropertyAnnotation.java |  10 +-
 ...mandFacetForPropertyAnnotationAsConfigured.java |   8 +-
 ...tySetterOrClearFacetForDomainEventAbstract.java |   2 +-
 .../specloader/specimpl/ObjectMemberAbstract.java  |   4 +-
 .../action/ActionAnnotationFacetFactoryTest.java   |  40 ++------
 todo-deprecation-list.txt                          |   5 +-
 19 files changed, 68 insertions(+), 291 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Command.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Command.java
deleted file mode 100644
index a8e208c..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Command.java
+++ /dev/null
@@ -1,103 +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.isis.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @deprecated - use {@link Action#command()} instead
- */
-@Deprecated
-@Inherited
-@Target({ ElementType.METHOD })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Command {
-
-    /**
-     * @deprecated - see {@link CommandPersistence}
-     */
-    @Deprecated
-    public static enum Persistence {
-        /**
-         * @deprecated - see {@link CommandPersistence#PERSISTED}
-         */
-        @Deprecated
-        PERSISTED,
-        /**
-         * @deprecated - see {@link CommandPersistence#IF_HINTED}
-         */
-        @Deprecated
-        IF_HINTED,
-        /**
-         * @deprecated - see {@link CommandPersistence#NOT_PERSISTED}
-         */
-        @Deprecated
-        NOT_PERSISTED
-    }
-    
-    /**
-     * @deprecated - see {@link org.apache.isis.applib.annotation.Action#commandPersistence()}.
-     */
-    @Deprecated
-    Persistence persistence() default Persistence.PERSISTED;
-
-    
-    // //////////////////////////////////////
-
-
-    /**
-     * @deprecated - use {@link CommandExecuteIn}
-     */
-    @Deprecated
-    public static enum ExecuteIn {
-        /**
-         * @deprecated - use {@link CommandExecuteIn#FOREGROUND}
-         */
-        @Deprecated
-        FOREGROUND,
-        /**
-         * @deprecated - use {@link CommandExecuteIn#BACKGROUND}
-         */
-        @Deprecated
-        BACKGROUND;
-
-
-
-    }
-
-
-    /**
-     * @deprecated - use {@link Action#commandExecuteIn()}
-     */
-    @Deprecated
-    ExecuteIn executeIn() default ExecuteIn.FOREGROUND;
-
-    
-    /**
-     * @deprecated - use {@link Action#command()} to specify if the action is handled as a command or not.
-     */
-    @Deprecated
-    boolean disabled() default false;
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/CommandExecuteIn.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/CommandExecuteIn.java
index ddd557d..6c666c5 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/CommandExecuteIn.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/CommandExecuteIn.java
@@ -40,24 +40,6 @@ public enum CommandExecuteIn {
      */
     BACKGROUND;
 
-    @Deprecated
-    public static CommandExecuteIn from(final Command.ExecuteIn executeIn) {
-        if(executeIn == null) return null;
-        if(executeIn == Command.ExecuteIn.FOREGROUND) return FOREGROUND;
-        if(executeIn == Command.ExecuteIn.BACKGROUND) return BACKGROUND;
-        // shouldn't happen
-        throw new IllegalArgumentException("Unrecognized : executeIn" + executeIn);
-    }
-
-    @Deprecated
-    public static Command.ExecuteIn from(final CommandExecuteIn commandExecuteIn) {
-        if(commandExecuteIn == null) return null;
-        if(commandExecuteIn == FOREGROUND) return Command.ExecuteIn.FOREGROUND;
-        if(commandExecuteIn == BACKGROUND) return Command.ExecuteIn.BACKGROUND;
-        // shouldn't happen
-        throw new IllegalArgumentException("Unrecognized : executeIn" + commandExecuteIn);
-    }
-
     public static class Type {
 
         private Type() {}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java b/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
index 2118897..756bb34 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
@@ -20,8 +20,8 @@ import java.sql.Timestamp;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.applib.annotation.Optional;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.clock.Clock;
@@ -32,7 +32,6 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
 import org.apache.isis.applib.services.iactn.Interaction;
-import org.apache.isis.applib.services.publish.EventMetadata;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.schema.cmd.v1.CommandDto;
 
@@ -58,7 +57,7 @@ import org.apache.isis.schema.cmd.v1.CommandDto;
  * <p>
  *     One of the responsibilities of the command is to generate unique sequence numbers for a given transactionId.
  *     This is done by {@link #next(String)}.  There are three possible sequences that might be generated:
- *     the sequence of changed domain objects being published by the {@link org.apache.isis.applib.services.publish.PublishingService#publish(EventMetadata, EventPayload)}; the
+ *     the sequence of changed domain objects being published by the {@link org.apache.isis.applib.services.publish.PublisherService#publish(Interaction.Execution)}; the
  *     sequence of wrapped action invocations (each being published), and finally one or more background commands
  *     that might be scheduled via the {@link BackgroundService}.
  * </p>
@@ -219,15 +218,15 @@ public interface Command extends HasTransactionId {
 
     /**
      * The mechanism by which this command is to be executed, either synchronously &quot;in the 
-     * {@link ExecuteIn#FOREGROUND foreground}&quot; or is to be executed asynchronously &quot;in the 
-     * {@link ExecuteIn#BACKGROUND background}&quot; through the {@link BackgroundCommandService}.
+     * {@link CommandExecuteIn#FOREGROUND foreground}&quot; or is to be executed asynchronously &quot;in the
+     * {@link CommandExecuteIn#BACKGROUND background}&quot; through the {@link BackgroundCommandService}.
      */
-    ExecuteIn getExecuteIn();
+    CommandExecuteIn getExecuteIn();
     
     /**
      * <b>NOT API</b>: intended to be called only by the framework.
      */
-    void setExecuteIn(final ExecuteIn executeIn);
+    void setExecuteIn(final CommandExecuteIn executeIn);
 
     //endregion
 
@@ -283,7 +282,7 @@ public interface Command extends HasTransactionId {
      * For an command that has actually been executed, holds the date/time at which the {@link Interaction} that
      * executed the command started.
      *
-     * @deprecated - see {@link Interaction#getStartedAt()}.
+     * @deprecated - see {@link Interaction.Execution#getStartedAt()}.
      */
     @Deprecated
     Timestamp getStartedAt();
@@ -396,12 +395,12 @@ public interface Command extends HasTransactionId {
      * {@link Command}.  The hinting mechanism allows the service to suggest that the parent command be persisted so
      * that the app can then provide a mechanism to find all child background commands for that original parent command.
      */
-    Persistence getPersistence();
+    CommandPersistence getPersistence();
     
     /**
      * <b>NOT API</b>: intended to be called only by the framework.
      */
-    void setPersistence(final Persistence persistence);
+    void setPersistence(final CommandPersistence persistence);
     //endregion
 
     //region > persistHint (programmatic)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java
index b5b2e7b..d4c8f0f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java
@@ -27,8 +27,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
@@ -239,10 +239,10 @@ public class CommandDefault implements Command3 {
 
     //region > executionType (property)
 
-    private ExecuteIn executionType;
+    private CommandExecuteIn executionType;
 
     @Override
-    public ExecuteIn getExecuteIn() {
+    public CommandExecuteIn getExecuteIn() {
         return executionType;
     }
 
@@ -250,7 +250,7 @@ public class CommandDefault implements Command3 {
      * <b>NOT API</b>: intended to be called only by the framework.
      */
     @Override
-    public void setExecuteIn(ExecuteIn executionType) {
+    public void setExecuteIn(CommandExecuteIn executionType) {
         this.executionType = executionType;
     }
 
@@ -322,15 +322,15 @@ public class CommandDefault implements Command3 {
 
     //region > persistence
 
-    private Persistence persistence;
+    private CommandPersistence persistence;
     
     @Override
-    public Persistence getPersistence() {
+    public CommandPersistence getPersistence() {
         return persistence;
     }
     
     @Override
-    public void setPersistence(Persistence persistence) {
+    public void setPersistence(CommandPersistence persistence) {
         this.persistence = persistence; 
     }
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/command/spi/CommandService.java b/core/applib/src/main/java/org/apache/isis/applib/services/command/spi/CommandService.java
index 5d018de..1fa17fa 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/command/spi/CommandService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/command/spi/CommandService.java
@@ -44,7 +44,7 @@ public interface CommandService {
     
     /**
      * Hint for this implementation to eagerly persist the {@link Command}s if possible; influences the behaviour 
-     * of actions annotated to execute in the {@link org.apache.isis.applib.annotation.Command.ExecuteIn#BACKGROUND}.
+     * of actions annotated to execute in the {@link org.apache.isis.applib.annotation.CommandExecuteIn#BACKGROUND}.
      */
     @Programmatic
     boolean persistIfPossible(Command command);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 9c06de4..fc5610b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.Bulk;
-import org.apache.isis.applib.annotation.Command;
 import org.apache.isis.applib.annotation.Disabled;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.services.HasTransactionId;
@@ -41,7 +40,6 @@ import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForAct
 import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForBulkAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetObjectOnly;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForCommandAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.disabled.DisabledFacetForDisabledAnnotationOnAction;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForHiddenAnnotationOnAction;
@@ -74,7 +72,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
             implements MetaModelValidatorRefiner {
 
     private final MetaModelValidatorForDeprecatedAnnotation bulkValidator = new MetaModelValidatorForDeprecatedAnnotation(Bulk.class);
-    private final MetaModelValidatorForDeprecatedAnnotation commandValidator = new MetaModelValidatorForDeprecatedAnnotation(Command.class);
     private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
     private final MetaModelValidatorForDeprecatedAnnotation disabledValidator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
 
@@ -274,17 +271,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
             return;
         }
 
-        CommandFacet commandFacet;
-
-        // check for deprecated @Command annotation first
-        final Command annotation = Annotations.getAnnotation(method, Command.class);
-        commandFacet = commandValidator.flagIfPresent(
-                CommandFacetForCommandAnnotation.create(annotation, processMethodContext.getFacetHolder()), processMethodContext);
-
-        // else check for @Action(command=...)
-        if(commandFacet == null) {
-            commandFacet = CommandFacetForActionAnnotation.create(action, getConfiguration(), holder);
-        }
+        // check for @Action(command=...)
+        CommandFacet commandFacet = CommandFacetForActionAnnotation.create(action, getConfiguration(), holder);
 
         FacetUtil.addFacet(commandFacet);
     }
@@ -352,7 +340,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
     @Override
     public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
         metaModelValidator.add(bulkValidator);
-        metaModelValidator.add(commandValidator);
         metaModelValidator.add(hiddenValidator);
         metaModelValidator.add(disabledValidator);
     }
@@ -366,7 +353,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
         final IsisConfiguration configuration = getConfiguration();
 
         bulkValidator.setConfiguration(configuration);
-        commandValidator.setConfiguration(configuration);
         hiddenValidator.setConfiguration(configuration);
         disabledValidator.setConfiguration(configuration);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java
index 66c309b..287cf07 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java
@@ -19,8 +19,6 @@
 package org.apache.isis.core.metamodel.facets.actions.action.command;
 
 import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
 import org.apache.isis.applib.annotation.CommandExecuteIn;
 import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.applib.annotation.CommandReification;
@@ -41,8 +39,8 @@ public class CommandFacetForActionAnnotation extends CommandFacetAbstract {
         final CommandPersistence commandPersistence = action != null ? action.commandPersistence() : CommandPersistence.PERSISTED;
         final CommandExecuteIn commandExecuteIn = action != null? action.commandExecuteIn() :  CommandExecuteIn.FOREGROUND;
 
-        final Persistence persistence = CommandPersistence.from(commandPersistence);
-        final ExecuteIn executeIn = CommandExecuteIn.from(commandExecuteIn);
+        final CommandPersistence persistence = commandPersistence;
+        final CommandExecuteIn executeIn = commandExecuteIn;
 
         switch (command) {
             case AS_CONFIGURED:
@@ -75,8 +73,8 @@ public class CommandFacetForActionAnnotation extends CommandFacetAbstract {
 
 
     CommandFacetForActionAnnotation(
-            final Persistence persistence,
-            final ExecuteIn executeIn,
+            final CommandPersistence persistence,
+            final CommandExecuteIn executeIn,
             final Enablement enablement,
             final FacetHolder holder) {
         super(persistence, executeIn, enablement, holder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotationAsConfigured.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotationAsConfigured.java
index 1433500..07c3d86 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotationAsConfigured.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotationAsConfigured.java
@@ -18,15 +18,15 @@
  */
 package org.apache.isis.core.metamodel.facets.actions.action.command;
 
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CommandFacetForActionAnnotationAsConfigured extends CommandFacetForActionAnnotation {
 
     CommandFacetForActionAnnotationAsConfigured(
-            final Persistence persistence,
-            final ExecuteIn executeIn,
+            final CommandPersistence persistence,
+            final CommandExecuteIn executeIn,
             final Enablement enablement,
             final FacetHolder holder) {
         super(persistence, executeIn, enablement, holder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForCommandAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForCommandAnnotation.java
deleted file mode 100644
index a4739f4..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForCommandAnnotation.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.isis.core.metamodel.facets.actions.action.command;
-
-import org.apache.isis.applib.annotation.Command;
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
-import org.apache.isis.core.metamodel.facets.actions.command.CommandFacetAbstract;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class CommandFacetForCommandAnnotation extends CommandFacetAbstract {
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    public static CommandFacet create(final Command annotation, final FacetHolder holder) {
-        return annotation == null
-                ? null
-                : new CommandFacetForCommandAnnotation(annotation.persistence(), annotation.executeIn(), Enablement.isDisabled(annotation.disabled()), holder);
-    }
-
-    private CommandFacetForCommandAnnotation(
-            final Persistence persistence,
-            final ExecuteIn executeIn,
-            final Enablement enablement,
-            final FacetHolder holder) {
-        super(persistence, executeIn, enablement, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java
index 1533331..4f91364 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.action.command;
 
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacetAbstract;
@@ -28,12 +28,12 @@ import org.apache.isis.core.metamodel.facets.actions.command.CommandFacetAbstrac
 public class CommandFacetFromConfiguration extends CommandFacetAbstract {
 
     public static CommandFacet create(final FacetHolder holder) {
-        return new CommandFacetFromConfiguration(Persistence.PERSISTED, ExecuteIn.FOREGROUND, holder);
+        return new CommandFacetFromConfiguration(CommandPersistence.PERSISTED, CommandExecuteIn.FOREGROUND, holder);
     }
 
     private CommandFacetFromConfiguration(
-            final Persistence persistence, 
-            final ExecuteIn executeIn,
+            final CommandPersistence persistence,
+            final CommandExecuteIn executeIn,
             final FacetHolder holder) {
         super(persistence, executeIn, Enablement.ENABLED, holder);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index a967962..844a46e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -188,7 +188,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
 
         final ObjectAdapter returnedAdapter;
         if( command.getExecutor() == Command.Executor.USER &&
-            command.getExecuteIn() == org.apache.isis.applib.annotation.Command.ExecuteIn.BACKGROUND) {
+            command.getExecuteIn() == org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND) {
 
             // deal with background commands
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacet.java
index 2e70147..6dff421 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacet.java
@@ -19,8 +19,9 @@
 
 package org.apache.isis.core.metamodel.facets.actions.command;
 
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
@@ -34,9 +35,9 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
  */
 public interface CommandFacet extends Facet {
 
-    public Persistence persistence();
+    public CommandPersistence persistence();
     
-    public ExecuteIn executeIn();
+    public CommandExecuteIn executeIn();
     
     /**
      * Indicates that the action to which this {@link Facet} is
@@ -45,7 +46,7 @@ public interface CommandFacet extends Facet {
      * <p>
      * Exists to allow implementations that configure all actions to be treated as 
      * commands, but which can then be disabled for selected actions (eg using 
-     * {@link org.apache.isis.applib.annotation.Command#disabled()}).
+     * {@link Action#command()}).
      */
     public boolean isDisabled();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacetAbstract.java
index bef8ae1..609ecc6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/command/CommandFacetAbstract.java
@@ -19,12 +19,11 @@
 
 package org.apache.isis.core.metamodel.facets.actions.command;
 
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.MarkerFacetAbstract;
-import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
 
 public abstract class CommandFacetAbstract extends MarkerFacetAbstract implements CommandFacet {
 
@@ -41,13 +40,13 @@ public abstract class CommandFacetAbstract extends MarkerFacetAbstract implement
         }
     }
 
-    private final Persistence persistence;
-    private final ExecuteIn executeIn;
+    private final CommandPersistence persistence;
+    private final CommandExecuteIn executeIn;
     private final Enablement enablement;
 
     public CommandFacetAbstract(
-            final Persistence persistence, 
-            final ExecuteIn executeIn, 
+            final CommandPersistence persistence,
+            final CommandExecuteIn executeIn,
             final Enablement enablement, 
             final FacetHolder holder) {
         super(type(), holder);
@@ -57,12 +56,12 @@ public abstract class CommandFacetAbstract extends MarkerFacetAbstract implement
     }
 
     @Override
-    public Persistence persistence() {
+    public CommandPersistence persistence() {
         return this.persistence;
     }
 
     @Override
-    public ExecuteIn executeIn() {
+    public CommandExecuteIn executeIn() {
         return executeIn;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotation.java
index 99db398..f7523b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotation.java
@@ -18,8 +18,6 @@
  */
 package org.apache.isis.core.metamodel.facets.properties.property.command;
 
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
 import org.apache.isis.applib.annotation.CommandExecuteIn;
 import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.applib.annotation.CommandReification;
@@ -41,8 +39,8 @@ public class CommandFacetForPropertyAnnotation extends CommandFacetAbstract {
         final CommandPersistence commandPersistence = property != null ? property.commandPersistence() : CommandPersistence.PERSISTED;
         final CommandExecuteIn commandExecuteIn = property != null? property.commandExecuteIn() :  CommandExecuteIn.FOREGROUND;
 
-        final Persistence persistence = CommandPersistence.from(commandPersistence);
-        final ExecuteIn executeIn = CommandExecuteIn.from(commandExecuteIn);
+        final CommandPersistence persistence = commandPersistence;
+        final CommandExecuteIn executeIn = commandExecuteIn;
 
         switch (command) {
             case AS_CONFIGURED:
@@ -66,8 +64,8 @@ public class CommandFacetForPropertyAnnotation extends CommandFacetAbstract {
 
 
     CommandFacetForPropertyAnnotation(
-            final Persistence persistence,
-            final ExecuteIn executeIn,
+            final CommandPersistence persistence,
+            final CommandExecuteIn executeIn,
             final Enablement enablement,
             final FacetHolder holder) {
         super(persistence, executeIn, enablement, holder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotationAsConfigured.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotationAsConfigured.java
index b048da1..582d8c2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotationAsConfigured.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/command/CommandFacetForPropertyAnnotationAsConfigured.java
@@ -18,15 +18,15 @@
  */
 package org.apache.isis.core.metamodel.facets.properties.property.command;
 
-import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Command.Persistence;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CommandFacetForPropertyAnnotationAsConfigured extends CommandFacetForPropertyAnnotation {
 
     CommandFacetForPropertyAnnotationAsConfigured(
-            final Persistence persistence,
-            final ExecuteIn executeIn,
+            final CommandPersistence persistence,
+            final CommandExecuteIn executeIn,
             final Enablement enablement,
             final FacetHolder holder) {
         super(persistence, executeIn, enablement, holder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
index 8d73785..e30c5e7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
@@ -196,7 +196,7 @@ public abstract class PropertySetterOrClearFacetForDomainEventAbstract
         final String propertyId = owningProperty.getIdentifier().toClassAndNameIdentityString();
 
         if( command.getExecutor() == Command.Executor.USER &&
-                command.getExecuteIn() == org.apache.isis.applib.annotation.Command.ExecuteIn.BACKGROUND) {
+                command.getExecuteIn() == org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND) {
 
             // deal with background commands
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index 66a22e5..8168c55 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -483,8 +483,8 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
             command.setPersistence(commandFacet.persistence());
         } else {
             // if no facet, assume do want to execute right now, but only persist (eventually) if hinted.
-            command.setExecuteIn(org.apache.isis.applib.annotation.Command.ExecuteIn.FOREGROUND);
-            command.setPersistence(org.apache.isis.applib.annotation.Command.Persistence.IF_HINTED);
+            command.setExecuteIn(org.apache.isis.applib.annotation.CommandExecuteIn.FOREGROUND);
+            command.setPersistence(org.apache.isis.applib.annotation.CommandPersistence.IF_HINTED);
         }
     }
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
index cf9bc09..37efcea 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
@@ -50,7 +50,6 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredF
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotationAsConfigured;
-import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForCommandAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetFromConfiguration;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
@@ -763,33 +762,6 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
         }
 
         @Test
-        public void givenDeprecatedAnnotation() {
-            // given
-            class Customer {
-                @org.apache.isis.applib.annotation.Command(
-                        executeIn = org.apache.isis.applib.annotation.Command.ExecuteIn.BACKGROUND,
-                        persistence = org.apache.isis.applib.annotation.Command.Persistence.IF_HINTED
-                )
-                public void someAction() {
-                }
-            }
-            final Method actionMethod = findMethod(Customer.class, "someAction");
-
-            // when
-            facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
-            // then
-            final Facet facet = facetedMethod.getFacet(CommandFacet.class);
-            assertNotNull(facet);
-            assertTrue(facet instanceof CommandFacetForCommandAnnotation);
-            final CommandFacetForCommandAnnotation facetImpl = (CommandFacetForCommandAnnotation) facet;
-
-            assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.Command.Persistence.IF_HINTED));
-
-            expectNoMethodsRemoved();
-        }
-
-        @Test
         public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
 
             // given
@@ -825,8 +797,8 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
             assertNotNull(facet);
             assert(facet instanceof  CommandFacetFromConfiguration);
             final CommandFacetFromConfiguration facetImpl = (CommandFacetFromConfiguration) facet;
-            assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.Command.Persistence.PERSISTED));
-            assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.Command.ExecuteIn.FOREGROUND));
+            assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.PERSISTED));
+            assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.FOREGROUND));
         }
 
         @Test(expected=IllegalStateException.class)
@@ -923,8 +895,8 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
             final Facet facet = facetedMethod.getFacet(CommandFacet.class);
             assertNotNull(facet);
             final CommandFacetForActionAnnotationAsConfigured facetImpl = (CommandFacetForActionAnnotationAsConfigured) facet;
-            assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.Command.Persistence.IF_HINTED));
-            assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.Command.ExecuteIn.BACKGROUND));
+            assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.IF_HINTED));
+            assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND));
         }
 
         @Test(expected=IllegalStateException.class)
@@ -988,8 +960,8 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
             final Facet facet = facetedMethod.getFacet(CommandFacet.class);
             assertNotNull(facet);
             final CommandFacetForActionAnnotationAsConfigured facetImpl = (CommandFacetForActionAnnotationAsConfigured) facet;
-            assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.Command.Persistence.IF_HINTED));
-            assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.Command.ExecuteIn.BACKGROUND));
+            assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.IF_HINTED));
+            assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND));
         }
 
         @Test
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index c583599..78d49f9 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -15,9 +15,6 @@ org.apache.isis.applib.annotation
     Bulk.InteractionContext - entire service, use ActionInvocationContext service instead
     InvokedOn.java - entire enum, along with @Bulk annotation.
 
-    Command.java - entire annotation, use @Action(command=...) instead
-    CommandExecuteIn.java - entire annotation, use @Action(commandExecuteIn=...) instead
-    CommandPersistence.java - entire annotation, use @Action(commandPersistence=...) instead
 
 
     Disabled.java - entire annotation, use @Property(editingDisabledReason=...) instead
@@ -332,6 +329,8 @@ org.apache.isis.applib.annotation
 
     Bookmarkable.java - entire annotation, use @DomainObjectLayout(bookmarking=...)
 
+    Command.java - entire annotation, use @Action(command=...) instead
+
     ActionSemantics.java  - entire annotation, use @Action(semantics=...)
     Idempotent.java - entire annotation, use @Action(semantics=...) instead.
     QueryOnly.java - entire annotation, use @Action(semantics=...) instead.

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 09/10: ISIS-1742: moves NotContributedAs enum from applib to metamodel (core)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7d46a078b8affa532fff6ed4f97b512f7224eab0
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 16:53:20 2017 +0100

    ISIS-1742: moves NotContributedAs enum from applib to metamodel (core)
---
 .../isis/applib/annotation/NotContributedAs.java   | 28 ----------------------
 ...tContributedFacetForActionLayoutAnnotation.java |  1 -
 .../notcontributed/NotContributedFacet.java        | 27 ++++++++++++++++++++-
 .../NotContributedFacetAbstract.java               |  1 -
 ...tributedFacetDerivedFromDomainServiceFacet.java |  1 -
 .../NotContributedFacetDerivedFromMixinFacet.java  |  1 -
 ...tionLayoutAnnotationFacetFactoryJunit4Test.java |  9 ++++---
 7 files changed, 30 insertions(+), 38 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributedAs.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributedAs.java
deleted file mode 100644
index 2c5eaa8..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/NotContributedAs.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.apache.isis.applib.annotation;
-
-/**
- * @deprecated
- */
-@Deprecated
-public enum NotContributedAs {
-    ACTION,
-    ASSOCIATION,
-    EITHER,
-    NEITHER; /* ie contributed as both ! */
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    public static NotContributedAs notFrom(final Contributed contributed) {
-        if(contributed == null) { return null; }
-        switch (contributed) {
-            case AS_ACTION: return NotContributedAs.ASSOCIATION;
-            case AS_ASSOCIATION: return NotContributedAs.ACTION;
-            case AS_NEITHER: return NotContributedAs.EITHER;
-            case AS_BOTH: return null;
-        }
-        return null;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
index 8cdc9e6..2309da4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Contributed;
-import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
index 3819a2f..a82b085 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacet.java
@@ -20,7 +20,6 @@
 package org.apache.isis.core.metamodel.facets.actions.notcontributed;
 
 import org.apache.isis.applib.annotation.Contributed;
-import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 /**
@@ -38,4 +37,30 @@ public interface NotContributedFacet extends Facet {
 
     public boolean toActions();
     public boolean toAssociations();
+
+    /**
+     * @deprecated
+     */
+    @Deprecated enum NotContributedAs {
+        ACTION,
+        ASSOCIATION,
+        EITHER,
+        NEITHER; /* ie contributed as both ! */
+
+        /**
+         * @deprecated
+         */
+        @Deprecated
+        public static NotContributedAs notFrom(final Contributed contributed) {
+            if(contributed == null) { return null; }
+            switch (contributed) {
+                case AS_ACTION: return NotContributedAs.ASSOCIATION;
+                case AS_ASSOCIATION: return NotContributedAs.ACTION;
+                case AS_NEITHER: return NotContributedAs.EITHER;
+                case AS_BOTH: return null;
+            }
+            return null;
+        }
+
+    }
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
index ee03c94..9c70d64 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/NotContributedFacetAbstract.java
@@ -20,7 +20,6 @@
 package org.apache.isis.core.metamodel.facets.actions.notcontributed;
 
 import org.apache.isis.applib.annotation.Contributed;
-import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java
index 66ae56b..9e864fd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromDomainServiceFacet.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.facets.actions.notcontributed.derived;
 
 import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java
index f7bf3df..1f57187 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.metamodel.facets.actions.notcontributed.derived;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Contributed;
-import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
index 3bf9b7a..999674c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryJunit4Test.java
@@ -28,7 +28,6 @@ import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.NotContributedAs;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
 import org.apache.isis.core.metamodel.facets.FacetFactory;
@@ -157,7 +156,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.ACTION));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.ACTION));
 
         }
 
@@ -195,7 +194,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.ASSOCIATION));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.ASSOCIATION));
         }
 
         @Test
@@ -231,7 +230,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.EITHER));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.EITHER));
         }
 
         @Test
@@ -268,7 +267,7 @@ public class ActionLayoutAnnotationFacetFactoryJunit4Test extends AbstractFacetF
             assertThat(facet, CoreMatchers.is(not(nullValue())));
             assertThat(facet instanceof NotContributedFacetForActionLayoutAnnotation, CoreMatchers.is(true));
             final NotContributedFacetForActionLayoutAnnotation facetImpl = (NotContributedFacetForActionLayoutAnnotation) facet;
-            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedAs.EITHER));
+            assertThat(facetImpl.value(), CoreMatchers.equalTo(NotContributedFacet.NotContributedAs.EITHER));
 
         }
 

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 04/10: ISIS-1742: deletes @Hidden, supporting facets and updates .adoc

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 944186857fac4c8810de942b705471af60132f54
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 15:30:41 2017 +0100

    ISIS-1742: deletes @Hidden, supporting facets and updates .adoc
---
 .../asciidoc/guides/rgant/_rgant-Programmatic.adoc |   2 +-
 .../main/asciidoc/guides/rgant/_rgant-Title.adoc   |   9 +-
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |   7 --
 ...rgsvc_application-layer-api_WrapperFactory.adoc |  36 ++++---
 .../isis/applib/RecreatableDomainObject.java       |   5 -
 .../org/apache/isis/applib/annotation/Hidden.java  |  43 --------
 .../applib/services/wrapper/WrapperFactory.java    |   1 -
 .../action/ActionAnnotationFacetFactory.java       |  17 +---
 .../HiddenFacetForHiddenAnnotationOnAction.java    |  46 ---------
 .../CollectionAnnotationFacetFactory.java          |  15 +--
 ...HiddenFacetForHiddenAnnotationOnCollection.java |  46 ---------
 .../annotation/HiddenFacetOnTypeAnnotation.java    |  36 -------
 .../HiddenFacetOnTypeAnnotationFactory.java        |  71 -------------
 .../property/PropertyAnnotationFacetFactory.java   |  15 +--
 .../HiddenFacetForHiddenAnnotationOnProperty.java  |  46 ---------
 .../dflt/ProgrammingModelFacetsJava5.java          |   4 -
 .../HiddenAnnotationOnActionFacetFactoryTest.java  | 111 ---------------------
 ...ddenAnnotationOnCollectionFacetFactoryTest.java |  64 ------------
 ...HiddenAnnotationOnPropertyFacetFactoryTest.java |  64 ------------
 .../domainservice/ObjectLoaderFixture.java         |   2 -
 todo-deprecation-list.txt                          |   4 +-
 21 files changed, 34 insertions(+), 610 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Programmatic.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Programmatic.adoc
index a41d364..cf60710 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Programmatic.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Programmatic.adoc
@@ -22,6 +22,6 @@ public class Customer implements Comparable<Customer> {
 ----
 
 
-Note that `@Programmatic` does not simply imply `@Hidden`; it actually means that the class member will not be part of the Apache Isis metamodel.
+Note that `@Programmatic` is not the same as `@Action(hidden=Where.EVERYWHERE)` or `@Property(hidden=Where.EVERYWHERE)` etc; it actually means that the class member will not be part of the Apache Isis metamodel.
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Title.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Title.adoc
index 0abf793..a72e824 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Title.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Title.adoc
@@ -31,12 +31,9 @@ It is also possible to annotate reference properties; in this case the
 title will return the title of the referenced object (rather than, say,
 its string representation).
 
-An additional convention for `@Title` properties is that they are hidden
-in tables (in other words, it implies `@Hidden(where=Where.ALL_TABLES)`.
-For viewers that support this annotation (for example, the Wicket
-viewer), this convention excludes any properties whose value is already
-present in the title column. This convention can be overridden using
-`@Hidden(where=Where.NOWHERE)`.
+An additional convention for `@Title` properties is that they are hidden in tables (in other words, it implies `@Property(where=Where.ALL_TABLES)`.
+For viewers that support this annotation (for example, the Wicket viewer), this convention excludes any properties whose value is already present in the title column.
+This convention can be overridden using `@Property(where=Where.NOWHERE)`.
 
 == Lombok support
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index c2be773..2e8f645 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -28,13 +28,6 @@ The annotations listed in the table below are still supported by Apache Isis, bu
 |UI, Domain
 |
 
-|`@Hidden`
-|Object member is not visible, or on domain service (to indicate that none of its actions are visible).
-|For domain object members, use `#hidden()` attribute of xref:../rgant/rgant.adoc#_rgant-Action_hidden[`Action`], xref:../rgant/rgant.adoc#_rgant-Property_hidden[`Property`] or xref:../rgant/rgant.adoc#_rgant-Collection_hidden[`Collection`].  +
-For domain service, use xref:../rgant/rgant.adoc#_rgant-DomainService_nature[`@DomainService(` +
-`nature=DOMAIN)`]
-|UI, Domain
-|Yes
 
 |`@Ignore`
 |Exclude this method from the metamodel.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc
index eeda114..00de9f2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc
@@ -7,9 +7,11 @@
 
 
 
-The `WrapperFactory` provides the ability to enforce business rules for programmatic interactions between domain objects.  If there is a (lack-of-) trust boundary between the caller and callee -- eg if they reside in different modules -- then the wrapper factory is a useful mechanism to ensure that any business constraints defined by the callee are honoured.
+The `WrapperFactory` provides the ability to enforce business rules for programmatic interactions between domain objects.
+If there is a (lack-of-) trust boundary between the caller and callee -- eg if they reside in different modules -- then the wrapper factory is a useful mechanism to ensure that any business constraints defined by the callee are honoured.
 
-For example, if the calling object attempts to modify an unmodifiable property on the target object, then an exception will be thrown.  Said another way: interactions are performed "as if" they are through the viewer.
+For example, if the calling object attempts to modify an unmodifiable property on the target object, then an exception will be thrown.
+Said another way: interactions are performed "as if" they are through the viewer.
 
 [NOTE]
 ====
@@ -51,8 +53,10 @@ public interface WrapperFactory {
     ...
  }
 ----
-<1> wraps the underlying domain object.  If it is already wrapped, returns the object back unchanged.
-<2> Obtains the underlying domain object, if wrapped.  If the object is not wrapped, returns back unchanged.
+<1> wraps the underlying domain object.
+If it is already wrapped, returns the object back unchanged.
+<2> Obtains the underlying domain object, if wrapped.
+If the object is not wrapped, returns back unchanged.
 <3> whether the supplied object has been wrapped.
 <4> enumerates how the wrapper interacts with the underlying domain object.
 <5> validate all business rules and then execute.
@@ -63,14 +67,17 @@ public interface WrapperFactory {
 
 
 
-The service works by returning a "wrapper" around a supplied domain object (a link:http://www.javassist.org[javassist] proxy), and it is this wrapper that ensures that the hide/disable/validate rules implies by the Apache Isis programming model are enforced. The wrapper can be interacted with as follows:
+The service works by returning a "wrapper" around a supplied domain object (a link:http://www.javassist.org[javassist] proxy), and it is this wrapper that ensures that the hide/disable/validate rules implies by the Apache Isis programming model are enforced.
+The wrapper can be interacted with as follows:
 
 * a `get...()` method for properties or collections
 * a `set...()` method for properties
 * an `addTo...()` or `removeFrom...()` method for collections
 * any action
 
-Calling any of the above methods may result in a (subclass of) `InteractionException` if the object disallows it. For example, if a property is annotated with `@Hidden` then a `HiddenException` will be thrown. Similarly if an action has a `validateXxx()` method and the supplied arguments are invalid then an `InvalidException` will be thrown.
+Calling any of the above methods may result in a (subclass of) `InteractionException` if the object disallows it.
+For example, if a property is annotated with `@Hidden` then a `HiddenException` will be thrown.
+Similarly if an action has a `validateXxx()` method and the supplied arguments are invalid then an `InvalidException` will be thrown.
 
 In addition, the following methods may also be called:
 
@@ -114,7 +121,8 @@ public class CustomerAgent {
 
 [NOTE]
 ====
-It ought to be possible to implement an xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ExceptionRecognizer[`ExceptionRecognizer`]s that would allow the above boilerplate to be removed.  This recognizer service would recognize the `InteractionException` and convert to a suitable message.
+It ought to be possible to implement an xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ExceptionRecognizer[`ExceptionRecognizer`]s that would allow the above boilerplate to be removed.
+This recognizer service would recognize the `InteractionException` and convert to a suitable message.
 
 At the time of writing Apache Isis does not provide an out-of-the-box implementation of such an `ExceptionRecognizer`; but it should be simple enough to write one…
 ====
@@ -141,21 +149,23 @@ public interface WrapperFactory {
 }
 ----
 <1> all ``InteractionListener``s that have been registered.
-<2> registers an `InteractionListener`, to be notified of interactions on all wrappers.  The listener will be notified of interactions even on wrappers created before the listener was installed. (From an implementation perspective this is because the wrappers delegate back to the container to fire the events).
+<2> registers an `InteractionListener`, to be notified of interactions on all wrappers.
+The listener will be notified of interactions even on wrappers created before the listener was installed.
+(From an implementation perspective this is because the wrappers delegate back to the container to fire the events).
 <3> remove an `InteractionListener`, to no longer be notified of interactions on wrappers.
 <4> used by the framework itself
 
-The original intent of this API was to enable test transcripts to be captured (in a BDD-like fashion) from integration tests.  No such feature has yet been implemented however.  Also, the capabilities have by and large been superceded by Apache Isis' support for domain events.  We may therefore deprecate this API in the future.
+The original intent of this API was to enable test transcripts to be captured (in a BDD-like fashion) from integration tests.
+No such feature has yet been implemented however.
+Also, the capabilities have by and large been superceded by Apache Isis' support for domain events.
+We may therefore deprecate this API in the future.
 
 
 
 
 == Registering the Service
 
-Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the
-`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' core
-implementation of `WrapperFactory` service is automatically registered and injected (it is annotated with
-`@DomainService`) so no further configuration is required.
+Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the `AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' core implementation of `WrapperFactory` service is automatically registered and injected (it is annotated with `@DomainService`) so no further configuration is required.
 
 To use an alternative implementation, use
 xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained
diff --git a/core/applib/src/main/java/org/apache/isis/applib/RecreatableDomainObject.java b/core/applib/src/main/java/org/apache/isis/applib/RecreatableDomainObject.java
index 6663f36..b10e7a4 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/RecreatableDomainObject.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/RecreatableDomainObject.java
@@ -19,9 +19,6 @@
 
 package org.apache.isis.applib;
 
-import org.apache.isis.applib.annotation.Hidden;
-
-
 /**
  * Indicates that the domain object can be recreated from a string.
  *
@@ -45,13 +42,11 @@ public interface RecreatableDomainObject {
      * This method is called by the framework in order that the view model may be recreated subsequently
      * through {@link #__isis_recreate(String)}.
      */
-    @Hidden
     public String __isis_memento();
     
     /**
      * Used to recreate a recreatable object with a memento obtained from {@link #__isis_recreate(String)}.
      */
-    @Hidden
     public void __isis_recreate(String memento);
 
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java
deleted file mode 100644
index 9c02608..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java
+++ /dev/null
@@ -1,43 +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.isis.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @deprecated - see {@link Property#hidden()}, {@link Collection#hidden()} and {@link Action#hidden()}.
- */
-@Deprecated
-@Inherited
-@Target({ ElementType.TYPE, ElementType.METHOD })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Hidden {
-
-    /**
-     * @deprecated - see {@link Property#hidden()}, {@link Collection#hidden()} and {@link Action#hidden()}.
-     */
-    @Deprecated
-    Where where() default Where.ANYWHERE;
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index b153931..0f22c08 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.applib.services.wrapper;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 2fc2453..0bafde0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.Bulk;
-import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -40,7 +39,6 @@ import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForBul
 import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetObjectOnly;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForHiddenAnnotationOnAction;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetAbstract;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetDefault;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation;
@@ -69,7 +67,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
             implements MetaModelValidatorRefiner {
 
     private final MetaModelValidatorForDeprecatedAnnotation bulkValidator = new MetaModelValidatorForDeprecatedAnnotation(Bulk.class);
-    private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
 
 
 
@@ -168,17 +165,9 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
         final Method method = processMethodContext.getMethod();
         final FacetHolder holder = processMethodContext.getFacetHolder();
 
-        // check for deprecated @Hidden
-        final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
-        HiddenFacet facet = hiddenValidator
-                .flagIfPresent(HiddenFacetForHiddenAnnotationOnAction.create(hiddenAnnotation, holder),
-                        processMethodContext);
-
-        // else search for @Action(hidden=...)
+        // search for @Action(hidden=...)
         final Action action = Annotations.getAnnotation(method, Action.class);
-        if(facet == null) {
-            facet = HiddenFacetForActionAnnotation.create(action, holder);
-        }
+        HiddenFacet facet = HiddenFacetForActionAnnotation.create(action, holder);
         FacetUtil.addFacet(facet);
     }
 
@@ -320,7 +309,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
     @Override
     public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
         metaModelValidator.add(bulkValidator);
-        metaModelValidator.add(hiddenValidator);
     }
 
     // ///////////////////////////////////////////////////////////////
@@ -332,7 +320,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
         final IsisConfiguration configuration = getConfiguration();
 
         bulkValidator.setConfiguration(configuration);
-        hiddenValidator.setConfiguration(configuration);
     }
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForHiddenAnnotationOnAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForHiddenAnnotationOnAction.java
deleted file mode 100644
index 783679a..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForHiddenAnnotationOnAction.java
+++ /dev/null
@@ -1,46 +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.isis.core.metamodel.facets.actions.action.hidden;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class HiddenFacetForHiddenAnnotationOnAction extends HiddenFacetAbstractImpl {
-
-    public static HiddenFacet create(final Hidden hiddenAnnotation, final FacetHolder facetHolder) {
-        if (hiddenAnnotation == null) {
-            return null;
-        }
-        return new HiddenFacetForHiddenAnnotationOnAction(hiddenAnnotation.where(), facetHolder);
-    }
-
-    private HiddenFacetForHiddenAnnotationOnAction(Where where, final FacetHolder holder) {
-        super(HiddenFacetForHiddenAnnotationOnAction.class, where, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index 58defd5..b507bc6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -25,7 +25,6 @@ import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
 
 import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.NotPersisted;
 import org.apache.isis.applib.services.eventbus.CollectionDomainEvent;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -42,7 +41,6 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredF
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.collections.collection.disabled.DisabledFacetForCollectionAnnotation;
 import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForCollectionAnnotation;
-import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForHiddenAnnotationOnCollection;
 import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromAbstract;
 import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromCollectionAnnotation;
 import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromDefault;
@@ -68,7 +66,6 @@ import org.apache.isis.core.metamodel.util.EventUtil;
 
 public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner {
 
-    private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
     private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
 
 
@@ -175,15 +172,9 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
         final Method method = processMethodContext.getMethod();
         final FacetHolder holder = processMethodContext.getFacetHolder();
 
-        // check for deprecated @Hidden
-        final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
-        HiddenFacet facet = hiddenValidator.flagIfPresent(HiddenFacetForHiddenAnnotationOnCollection.create(hiddenAnnotation, holder), processMethodContext);
-
-        // else check for @Collection(hidden=...)
+        // check for @Collection(hidden=...)
         final Collection collection = Annotations.getAnnotation(method, Collection.class);
-        if(facet == null) {
-            facet = HiddenFacetForCollectionAnnotation.create(collection, holder);
-        }
+        HiddenFacet facet = HiddenFacetForCollectionAnnotation.create(collection, holder);
 
         FacetUtil.addFacet(facet);
     }
@@ -288,7 +279,6 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
     @Override
     public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
         metaModelValidator.add(notPersistedValidator);
-        metaModelValidator.add(hiddenValidator);
     }
 
     // //////////////////////////////////////
@@ -300,7 +290,6 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
         final IsisConfiguration configuration = getConfiguration();
 
         notPersistedValidator.setConfiguration(configuration);
-        hiddenValidator.setConfiguration(configuration);
     }
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/hidden/HiddenFacetForHiddenAnnotationOnCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/hidden/HiddenFacetForHiddenAnnotationOnCollection.java
deleted file mode 100644
index 8cc787b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/hidden/HiddenFacetForHiddenAnnotationOnCollection.java
+++ /dev/null
@@ -1,46 +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.isis.core.metamodel.facets.collections.collection.hidden;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class HiddenFacetForHiddenAnnotationOnCollection extends HiddenFacetAbstractImpl {
-
-    public static HiddenFacet create(final Hidden hiddenAnnotation, final FacetHolder facetHolder) {
-        if (hiddenAnnotation == null) {
-            return null;
-        }
-        return new HiddenFacetForHiddenAnnotationOnCollection(hiddenAnnotation.where(), facetHolder);
-    }
-
-    private HiddenFacetForHiddenAnnotationOnCollection(Where where, final FacetHolder holder) {
-        super(HiddenFacetForHiddenAnnotationOnCollection.class, where, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotation.java
deleted file mode 100644
index 5917eb5..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotation.java
+++ /dev/null
@@ -1,36 +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.isis.core.metamodel.facets.object.hidden.annotation;
-
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class HiddenFacetOnTypeAnnotation extends HiddenFacetAbstractImpl {
-
-    public HiddenFacetOnTypeAnnotation(final Object whenUNUSED, final FacetHolder holder) {
-        super(HiddenFacetOnTypeAnnotation.class, Where.ANYWHERE, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java
deleted file mode 100644
index 2b0907b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java
+++ /dev/null
@@ -1,71 +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.isis.core.metamodel.facets.object.hidden.annotation;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.progmodel.DeprecatedMarker;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class HiddenFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, DeprecatedMarker {
-
-    private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
-
-    public HiddenFacetOnTypeAnnotationFactory() {
-        super(FeatureType.OBJECTS_ONLY);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Hidden annotation = Annotations.getAnnotation(processClassContext.getCls(), Hidden.class);
-        final HiddenFacet facet = create(annotation, processClassContext.getFacetHolder());
-        FacetUtil.addFacet(validator.flagIfPresent(facet));
-    }
-
-    private static HiddenFacet create(final Hidden annotation, final FacetHolder holder) {
-        return annotation == null ? null : new HiddenFacetOnTypeAnnotation(null, holder);
-    }
-
-    @Override
-    public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
-        metaModelValidator.add(validator);
-    }
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = servicesInjector.getConfigurationServiceInternal();
-        validator.setConfiguration(configuration);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
index 5b0f930..854fb60 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
 
 import javax.annotation.Nullable;
 
-import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.Mandatory;
 import org.apache.isis.applib.annotation.MustSatisfy;
 import org.apache.isis.applib.annotation.NotPersisted;
@@ -54,7 +53,6 @@ import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedF
 import org.apache.isis.core.metamodel.facets.properties.property.command.CommandFacetForPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.fileaccept.FileAcceptFacetForPropertyAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForHiddenAnnotationOnProperty;
 import org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetForMandatoryAnnotationOnProperty;
 import org.apache.isis.core.metamodel.facets.properties.property.mandatory.MandatoryFacetForPropertyAnnotation;
@@ -89,7 +87,6 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
     private final MetaModelValidatorForDeprecatedAnnotation regexValidator = new MetaModelValidatorForDeprecatedAnnotation(RegEx.class);
     private final MetaModelValidatorForDeprecatedAnnotation optionalValidator = new MetaModelValidatorForDeprecatedAnnotation(Optional.class);
     private final MetaModelValidatorForDeprecatedAnnotation mandatoryValidator = new MetaModelValidatorForDeprecatedAnnotation(Mandatory.class);
-    private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
     private final MetaModelValidatorForDeprecatedAnnotation mustSatisfyValidator = new MetaModelValidatorForDeprecatedAnnotation(MustSatisfy.class);
     private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
     private final MetaModelValidatorForConflictingOptionality conflictingOptionalityValidator = new MetaModelValidatorForConflictingOptionality();
@@ -203,15 +200,9 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
         final Method method = processMethodContext.getMethod();
         final FacetHolder holder = processMethodContext.getFacetHolder();
 
-        // check for deprecated @Hidden first
-        final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
-        HiddenFacet facet = hiddenValidator.flagIfPresent(HiddenFacetForHiddenAnnotationOnProperty.create(hiddenAnnotation, holder), processMethodContext);
-
-        // else search for @Property(hidden=...)
+        // search for @Property(hidden=...)
         final Property property = Annotations.getAnnotation(method, Property.class);
-        if(facet == null) {
-            facet = HiddenFacetForPropertyAnnotation.create(property, holder);
-        }
+        HiddenFacet facet = HiddenFacetForPropertyAnnotation.create(property, holder);
 
         FacetUtil.addFacet(facet);
     }
@@ -405,7 +396,6 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
         metaModelValidator.add(regexValidator);
         metaModelValidator.add(optionalValidator);
         metaModelValidator.add(mandatoryValidator);
-        metaModelValidator.add(hiddenValidator);
         metaModelValidator.add(mustSatisfyValidator);
         metaModelValidator.add(notPersistedValidator);
         metaModelValidator.add(conflictingOptionalityValidator);
@@ -422,7 +412,6 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
         regexValidator.setConfiguration(configuration);
         optionalValidator.setConfiguration(configuration);
         mandatoryValidator.setConfiguration(configuration);
-        hiddenValidator.setConfiguration(configuration);
         mustSatisfyValidator.setConfiguration(configuration);
         notPersistedValidator.setConfiguration(configuration);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/hidden/HiddenFacetForHiddenAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/hidden/HiddenFacetForHiddenAnnotationOnProperty.java
deleted file mode 100644
index a81f797..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/hidden/HiddenFacetForHiddenAnnotationOnProperty.java
+++ /dev/null
@@ -1,46 +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.isis.core.metamodel.facets.properties.property.hidden;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class HiddenFacetForHiddenAnnotationOnProperty extends HiddenFacetAbstractImpl {
-
-    public static HiddenFacet create(final Hidden hiddenAnnotation, final FacetHolder facetHolder) {
-        if (hiddenAnnotation == null) {
-            return null;
-        }
-        return new HiddenFacetForHiddenAnnotationOnProperty(hiddenAnnotation.where(), facetHolder);
-    }
-
-    private HiddenFacetForHiddenAnnotationOnProperty(Where where, final FacetHolder holder) {
-        super(HiddenFacetForHiddenAnnotationOnProperty.class, where, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index caba59c..c88e412 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -73,7 +73,6 @@ import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainSe
 import org.apache.isis.core.metamodel.facets.object.encodeable.annotcfg.EncodableFacetAnnotationElseConfigurationFactory;
 import org.apache.isis.core.metamodel.facets.object.facets.annotation.FacetsFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.hidden.annotation.HiddenFacetOnTypeAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.object.icon.method.IconFacetMethodFactory;
 import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemoveAnnotatedMethodsFacetFactory;
@@ -303,9 +302,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
         addFactory(new NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory());
 
         
-        addFactory(new HiddenFacetOnTypeAnnotationFactory());
-        // must come after the TitleAnnotationFacetFactory, because can act as an override
-        
 
         // must come after CssClassFacetOnMemberFactory
         addFactory(new CssClassFacetOnActionFromConfiguredRegexFactory());
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/HiddenAnnotationOnActionFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/HiddenAnnotationOnActionFacetFactoryTest.java
deleted file mode 100644
index 8241abc..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/HiddenAnnotationOnActionFacetFactoryTest.java
+++ /dev/null
@@ -1,111 +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.isis.core.metamodel.facets.actions.action;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForHiddenAnnotationOnAction;
-
-public class HiddenAnnotationOnActionFacetFactoryTest extends AbstractFacetFactoryTest {
-
-    private ActionAnnotationFacetFactory facetFactory;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        facetFactory = new ActionAnnotationFacetFactory();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        facetFactory = null;
-        super.tearDown();
-    }
-
-    public void testHiddenAnnotationPickedUpOnAction() {
-        class Customer {
-            @Hidden
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class);
-        assertNotNull(facet);
-
-        assertNoMethodsRemoved();
-    }
-
-    public void testHiddenWhenAlwaysAnnotationPickedUpOn() {
-        class Customer {
-            @Hidden()
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class);
-
-        assertNotNull(facet);
-
-    }
-
-
-    public void testHiddenWhereCollectionTableAnnotationPickedUpOn() {
-        class Customer {
-            @Hidden(where=Where.PARENTED_TABLES)
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class);
-
-        assertEquals(Where.PARENTED_TABLES, facet.where());
-    }
-
-
-    public void testHiddenWhenAndWhereTableAnnotationPickedUpOn() {
-        class Customer {
-            @Hidden(where=Where.PARENTED_TABLES)
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class);
-
-        assertEquals(Where.PARENTED_TABLES, facet.where());
-    }
-
-}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/HiddenAnnotationOnCollectionFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/HiddenAnnotationOnCollectionFacetFactoryTest.java
deleted file mode 100644
index 75c838c..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/HiddenAnnotationOnCollectionFacetFactoryTest.java
+++ /dev/null
@@ -1,64 +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.isis.core.metamodel.facets.collections.collection;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForHiddenAnnotationOnCollection;
-
-public class HiddenAnnotationOnCollectionFacetFactoryTest extends AbstractFacetFactoryTest {
-
-    private CollectionAnnotationFacetFactory facetFactory;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        facetFactory = new CollectionAnnotationFacetFactory();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        facetFactory = null;
-        super.tearDown();
-    }
-
-    public void testHiddenAnnotationPickedUpOnCollection() {
-        class Customer {
-            @Hidden
-            public Collection<?> getOrders() {
-                return null;
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "getOrders");
-
-        facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnCollection.class);
-        assertNotNull(facet);
-
-        assertNoMethodsRemoved();
-    }
-
-}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/HiddenAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/HiddenAnnotationOnPropertyFacetFactoryTest.java
deleted file mode 100644
index a25df7b..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/HiddenAnnotationOnPropertyFacetFactoryTest.java
+++ /dev/null
@@ -1,64 +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.isis.core.metamodel.facets.properties.property;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForHiddenAnnotationOnProperty;
-
-public class HiddenAnnotationOnPropertyFacetFactoryTest extends AbstractFacetFactoryTest {
-
-    private PropertyAnnotationFacetFactory facetFactory;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        facetFactory = new PropertyAnnotationFacetFactory();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        facetFactory = null;
-        super.tearDown();
-    }
-
-    public void testHiddenAnnotationPickedUpOnProperty() {
-        class Customer {
-            @Hidden
-            public int getNumberOfOrders() {
-                return 0;
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "getNumberOfOrders");
-
-        facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnProperty.class);
-        assertNotNull(facet);
-
-        assertNoMethodsRemoved();
-    }
-
-
-}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/domainservice/ObjectLoaderFixture.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/domainservice/ObjectLoaderFixture.java
index 58c0a41..2d6a245 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/domainservice/ObjectLoaderFixture.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/domainservice/ObjectLoaderFixture.java
@@ -19,7 +19,6 @@
 
 package org.apache.isis.core.runtime.fixtures.domainservice;
 
-import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.fixtures.FixtureType;
 import org.apache.isis.applib.fixtures.InstallableFixture;
 import org.apache.isis.core.runtime.fixturedomainservice.ObjectFixtureService;
@@ -40,7 +39,6 @@ public class ObjectLoaderFixture implements InstallableFixture {
     }
 
     @Override
-    @Hidden
     public FixtureType getType() {
         return FixtureType.DOMAIN_OBJECTS;
     }
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index 7b04503..0061956 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -16,9 +16,6 @@ org.apache.isis.applib.annotation
     InvokedOn.java - entire enum, along with @Bulk annotation.
 
 
-
-    Hidden.java - entire annotation, use @Property(hidden=...), @Collection(hidden=...), @Action(hidden=...)
-
     Ignore.java - entire annotation, use @Programmatic instead.
     Immutable.java - entire annotation, use @DomainObject(editing=...) instead
 
@@ -331,6 +328,7 @@ org.apache.isis.applib.annotation
     Command.java - entire annotation, use @Action(command=...) instead
 
     Disabled.java - entire annotation, use @Property(editingDisabledReason=...) instead
+    Hidden.java - entire annotation, use @Property(hidden=...), @Collection(hidden=...), @Action(hidden=...)
 
     ActionSemantics.java  - entire annotation, use @Action(semantics=...)
     Idempotent.java - entire annotation, use @Action(semantics=...) instead.

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 07/10: ISIS-1742: deletes @Bulk annotation and supporting facets. Updates .adoc

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit eb550c31ca48be8e1c872cd65127095892dc81ee
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 16:36:14 2017 +0100

    ISIS-1742: deletes @Bulk annotation and supporting facets.  Updates .adoc
---
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |   6 -
 .../guides/rgsvc/_rgsvc_core-domain-api.adoc       |  34 ---
 .../org/apache/isis/applib/annotation/Bulk.java    | 277 ---------------------
 .../apache/isis/applib/annotation/InvokeOn.java    |  19 --
 .../apache/isis/applib/annotation/InvokedOn.java   |  24 --
 .../isis/core/metamodel/adapter/ObjectAdapter.java |   4 +-
 .../action/ActionAnnotationFacetFactory.java       |  42 +---
 .../action/bulk/BulkFacetForActionAnnotation.java  |   5 +-
 .../action/bulk/BulkFacetForBulkAnnotation.java    |  49 ----
 .../actions/action/bulk/BulkFacetObjectOnly.java   |   4 +-
 .../metamodel/facets/actions/bulk/BulkFacet.java   |   6 +-
 .../facets/actions/bulk/BulkFacetAbstract.java     |   6 +-
 .../core/metamodel/spec/feature/ObjectAction.java  |   6 +-
 .../specloader/specimpl/ObjectActionDefault.java   |  13 -
 .../action/ActionAnnotationFacetFactoryTest.java   |  51 +---
 .../system/persistence/PersistenceSession.java     |  10 +-
 .../collection/bulk/BulkActionsLinkFactory.java    |  10 -
 todo-deprecation-list.txt                          |   6 +-
 18 files changed, 28 insertions(+), 544 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index ff35c9c..d7544a5 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -22,12 +22,6 @@ The annotations listed in the table below are still supported by Apache Isis, bu
 |Layer
 |xref:../ugvw/ugvw.adoc#_ugvw_layout_file-based[File-based layout]?
 
-|`@Bulk`
-|Indicates an action is a bulk action, can be applied to multiple instances.
-|xref:../rgant/rgant.adoc#_rgant-Action_invokeOn[`@Action#invokeOn()`]
-|UI, Domain
-|
-
 
 |`@MustSatisfy`
 |Specify arbitrary specification constraints on a property or action parameter.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc
index 374d593..f5f5964 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc
@@ -118,40 +118,6 @@ Key:
 
 
 
-There is also a number of deprecated domain services.
-
-.Deprecated Domain Services
-[cols="3,3a,3a,3a", options="header"]
-|===
-
-|API
-|Description
-|Implementation
-|Notes
-
-|`o.a.i.applib.` +
-`annotation`
-`Bulk.InteractionContext`
-|Request-scoped access to whether action is invoked on object and/or on collection of objects
-|`Bulk.InteractionContext` +
-``o.a.i.core`` +
-``isis-core-applib``
-|Replaced by xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_ActionInvocationContext[`ActionInvocationContext`]
-
-
-
-|===
-
-Key:
-
-Key:
-
-* `o.a.i` is an abbreviation for `org.apache.isis`
-* `o.ia.m` is an abbreviation for `org.isisaddons.module`
-* `o.a.i.c.m.s` is an abbreviation for `org.apache.isis.core.metamodel.services`
-* `o.a.i.c.r.s` is an abbreviation for `org.apache.isis.core.runtime.services`
-
-
 
 
 include::_rgsvc_core-domain-api_ClockService.adoc[leveloffset=+1]
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
deleted file mode 100644
index b202668..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
+++ /dev/null
@@ -1,277 +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.isis.applib.annotation;
-
-import java.lang.annotation.*;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import javax.enterprise.context.RequestScoped;
-
-/**
- * @deprecated - use {@link Action#invokeOn()} instead.
- */
-@Inherited
-@Target({ ElementType.METHOD })
-@Retention(RetentionPolicy.RUNTIME)
-@Deprecated
-public @interface Bulk {
-
-    /**
-     * @deprecated - see {@link InvokeOn}
-     */
-    @Deprecated
-    public static enum AppliesTo {
-        /**
-         * @deprecated - see {@link InvokeOn#OBJECT_AND_COLLECTION}
-         */
-        @Deprecated
-        BULK_AND_REGULAR,
-        /**
-         * @deprecated - see {@link InvokeOn#COLLECTION_ONLY}
-         */
-        @Deprecated
-        BULK_ONLY,
-        /**
-         * @deprecated - see {@link InvokeOn#OBJECT_ONLY}
-         */
-        @Deprecated
-        REGULAR_ONLY
-    }
-
-    /**
-     * @deprecated - see {@link Action#invokeOn()}.
-     */
-    @Deprecated
-    AppliesTo value() default AppliesTo.BULK_AND_REGULAR;
-
-
-    // //////////////////////////////////////
-
-    /**
-     * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext}.
-     */
-    @Deprecated
-    @DomainService(
-            nature = NatureOfService.DOMAIN,
-            menuOrder = "" + Integer.MAX_VALUE
-    )
-    @RequestScoped
-    public static class InteractionContext {
-
-        /**
-         * Intended only to be set only by the framework.
-         *
-         * <p>
-         * Will be populated while a bulk action is being invoked.
-         *
-         * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service; simply inject an instance of {@link org.apache.isis.applib.annotation.Bulk.InteractionContext}.
-         */
-        @Deprecated
-        public static final ThreadLocal<Bulk.InteractionContext> current = new ThreadLocal<>();
-
-        // //////////////////////////////////////
-
-        /**
-         * @deprecated - use {@link InvokedOn} instead.
-         */
-        @Deprecated
-        public static enum InvokedAs {
-            /**
-             * @deprecated - use {@link InvokedOn#COLLECTION} instead.
-             */
-            @Deprecated
-            BULK,
-            /**
-             * @deprecated - use {@link InvokedOn#OBJECT} instead.
-             */
-            @Deprecated
-            REGULAR;
-            public boolean isRegular() { return this == REGULAR; }
-            public boolean isBulk() { return this == BULK; }
-        }
-
-
-        /**
-         * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
-         */
-        @Deprecated
-        public static void with(final Runnable runnable, final Object... domainObjects) {
-            throw new RuntimeException("No longer supported - instead inject Bulk.InteractionContext as service");
-        }
-
-        /**
-         * @deprecated - now a {@link javax.enterprise.context.RequestScoped} service
-         */
-        @Deprecated
-        public static void with(final Runnable runnable, final InvokedOn invokedOn, final Object... domainObjects) {
-            throw new RuntimeException("No longer supported - instead inject Bulk.InteractionContext as service");
-        }
-
-
-        /**
-         * @deprecated - now a {@link RequestScoped} service
-         */
-        @Deprecated
-        public static void with(final Runnable runnable, final InvokedAs invokedAs, final Object... domainObjects) {
-            throw new RuntimeException("No longer supported - instead inject Bulk.InteractionContext as service");
-        }
-
-        // //////////////////////////////////////
-
-
-        /**
-         * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext#onObject(Object)}.
-         */
-        @Deprecated
-        public static InteractionContext regularAction(Object domainObject) {
-            return new InteractionContext(InvokedAs.REGULAR, Collections.singletonList(domainObject));
-        }
-
-        /**
-         * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext#onCollection(Object...)}.
-         */
-        @Deprecated
-        public static InteractionContext bulkAction(Object... domainObjects) {
-            return bulkAction(Arrays.asList(domainObjects));
-        }
-
-        /**
-         * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext#onCollection(java.util.List)}.
-         */
-        @Deprecated
-        public static InteractionContext bulkAction(List<Object> domainObjects) {
-            return new InteractionContext(InvokedAs.BULK, domainObjects);
-        }
-
-
-        // //////////////////////////////////////
-
-        private InvokedAs invokedAs;
-        private List<Object> domainObjects;
-
-        private int index;
-
-        /**
-         * @deprecated - see {@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext ()}.
-         */
-        @Deprecated
-        public InteractionContext() {
-            super();
-        }
-
-        /**
-         * @deprecated - now a {@link RequestScoped} service
-         */
-        @Deprecated
-        public InteractionContext(final InvokedAs invokedAs, final List<Object> domainObjects) {
-            this.invokedAs = invokedAs;
-            this.domainObjects = domainObjects;
-        }
-
-
-        // //////////////////////////////////////
-
-        /**
-         * <b>NOT API</b>: intended to be called only by the framework.
-         */
-        @Programmatic
-        public void setInvokedAs(InvokedAs invokedAs) {
-            this.invokedAs = invokedAs;
-        }
-
-        /**
-         * <b>NOT API</b>: intended to be called only by the framework.
-         */
-        @Programmatic
-        public void setDomainObjects(List<Object> domainObjects) {
-            this.domainObjects = domainObjects;
-        }
-
-        /**
-         * <b>NOT API</b>: intended to be called only by the framework.
-         */
-        @Programmatic
-        public void setIndex(int index) {
-            this.index = index;
-        }
-
-        // //////////////////////////////////////
-
-
-        /**
-         * Whether this particular {@link org.apache.isis.applib.annotation.Bulk.InteractionContext} was applied as a {@link InvokedOn#COLLECTION bulk} action
-         * (against each domain object in a list of domain objects) or as a {@link InvokedOn#OBJECT regular}
-         * action (against a single domain object).
-         */
-        @Deprecated
-        @Programmatic
-        public Bulk.InteractionContext.InvokedAs getInvokedAs() {
-            return invokedAs;
-        }
-
-        /**
-         * The list of domain objects which are being acted upon.
-         */
-        @Programmatic
-        public List<Object> getDomainObjects() {
-            return domainObjects;
-        }
-
-        /**
-         * The number of {@link #domainObjects domain objects} being acted upon.
-         */
-        @Programmatic
-        public int getSize() {
-            return domainObjects.size();
-        }
-
-        /**
-         * The 0-based index to the object being acted upon.
-         *
-         * <p>
-         * Will be a value in range [0, {@link #getSize() size}).
-         */
-        @Programmatic
-        public int getIndex() {
-            return index;
-        }
-
-        /**
-         * Whether this object being acted upon is the first such.
-         */
-        @Programmatic
-        public boolean isFirst() {
-            return this.index == 0;
-        }
-
-        /**
-         * Whether this object being acted upon is the last such.
-         */
-        @Programmatic
-        public boolean isLast() {
-            return this.index == (getSize()-1);
-        }
-
-
-
-    }
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokeOn.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokeOn.java
index ca52a9b..bdab88d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokeOn.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokeOn.java
@@ -43,23 +43,4 @@ public enum InvokeOn {
      */
     COLLECTION_ONLY;
 
-    @Deprecated
-    public static Bulk.AppliesTo from(final InvokeOn invokeOn) {
-        if(invokeOn == null) return null;
-        if(invokeOn == OBJECT_AND_COLLECTION) return Bulk.AppliesTo.BULK_AND_REGULAR;
-        if(invokeOn == COLLECTION_ONLY) return Bulk.AppliesTo.BULK_ONLY;
-        if(invokeOn == OBJECT_ONLY) return Bulk.AppliesTo.REGULAR_ONLY;
-        // shouldn't happen
-        throw new IllegalArgumentException("Unrecognized appliesTo: " + invokeOn);
-    }
-
-    @Deprecated
-    public static InvokeOn from(final Bulk.AppliesTo appliesTo) {
-        if(appliesTo == null) return null;
-        if(appliesTo == Bulk.AppliesTo.BULK_AND_REGULAR) return OBJECT_AND_COLLECTION;
-        if(appliesTo == Bulk.AppliesTo.BULK_ONLY) return COLLECTION_ONLY;
-        if(appliesTo == Bulk.AppliesTo.REGULAR_ONLY) return OBJECT_ONLY;
-        // shouldn't happen
-        throw new IllegalArgumentException("Unrecognized appliesTo: " + appliesTo);
-    }
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokedOn.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokedOn.java
index 896b107..d079dac 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokedOn.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/InvokedOn.java
@@ -28,29 +28,5 @@ public enum InvokedOn {
     public boolean isObject() { return this == OBJECT; }
     public boolean isCollection() { return this == COLLECTION; }
 
-    /**
-     * @deprecated - because the {@link Bulk} annotation is deprecated.
-     */
-    @Deprecated
-    public static InvokedOn from(final Bulk.InteractionContext.InvokedAs invokedAs) {
-        if (invokedAs == null) return null;
-        if (invokedAs == Bulk.InteractionContext.InvokedAs.REGULAR) return OBJECT;
-        if (invokedAs == Bulk.InteractionContext.InvokedAs.BULK) return COLLECTION;
-        // shouldn't happen
-        throw new IllegalArgumentException("Unrecognized bulk interactionContext invokedAs: " + invokedAs);
-    }
-
-    /**
-     * @deprecated - because the {@link Bulk} annotation is deprecated.
-     */
-    @Deprecated
-    public static Bulk.InteractionContext.InvokedAs from(final InvokedOn invokedOn) {
-        if (invokedOn == null) return null;
-        if (invokedOn == OBJECT) return Bulk.InteractionContext.InvokedAs.REGULAR;
-        if (invokedOn == COLLECTION) return Bulk.InteractionContext.InvokedAs.BULK;
-        // shouldn't happen
-        throw new IllegalArgumentException("Unrecognized bulk interactionContext invokedAs: " + invokedOn);
-    }
-
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
index 72e366a..7944c76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
@@ -53,7 +53,7 @@ import org.apache.isis.core.metamodel.spec.Specification;
  * domain objects and those objects are represented within the NOF through these
  * adapter, and not directly.
  */
-public interface ObjectAdapter extends Instance, org.apache.isis.applib.annotation.When.Persistable {
+public interface ObjectAdapter extends Instance {
 
     /**
      * Refines {@link Instance#getSpecification()}.
@@ -356,6 +356,8 @@ public interface ObjectAdapter extends Instance, org.apache.isis.applib.annotati
         }
     }
 
+    boolean isTransient();
+
     boolean representsPersistent();
     boolean isDestroyed();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 0bafde0..7e8d64e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -22,20 +22,16 @@ package org.apache.isis.core.metamodel.facets.actions.action;
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForBulkAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetObjectOnly;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
@@ -56,17 +52,11 @@ import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
 import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.CollectionUtils;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
 import org.apache.isis.core.metamodel.util.EventUtil;
 
-public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
-            implements MetaModelValidatorRefiner {
-
-    private final MetaModelValidatorForDeprecatedAnnotation bulkValidator = new MetaModelValidatorForDeprecatedAnnotation(Bulk.class);
+public class ActionAnnotationFacetFactory extends FacetFactoryAbstract {
 
 
 
@@ -205,16 +195,10 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
         final Action action = Annotations.getAnnotation(method, Action.class);
         final FacetHolder holder = processMethodContext.getFacetHolder();
 
-        BulkFacet facet;
-
-        // check for the deprecated @Bulk annotation first
-        final Bulk annotation = Annotations.getAnnotation(method, Bulk.class);
-        facet = bulkValidator.flagIfPresent(BulkFacetForBulkAnnotation.create(annotation, holder), processMethodContext);
+        // check for @Action(invokeOn=...)
+        BulkFacet facet = BulkFacetForActionAnnotation.create(action, holder);
 
-        // else check for @Action(invokeOn=...)
-        if(facet == null) {
-            facet = BulkFacetForActionAnnotation.create(action, holder);
-        }
+        // fallback
         if(facet == null) {
             facet = new BulkFacetObjectOnly(holder);
         }
@@ -304,23 +288,5 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
         FacetUtil.addFacet(typeOfFacet);
     }
 
-    // ///////////////////////////////////////////////////////////////
-
-    @Override
-    public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
-        metaModelValidator.add(bulkValidator);
-    }
-
-    // ///////////////////////////////////////////////////////////////
-
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        final IsisConfiguration configuration = getConfiguration();
-
-        bulkValidator.setConfiguration(configuration);
-    }
-
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForActionAnnotation.java
index bdf1319..b9ac18e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForActionAnnotation.java
@@ -20,7 +20,6 @@
 package org.apache.isis.core.metamodel.facets.actions.action.bulk;
 
 import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.InvokeOn;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
@@ -39,11 +38,11 @@ public class BulkFacetForActionAnnotation extends BulkFacetAbstract {
             return null;
         }
 
-        return new BulkFacetForActionAnnotation(InvokeOn.from(invokeOn), holder);
+        return new BulkFacetForActionAnnotation(invokeOn, holder);
     }
 
     private BulkFacetForActionAnnotation(
-            final Bulk.AppliesTo appliesTo,
+            final InvokeOn appliesTo,
             final FacetHolder holder) {
         super(appliesTo, holder);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java
deleted file mode 100644
index 618a9ad..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetForBulkAnnotation.java
+++ /dev/null
@@ -1,49 +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.isis.core.metamodel.facets.actions.action.bulk;
-
-import org.apache.isis.applib.annotation.Bulk;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
-import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacetAbstract;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class BulkFacetForBulkAnnotation extends BulkFacetAbstract {
-
-    public static BulkFacet create(
-            final Bulk annotation,
-            final FacetHolder holder) {
-
-        if (annotation == null) {
-            return null;
-        }
-
-        return new BulkFacetForBulkAnnotation(annotation.value(), holder);
-    }
-
-    private BulkFacetForBulkAnnotation(Bulk.AppliesTo value, final FacetHolder holder) {
-        super(value, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetObjectOnly.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetObjectOnly.java
index 0cc41b6..d101ca3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetObjectOnly.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/bulk/BulkFacetObjectOnly.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.metamodel.facets.actions.action.bulk;
 
-import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.applib.annotation.InvokeOn;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacetAbstract;
 
@@ -27,7 +27,7 @@ public class BulkFacetObjectOnly extends BulkFacetAbstract {
 
     public BulkFacetObjectOnly(
             final FacetHolder holder) {
-        super(Bulk.AppliesTo.REGULAR_ONLY, holder);
+        super(InvokeOn.OBJECT_ONLY, holder);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacet.java
index c272e39..a0cdea1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacet.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.metamodel.facets.actions.bulk;
 
-import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.applib.annotation.InvokeOn;
 import org.apache.isis.core.metamodel.facets.SingleValueFacet;
 
 /**
@@ -30,7 +30,7 @@ import org.apache.isis.core.metamodel.facets.SingleValueFacet;
  * In the standard Apache Isis Programming Model, corresponds to annotating the
  * action method using <tt>@Bulk</tt>.
  */
-public interface BulkFacet extends SingleValueFacet<Bulk.AppliesTo> {
+public interface BulkFacet extends SingleValueFacet<InvokeOn> {
 
-    public Bulk.AppliesTo value();
+    public InvokeOn value();
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacetAbstract.java
index c980932..c7822d7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/bulk/BulkFacetAbstract.java
@@ -19,18 +19,18 @@
 
 package org.apache.isis.core.metamodel.facets.actions.bulk;
 
-import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.applib.annotation.InvokeOn;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
 
-public abstract class BulkFacetAbstract extends SingleValueFacetAbstract<Bulk.AppliesTo> implements BulkFacet {
+public abstract class BulkFacetAbstract extends SingleValueFacetAbstract<InvokeOn> implements BulkFacet {
 
     public static Class<? extends Facet> type() {
         return BulkFacet.class;
     }
 
-    public BulkFacetAbstract(Bulk.AppliesTo appliesTo, final FacetHolder holder) {
+    public BulkFacetAbstract(InvokeOn appliesTo, final FacetHolder holder) {
         super(type(), appliesTo, holder);
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index e5ad60b..2580489 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -27,7 +27,7 @@ import com.google.common.collect.Lists;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Bulk;
+import org.apache.isis.applib.annotation.InvokeOn;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
@@ -492,7 +492,7 @@ public interface ObjectAction extends ObjectMember {
                 public boolean accept(ObjectAction oa) {
 
                     final BulkFacet bulkFacet = oa.getFacet(BulkFacet.class);
-                    if(bulkFacet == null || bulkFacet.isNoop() || bulkFacet.value() == Bulk.AppliesTo.REGULAR_ONLY) {
+                    if(bulkFacet == null || bulkFacet.isNoop() || bulkFacet.value() == InvokeOn.OBJECT_ONLY) {
                         return false;
                     }
                     if (oa.getParameterCount() != 0) {
@@ -520,7 +520,7 @@ public interface ObjectAction extends ObjectMember {
                 @Override
                 public boolean accept(ObjectAction t) {
                     BulkFacet facet = t.getFacet(BulkFacet.class);
-                    return facet == null || facet.value() != Bulk.AppliesTo.BULK_ONLY;
+                    return facet == null || facet.value() != InvokeOn.COLLECTION_ONLY;
                 }
             };
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
index aa98518..0e7da61 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
@@ -31,7 +31,6 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.ApplicationException;
 import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.InvokedOn;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
@@ -566,14 +565,6 @@ public class ObjectActionDefault extends ObjectMemberAbstract implements ObjectA
                 actionInvocationContext.setInvokedOn(InvokedOn.OBJECT);
                 actionInvocationContext.setDomainObjects(Collections.singletonList(targetPojo));
             }
-
-            final Bulk.InteractionContext bulkInteractionContext = getBulkInteractionContext();
-
-            if (bulkInteractionContext != null && bulkInteractionContext.getInvokedAs() == null) {
-
-                bulkInteractionContext.setInvokedAs(Bulk.InteractionContext.InvokedAs.REGULAR);
-                bulkInteractionContext.setDomainObjects(Collections.singletonList(targetPojo));
-            }
         }
     }
 
@@ -650,10 +641,6 @@ public class ObjectActionDefault extends ObjectMemberAbstract implements ObjectA
     //region > services (lookup)
 
 
-    protected Bulk.InteractionContext getBulkInteractionContext() {
-        return lookupService(Bulk.InteractionContext.class);
-    }
-
     protected org.apache.isis.applib.services.actinvoc.ActionInvocationContext getActionInvocationContext() {
         return lookupService(org.apache.isis.applib.services.actinvoc.ActionInvocationContext.class);
     }
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
index 37efcea..71aafe4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
@@ -626,53 +626,6 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
     public static class Bulk extends ActionAnnotationFacetFactoryTest {
 
         @Test
-        public void whenDeprecatedBulkAnnotation() {
-
-            class Customer {
-                @org.apache.isis.applib.annotation.Bulk()
-                public void someAction() {
-                }
-            }
-
-            // given
-            final Class<?> cls = Customer.class;
-            actionMethod = findMethod(cls, "someAction");
-
-            // when
-            final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
-            facetFactory.processBulk(processMethodContext);
-
-            // then
-            final BulkFacet facet = facetedMethod.getFacet(BulkFacet.class);
-            Assert.assertNotNull(facet);
-            assertThat(facet.value(), is(org.apache.isis.applib.annotation.Bulk.AppliesTo.BULK_AND_REGULAR));
-
-        }
-
-        @Test
-        public void whenDeprecatedBulkAnnotationAppliesToBulkOnly() {
-
-            class Customer {
-                @org.apache.isis.applib.annotation.Bulk(org.apache.isis.applib.annotation.Bulk.AppliesTo.BULK_ONLY)
-                public void someAction() {
-                }
-            }
-
-            // given
-            final Class<?> cls = Customer.class;
-            actionMethod = findMethod(cls, "someAction");
-
-            // when
-            final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
-            facetFactory.processBulk(processMethodContext);
-
-            // then
-            final BulkFacet facet = facetedMethod.getFacet(BulkFacet.class);
-            Assert.assertNotNull(facet);
-            assertThat(facet.value(), is(org.apache.isis.applib.annotation.Bulk.AppliesTo.BULK_ONLY));
-        }
-
-        @Test
         public void whenObjectOnly() {
 
             class Customer {
@@ -715,7 +668,7 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
             // then
             final BulkFacet facet = facetedMethod.getFacet(BulkFacet.class);
             Assert.assertNotNull(facet);
-            assertThat(facet.value(), is(org.apache.isis.applib.annotation.Bulk.AppliesTo.BULK_ONLY));
+            assertThat(facet.value(), is(InvokeOn.COLLECTION_ONLY));
 
         }
 
@@ -739,7 +692,7 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
             // then
             final BulkFacet facet = facetedMethod.getFacet(BulkFacet.class);
             Assert.assertNotNull(facet);
-            assertThat(facet.value(), is(org.apache.isis.applib.annotation.Bulk.AppliesTo.BULK_AND_REGULAR));
+            assertThat(facet.value(), is(InvokeOn.OBJECT_AND_COLLECTION));
 
         }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index ca30d29..1f39a42 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -39,7 +39,6 @@ import org.datanucleus.enhancement.Persistable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService2;
@@ -95,6 +94,7 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleE
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.interactions.ActionInteractionContext;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
 import org.apache.isis.core.metamodel.spec.FreeStandingList;
@@ -187,7 +187,7 @@ public class PersistenceSession implements
     private final MetricsService metricsService;
     private final ClockService clockService;
     private final UserService userService;
-    private final Bulk.InteractionContext bulkInteractionContext;
+    private final ActionInteractionContext actionInteractionContext;
 
 
     /**
@@ -245,7 +245,7 @@ public class PersistenceSession implements
         this.factoryService = lookupService(FactoryService.class);
         this.clockService = lookupService(ClockService.class);
         this.userService = lookupService(UserService.class);
-        this.bulkInteractionContext = lookupService(Bulk.InteractionContext.class);
+        this.actionInteractionContext = lookupService(ActionInteractionContext.class);
 
         // sub-components
         final AdapterManager adapterManager = this;
@@ -336,8 +336,6 @@ public class PersistenceSession implements
         commandContext.setCommand(command);
         interactionContext.setInteraction(interaction);
 
-        Bulk.InteractionContext.current.set(bulkInteractionContext);
-
         this.state = State.OPEN;
     }
 
@@ -421,8 +419,6 @@ public class PersistenceSession implements
             LOG.error("close: failed to end transaction; continuing to avoid memory leakage");
         }
 
-        Bulk.InteractionContext.current.set(null);
-
         // tell the proxy of all request-scoped services to invoke @PreDestroy
         // (if any) on all underlying services stored on their thread-locals...
         preDestroyOnRequestScopedServices();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index 4a6a82d..1df9bdc 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -29,7 +29,6 @@ import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.wicket.markup.html.link.Link;
 
 import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.InvokedOn;
 import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
 import org.apache.isis.applib.services.command.Command;
@@ -111,12 +110,6 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
                         actionInvocationContext.setDomainObjects(domainObjects);
                     }
 
-                    final Bulk.InteractionContext bulkInteractionContext = getServicesInjector().lookupService(Bulk.InteractionContext.class);
-                    if (bulkInteractionContext != null) {
-                        bulkInteractionContext.setInvokedAs(Bulk.InteractionContext.InvokedAs.BULK);
-                        bulkInteractionContext.setDomainObjects(domainObjects);
-                    }
-
 
 
                     ObjectAdapter lastReturnedAdapter = null;
@@ -134,9 +127,6 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
                         if(numParameters != 0) {
                             return;
                         }
-                        if (bulkInteractionContext != null) {
-                            bulkInteractionContext.setIndex(i++);
-                        }
 
                         final ObjectAdapter mixedInAdapter = null;
                         final ObjectAdapter[] arguments = {};
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index 9abf429..f3b4994 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -11,9 +11,6 @@ org.apache.isis.applib
 org.apache.isis.applib.annotation
 
 
-    Bulk.java - entire annotation, use @Action(invokeOn=...)
-    Bulk.InteractionContext - entire service, use ActionInvocationContext service instead
-    InvokedOn.java - entire enum, along with @Bulk annotation.
 
 
 
@@ -323,6 +320,9 @@ org.apache.isis.applib.annotation
 
     Bookmarkable.java - entire annotation, use @DomainObjectLayout(bookmarking=...)
 
+    Bulk.java - entire annotation, use @Action(invokeOn=...)
+    Bulk.InteractionContext - entire service, use ActionInvocationContext service instead
+
     Command.java - entire annotation, use @Action(command=...) instead
 
     Disabled.java - entire annotation, use @Property(editingDisabledReason=...) instead

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 05/10: ISIS-1742: removes @Ignore annotation, update facet factory and updates .adoc

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit ee32a8a85a5eae06dcaf27c15cd15af1476e49ea
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 15:37:00 2017 +0100

    ISIS-1742: removes @Ignore annotation, update facet factory and updates .adoc
---
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |  8 ----
 ...vc_application-layer-api_BackgroundService.adoc | 46 +++++++++-------------
 .../org/apache/isis/applib/annotation/Ignore.java  | 37 -----------------
 .../RemoveAnnotatedMethodsFacetFactory.java        |  4 +-
 todo-deprecation-list.txt                          |  3 +-
 5 files changed, 22 insertions(+), 76 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index 2e8f645..4594680 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -29,14 +29,6 @@ The annotations listed in the table below are still supported by Apache Isis, bu
 |
 
 
-|`@Ignore`
-|Exclude this method from the metamodel.
-|xref:../rgant/rgant.adoc#_rgant-Programmatic[`@Programmatic`]. +
-
-`@Ignore` was deprecated because it can easily clash with `@org.junit.Ignore`.
-|Domain
-|
-
 |`@Immutable`
 |An object's state cannot be changed (properties cannot be edited, collections cannot be added to or removed from).
 Actions can still be invoked.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc
index 9382728..8d9cacf 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc
@@ -5,25 +5,18 @@
 :_imagesdir: images/
 
 
-The `BackgroundService2` domain service, and also the companion
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService2`] SPI service, enable commands
-to be persisted such that they may be invoked in the background.
+The `BackgroundService2` domain service, and also the companion xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService2`] SPI service, enable commands to be persisted such that they may be invoked in the background.
 
-The `BackgroundService2` is responsible for capturing a memento representing the command in a typesafe way,
-and persisting it rather than executing it directly.
+The `BackgroundService2` is responsible for capturing a memento representing the command in a typesafe way, and persisting it rather than executing it directly.
 
-The default `BackgroundServiceDefault` implementation works by using a proxy wrapper around the target so that it can
-capture the action to invoke and its arguments.  (As of `1.13.0`), this is done using xref:../rgfis/rgfis.adoc#_rgfis_application-layer_CommandDtoServiceInternal[`CommandDtoServiceInternal`] (in previous releases it used (a private copy of) xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_MementoService[`MementoService`]).
+The default `BackgroundServiceDefault` implementation works by using a proxy wrapper around the target so that it can capture the action to invoke and its arguments.
+(As of `1.13.0`), this is done using xref:../rgfis/rgfis.adoc#_rgfis_application-layer_CommandDtoServiceInternal[`CommandDtoServiceInternal`] (in previous releases it used (a private copy of) xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_MementoService[`MementoService`]).
 
-The persistence delegates the persistence of the memento to an appropriate implementation of the companion
-`BackgroundCommandService2`.  One such implementation of `BackgroundCommandService` is provided by (non-ASF)
-http://github.com/isisaddons/isis-module-command[Isis addons' command] module.
+The persistence delegates the persistence of the memento to an appropriate implementation of the companion `BackgroundCommandService2`.
+One such implementation of `BackgroundCommandService` is provided by (non-ASF) link:http://platform.incode.org/spi/command/command.html[Incode Platform's command] module.
 
-The persisting of commands is only half the story; there needs to be a separate process to read the commands and
-execute them. The `BackgroundCommandExecution` abstract class (discussed
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService_BackgroundCommandExecution[below]) provides infrastructure to do this;
-the concrete implementation of this class depends on the configured `BackgroundCommandService` (in order to query for
-the persisted (background) ``Command``s.
+The persisting of commands is only half the story; there needs to be a separate process to read the commands and execute them.
+The `BackgroundCommandExecution` abstract class (discussed xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService_BackgroundCommandExecution[below]) provides infrastructure to do this; the concrete implementation of this class depends on the configured `BackgroundCommandService` (in order to query for the persisted (background) ``Command``s.
 
 
 
@@ -63,7 +56,8 @@ public void submitCustomerInvoices() {
 
 This will create a bunch of background commands executing the `submitInvoice()` action for each of the customers returned from the customer repository.
 
-The action method invoked must be part of the Apache Isis metamodel, which is to say it must be public, accept only scalar arguments, and must not be annotated with xref:../rgant/rgant.adoc#_rgant-Programmatic[`@Programmatic`] or `@Ignore`. However, it may be annotated with xref:../rgant/rgant.adoc#_rgant-Action_hidden[`@Action#hidden()`] or xref:../rgant/rgant.adoc#_rgant-ActionLayout_hidden[`@ActionLayout#hidden()`] and it will still be invoked.
+The action method invoked must be part of the Apache Isis metamodel, which is to say it must be public, accept only scalar arguments, and must not be annotated with xref:../rgant/rgant.adoc#_rgant-Programmatic[`@Programmatic`].
+However, it may be annotated with xref:../rgant/rgant.adoc#_rgant-Action_hidden[`@Action#hidden()`] or xref:../rgant/rgant.adoc#_rgant-ActionLayout_hidden[`@ActionLayout#hidden()`] and it will still be invoked.
 
 In fact, when invoked by the background service, no business rules (hidden, disabled, validation) are enforced; the action method must take responsibility for performing appropriate validation and error checking.
 
@@ -78,7 +72,9 @@ If you want to check business rules, you can use xref:../rgant/rgant.adoc#_rgant
 
 For the end-user, executing an action that delegates work off to the `BackgroundService` raises the problem of how does the user know the work is complete?
 
-One option is for the background jobs to take responsibility to notify the user themselves. In the above example, this would be the `submitInvoice()` method called upon each customer. One could imagine more complex designs where only the final command executed notifies the user.
+One option is for the background jobs to take responsibility to notify the user themselves.
+In the above example, this would be the `submitInvoice()` method called upon each customer.
+One could imagine more complex designs where only the final command executed notifies the user.
 
 However, an alternative is to rely on the fact that the `BackgroundService` will automatically hint that the `Command` representing the original interaction (to `submitCustomerInvoices()` in the example above) should be persisted.
 This will be available if the related xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_CommandContext[`CommandContext`] and xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] domain services are configured, and the `CommandService` supports persistent commands.
@@ -109,24 +105,20 @@ The user would be returned a domain object representing their action invocation.
 
 == Registering the Services
 
-Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the
-`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' core
-implementation of `BackgroundService` is automatically registered (it is annotated with `@DomainService`) so no
-further configuration is required.
-
-To use an alternative implementation, use
-xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained
-in the xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this guide).
+Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the `AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' core implementation of `BackgroundService` is automatically registered (it is annotated with `@DomainService`) so no further configuration is required.
 
+To use an alternative implementation, use xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this guide).
 
 
 == Related Services
 
 This service is closely related to the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_CommandContext[`CommandContext`] and also that service's supporting xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] service.
 
-The `CommandContext` service is responsible for providing a parent `Command` with which the background ``Command``s can then be associated as children, while the `CommandService` is responsible for persisting those parent `Command`s. The latter is analogous to the way in which the `BackgroundCommandService` persists the child background `Command`s.
+The `CommandContext` service is responsible for providing a parent `Command` with which the background ``Command``s can then be associated as children, while the `CommandService` is responsible for persisting those parent `Command`s.
+The latter is analogous to the way in which the `BackgroundCommandService` persists the child background `Command`s.
 
-The implementations of `CommandService` and `BackgroundCommandService` go together; typically both parent `Command`s and child background `Command`s will be persisted in the same way. The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module provides implementations of both (see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] and xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandS [...]
+The implementations of `CommandService` and `BackgroundCommandService` go together; typically both parent `Command`s and child background `Command`s will be persisted in the same way.
+The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module provides implementations of both (see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] and xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`]).
 
 The xref:../rgfis/rgfis.adoc#_rgfis_application-layer_CommandDtoServiceInternal[`CommandDtoServiceInternal`] is used to obtain a memento of the command such that it can be persisted.
 (In earlier versions, xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_MementoService[`MementoService`] was used for this purpose).
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Ignore.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Ignore.java
deleted file mode 100644
index b58d5ac..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Ignore.java
+++ /dev/null
@@ -1,37 +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.isis.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @deprecated - use {@link org.apache.isis.applib.annotation.Programmatic} instead.
- */
-@Deprecated
-@Inherited
-@Target({ ElementType.METHOD })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Ignore {
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java
index 209a55c..6d456e6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java
@@ -27,7 +27,6 @@ import javax.annotation.PreDestroy;
 
 import com.google.common.eventbus.Subscribe;
 
-import org.apache.isis.applib.annotation.Ignore;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -68,8 +67,7 @@ public class RemoveAnnotatedMethodsFacetFactory extends FacetFactoryAbstract {
         for (final Method method : methods) {
             removeAnnotatedMethods(methodRemover, method, PreDestroy.class);
             removeAnnotatedMethods(methodRemover, method, PostConstruct.class);
-            removeAnnotatedMethods(methodRemover, method, Ignore.class);
-            removeAnnotatedMethods(methodRemover, method, Programmatic.class);
+                removeAnnotatedMethods(methodRemover, method, Programmatic.class);
             removeAnnotatedMethods(methodRemover, method, Subscribe.class);
             if(eventHandlerClass != null) {
                 removeAnnotatedMethods(methodRemover, method, eventHandlerClass);
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index 0061956..8ff1a6a 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -16,7 +16,6 @@ org.apache.isis.applib.annotation
     InvokedOn.java - entire enum, along with @Bulk annotation.
 
 
-    Ignore.java - entire annotation, use @Programmatic instead.
     Immutable.java - entire annotation, use @DomainObject(editing=...) instead
 
     Mandatory.java - entire annotation, use @Property(optionality=...) and @Parameter(optionality=...), or @javax.annotations.Nullable
@@ -358,6 +357,8 @@ org.apache.isis.applib.annotation
 
     DescribedAs.java - entire annotation, use @XxxLayout(describedAs=...) instead
 
+    Ignore.java - entire annotation, use @Programmatic instead.
+
     Mask.java - entire annotation, not supported by either Wicket viewer or RO viewer
     MaxLength.java - entire annotation, use @Property(maxLength=...) and @Parameter(maxLength=...)
     MultiLine.java - entire annotation, use @PropertyLayout(multiLine=...) and @ParameterLayout(multiLine=...) instead.

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 03/10: ISIS-1742: removes reference to @Command and @Disabled from docs

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 1d9ee7e6e2832e97b57830337e6a872530338ea7
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 15:01:23 2017 +0100

    ISIS-1742: removes reference to @Command and @Disabled from docs
---
 .../main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc   | 13 -------------
 .../rgsvc/_rgsvc_application-layer-api_CommandContext.adoc  |  2 +-
 .../ugfun/_ugfun_core-concepts_deployment-options.adoc      |  2 +-
 .../ugtst/_ugtst_integ-test-support_typical-usage.adoc      |  4 +++-
 .../asciidoc/pages/common-use-cases/common-use-cases.adoc   |  2 +-
 5 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index 875f436..c2be773 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -28,19 +28,6 @@ The annotations listed in the table below are still supported by Apache Isis, bu
 |UI, Domain
 |
 
-|`@Command`
-|Action invocation should be reified as a command object, optionally persistable for profiling and enhanced auditing, and background/async support.
-|xref:../rgant/rgant.adoc#_rgant-Action_command[`@Action#command()`]
-q|Domain
-|
-
-
-|`@Disabled`
-|Object property cannot be edited, an object collection cannot be added to/removed from, or an object action cannot be invoked.
-|`#editing()` attribute for xref:../rgant/rgant.adoc#_rgant-Property_editing[`@Property`],  xref:../rgant/rgant.adoc#_rgant-Collection_editing[`@Collection`] and xref:../rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject`]
-|UI, Domain
-|Yes
-
 |`@Hidden`
 |Object member is not visible, or on domain service (to indicate that none of its actions are visible).
 |For domain object members, use `#hidden()` attribute of xref:../rgant/rgant.adoc#_rgant-Action_hidden[`Action`], xref:../rgant/rgant.adoc#_rgant-Property_hidden[`Property`] or xref:../rgant/rgant.adoc#_rgant-Collection_hidden[`Collection`].  +
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc
index 6f06ac6..ccc9a24 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc
@@ -137,7 +137,7 @@ The xref:../rgant/rgant.adoc#_rgant-Action_command[`@Action#command()`] annotati
 [source,java]
 ----
 public class ToDoItem ... {
-    @Command(executeIn=ExecuteIn.BACKGROUND)
+    @Action(commandExecuteIn=CommandExecuteIn.BACKGROUND)
     public ToDoItem scheduleImplicitly() {
         completeSlowly(3000);
         return this;
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_core-concepts_deployment-options.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_core-concepts_deployment-options.adoc
index ed4046b..1664275 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_core-concepts_deployment-options.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_core-concepts_deployment-options.adoc
@@ -46,7 +46,7 @@ Once you've sketched out your domain model, you can then "start-over" using your
 == Deploy on your own platform
 
 The programming model defined by Apache Isis deliberately minimizes the dependencies on the rest of the framework.
-In fact, the only hard dependency that the domain model classes have on Apache Isis is through the `org.apache.isis.applib` classes, mostly to pick up annotations such as `@Disabled`.
+In fact, the only hard dependency that the domain model classes have on Apache Isis is through the `org.apache.isis.applib` classes, mostly to pick up annotations such as `@Action` and `@Property`.
 So, if you have used Apache Isis for prototyping (discussed above), then note that it's quite feasible to take your domain model a the basis of your actual development effort; Apache Isis' annotations and programming conventions will help ensure that any subtle semantics you might have captured in your prototyping are not lost.
 
 If you go this route, your deployment platform will of course need to provide similar capabilities to Apache Isis.
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_typical-usage.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_typical-usage.adoc
index 6c68689..ee243ad 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_typical-usage.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_typical-usage.adoc
@@ -108,7 +108,9 @@ What about when a todo item is already completed?  The `disableCompleted()` meth
 <2> the expectedExceptions link:http://junit.org/junit4/javadoc/latest/org/junit/rules/ExpectedException.html[JUnit rule] (defined by a superclass) verifies that the appropiate exception is indeed thrown (in the "when")
 
 
-And what about the fact that the underlying "complete" property is disabled (the `@Disabled` annotation?).  If the `ToDoItem` is put into edit mode in the UI, the complete checkbox should remain read-only.  Here's a verify similar test that verifies this also:
+And what about the fact that the underlying "complete" property is annotated as being disabled?
+If the `ToDoItem` is put into edit mode in the UI, the complete checkbox should remain read-only.
+Here's a verify similar test that verifies this also:
 
 [source,java]
 ----
diff --git a/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc b/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc
index 4c09241..63d1279 100644
--- a/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/common-use-cases/common-use-cases.adoc
@@ -63,7 +63,7 @@ It is perfectly possible to deploy the RESTful API alongside an auto-generated w
 == Deploy on your own platform
 
 The programming model defined by Apache Isis deliberately minimizes the dependencies on the rest of the framework.
-In fact, the only hard dependency that the domain model classes have on Apache Isis is through the `org.apache.isis.applib` classes, mostly to pick up annotations such as `@Disabled`.
+In fact, the only hard dependency that the domain model classes have on Apache Isis is through the `org.apache.isis.applib` classes, mostly to pick up annotations such as `@Action` and `@Property`.
 The idea is to make it easy to be able to write take a domain object prototyped and/or tested using Apache Isis, but to deploy on some other framework's runtime.
 
 If you are interested in taking this approach, then you will need to provide your own implementations of any framework-provided services used by your code.

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 02/10: ISIS-1742: removes @Disabled annotation and supporting facets etc.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit b0fdcf8b2127c416dbf25af8dcee697bf8ffb170
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 14:40:55 2017 +0100

    ISIS-1742: removes @Disabled annotation and supporting facets etc.
---
 .../apache/isis/applib/annotation/Disabled.java    |  49 --------
 .../action/ActionAnnotationFacetFactory.java       |  22 ----
 ...DisabledFacetForDisabledAnnotationOnAction.java |  48 --------
 .../CollectionAnnotationFacetFactory.java          |  15 +--
 ...bledFacetForDisabledAnnotationOnCollection.java |  48 --------
 .../property/PropertyAnnotationFacetFactory.java   |  16 +--
 ...sabledFacetForDisabledAnnotationOnProperty.java |  45 -------
 ...DisabledAnnotationOnActionFacetFactoryTest.java | 137 ---------------------
 ...bledAnnotationOnCollectionFacetFactoryTest.java |   3 +-
 ...sabledAnnotationOnPropertyFacetFactoryTest.java |   4 +-
 todo-deprecation-list.txt                          |   3 +-
 11 files changed, 8 insertions(+), 382 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java
deleted file mode 100644
index f438672..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java
+++ /dev/null
@@ -1,49 +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.isis.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @deprecated - see {@link Property#editing()} and {@link Collection#editing()}.
- */
-@Inherited
-@Target({ ElementType.METHOD })
-@Retention(RetentionPolicy.RUNTIME)
-@Deprecated
-public @interface Disabled {
-
-
-    /**
-     * @deprecated - see {@link Property#editing()} and {@link Collection#editing()}.
-     */
-    @Deprecated
-    Where where() default Where.ANYWHERE;
-
-    /**
-     * @deprecated - see {@link Property#editingDisabledReason()} and {@link Collection#editingDisabledReason()}.
-     */
-    @Deprecated
-    String reason() default "";
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index fc5610b..2fc2453 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.Bulk;
-import org.apache.isis.applib.annotation.Disabled;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
@@ -40,7 +39,6 @@ import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForAct
 import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForBulkAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetObjectOnly;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.disabled.DisabledFacetForDisabledAnnotationOnAction;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForHiddenAnnotationOnAction;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetAbstract;
@@ -60,7 +58,6 @@ import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
 import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.CollectionUtils;
@@ -73,7 +70,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
 
     private final MetaModelValidatorForDeprecatedAnnotation bulkValidator = new MetaModelValidatorForDeprecatedAnnotation(Bulk.class);
     private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
-    private final MetaModelValidatorForDeprecatedAnnotation disabledValidator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
 
 
 
@@ -86,7 +82,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
 
         processInvocation(processMethodContext);
         processHidden(processMethodContext);
-        processDisabled(processMethodContext);
         processRestrictTo(processMethodContext);
         processSemantics(processMethodContext);
         processBulk(processMethodContext);
@@ -187,21 +182,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
         FacetUtil.addFacet(facet);
     }
 
-    void processDisabled(final ProcessMethodContext processMethodContext) {
-        final Method method = processMethodContext.getMethod();
-        final FacetHolder holder = processMethodContext.getFacetHolder();
-
-        // check for deprecated @Disabled
-        final Disabled annotation = Annotations.getAnnotation(method, Disabled.class);
-        DisabledFacet facet = disabledValidator
-                .flagIfPresent(DisabledFacetForDisabledAnnotationOnAction.create(annotation, holder),
-                        processMethodContext);
-
-        // there is no equivalent in @Action(...)
-
-        FacetUtil.addFacet(facet);
-    }
-
     void processRestrictTo(final ProcessMethodContext processMethodContext) {
         final Method method = processMethodContext.getMethod();
         final FacetHolder holder = processMethodContext.getFacetHolder();
@@ -341,7 +321,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
     public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
         metaModelValidator.add(bulkValidator);
         metaModelValidator.add(hiddenValidator);
-        metaModelValidator.add(disabledValidator);
     }
 
     // ///////////////////////////////////////////////////////////////
@@ -354,7 +333,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
 
         bulkValidator.setConfiguration(configuration);
         hiddenValidator.setConfiguration(configuration);
-        disabledValidator.setConfiguration(configuration);
     }
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/disabled/DisabledFacetForDisabledAnnotationOnAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/disabled/DisabledFacetForDisabledAnnotationOnAction.java
deleted file mode 100644
index d66cbe7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/disabled/DisabledFacetForDisabledAnnotationOnAction.java
+++ /dev/null
@@ -1,48 +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.isis.core.metamodel.facets.actions.action.disabled;
-
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstractImpl;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class DisabledFacetForDisabledAnnotationOnAction extends DisabledFacetAbstractImpl {
-
-    public static DisabledFacet create(final Disabled annotation, final FacetHolder facetHolder) {
-        return annotation != null
-                ? new DisabledFacetForDisabledAnnotationOnAction(annotation.where(), annotation.reason(), facetHolder)
-                : null;
-    }
-
-    private DisabledFacetForDisabledAnnotationOnAction(
-            Where where,
-            String reason,
-            final FacetHolder holder) {
-        super(where, reason, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index 766c4bf..58defd5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -25,7 +25,6 @@ import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
 
 import org.apache.isis.applib.annotation.Collection;
-import org.apache.isis.applib.annotation.Disabled;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.NotPersisted;
 import org.apache.isis.applib.services.eventbus.CollectionDomainEvent;
@@ -42,7 +41,6 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredF
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.collections.collection.disabled.DisabledFacetForCollectionAnnotation;
-import org.apache.isis.core.metamodel.facets.collections.collection.disabled.DisabledFacetForDisabledAnnotationOnCollection;
 import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForCollectionAnnotation;
 import org.apache.isis.core.metamodel.facets.collections.collection.hidden.HiddenFacetForHiddenAnnotationOnCollection;
 import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromAbstract;
@@ -71,7 +69,6 @@ import org.apache.isis.core.metamodel.util.EventUtil;
 public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner {
 
     private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
-    private final MetaModelValidatorForDeprecatedAnnotation disabledValidator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
     private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
 
 
@@ -195,15 +192,9 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
         final Method method = processMethodContext.getMethod();
         final FacetHolder holder = processMethodContext.getFacetHolder();
 
-        // check for deprecated @Disabled
-        final Disabled annotation = Annotations.getAnnotation(method, Disabled.class);
-        DisabledFacet facet = disabledValidator.flagIfPresent(DisabledFacetForDisabledAnnotationOnCollection.create(annotation, holder), processMethodContext);
-
-        // else check for @Collection(editing=...)
+        // check for @Collection(editing=...)
         final Collection collection = Annotations.getAnnotation(method, Collection.class);
-        if(facet == null) {
-            facet = DisabledFacetForCollectionAnnotation.create(collection, holder);
-        }
+        DisabledFacet facet = DisabledFacetForCollectionAnnotation.create(collection, holder);
 
         FacetUtil.addFacet(facet);
     }
@@ -298,7 +289,6 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
     public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
         metaModelValidator.add(notPersistedValidator);
         metaModelValidator.add(hiddenValidator);
-        metaModelValidator.add(disabledValidator);
     }
 
     // //////////////////////////////////////
@@ -311,7 +301,6 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
 
         notPersistedValidator.setConfiguration(configuration);
         hiddenValidator.setConfiguration(configuration);
-        disabledValidator.setConfiguration(configuration);
     }
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/disabled/DisabledFacetForDisabledAnnotationOnCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/disabled/DisabledFacetForDisabledAnnotationOnCollection.java
deleted file mode 100644
index cbe8763..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/disabled/DisabledFacetForDisabledAnnotationOnCollection.java
+++ /dev/null
@@ -1,48 +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.isis.core.metamodel.facets.collections.collection.disabled;
-
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstractImpl;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class DisabledFacetForDisabledAnnotationOnCollection extends DisabledFacetAbstractImpl {
-
-    public static DisabledFacet create(final Disabled annotation, final FacetHolder facetHolder) {
-        return annotation != null
-                ? new DisabledFacetForDisabledAnnotationOnCollection(annotation.where(), annotation.reason(), facetHolder)
-                : null;
-    }
-
-    private DisabledFacetForDisabledAnnotationOnCollection(
-            Where where,
-            String reason,
-            final FacetHolder holder) {
-        super(where, reason, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
index e1aa811..5b0f930 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
 
 import javax.annotation.Nullable;
 
-import org.apache.isis.applib.annotation.Disabled;
 import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.Mandatory;
 import org.apache.isis.applib.annotation.MustSatisfy;
@@ -53,7 +52,6 @@ import org.apache.isis.core.metamodel.facets.objectvalue.regex.TitleFacetFormatt
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
 import org.apache.isis.core.metamodel.facets.properties.property.command.CommandFacetForPropertyAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForDisabledAnnotationOnProperty;
 import org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.fileaccept.FileAcceptFacetForPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForHiddenAnnotationOnProperty;
@@ -92,7 +90,6 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
     private final MetaModelValidatorForDeprecatedAnnotation optionalValidator = new MetaModelValidatorForDeprecatedAnnotation(Optional.class);
     private final MetaModelValidatorForDeprecatedAnnotation mandatoryValidator = new MetaModelValidatorForDeprecatedAnnotation(Mandatory.class);
     private final MetaModelValidatorForDeprecatedAnnotation hiddenValidator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class);
-    private final MetaModelValidatorForDeprecatedAnnotation disabledValidator = new MetaModelValidatorForDeprecatedAnnotation(Disabled.class);
     private final MetaModelValidatorForDeprecatedAnnotation mustSatisfyValidator = new MetaModelValidatorForDeprecatedAnnotation(MustSatisfy.class);
     private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
     private final MetaModelValidatorForConflictingOptionality conflictingOptionalityValidator = new MetaModelValidatorForConflictingOptionality();
@@ -223,16 +220,9 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
         final Method method = processMethodContext.getMethod();
         final FacetHolder holder = processMethodContext.getFacetHolder();
 
-        // check for deprecated @Disabled first
-        final Disabled annotation = Annotations.getAnnotation(method, Disabled.class);
-        final DisabledFacet disabledFacet = DisabledFacetForDisabledAnnotationOnProperty.create(annotation, holder);
-        DisabledFacet facet = disabledValidator.flagIfPresent(disabledFacet, processMethodContext);
-
-        // else search for @Property(editing=...)
+        // search for @Property(editing=...)
         final Property property = Annotations.getAnnotation(method, Property.class);
-        if(facet == null) {
-            facet = DisabledFacetForPropertyAnnotation.create(property, holder);
-        }
+        DisabledFacet facet = DisabledFacetForPropertyAnnotation.create(property, holder);
 
         FacetUtil.addFacet(facet);
     }
@@ -416,7 +406,6 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
         metaModelValidator.add(optionalValidator);
         metaModelValidator.add(mandatoryValidator);
         metaModelValidator.add(hiddenValidator);
-        metaModelValidator.add(disabledValidator);
         metaModelValidator.add(mustSatisfyValidator);
         metaModelValidator.add(notPersistedValidator);
         metaModelValidator.add(conflictingOptionalityValidator);
@@ -434,7 +423,6 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
         optionalValidator.setConfiguration(configuration);
         mandatoryValidator.setConfiguration(configuration);
         hiddenValidator.setConfiguration(configuration);
-        disabledValidator.setConfiguration(configuration);
         mustSatisfyValidator.setConfiguration(configuration);
         notPersistedValidator.setConfiguration(configuration);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/disabled/DisabledFacetForDisabledAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/disabled/DisabledFacetForDisabledAnnotationOnProperty.java
deleted file mode 100644
index 8f9a76b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/disabled/DisabledFacetForDisabledAnnotationOnProperty.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.isis.core.metamodel.facets.properties.property.disabled;
-
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstractImpl;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class DisabledFacetForDisabledAnnotationOnProperty extends DisabledFacetAbstractImpl {
-
-    public static DisabledFacet create(final Disabled annotation, final FacetHolder facetHolder) {
-        return annotation != null
-                ? new DisabledFacetForDisabledAnnotationOnProperty(annotation.where(), annotation.reason(), facetHolder)
-                : null;
-    }
-
-    private DisabledFacetForDisabledAnnotationOnProperty(final Where where, String reason, final FacetHolder holder) {
-        super(where, reason, holder);
-    }
-
-
-}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/DisabledAnnotationOnActionFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/DisabledAnnotationOnActionFacetFactoryTest.java
deleted file mode 100644
index 264ffb2..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/DisabledAnnotationOnActionFacetFactoryTest.java
+++ /dev/null
@@ -1,137 +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.isis.core.metamodel.facets.actions.action;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class DisabledAnnotationOnActionFacetFactoryTest extends AbstractFacetFactoryTest {
-
-    private ActionAnnotationFacetFactory facetFactory;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        facetFactory = new ActionAnnotationFacetFactory();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        facetFactory = null;
-        super.tearDown();
-    }
-
-    public void testDisabledAnnotationPickedUpOnAction() {
-        class Customer {
-            @Disabled
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processDisabled(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(DisabledFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof DisabledFacetAbstract);
-
-        assertNoMethodsRemoved();
-    }
-
-    public void testDisabledWhenAlwaysAnnotationPickedUpOn() {
-        class Customer {
-            @Disabled
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processDisabled(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(DisabledFacet.class);
-        final DisabledFacetAbstract disabledFacetAbstract = (DisabledFacetAbstract) facet;
-
-        final DisabledFacet disabledFacet = (DisabledFacet) facet;
-        assertThat(disabledFacet.disabledReason(null), is("Always disabled"));
-
-    }
-
-    public void testDisabledWhenNeverAnnotationPickedUpOn() {
-        class Customer {
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processDisabled(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(DisabledFacet.class);
-        final DisabledFacetAbstract disabledFacetAbstract = (DisabledFacetAbstract) facet;
-
-        assertNull(disabledFacetAbstract);
-    }
-
-
-    public void testDisabledWhereCollectionTableAnnotationPickedUpOn() {
-        class Customer {
-            @Disabled(where = Where.PARENTED_TABLES)
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processDisabled(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(DisabledFacet.class);
-        final DisabledFacetAbstract disabledFacetAbstract = (DisabledFacetAbstract) facet;
-
-        assertEquals(Where.PARENTED_TABLES, disabledFacetAbstract.where());
-    }
-
-
-    public void testDisabledWhereAnnotationPickedUpOn() {
-        class Customer {
-            @Disabled(where = Where.PARENTED_TABLES)
-            public void someAction() {
-            }
-        }
-        final Method actionMethod = findMethod(Customer.class, "someAction");
-
-        facetFactory.processDisabled(new ProcessMethodContext(Customer.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(DisabledFacet.class);
-        final DisabledFacetAbstract disabledFacetAbstract = (DisabledFacetAbstract) facet;
-
-        assertEquals(Where.PARENTED_TABLES, disabledFacetAbstract.where());
-    }
-
-
-}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/DisabledAnnotationOnCollectionFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/DisabledAnnotationOnCollectionFacetFactoryTest.java
index b686e05..1cd3437 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/DisabledAnnotationOnCollectionFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/DisabledAnnotationOnCollectionFacetFactoryTest.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.collections.collection;
 
 import java.lang.reflect.Method;
 import java.util.Collection;
-import org.apache.isis.applib.annotation.Disabled;
+
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
@@ -50,7 +50,6 @@ public class DisabledAnnotationOnCollectionFacetFactoryTest extends AbstractFace
 
     public void testDisabledAnnotationPickedUpOnCollection() {
         class Customer {
-            @Disabled
             public Collection<?> getOrders() {
                 return null;
             }
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/DisabledAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/DisabledAnnotationOnPropertyFacetFactoryTest.java
index 1dd9b0f..3862b09 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/DisabledAnnotationOnPropertyFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/DisabledAnnotationOnPropertyFacetFactoryTest.java
@@ -20,7 +20,7 @@
 package org.apache.isis.core.metamodel.facets.properties.property;
 
 import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.Disabled;
+
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
@@ -49,7 +49,6 @@ public class DisabledAnnotationOnPropertyFacetFactoryTest extends AbstractFacetF
 
     public void testDisabledAnnotationPickedUpOnProperty() {
         class Customer {
-            @Disabled
             public int getNumberOfOrders() {
                 return 0;
             }
@@ -70,7 +69,6 @@ public class DisabledAnnotationOnPropertyFacetFactoryTest extends AbstractFacetF
 
     public void testDisabledAnnotationWithReason() {
         class Customer {
-            @Disabled(reason="Oh no you don't!")
             public int getNumberOfOrders() {
                 return 0;
             }
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index 78d49f9..7b04503 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -17,7 +17,6 @@ org.apache.isis.applib.annotation
 
 
 
-    Disabled.java - entire annotation, use @Property(editingDisabledReason=...) instead
     Hidden.java - entire annotation, use @Property(hidden=...), @Collection(hidden=...), @Action(hidden=...)
 
     Ignore.java - entire annotation, use @Programmatic instead.
@@ -331,6 +330,8 @@ org.apache.isis.applib.annotation
 
     Command.java - entire annotation, use @Action(command=...) instead
 
+    Disabled.java - entire annotation, use @Property(editingDisabledReason=...) instead
+
     ActionSemantics.java  - entire annotation, use @Action(semantics=...)
     Idempotent.java - entire annotation, use @Action(semantics=...) instead.
     QueryOnly.java - entire annotation, use @Action(semantics=...) instead.

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 06/10: ISIS-1742: removes @Immutable annotation, update facet factory and updates .adoc

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 2cc55bf76c76d0670fc8302de16204f3829ae04d
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 9 15:40:17 2017 +0100

    ISIS-1742: removes @Immutable annotation, update facet factory and updates .adoc
---
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |  8 --
 .../applib/adapters/ValueSemanticsProvider.java    |  1 -
 .../apache/isis/applib/annotation/Immutable.java   | 43 -----------
 .../DomainObjectAnnotationFacetFactory.java        | 17 +---
 .../ImmutableFacetForImmutableAnnotation.java      | 49 ------------
 .../DomainObjectAnnotationFacetFactoryTest.java    | 36 ---------
 ...ObjectAnnotationFacetFactoryTest_immutable.java | 90 ----------------------
 todo-deprecation-list.txt                          |  3 +-
 8 files changed, 5 insertions(+), 242 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index 4594680..ff35c9c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -29,14 +29,6 @@ The annotations listed in the table below are still supported by Apache Isis, bu
 |
 
 
-|`@Immutable`
-|An object's state cannot be changed (properties cannot be edited, collections cannot be added to or removed from).
-Actions can still be invoked.
-|xref:../rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject#editing()`]
-|Domain
-|
-
-
 |`@MustSatisfy`
 |Specify arbitrary specification constraints on a property or action parameter.
 |`#mustSatisfy()` attribute for xref:../rgant/rgant.adoc#_rgant-Property_mustSatisfy[`@Property`] or xref:../rgant/rgant.adoc#_rgant-Parameter_mustSatisfy[`@Parameter`]
diff --git a/core/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsProvider.java b/core/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsProvider.java
index 7bc6e5f..4e88afb 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsProvider.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsProvider.java
@@ -24,7 +24,6 @@ import java.math.BigDecimal;
 import org.apache.isis.applib.annotation.Defaulted;
 import org.apache.isis.applib.annotation.Encodable;
 import org.apache.isis.applib.annotation.EqualByContent;
-import org.apache.isis.applib.annotation.Immutable;
 import org.apache.isis.applib.annotation.Parseable;
 import org.apache.isis.applib.annotation.Value;
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Immutable.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Immutable.java
deleted file mode 100644
index 831aa34..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Immutable.java
+++ /dev/null
@@ -1,43 +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.isis.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @deprecated - use {@link DomainObject#editing()} instead.
- */
-@Inherited
-@Target({ ElementType.TYPE })
-@Retention(RetentionPolicy.RUNTIME)
-@Deprecated
-public @interface Immutable {
-
-    /**
-     * @deprecated - see {@link DomainObject#editing()}.  <code>true</code> corresponds to {@link When#ALWAYS}, <code>false</code> corresponds to {@link org.apache.isis.applib.annotation.When#NEVER}.  The other values for the
-     * {@link org.apache.isis.applib.annotation.When} are not (ie no longer) supported.
-     */
-    @Deprecated
-    When value() default When.ALWAYS;
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index 89e938b..b339e86 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -27,7 +27,6 @@ import javax.annotation.PostConstruct;
 import com.google.common.collect.Maps;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Immutable;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectType;
 import org.apache.isis.applib.services.HasTransactionId;
@@ -68,7 +67,6 @@ import org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.Ob
 import org.apache.isis.core.metamodel.facets.object.domainobject.publishing.PublishedObjectFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.recreatable.RecreatableObjectFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
-import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetForImmutableAnnotation;
 import org.apache.isis.core.metamodel.facets.object.mixin.MetaModelValidatorForMixinTypes;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacetForDomainObjectAnnotation;
@@ -90,7 +88,6 @@ import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapabl
 public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         implements MetaModelValidatorRefiner, PostConstructMethodCache {
 
-    private final MetaModelValidatorForDeprecatedAnnotation immutableValidator = new MetaModelValidatorForDeprecatedAnnotation(Immutable.class);
     private final MetaModelValidatorForDeprecatedAnnotation objectTypeValidator = new MetaModelValidatorForDeprecatedAnnotation(ObjectType.class);
     private final MetaModelValidatorForValidationFailures autoCompleteInvalid = new MetaModelValidatorForValidationFailures();
     private final MetaModelValidatorForMixinTypes mixinTypeValidator = new MetaModelValidatorForMixinTypes("@DomainObject#nature=MIXIN");
@@ -251,15 +248,9 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
-        // check for the deprecated annotation first
-        final Immutable annotation = Annotations.getAnnotation(processClassContext.getCls(), Immutable.class);
-        ImmutableFacet facet = immutableValidator.flagIfPresent(
-                ImmutableFacetForImmutableAnnotation.create(annotation, processClassContext.getFacetHolder()));
-
-        // else check from @DomainObject(editing=...)
-        if(facet == null) {
-            facet = ImmutableFacetForDomainObjectAnnotation.create(domainObject, getConfiguration(), facetHolder);
-        }
+        // check from @DomainObject(editing=...)
+        ImmutableFacet facet = ImmutableFacetForDomainObjectAnnotation
+                .create(domainObject, getConfiguration(), facetHolder);
 
         // then add
         FacetUtil.addFacet(facet);
@@ -512,7 +503,6 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
 
         }));
 
-        metaModelValidator.add(immutableValidator);
         metaModelValidator.add(objectTypeValidator);
 
         metaModelValidator.add(autoCompleteInvalid);
@@ -527,7 +517,6 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         super.setServicesInjector(servicesInjector);
         IsisConfiguration configuration = getConfiguration();
 
-        immutableValidator.setConfiguration(configuration);
         objectTypeValidator.setConfiguration(configuration);
 
         this.persistenceSessionServiceInternal = servicesInjector.getPersistenceSessionServiceInternal();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/ImmutableFacetForImmutableAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/ImmutableFacetForImmutableAnnotation.java
deleted file mode 100644
index db9424c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/ImmutableFacetForImmutableAnnotation.java
+++ /dev/null
@@ -1,49 +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.isis.core.metamodel.facets.object.immutable.immutableannot;
-
-import org.apache.isis.applib.annotation.Immutable;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
-import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacetAbstract;
-
-@Deprecated
-public class ImmutableFacetForImmutableAnnotation extends ImmutableFacetAbstract {
-
-    public static ImmutableFacet create(final Immutable annotation, final FacetHolder facetHolder) {
-        if (annotation == null) {
-            return null;
-        }
-        return new ImmutableFacetForImmutableAnnotation(facetHolder);
-    }
-
-    private ImmutableFacetForImmutableAnnotation(final FacetHolder holder) {
-        super(holder);
-    }
-
-    @Override
-    public void copyOnto(final FacetHolder holder) {
-        final Facet facet = new ImmutableFacetForImmutableAnnotation(holder);
-        FacetUtil.addFacet(facet);
-    }
-
-}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
index 6c1ac60..7b0eed4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
@@ -28,7 +28,6 @@ import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Immutable;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
@@ -49,7 +48,6 @@ import org.apache.isis.core.metamodel.facets.object.domainobject.publishing.Publ
 import org.apache.isis.core.metamodel.facets.object.domainobject.publishing.PublishedObjectFacetFromConfiguration;
 import org.apache.isis.core.metamodel.facets.object.domainobject.recreatable.RecreatableObjectFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
-import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetForImmutableAnnotation;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
@@ -541,7 +539,6 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
     public static class Editing extends DomainObjectAnnotationFacetFactoryTest {
 
-        @Immutable
         class CustomerWithImmutableAnnotation {
         }
 
@@ -598,39 +595,6 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
             }
         }
 
-        public static class WithImmutableAnnotation extends Editing {
-
-            @Before
-            public void setUp() throws Exception {
-                super.setUp();
-                ignoringConfiguration();
-            }
-
-            @Test
-            public void has_annotation() {
-
-                final ProcessClassContext processClassContext = new ProcessClassContext(CustomerWithImmutableAnnotation.class, mockMethodRemover, facetHolder);
-                facetFactory.process(processClassContext);
-
-                final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
-                Assert.assertNotNull(facet);
-                Assert.assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
-
-                expectNoMethodsRemoved();
-            }
-
-            @Test
-            public void does_not_have_annotation() {
-
-                facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
-
-                final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
-                Assert.assertNull(facet);
-
-                expectNoMethodsRemoved();
-            }
-
-        }
 
         public static class WithDomainObjectAnnotationWithEditingSetToAsConfigured extends Editing {
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest_immutable.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest_immutable.java
deleted file mode 100644
index 3e14cbc..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest_immutable.java
+++ /dev/null
@@ -1,90 +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.isis.core.metamodel.facets.object.domainobject;
-
-import org.apache.isis.applib.annotation.Immutable;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
-import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetForImmutableAnnotation;
-
-public class DomainObjectAnnotationFacetFactoryTest_immutable extends AbstractFacetFactoryTest {
-
-    private DomainObjectAnnotationFacetFactory facetFactory;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        facetFactory = new DomainObjectAnnotationFacetFactory();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        facetFactory = null;
-        super.tearDown();
-    }
-
-    public void testImmutableAnnotationPickedUpOnClassAndDefaultsToAlways() {
-        @Immutable
-        class Customer {
-        }
-
-        facetFactory.processEditing(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
-        final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
-
-        assertNotNull(immutableFacetAnnotation);
-        assertNoMethodsRemoved();
-    }
-
-    public void testImmutableAnnotationAlwaysPickedUpOnClass() {
-        @Immutable
-        class Customer {
-        }
-
-        facetFactory.processEditing(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
-        final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
-
-        assertNoMethodsRemoved();
-    }
-
-    public void testImmutableAnnotationNeverPickedUpOnClass() {
-        class Customer {
-        }
-
-        facetFactory.processEditing(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
-        final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
-        assertNull(immutableFacetAnnotation);
-
-        assertNoMethodsRemoved();
-    }
-
-}
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index 8ff1a6a..9abf429 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -16,7 +16,6 @@ org.apache.isis.applib.annotation
     InvokedOn.java - entire enum, along with @Bulk annotation.
 
 
-    Immutable.java - entire annotation, use @DomainObject(editing=...) instead
 
     Mandatory.java - entire annotation, use @Property(optionality=...) and @Parameter(optionality=...), or @javax.annotations.Nullable
     Optional.java - entire annotation, use @Property(optionality=...) and @Parameter(optionality=...), or @javax.annotations.Nullable
@@ -359,6 +358,8 @@ org.apache.isis.applib.annotation
 
     Ignore.java - entire annotation, use @Programmatic instead.
 
+    Immutable.java - entire annotation, use @DomainObject(editing=...) instead
+
     Mask.java - entire annotation, not supported by either Wicket viewer or RO viewer
     MaxLength.java - entire annotation, use @Property(maxLength=...) and @Parameter(maxLength=...)
     MultiLine.java - entire annotation, use @PropertyLayout(multiLine=...) and @ParameterLayout(multiLine=...) instead.

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.