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 f8f3615  ISIS-2666: remove AssociateWithFacet
f8f3615 is described below

commit f8f36158a478c3bcd5e8ebb8bd869e78bcb892fc
Author: [email protected] <[email protected]@luna>
AuthorDate: Fri May 14 19:31:05 2021 +0200

    ISIS-2666: remove AssociateWithFacet
---
 .../action/ActionAnnotationFacetFactory.java       |  7 +-
 .../actions/layout/ActionLayoutFacetFactory.java   |  7 +-
 .../facets/actions/layout/AssociateWithFacet.java  | 30 ---------
 .../actions/layout/AssociateWithFacetAbstract.java | 40 ------------
 ...ociateWithFacetDerivedFromChoicesFromFacet.java | 47 --------------
 ...ssociateWithFacetForActionLayoutAnnotation.java | 47 --------------
 .../layout/AssociateWithFacetForLayoutXml.java     | 59 -----------------
 .../members/layout/group/GroupIdAndName.java       | 26 +++++++-
 .../members/layout/group/LayoutGroupFacet.java     |  5 +-
 .../LayoutGroupFacetFromActionAnnotation.java      |  5 ++
 ...eAssociateWithFromChoicesFromPostProcessor.java | 75 ----------------------
 .../dflt/ProgrammingModelFacetsJava8.java          |  2 -
 .../services/grid/GridSystemServiceAbstract.java   |  4 --
 .../core/metamodel/spec/feature/ObjectAction.java  | 56 ++++++++--------
 14 files changed, 66 insertions(+), 344 deletions(-)

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 c7e7307..8abd6d6 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
@@ -26,6 +26,7 @@ import org.apache.isis.applib.events.domain.ActionDomainEvent;
 import org.apache.isis.applib.mixins.system.HasInteractionId;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Collections;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
@@ -272,16 +273,18 @@ extends FacetFactoryAbstract {
             val choicesFrom = action.choicesFrom();
             if(_Strings.isNotEmpty(choicesFrom)) {
                 super.addFacet(new 
ChoicesFromFacetForActionAnnotation(choicesFrom, facetedMethod));
-                
super.addFacet(LayoutGroupFacetFromActionAnnotation.create(actionIfAny, 
facetedMethod));
                 return;
             }
             @SuppressWarnings("deprecation")
             val associateWith = action.associateWith();
             if(_Strings.isNotEmpty(associateWith)) {
                 super.addFacet(new 
ChoicesFromFacetForActionAnnotation(associateWith, facetedMethod));
-                
super.addFacet(LayoutGroupFacetFromActionAnnotation.create(actionIfAny, 
facetedMethod));
+                return;
             }
         });
+
+        
FacetUtil.addIfNotAlreadyPresent(LayoutGroupFacetFromActionAnnotation.create(actionIfAny,
 facetedMethod));
+
     }
 
     void processFileAccept(final ProcessMethodContext processMethodContext, 
Optional<Action> actionIfAny) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
index c0a5f09..6bc7e54 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
@@ -57,11 +57,6 @@ extends FacetFactoryAbstract {
                         () -> MetaModelValidatorForAmbiguousMixinAnnotations
                         
.addValidationFailure(processMethodContext.getFacetHolder(), 
ActionLayout.class));
 
-        // associatedWith
-        AssociateWithFacetForActionLayoutAnnotation associatedWithFacet = 
AssociateWithFacetForActionLayoutAnnotation
-                .create(actionLayoutIfAny, facetHolder);
-        super.addFacet(associatedWithFacet);
-
         // bookmarkable
         BookmarkPolicyFacet bookmarkableFacet = 
BookmarkPolicyFacetForActionLayoutAnnotation
                 .create(actionLayoutIfAny, facetHolder);
@@ -83,7 +78,7 @@ extends FacetFactoryAbstract {
         HiddenFacet hiddenFacet = 
HiddenFacetForActionLayoutAnnotation.create(actionLayoutIfAny, facetHolder);
         super.addFacet(hiddenFacet);
 
-        // layoutGroup
+        // layoutGroup (explicit via field set, or implicit via associated 
collection)
         LayoutGroupFacet layoutGroupFacet = 
LayoutGroupFacetFromActionLayoutAnnotation.create(actionLayoutIfAny, 
facetHolder);
         super.addFacet(layoutGroupFacet);
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacet.java
deleted file mode 100644
index a2a1b45..0000000
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacet.java
+++ /dev/null
@@ -1,30 +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.layout;
-
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
-
-/**
- * Associates an action with a <i>peer</i> (a collection or property),
- * such that it is rendered close to its peer.
- */
-public interface AssociateWithFacet extends SingleStringValueFacet {
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetAbstract.java
deleted file mode 100644
index 3f68d3f..0000000
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetAbstract.java
+++ /dev/null
@@ -1,40 +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.layout;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
-
-public abstract class AssociateWithFacetAbstract
-extends SingleStringValueFacetAbstract
-implements AssociateWithFacet {
-
-    public static Class<? extends Facet> type() {
-        return AssociateWithFacet.class;
-    }
-
-    protected AssociateWithFacetAbstract(
-            final String value,
-            final FacetHolder holder) {
-        super(type(), holder, value);
-    }
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetDerivedFromChoicesFromFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetDerivedFromChoicesFromFacet.java
deleted file mode 100644
index 1cfa6d1..0000000
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetDerivedFromChoicesFromFacet.java
+++ /dev/null
@@ -1,47 +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.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import 
org.apache.isis.core.metamodel.facets.actions.action.associateWith.ChoicesFromFacet;
-
-public class AssociateWithFacetDerivedFromChoicesFromFacet extends 
AssociateWithFacetAbstract {
-
-    public static AssociateWithFacetDerivedFromChoicesFromFacet create(
-            final Optional<ChoicesFromFacet> choicesFromFacetIfAny,
-            final FacetHolder holder) {
-
-        return choicesFromFacetIfAny
-                .map(ChoicesFromFacet::value)
-                .filter(_Strings::isNotEmpty)
-                .map(associateWith -> new 
AssociateWithFacetDerivedFromChoicesFromFacet(associateWith, holder))
-                .orElse(null);
-    }
-
-    private AssociateWithFacetDerivedFromChoicesFromFacet(
-            final String value,
-            final FacetHolder holder) {
-        super(value, holder);
-    }
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForActionLayoutAnnotation.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForActionLayoutAnnotation.java
deleted file mode 100644
index e10ac40..0000000
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForActionLayoutAnnotation.java
+++ /dev/null
@@ -1,47 +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.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-
-public class AssociateWithFacetForActionLayoutAnnotation extends 
AssociateWithFacetAbstract {
-
-    public static AssociateWithFacetForActionLayoutAnnotation create(
-            final Optional<ActionLayout> actionLayoutIfAny,
-            final FacetHolder holder) {
-
-        return actionLayoutIfAny
-                .map(ActionLayout::associateWith)
-                .filter(_Strings::isNotEmpty)
-                .map(associateWith -> new 
AssociateWithFacetForActionLayoutAnnotation(associateWith, holder))
-                .orElse(null);
-    }
-
-    private AssociateWithFacetForActionLayoutAnnotation(
-            final String value,
-            final FacetHolder holder) {
-        super(value, holder);
-    }
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForLayoutXml.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForLayoutXml.java
deleted file mode 100644
index 46464f4..0000000
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/AssociateWithFacetForLayoutXml.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.actions.layout;
-
-import javax.annotation.Nullable;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import 
org.apache.isis.core.metamodel.facets.members.layout.group.GroupIdAndName;
-
-import lombok.NonNull;
-
-public class AssociateWithFacetForLayoutXml extends AssociateWithFacetAbstract 
{
-
-    // -- FACTORIES
-
-    public static @Nullable AssociateWithFacetForLayoutXml create(
-            final @Nullable GroupIdAndName groupIdAndName,
-            final @NonNull  FacetHolder holder) {
-
-        return groupIdAndName!=null
-                ? new AssociateWithFacetForLayoutXml(groupIdAndName.getId(), 
holder)
-                : null;
-    }
-
-//    public static @Nullable AssociatedWithFacetFromLayoutXml create(
-//            final @NonNull FieldSet fieldSet,
-//            final @NonNull FacetHolder holder) {
-//
-//        return GroupIdAndName.forFieldSet(fieldSet)
-//            .map(groupIdAndName->create(groupIdAndName, holder))
-//            .orElse(null);
-//    }
-
-    // -- IMPLEMENTATION
-
-    private AssociateWithFacetForLayoutXml(
-            final String value,
-            final FacetHolder holder) {
-        super(value, holder);
-    }
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
index 079da77..0c63555 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/GroupIdAndName.java
@@ -63,17 +63,37 @@ implements
 
     // -- FACTORIES FOR ANNOTATIONS
 
+    @SuppressWarnings("deprecation")
     public static Optional<GroupIdAndName> forAction(
             final @NonNull Action action) {
+
+        val nonLegacy = GroupIdAndName.inferIfOneMissing(
+                action.choicesFrom(),
+                null);
+
+        if(nonLegacy.isPresent()) {
+            return nonLegacy;
+        }
+
         return GroupIdAndName.inferIfOneMissing(
-                action.associateWith(), null);
+                action.associateWith(),
+                null);
     }
 
     public static Optional<GroupIdAndName> forActionLayout(
             final @NonNull ActionLayout actionLayout) {
-        return GroupIdAndName.inferIfOneMissing(
+
+        val explicit =  GroupIdAndName.inferIfOneMissing(
                 actionLayout.fieldSetId(),
                 actionLayout.fieldSetName());
+
+        if(explicit.isPresent()) {
+            return explicit;
+        }
+
+        return GroupIdAndName.inferIfOneMissing(
+                actionLayout.associateWith(),
+                null);
     }
 
     public static Optional<GroupIdAndName> forPropertyLayout(
@@ -174,4 +194,6 @@ implements
 
     }
 
+
+
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
index 89fce63..224684e 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacet.java
@@ -30,7 +30,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
  * {@link ActionLayout#fieldSetName()} and {@link 
PropertyLayout#fieldSetName()}.
  * <p>
  * Collections don't support grouping, but can be associated using
- * {@link Action#associateWith()}.
+ * {@link ActionLayout#associateWith()}.
  * </p><p>
  * An alternative is to use the <code>Xxx.layout.xml</code> file,
  * where <code>Xxx</code> is the domain object name.
@@ -38,7 +38,8 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
  * For a more in depth description see {@link PropertyLayout#fieldSetId()}.
  * </p>
  *
- * @see Action#associateWith()
+ * @see Action#choicesFrom()
+ * @see ActionLayout#associateWith()
  * @see ActionLayout#fieldSetId()
  * @see ActionLayout#fieldSetName()
  * @see PropertyLayout#fieldSetId()
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
index b50dd49..e778e36 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/layout/group/LayoutGroupFacetFromActionAnnotation.java
@@ -40,4 +40,9 @@ extends LayoutGroupFacetAbstract {
         super(groupIdAndName, holder);
     }
 
+    @Override
+    public boolean isFallback() {
+        return true;
+    }
+
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveAssociateWithFromChoicesFromPostProcessor.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveAssociateWithFromChoicesFromPostProcessor.java
deleted file mode 100644
index 9a95be4..0000000
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DeriveAssociateWithFromChoicesFromPostProcessor.java
+++ /dev/null
@@ -1,75 +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.postprocessors.all;
-
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import 
org.apache.isis.core.metamodel.facets.actions.action.associateWith.ChoicesFromFacet;
-import org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacet;
-import 
org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacetDerivedFromChoicesFromFacet;
-import 
org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
-import 
org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory;
-import 
org.apache.isis.core.metamodel.postprocessors.ObjectSpecificationPostProcessorAbstract;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-
-/**
- * Replaces some of the functionality in {@link 
DescribedAsFacetOnMemberFactory} and
- * {@link DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory}.
- */
-public class DeriveAssociateWithFromChoicesFromPostProcessor
-extends ObjectSpecificationPostProcessorAbstract {
-
-    @Override
-    protected void doPostProcess(ObjectSpecification objectSpecification) {
-        // no-op
-    }
-
-    @Override
-    protected void doPostProcess(ObjectSpecification objectSpecification, 
final ObjectAction objectAction) {
-        if(objectAction.containsNonFallbackFacet(AssociateWithFacet.class)) {
-            return;
-        }
-        
FacetUtil.addFacet(AssociateWithFacetDerivedFromChoicesFromFacet.create(
-                objectAction.lookupNonFallbackFacet(ChoicesFromFacet.class),
-                facetedMethodFor(objectAction)));
-    }
-
-    @Override
-    protected void doPostProcess(ObjectSpecification objectSpecification, 
ObjectAction objectAction,
-            ObjectActionParameter param) {
-        // no-op
-    }
-
-    @Override
-    protected void doPostProcess(ObjectSpecification objectSpecification, 
OneToOneAssociation prop) {
-        // no-op
-
-    }
-
-    @Override
-    protected void doPostProcess(ObjectSpecification objectSpecification, 
OneToManyAssociation coll) {
-        // no-op
-    }
-
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 6d77ca0..3b3fdac 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -141,7 +141,6 @@ import 
org.apache.isis.core.metamodel.methods.MemberSupportAnnotationEnforcesSup
 import org.apache.isis.core.metamodel.methods.MethodByClassMap;
 import 
org.apache.isis.core.metamodel.methods.OrphanedSupportingMethodValidator;
 import 
org.apache.isis.core.metamodel.postprocessors.DeriveMixinMembersPostProcessor;
-import 
org.apache.isis.core.metamodel.postprocessors.all.DeriveAssociateWithFromChoicesFromPostProcessor;
 import 
org.apache.isis.core.metamodel.postprocessors.all.DeriveDescribedAsFromTypePostProcessor;
 import 
org.apache.isis.core.metamodel.postprocessors.all.i18n.TranslationPostProcessor;
 import 
org.apache.isis.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacetPostProcessor;
@@ -372,7 +371,6 @@ public final class ProgrammingModelFacetsJava8 extends 
ProgrammingModelAbstract
 
         // only after this point have any mixin members been resolved and are 
available on the ObjectSpecification.
 
-        addPostProcessor(PostProcessingOrder.A1_BUILTIN, 
DeriveAssociateWithFromChoicesFromPostProcessor.class);
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, 
DeriveDescribedAsFromTypePostProcessor.class);
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, 
DeriveTypicalLengthFromTypePostProcessor.class);
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, 
DeriveDefaultFromTypePostProcessor.class);
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index 14b598e..c384e46 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -41,7 +41,6 @@ import 
org.apache.isis.core.config.environment.IsisSystemEnvironment;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import 
org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionXml;
-import 
org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacetForLayoutXml;
 import 
org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionXml;
 import 
org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionXml;
 import 
org.apache.isis.core.metamodel.facets.actions.layout.CssClassFacetForActionXml;
@@ -82,7 +81,6 @@ import org.apache.isis.core.metamodel.spec.feature.MixedIn;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
-import static 
org.apache.isis.core.metamodel.facetapi.FacetUtil.addIfNotAlreadyPresent;
 import static 
org.apache.isis.core.metamodel.facetapi.FacetUtil.addOrReplaceFacet;
 
 import lombok.Value;
@@ -239,8 +237,6 @@ implements GridSystemService<G> {
                 }
                 
addOrReplaceFacet(LayoutOrderFacetFromXml.create(memberOrderSequence, 
objectAction));
                 
addOrReplaceFacet(LayoutGroupFacetFromXml.create(groupIdAndName, objectAction));
-                
addIfNotAlreadyPresent(AssociateWithFacetForLayoutXml.create(groupIdAndName, 
objectAction));
-
 
                 // fix up the action position if required
                 if(actionLayoutDataOwner instanceof FieldSet) {
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 0be1b23..c3dab4e 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
@@ -40,7 +40,6 @@ import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResultSet;
 import 
org.apache.isis.core.metamodel.facets.actions.action.associateWith.ChoicesFromFacet;
-import org.apache.isis.core.metamodel.facets.actions.layout.AssociateWithFacet;
 import 
org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
@@ -407,8 +406,9 @@ public interface ObjectAction extends ObjectMember {
             return (ObjectAction oa) -> oa.getType() == type;
         }
 
-        public static Predicate<ObjectAction> associatedWith(final 
ObjectAssociation objectAssociation) {
-            return new AssociateWith(objectAssociation);
+        public static Predicate<ObjectAction> associatedWith(final 
ObjectAssociation association) {
+            //return new AssociateWith(objectAssociation);
+            return isSameLayoutGroup(association);
         }
 
         public static Predicate<ObjectAction> 
choicesFromAndHavingCollectionParameterFor(
@@ -424,31 +424,31 @@ public interface ObjectAction extends ObjectMember {
 
         // -- HELPER
 
-        private static class AssociateWith implements Predicate<ObjectAction> {
-            private final @NonNull String memberId;
-            private final @NonNull String memberName;
-
-            public AssociateWith(final @NonNull ObjectAssociation 
objectAssociation) {
-                this.memberId = 
_Strings.nullToEmpty(objectAssociation.getId()).toLowerCase();
-                this.memberName = 
_Strings.nullToEmpty(objectAssociation.getName()).toLowerCase();;
-            }
-
-            @Override
-            public boolean test(final ObjectAction objectAction) {
-                val associatedWithFacet = 
objectAction.getFacet(AssociateWithFacet.class);
-                if(associatedWithFacet == null) {
-                    return false;
-                }
-                val associatedMemberName = associatedWithFacet.value();
-                if (associatedMemberName == null) {
-                    return false;
-                }
-                val memberNameLowerCase = associatedMemberName.toLowerCase();
-                return Objects.equals(memberName, memberNameLowerCase)
-                        || Objects.equals(memberId, memberNameLowerCase);
-            }
-
-        }
+//        private static class AssociateWith implements 
Predicate<ObjectAction> {
+//            private final @NonNull String memberId;
+//            private final @NonNull String memberName;
+//
+//            public AssociateWith(final @NonNull ObjectAssociation 
objectAssociation) {
+//                this.memberId = 
_Strings.nullToEmpty(objectAssociation.getId()).toLowerCase();
+//                this.memberName = 
_Strings.nullToEmpty(objectAssociation.getName()).toLowerCase();;
+//            }
+//
+//            @Override
+//            public boolean test(final ObjectAction objectAction) {
+//                val associatedWithFacet = 
objectAction.getFacet(AssociateWithFacet.class);
+//                if(associatedWithFacet == null) {
+//                    return false;
+//                }
+//                val associatedMemberName = associatedWithFacet.value();
+//                if (associatedMemberName == null) {
+//                    return false;
+//                }
+//                val memberNameLowerCase = associatedMemberName.toLowerCase();
+//                return Objects.equals(memberName, memberNameLowerCase)
+//                        || Objects.equals(memberId, memberNameLowerCase);
+//            }
+//
+//        }
 
         private static class ChoicesFrom implements Predicate<ObjectAction> {
             private final @NonNull String memberId;

Reply via email to