You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/05/24 10:00:12 UTC

[isis] branch master updated: ISIS-2665: associateWith on @Action has been deprecated

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6727ce6  ISIS-2665: associateWith on @Action has been deprecated
6727ce6 is described below

commit 6727ce6dddd9b9ea2e2a90e89d2a0119e227e6d5
Author: andi-huber <ah...@apache.org>
AuthorDate: Mon May 24 11:59:56 2021 +0200

    ISIS-2665: associateWith on @Action has been deprecated
---
 .../applib/mixins/layout/Object_downloadLayoutXml.java |  6 +++++-
 .../mixins/metamodel/Object_downloadMetamodelXml.java  |  5 ++++-
 .../mixins/metamodel/Object_objectIdentifier.java      |  2 --
 .../mixins/metamodel/Object_rebuildMetamodel.java      |  4 +++-
 .../isis/applib/mixins/rest/Object_openRestApi.java    |  4 +++-
 .../system/DomainChangeRecord_openTargetObject.java    | 18 +++++++++---------
 .../metamodel/inspect/Object_inspectMetamodel.java     |  2 +-
 .../jdo/entities/CommandJdo_openResultObject.java      | 10 ++++------
 .../jdo/entities/CommandJdo_openTargetObject.java      |  6 ++----
 .../commandlog/jdo/entities/CommandJdo_retry.java      |  5 ++---
 .../jdo/mixins/HasInteractionId_command.java           |  5 ++---
 .../commandlog/jdo/mixins/Object_recentCommands.java   |  2 +-
 .../primary/mixins/Object_openOnSecondary.java         |  2 +-
 .../secondary/mixins/CommandModel_exclude.java         |  5 ++---
 .../secondary/mixins/Object_openOnPrimary.java         |  2 +-
 .../mixins/Persistable_downloadJdoMetadata.java        |  2 +-
 .../jpa/springdata/EmployeeManager_deleteEmployee.java |  2 +-
 .../jpa/springdata/EmployeeManager_newEmployee.java    |  4 +++-
 .../bulkupdate/BulkUpdateManagerForDemoToDoItem.java   |  8 ++++----
 .../applib/mixins/Object_impersonateWithRoles.java     |  4 +---
 .../common/applib/mixins/Object_stopImpersonating.java |  2 +-
 .../viewer/wicket/viewer/mixins/Object_clearHints.java |  4 ++--
 22 files changed, 53 insertions(+), 51 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
index 339ce2f..a969d59 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
@@ -22,6 +22,7 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.applib.annotation.RestrictTo;
@@ -46,12 +47,12 @@ import lombok.val;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-download",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "700.1"
 )
 @RequiredArgsConstructor
@@ -62,6 +63,7 @@ public class Object_downloadLayoutXml {
 
     private final Object holder;
 
+    @MemberSupport
     public Object act(
             @ParameterLayout(
                     named = DtoMixinConstants.FILENAME_PROPERTY_NAME,
@@ -76,6 +78,7 @@ public class Object_downloadLayoutXml {
     /**
      * Defaults to the (simple) name of the domain object's class, with a <code>.layout</code> suffix
      */
+    @MemberSupport
     public String default0Act() {
         return holder.getClass().getSimpleName() + ".layout";
     }
@@ -84,6 +87,7 @@ public class Object_downloadLayoutXml {
      * Default style is {@link Style#NORMALIZED}.
      * @return
      */
+    @MemberSupport
     public Style default1Act() {
         return Style.NORMALIZED;
     }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java
index f1482a8..79179ba 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetamodelXml.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.applib.annotation.RestrictTo;
@@ -51,12 +52,12 @@ import lombok.val;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-download",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "700.2"
 )
 @RequiredArgsConstructor
@@ -67,6 +68,7 @@ public class Object_downloadMetamodelXml {
     public static class ActionDomainEvent
     extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Object_downloadMetamodelXml> {}
 
+    @MemberSupport
     public Object act(
             @ParameterLayout(
                     named = DtoMixinConstants.FILENAME_PROPERTY_NAME,
@@ -99,6 +101,7 @@ public class Object_downloadMetamodelXml {
     /**
      * Defaults to the simple name of the domain object's class.
      */
+    @MemberSupport
     public String default0Act() {
         return holder.getClass().getSimpleName();
     }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
index 5165e95..c498407 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
@@ -28,9 +28,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.mixins.layout.LayoutMixinConstants;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
-import org.apache.isis.commons.internal.base._Strings;
 
-import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java
index 78b6e2f..4c0bc4e 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_rebuildMetamodel.java
@@ -22,6 +22,7 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
@@ -42,12 +43,12 @@ import lombok.RequiredArgsConstructor;
         semantics = SemanticsOf.IDEMPOTENT,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-sync",
         position = ActionLayout.Position.PANEL,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "800.1"
 )
 @RequiredArgsConstructor
@@ -58,6 +59,7 @@ public class Object_rebuildMetamodel {
 
     private final Object holder;
 
+    @MemberSupport
     public Object act() {
         metaModelService.rebuild(holder.getClass());
         return holder;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java
index c311df0..03f70cd 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/rest/Object_openRestApi.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
@@ -45,12 +46,12 @@ import lombok.val;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-external-link-alt",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "750.1"
 )
 @RequiredArgsConstructor
@@ -61,6 +62,7 @@ public class Object_openRestApi {
 
     private final Object holder;
 
+    @MemberSupport
     public LocalResourcePath act() {
         val bookmark = bookmarkService.bookmarkForElseFail(holder);
         val objType = bookmark.getObjectType();
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord_openTargetObject.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord_openTargetObject.java
index 49a4ec4..228df72 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord_openTargetObject.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/system/DomainChangeRecord_openTargetObject.java
@@ -22,6 +22,7 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.message.MessageService;
@@ -38,18 +39,15 @@ import lombok.RequiredArgsConstructor;
  *
  * @since v2.0 {@index}
  */
-@Action(
-        semantics = SemanticsOf.SAFE
-        , associateWith = "target")
-@ActionLayout(named = "Open", sequence = "1")
+@Action(semantics = SemanticsOf.SAFE)
+@ActionLayout(named = "Open", associateWith = "target", sequence = "1")
 @RequiredArgsConstructor
 public class DomainChangeRecord_openTargetObject {
 
     private final DomainChangeRecord domainChangeRecord;
 
-    @Action(semantics = SemanticsOf.SAFE, associateWith = "target")
-    @ActionLayout(named = "Open", sequence = "1")
-    public Object openTargetObject() {
+    @MemberSupport
+    public Object act() {
         try {
             return bookmarkService != null
                     ? bookmarkService.lookup(domainChangeRecord.getTarget()).orElse(null)
@@ -63,11 +61,13 @@ public class DomainChangeRecord_openTargetObject {
         }
     }
 
-    public boolean hideOpenTargetObject() {
+    @MemberSupport
+    public boolean hideAct() {
         return domainChangeRecord.getTarget() == null;
     }
 
-    public String disableOpenTargetObject() {
+    @MemberSupport
+    public String disableAct() {
         final Object targetObject = domainChangeRecord.getTarget();
         if (targetObject == null) {
             return null;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java
index 26456ed..d060481 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/Object_inspectMetamodel.java
@@ -44,12 +44,12 @@ import lombok.val;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-sitemap",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "700.2.1"
 )
 @RequiredArgsConstructor
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openResultObject.java b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openResultObject.java
index 41db097..59a1687 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openResultObject.java
+++ b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openResultObject.java
@@ -27,23 +27,21 @@ import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.extensions.commandlog.jdo.IsisModuleExtCommandLogJdo;
 
+import lombok.RequiredArgsConstructor;
 import lombok.val;
 
 @Action(
     semantics = SemanticsOf.SAFE,
-    domainEvent = CommandJdo_openResultObject.ActionDomainEvent.class,
-    associateWith = "result"
+    domainEvent = CommandJdo_openResultObject.ActionDomainEvent.class
 )
-@ActionLayout(named = "Open", sequence="1")
+@ActionLayout(named = "Open", associateWith = "result", sequence="1")
+@RequiredArgsConstructor
 public class CommandJdo_openResultObject {
 
     public static class ActionDomainEvent
             extends IsisModuleExtCommandLogJdo.ActionDomainEvent<CommandJdo_openResultObject> { }
 
     private final CommandJdo commandJdo;
-    public CommandJdo_openResultObject(CommandJdo commandJdo) {
-        this.commandJdo = commandJdo;
-    }
 
     public Object act() {
         val targetBookmark = bookmarkService.lookup(commandJdo.getResult()).orElse(null);
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openTargetObject.java b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openTargetObject.java
index adc6c63..3fb718d 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openTargetObject.java
+++ b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_openTargetObject.java
@@ -32,10 +32,9 @@ import lombok.val;
 
 @Action(
     semantics = SemanticsOf.SAFE,
-    domainEvent = CommandJdo_openTargetObject.ActionDomainEvent.class,
-    associateWith = "target"
+    domainEvent = CommandJdo_openTargetObject.ActionDomainEvent.class
 )
-@ActionLayout(named = "Open", sequence="1")
+@ActionLayout(named = "Open", associateWith = "target", sequence="1")
 @RequiredArgsConstructor
 public class CommandJdo_openTargetObject {
 
@@ -44,7 +43,6 @@ public class CommandJdo_openTargetObject {
 
     private final CommandJdo commandJdo;
 
-
     public Object act() {
         val targetBookmark = bookmarkService.lookup(commandJdo.getTarget()).orElse(null);
         if(targetBookmark == null) {
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_retry.java b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_retry.java
index 79d1a2b..aeefcb9 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_retry.java
+++ b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/entities/CommandJdo_retry.java
@@ -38,10 +38,9 @@ import lombok.RequiredArgsConstructor;
 @Action(
     semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE,
     domainEvent = CommandJdo_retry.ActionDomainEvent.class,
-    commandPublishing = Publishing.DISABLED,
-    associateWith = "executeIn"
+    commandPublishing = Publishing.DISABLED
 )
-@ActionLayout(sequence = "1")
+@ActionLayout(associateWith = "executeIn", sequence = "1")
 @RequiredArgsConstructor
 public class CommandJdo_retry {
 
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/HasInteractionId_command.java b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/HasInteractionId_command.java
index 55d80ec..b4a236cc 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/HasInteractionId_command.java
+++ b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/HasInteractionId_command.java
@@ -43,10 +43,9 @@ import lombok.RequiredArgsConstructor;
  */
 @Action(
     semantics = SemanticsOf.SAFE
-    , domainEvent = HasInteractionId_command.ActionDomainEvent.class,
-    associateWith = "interactionId"
+    , domainEvent = HasInteractionId_command.ActionDomainEvent.class
 )
-@ActionLayout(sequence="1")
+@ActionLayout(associateWith = "interactionId", sequence="1")
 @RequiredArgsConstructor
 public class HasInteractionId_command {
 
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/Object_recentCommands.java b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/Object_recentCommands.java
index da5325e..7477b12 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/Object_recentCommands.java
+++ b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/mixins/Object_recentCommands.java
@@ -46,12 +46,12 @@ import org.apache.isis.extensions.commandlog.jdo.entities.CommandJdoRepository;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-bolt",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "900.1"
 )
 public class Object_recentCommands {
diff --git a/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/mixins/Object_openOnSecondary.java b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/mixins/Object_openOnSecondary.java
index f6d4981..61c6e3e 100644
--- a/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/mixins/Object_openOnSecondary.java
+++ b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/mixins/Object_openOnSecondary.java
@@ -45,12 +45,12 @@ import lombok.val;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-external-link-alt",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "750.3"
 )
 @RequiredArgsConstructor
diff --git a/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/CommandModel_exclude.java b/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/CommandModel_exclude.java
index f28b650..deadccc 100644
--- a/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/CommandModel_exclude.java
+++ b/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/CommandModel_exclude.java
@@ -38,10 +38,9 @@ import lombok.RequiredArgsConstructor;
  */
 @Action(
     semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE,
-    domainEvent = CommandModel_exclude.ActionDomainEvent.class,
-    associateWith = "executeIn"
+    domainEvent = CommandModel_exclude.ActionDomainEvent.class
 )
-@ActionLayout(sequence = "2")
+@ActionLayout(associateWith = "executeIn", sequence = "2")
 @RequiredArgsConstructor
 //@Log4j2
 public class CommandModel_exclude {
diff --git a/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/Object_openOnPrimary.java b/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/Object_openOnPrimary.java
index 2d09487..bcc59f9 100644
--- a/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/Object_openOnPrimary.java
+++ b/extensions/core/command-replay/secondary/src/main/java/org/apache/isis/extensions/commandreplay/secondary/mixins/Object_openOnPrimary.java
@@ -45,12 +45,12 @@ import lombok.val;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-external-link-alt",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "750.2"
 )
 @RequiredArgsConstructor
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
index f4b64a8..c227edb 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
@@ -52,12 +52,12 @@ import lombok.RequiredArgsConstructor;
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-download",
         position = ActionLayout.Position.PANEL_DROPDOWN,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "710.1"
 )
 @RequiredArgsConstructor
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_deleteEmployee.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_deleteEmployee.java
index 9e74f7e..dcc525c 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_deleteEmployee.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_deleteEmployee.java
@@ -26,7 +26,7 @@ import org.apache.isis.applib.annotation.Action;
 
 import lombok.RequiredArgsConstructor;
 
-@Action(associateWith = "allEmployees")
+@Action(choicesFrom = "allEmployees")
 @RequiredArgsConstructor
 public class EmployeeManager_deleteEmployee {
 
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_newEmployee.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_newEmployee.java
index 058b471..4835ae7 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_newEmployee.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/jpa/springdata/EmployeeManager_newEmployee.java
@@ -21,11 +21,13 @@ package org.apache.isis.testdomain.jpa.springdata;
 import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
 
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 
-@Action(associateWith = "allEmployees")
+@Action
+@ActionLayout(associateWith = "allEmployees")
 @RequiredArgsConstructor
 public class EmployeeManager_newEmployee {
 
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
index 8473a14..39c3473 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
@@ -18,9 +18,6 @@
  */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
 
-import static org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem.Predicates.thoseCategorised;
-import static org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem.Predicates.thoseCompleted;
-
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -54,6 +51,9 @@ import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category
 import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
 import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 
+import static org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem.Predicates.thoseCategorised;
+import static org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem.Predicates.thoseCompleted;
+
 import lombok.Getter;
 import lombok.Setter;
 import lombok.val;
@@ -177,7 +177,7 @@ public class BulkUpdateManagerForDemoToDoItem {
         return excelService.toExcel(new WorksheetContent(toDoItemViewModels, WORKSHEET_SPEC), fileName);
     }
 
-    @Action(associateWith = "toDoItems")
+    @Action(choicesFrom = "toDoItems")
     @ActionLayout(named = "Import", sequence = "2")
     public List<BulkUpdateLineItemForDemoToDoItem> importBlob(
             @Parameter(fileAccept = ".xlsx")
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_impersonateWithRoles.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_impersonateWithRoles.java
index 0754af0..9e66648 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_impersonateWithRoles.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_impersonateWithRoles.java
@@ -24,8 +24,6 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.LabelPosition;
-import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.applib.annotation.Redirect;
 import org.apache.isis.applib.annotation.RestrictTo;
@@ -46,13 +44,13 @@ import lombok.RequiredArgsConstructor;
         semantics = SemanticsOf.IDEMPOTENT,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         cssClassFa = "fa-mask",
         position = ActionLayout.Position.PANEL_DROPDOWN,
         redirectPolicy = Redirect.EVEN_IF_SAME,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "850.2"
 )
 @RequiredArgsConstructor
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_stopImpersonating.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_stopImpersonating.java
index 1095ad2..07783a9 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_stopImpersonating.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/applib/mixins/Object_stopImpersonating.java
@@ -42,12 +42,12 @@ import lombok.RequiredArgsConstructor;
         semantics = SemanticsOf.IDEMPOTENT,
         commandPublishing = Publishing.DISABLED,
         executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         restrictTo = RestrictTo.PROTOTYPING
 )
 @ActionLayout(
         position = ActionLayout.Position.PANEL_DROPDOWN,
         redirectPolicy = Redirect.EVEN_IF_SAME,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "850.3"
 )
 @RequiredArgsConstructor
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
index 9c72b65..7310fb3 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
@@ -63,12 +63,12 @@ import lombok.val;
         domainEvent = Object_clearHints.ActionDomainEvent.class,
         semantics = SemanticsOf.IDEMPOTENT,
         commandPublishing = Publishing.DISABLED,
-        executionPublishing = Publishing.DISABLED,
-        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME
+        executionPublishing = Publishing.DISABLED
 )
 @ActionLayout(
         cssClassFa = "fa-circle",
         position = ActionLayout.Position.PANEL,
+        associateWith = LayoutMixinConstants.METADATA_LAYOUT_GROUPNAME,
         sequence = "400.1"
 )
 @RequiredArgsConstructor