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:12 UTC

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

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>.