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 2018/08/27 14:30:21 UTC

[isis] branch master updated (02dd6ae -> fc19719)

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

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


    from 02dd6ae  ISIS-1635: resteasy plugin v3 fixed to support 3.1.4.Final
     new 7dd440a  ISIS-1841: moving MemberGroupLayout to -legacy
     new 4df5f8b  ISIS-1918: Remove hamcrest as a compile dependency from core modules
     new 68535da  ISIS-1918: Remove hamcrest as a compile dependency from core modules
     new 519ff97  ISIS-1905: explicitely set axon 2.x version in runtime-legacy
     new fc19719  ISIS-1841: remove deprecated MemberGroupLayout

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


Summary of changes:
 .../isis/applib/services/grid/GridService.java     |   6 +-
 .../isis/applib/services/layout/LayoutService.java |   4 +-
 .../commons/internal/functions/_Functions.java     |   2 +-
 .../_Predicates.java}                              |  39 +++---
 .../isis/applib/annotation/MemberGroupLayout.java  |   1 +
 .../MemberGroupLayoutColumnSpansTest.java          |   0
 .../membergroups/MemberGroupLayoutFacet.java       |   0
 .../MemberGroupLayoutFacetAbstract.java            |   0
 .../MemberGroupLayoutFacetAnnotation.java          |   0
 .../annotprop/MemberGroupLayoutFacetFactory.java   |   0
 .../annotprop/MemberGroupLayoutFacetFallback.java  |   0
 .../MemberGroupLayoutFacetProperties.java          |   0
 .../services/grid/fixedcols/applib/Hint.java       |   1 +
 .../core/metamodel/spec/ObjectSpecifications.java  |   0
 ...ugin.java => ProgrammingModelLegacyPlugin.java} |   5 +-
 ...core.metamodel.progmodel.ProgrammingModelPlugin |   2 +-
 .../MemberGroupLayoutFacetFactoryTest.java         |   0
 ...oupLayoutFacetPropertiesTest_asColumnSpans.java |   0
 ...GroupLayoutFacetPropertiesTest_asGroupList.java |   0
 .../metamodel/spec/ObjectSpecificationsTest.java   |   0
 core/legacy/runtime-legacy/pom.xml                 |   1 +
 .../apache/isis/core/commons/ensure/Ensure.java    | 108 +++------------
 .../apache/isis/core/metamodel/consent/Veto.java   |   4 +-
 .../core/metamodel/facetapi/FacetAbstract.java     |  18 +--
 .../grid/bootstrap3/GridSystemServiceBS3.java      |  46 +++----
 .../metamodel/spec/feature/ObjectAssociation.java  |   7 +-
 .../specimpl/ObjectSpecificationAbstract.java      |  27 ++--
 .../dflt/ProgrammingModelFacetsJava5.java          |   8 +-
 .../ensure/Ensure_GivenValueThatDoesMatchTest.java |  22 +--
 .../Ensure_GivenValueThatDoesNotMatchTest.java     |  36 +----
 .../isis/core/commons/matchers/IsisMatchers.java   |   0
 .../system/persistence/PersistenceSession4.java    |  21 +--
 .../system/persistence/PersistenceSession5.java    |  22 +--
 core/pom.xml                                       |   9 +-
 core/unittestsupport/pom.xml                       | 147 +++++++++++----------
 35 files changed, 217 insertions(+), 319 deletions(-)
 copy core/commons/src/main/java/org/apache/isis/commons/internal/{compare/_Comparators.java => functions/_Predicates.java} (61%)
 rename core/{applib => legacy/applib-legacy}/src/main/java/org/apache/isis/applib/annotation/MemberGroupLayout.java (99%)
 rename core/{applib => legacy/applib-legacy}/src/test/java/org/apache/isis/applib/annotation/MemberGroupLayoutColumnSpansTest.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacet.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacetAbstract.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetAnnotation.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactory.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFallback.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java (99%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java (100%)
 rename core/legacy/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/{ProgrammingModelIsisTimePlugin.java => ProgrammingModelLegacyPlugin.java} (89%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asColumnSpans.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asGroupList.java (100%)
 rename core/{metamodel => legacy/metamodel-legacy}/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationsTest.java (100%)
 rename core/metamodel/src/{main => test}/java/org/apache/isis/core/commons/matchers/IsisMatchers.java (100%)


[isis] 02/05: ISIS-1918: Remove hamcrest as a compile dependency from core modules

Posted by ah...@apache.org.
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

commit 4df5f8b9f8ec10154c3c438931c52758701fe838
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Aug 27 15:26:24 2018 +0200

    ISIS-1918: Remove hamcrest as a compile dependency from core modules
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1918
---
 .../apache/isis/core/commons/ensure/Ensure.java    | 108 +++------------
 .../apache/isis/core/metamodel/consent/Veto.java   |   4 +-
 .../core/metamodel/facetapi/FacetAbstract.java     |  18 +--
 .../isis/core/commons/matchers/IsisMatchers.java   |   0
 core/pom.xml                                       |   9 +-
 core/unittestsupport/pom.xml                       | 147 +++++++++++----------
 6 files changed, 115 insertions(+), 171 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java
index f26a54d..2342033 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java
@@ -19,14 +19,14 @@
 
 package org.apache.isis.core.commons.ensure;
 
+import static org.apache.isis.commons.internal.base._With.requires;
+
+import java.util.function.Predicate;
 import java.util.function.Supplier;
 
-import org.hamcrest.Matcher;
-import org.hamcrest.StringDescription;
 
 /**
- * Uses the {@link Matcher Hamcrest API} as a means of verifying arguments and
- * so on.
+ * Utility for verifying arguments and so on.
  */
 public final class Ensure {
 
@@ -47,41 +47,22 @@ public final class Ensure {
     /**
      * To ensure that the provided argument is correct.
      *
-     * @see #ensureThatArg(Object, Matcher, String)
-     * @see #ensureThatState(Object, Matcher, String)
-     * @see #ensureThatContext(Object, Matcher)
-     *
-     * @throws IllegalArgumentException
-     *             if matcher does not {@link Matcher#matches(Object) match}.
-     */
-    public static <T> T ensureThatArg(final T object, final Matcher<T> matcher) {
-        if (!matcher.matches(object)) {
-            throw new IllegalArgumentException("illegal argument, expected: " + descriptionOf(matcher));
-        }
-        return object;
-    }
-
-
-    /**
-     * To ensure that the provided argument is correct.
-     *
-     * @see #ensureThatArg(Object, Matcher)
-     * @see #ensureThatState(Object, Matcher, String)
-     * @see #ensureThatContext(Object, Matcher)
-     *
      * @throws IllegalArgumentException
-     *             if matcher does not {@link Matcher#matches(Object) match}.
+     *             if predicate tests to false.
      */
-    public static <T> T ensureThatArg(final T arg, final Matcher<T> matcher, final String message) {
-        if (!matcher.matches(arg)) {
+    public static <T> T ensureThatArg(final T arg, final Predicate<T> predicate, final String message) {
+        requires(predicate, "predicate");
+        if (!predicate.test(arg)) {
             throw new IllegalArgumentException(message);
         }
         return arg;
     }
 
-    public static <T> T ensureThatArg(final T arg, final Matcher<T> matcher, final Supplier<String> message) {
-        if (!matcher.matches(arg)) {
-            throw new IllegalArgumentException(message.get());
+    public static <T> T ensureThatArg(final T arg, final Predicate<T> predicate, final Supplier<String> messageSupplier) {
+        requires(predicate, "predicate");
+        if (!predicate.test(arg)) {
+            requires(messageSupplier, "messageSupplier");
+            throw new IllegalArgumentException(messageSupplier.get());
         }
         return arg;
     }
@@ -90,33 +71,12 @@ public final class Ensure {
      * To ensure that the current state of this object (instance fields) is
      * correct.
      *
-     * @see #ensureThatArg(Object, Matcher)
-     * @see #ensureThatContext(Object, Matcher)
-     * @see #ensureThatState(Object, Matcher, String)
-     *
-     * @throws IllegalStateException
-     *             if matcher does not {@link Matcher#matches(Object) match}.
-     */
-    public static <T> T ensureThatState(final T field, final Matcher<T> matcher) {
-        if (!matcher.matches(field)) {
-            throw new IllegalStateException("illegal argument, expected: " + descriptionOf(matcher));
-        }
-        return field;
-    }
-
-    /**
-     * To ensure that the current state of this object (instance fields) is
-     * correct.
-     *
-     * @see #ensureThatArg(Object, Matcher)
-     * @see #ensureThatContext(Object, Matcher)
-     * @see #ensureThatState(Object, Matcher)
-     *
      * @throws IllegalStateException
-     *             if matcher does not {@link Matcher#matches(Object) match}.
+     *             if predicate tests to false.
      */
-    public static <T> T ensureThatState(final T field, final Matcher<T> matcher, final String message) {
-        if (!matcher.matches(field)) {
+    public static <T> T ensureThatState(final T field, final Predicate<T> predicate, final String message) {
+        requires(predicate, "predicate");
+        if (!predicate.test(field)) {
             throw new IllegalStateException(message);
         }
         return field;
@@ -125,42 +85,16 @@ public final class Ensure {
     /**
      * To ensure that the current context (<tt>IsisContext</tt>) is correct.
      *
-     * @see #ensureThatArg(Object, Matcher)
-     * @see #ensureThatState(Object, Matcher)
-     * @see #ensureThatContext(Object, Matcher, String)
-     *
-     * @throws IllegalThreadStateException
-     *             if matcher does not {@link Matcher#matches(Object) match}.
-     */
-    public static <T> T ensureThatContext(final T contextProperty, final Matcher<T> matcher) {
-        if (!matcher.matches(contextProperty)) {
-            throw new IllegalThreadStateException("illegal argument, expected: " + descriptionOf(matcher));
-        }
-        return contextProperty;
-    }
-
-    /**
-     * To ensure that the current context (<tt>IsisContext</tt>) is correct.
-     *
-     * @see #ensureThatArg(Object, Matcher)
-     * @see #ensureThatState(Object, Matcher)
-     * @see #ensureThatContext(Object, Matcher, String)
-     *
      * @throws IllegalThreadStateException
-     *             if matcher does not {@link Matcher#matches(Object) match}.
+     *             if predicate tests to false.
      */
-    public static <T> T ensureThatContext(final T contextProperty, final Matcher<T> matcher, final String message) {
-        if (!matcher.matches(contextProperty)) {
+    public static <T> T ensureThatContext(final T contextProperty, final Predicate<T> predicate, final String message) {
+        requires(predicate, "predicate");
+        if (!predicate.test(contextProperty)) {
             throw new IllegalThreadStateException(message);
         }
         return contextProperty;
     }
 
-    private static <T> String descriptionOf(final Matcher<T> matcher) {
-        final StringDescription stringDescription = new StringDescription();
-        matcher.describeTo(stringDescription);
-        final String description = stringDescription.toString();
-        return description;
-    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java
index 0d4bca9..c503d0d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.consent;
 
 import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
-import static org.apache.isis.core.commons.matchers.IsisMatchers.nonEmptyString;
 
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 public class Veto extends ConsentAbstract {
@@ -39,7 +39,7 @@ public class Veto extends ConsentAbstract {
      *            - must not be <tt>null</tt>
      */
     public Veto(final String reasonVetoed) {
-        super(null, ensureThatArg(reasonVetoed, nonEmptyString()));
+        super(null, ensureThatArg(reasonVetoed, _Strings::isNotEmpty, "requires a non empty string"));
     }
 
     public Veto(final InteractionResult interactionResult) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java
index 2961c08..2b55a55 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetAbstract.java
@@ -19,11 +19,11 @@
 
 package org.apache.isis.core.metamodel.facetapi;
 
-import org.apache.isis.core.commons.ensure.Ensure;
-import org.apache.isis.core.commons.matchers.IsisMatchers;
+import static org.apache.isis.commons.internal.base._With.requires;
+
+import java.util.Objects;
 
-import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
-import static org.hamcrest.CoreMatchers.*;
+import org.apache.isis.core.commons.ensure.Ensure;
 
 public abstract class FacetAbstract implements Facet {
 
@@ -47,13 +47,12 @@ public abstract class FacetAbstract implements Facet {
      */
     private IdentifiedHolder identifiedHolder;
 
-    @SuppressWarnings("unchecked")
     public FacetAbstract(
             final Class<? extends Facet> facetType,
             final FacetHolder holder,
             final Derivation derivation) {
-        this.facetType = ensureThatArg(facetType, is(not(nullValue(Class.class))));
-        setFacetHolder(ensureThatArg(holder, is(not(nullValue(FacetHolder.class)))));
+        this.facetType = requires(facetType, "facetType"); 
+        setFacetHolder(requires(holder, "holder"));
         this.derived = (derivation == Derivation.DERIVED);
     }
 
@@ -96,7 +95,10 @@ public abstract class FacetAbstract implements Facet {
                     throw new IllegalArgumentException("illegal argument, expected underlying facet (a multi-valued facet) to have equivalent to the facet type (or facet types) of this facet");
                 }
             } else {
-                Ensure.ensureThatArg(underlyingFacet.facetType(), IsisMatchers.classEqualTo(facetType));
+                Ensure.ensureThatArg(
+                        underlyingFacet.facetType(), 
+                        type->Objects.equals(type, facetType), 
+                        ()->String.format("type-missmatch: underlying facet's type '%s' must match this facet's type '%s'"));
             }
         }
         this.underlyingFacet = underlyingFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/matchers/IsisMatchers.java b/core/metamodel/src/test/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
rename to core/metamodel/src/test/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
diff --git a/core/pom.xml b/core/pom.xml
index 626bd61..c683eb1 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -2134,16 +2134,17 @@ ${license.additional-notes}
     <dependencies>
         <!-- COMPILE DEPENDENCIES -->
         <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-library</artifactId>
-        </dependency>
-        <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-api</artifactId>
         </dependency>
 
         <!-- TEST DEPENDENCIES -->
         <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest-library</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <!-- JUnit API for writing tests and extensions -->
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-api</artifactId>
diff --git a/core/unittestsupport/pom.xml b/core/unittestsupport/pom.xml
index e33ddaf..0c80396 100644
--- a/core/unittestsupport/pom.xml
+++ b/core/unittestsupport/pom.xml
@@ -14,86 +14,93 @@
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <groupId>org.apache.isis.core</groupId>
-        <artifactId>isis</artifactId>
-        <version>${revision}</version>
-    </parent>
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+		<version>${revision}</version>
+	</parent>
 
-    <artifactId>isis-core-unittestsupport</artifactId>
-    <name>Apache Isis Unit Test Support</name>
+	<artifactId>isis-core-unittestsupport</artifactId>
+	<name>Apache Isis Unit Test Support</name>
 
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.isis.core.unittestsupport</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/isis/core/unittestsupport</git-plugin.propertiesDir>
-    </properties>
+	<properties>
+		<jar-plugin.automaticModuleName>org.apache.isis.core.unittestsupport</jar-plugin.automaticModuleName>
+		<git-plugin.propertiesDir>org/apache/isis/core/unittestsupport</git-plugin.propertiesDir>
+	</properties>
 
-    <description>
+	<description>
         Support for writing unit tests; should be added as a dependency with scope=test only
     </description>
 
-    <dependencies>
-	
-        <!-- core plugin loading -->
-	<dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-commons</artifactId>
-        </dependency>
-        
-        <!-- framework default core-codegen-plugin for tests -->
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
-        </dependency>
+	<dependencies>
 
-        <!-- JUPITER -->
-        <dependency>
-            <!-- JUnit API for writing tests and extensions -->
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-api</artifactId>
-        </dependency>
-        <dependency>
-            <!-- implementation of the JUnit Jupiter test engine -->
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-engine</artifactId>
-        </dependency>
-	<dependency>
-            <!-- support for unit tests that use JUnit 4 or JUnit 3 -->
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
-        </dependency>
-        <dependency>
-            <!-- JUnit 4 compile dependency in unittestsupport's src/main/java folder, non-transitive -->
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.12</version>
-            <scope>compile</scope>
-            <optional>true</optional>
-        </dependency>
+		<!-- core plugin loading -->
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-commons</artifactId>
+		</dependency>
 
-        <dependency>
-            <groupId>org.picocontainer</groupId>
-            <artifactId>picocontainer</artifactId>
-        </dependency>
+		<!-- framework default core-codegen-plugin for tests -->
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
+		</dependency>
 
-        <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock</artifactId>
-        </dependency>
+		<!-- JUPITER -->
+		<dependency>
+			<!-- JUnit API for writing tests and extensions -->
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter-api</artifactId>
+		</dependency>
+		<dependency>
+			<!-- implementation of the JUnit Jupiter test engine -->
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter-engine</artifactId>
+		</dependency>
+		<dependency>
+			<!-- support for unit tests that use JUnit 4 or JUnit 3 -->
+			<groupId>org.junit.vintage</groupId>
+			<artifactId>junit-vintage-engine</artifactId>
+		</dependency>
+		<dependency>
+			<!-- JUnit 4 compile dependency in unittestsupport's src/main/java folder, 
+				non-transitive -->
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+			<scope>compile</scope>
+			<optional>true</optional>
+		</dependency>
 
-        <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock-junit4</artifactId>
-        </dependency>
+		<dependency>
+			<groupId>org.hamcrest</groupId>
+			<artifactId>hamcrest-library</artifactId>
+			<scope>compile</scope>
+		</dependency>
 
-        <!-- JDO API (non transient, provided by plugin) -->
-        <dependency>
-            <groupId>javax.jdo</groupId>
-            <artifactId>jdo-api</artifactId>
-            <version>${jdo-api.version}</version>
-            <!-- provided by plugins -->
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
+		<dependency>
+			<groupId>org.picocontainer</groupId>
+			<artifactId>picocontainer</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.jmock</groupId>
+			<artifactId>jmock</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.jmock</groupId>
+			<artifactId>jmock-junit4</artifactId>
+		</dependency>
+
+		<!-- JDO API (non transient, provided by plugin) -->
+		<dependency>
+			<groupId>javax.jdo</groupId>
+			<artifactId>jdo-api</artifactId>
+			<version>${jdo-api.version}</version>
+			<!-- provided by plugins -->
+			<scope>provided</scope>
+		</dependency>
+	</dependencies>
 
 </project>


[isis] 05/05: ISIS-1841: remove deprecated MemberGroupLayout

Posted by ah...@apache.org.
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

commit fc1971905af48195b34ca533f2a9eaafa23c5dd5
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Aug 27 16:30:15 2018 +0200

    ISIS-1841: remove deprecated MemberGroupLayout
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1841
---
 .../membergroups/MemberGroupLayoutFacet.java       |  0
 .../MemberGroupLayoutFacetAbstract.java            |  0
 .../MemberGroupLayoutFacetAnnotation.java          |  0
 .../annotprop/MemberGroupLayoutFacetFactory.java   |  0
 .../annotprop/MemberGroupLayoutFacetFallback.java  |  0
 .../MemberGroupLayoutFacetProperties.java          |  0
 .../services/grid/fixedcols/applib/Hint.java       |  1 +
 .../core/metamodel/spec/ObjectSpecifications.java  |  0
 ...ugin.java => ProgrammingModelLegacyPlugin.java} |  5 ++-
 ...core.metamodel.progmodel.ProgrammingModelPlugin |  2 +-
 .../MemberGroupLayoutFacetFactoryTest.java         |  0
 ...oupLayoutFacetPropertiesTest_asColumnSpans.java |  0
 ...GroupLayoutFacetPropertiesTest_asGroupList.java |  0
 .../metamodel/spec/ObjectSpecificationsTest.java   |  0
 .../grid/bootstrap3/GridSystemServiceBS3.java      | 46 +++++++++++-----------
 .../metamodel/spec/feature/ObjectAssociation.java  |  7 ++--
 .../specimpl/ObjectSpecificationAbstract.java      | 27 ++++++-------
 .../dflt/ProgrammingModelFacetsJava5.java          |  8 +---
 18 files changed, 46 insertions(+), 50 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacet.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacet.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacet.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacet.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacetAbstract.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacetAbstract.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacetAbstract.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/MemberGroupLayoutFacetAbstract.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetAnnotation.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetAnnotation.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetAnnotation.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetAnnotation.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactory.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactory.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactory.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactory.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFallback.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFallback.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFallback.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFallback.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
similarity index 99%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
index 8ac2c32..fd2ea70 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
+++ b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/grid/fixedcols/applib/Hint.java
@@ -20,6 +20,7 @@ package org.apache.isis.core.metamodel.services.grid.fixedcols.applib;
 
 import org.apache.isis.applib.annotation.MemberGroupLayout;
 
+@Deprecated
 public enum Hint {
     LEFT,
     MIDDLE,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
similarity index 100%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecifications.java
diff --git a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelIsisTimePlugin.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelLegacyPlugin.java
similarity index 89%
rename from core/legacy/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelIsisTimePlugin.java
rename to core/legacy/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelLegacyPlugin.java
index c0a497e..0c305d0 100644
--- a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelIsisTimePlugin.java
+++ b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/progmodels/plugins/ProgrammingModelLegacyPlugin.java
@@ -17,6 +17,7 @@
 package org.apache.isis.progmodels.plugins;
 
 import org.apache.isis.core.metamodel.facets.object.encodeable.annotcfg.EncodableFacetAnnotationElseConfigurationFactory;
+import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.parseable.annotcfg.ParseableFacetAnnotationElseConfigurationFactory;
 import org.apache.isis.core.metamodel.facets.value.date.DateValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datetime.DateTimeValueFacetUsingSemanticsProviderFactory;
@@ -24,10 +25,12 @@ import org.apache.isis.core.metamodel.facets.value.time.TimeValueFacetUsingSeman
 import org.apache.isis.core.metamodel.facets.value.timestamp.TimeStampValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin;
 
-public class ProgrammingModelIsisTimePlugin implements ProgrammingModelPlugin {
+public class ProgrammingModelLegacyPlugin implements ProgrammingModelPlugin {
 
 	@Override
 	public void plugin(FactoryCollector collector) {
+	    
+	    collector.addFactory(new MemberGroupLayoutFacetFactory(), FacetFactoryCategory.VALUE);
 		
 		collector.addFactory(new DateValueFacetUsingSemanticsProviderFactory(), FacetFactoryCategory.VALUE);
 		collector.addFactory(new DateTimeValueFacetUsingSemanticsProviderFactory(), FacetFactoryCategory.VALUE);
diff --git a/core/legacy/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin b/core/legacy/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin
index 4a74f84..f62c316e 100644
--- a/core/legacy/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin
+++ b/core/legacy/metamodel-legacy/src/main/resources/META-INF/services/org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin
@@ -1 +1 @@
-org.apache.isis.progmodels.plugins.ProgrammingModelIsisTimePlugin
\ No newline at end of file
+org.apache.isis.progmodels.plugins.ProgrammingModelLegacyPlugin
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java b/core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java
rename to core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asColumnSpans.java b/core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asColumnSpans.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asColumnSpans.java
rename to core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asColumnSpans.java
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asGroupList.java b/core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asGroupList.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asGroupList.java
rename to core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetPropertiesTest_asGroupList.java
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationsTest.java b/core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationsTest.java
similarity index 100%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationsTest.java
rename to core/legacy/metamodel-legacy/src/test/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationsTest.java
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
index af09df7..1a37216 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
@@ -38,7 +38,6 @@ import com.google.common.collect.Sets;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.MemberGroupLayout;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.layout.component.ActionLayoutData;
@@ -57,7 +56,6 @@ import org.apache.isis.applib.layout.grid.bootstrap3.Size;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
 import org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation;
-import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
 import org.apache.isis.core.metamodel.services.grid.GridSystemServiceAbstract;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -100,27 +98,29 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
         final BS3Row propsRow = new BS3Row();
         bs3Grid.getRows().add(propsRow);
 
-        final MemberGroupLayoutFacet memberGroupLayoutFacet =
-                objectSpec.getFacet(MemberGroupLayoutFacet.class);
-        if(memberGroupLayoutFacet != null) {
-            // if have @MemberGroupLayout (or equally, a .layout.json file)
-            final MemberGroupLayout.ColumnSpans columnSpans = memberGroupLayoutFacet.getColumnSpans();
-            addFieldSetsToColumn(propsRow, columnSpans.getLeft(), memberGroupLayoutFacet.getLeft(), true);
-            addFieldSetsToColumn(propsRow, columnSpans.getMiddle(), memberGroupLayoutFacet.getMiddle(), false);
-            addFieldSetsToColumn(propsRow, columnSpans.getRight(), memberGroupLayoutFacet.getRight(), false);
-
-            final BS3Col col = new BS3Col();
-            final int collectionSpan = columnSpans.getCollections();
-            col.setUnreferencedCollections(true);
-            col.setSpan(collectionSpan > 0? collectionSpan: 12);
-            propsRow.getCols().add(col);
-
-            // will already be sorted per @MemberOrder
-            final List<OneToManyAssociation> collections = objectSpec.getCollections(Contributed.INCLUDED);
-            for (OneToManyAssociation collection : collections) {
-                col.getCollections().add(new CollectionLayoutData(collection.getId()));
-            }
-        } else {
+//TODO [ahuber] marked for removal (breaks legacy functionality) ...
+//        final MemberGroupLayoutFacet memberGroupLayoutFacet =
+//                objectSpec.getFacet(MemberGroupLayoutFacet.class);
+//        if(memberGroupLayoutFacet != null) {
+//            // if have @MemberGroupLayout (or equally, a .layout.json file)
+//            final MemberGroupLayout.ColumnSpans columnSpans = memberGroupLayoutFacet.getColumnSpans();
+//            addFieldSetsToColumn(propsRow, columnSpans.getLeft(), memberGroupLayoutFacet.getLeft(), true);
+//            addFieldSetsToColumn(propsRow, columnSpans.getMiddle(), memberGroupLayoutFacet.getMiddle(), false);
+//            addFieldSetsToColumn(propsRow, columnSpans.getRight(), memberGroupLayoutFacet.getRight(), false);
+//
+//            final BS3Col col = new BS3Col();
+//            final int collectionSpan = columnSpans.getCollections();
+//            col.setUnreferencedCollections(true);
+//            col.setSpan(collectionSpan > 0? collectionSpan: 12);
+//            propsRow.getCols().add(col);
+//
+//            // will already be sorted per @MemberOrder
+//            final List<OneToManyAssociation> collections = objectSpec.getCollections(Contributed.INCLUDED);
+//            for (OneToManyAssociation collection : collections) {
+//                col.getCollections().add(new CollectionLayoutData(collection.getId()));
+//            }
+//        } else 
+        {
 
             // if no layout hints other than @MemberOrder
             addFieldSetsToColumn(propsRow, 4, Arrays.asList("General"), true);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
index 3777e34..e45f7f3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
@@ -32,17 +32,14 @@ import com.google.common.collect.Maps;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.WhereValueFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
-import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderComparator;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember;
 import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
 
 /**
@@ -234,6 +231,8 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
 
     public static class Util {
         private Util(){}
+        
+        public final static String LAYOUT_DEFAULT_GROUP = "General";
 
         public static Map<String, List<ObjectAssociation>> groupByMemberOrderName(
                 final List<ObjectAssociation> associations) {
@@ -258,7 +257,7 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
                     return;
                 }
             }
-            getFrom(associationsByGroup, MemberGroupLayoutFacet.DEFAULT_GROUP).add(association);
+            getFrom(associationsByGroup, LAYOUT_DEFAULT_GROUP).add(association);
         }
 
         private static List<ObjectAssociation> getFrom(Map<String, List<ObjectAssociation>> associationsByGroup, final String groupName) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 0f9a355..b798abd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -24,9 +24,9 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.stream.Stream;
 
 import com.google.common.base.Function;
+import com.google.common.base.Predicate;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.Iterables;
@@ -39,8 +39,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
-import com.google.common.base.Predicate;
-
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.exceptions.UnknownTypeException;
 import org.apache.isis.core.commons.lang.ClassExtensions;
@@ -65,7 +63,6 @@ import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceF
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
 import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
-import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.object.navparent.NavigableParentFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
@@ -93,7 +90,6 @@ import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.util.pchain.ParentChain;
 import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
 
 public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implements ObjectSpecification {
@@ -817,16 +813,17 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
 
     protected List<ObjectAssociation> sortAssociations(final List<ObjectAssociation> associations) {
         final DeweyOrderSet orderSet = DeweyOrderSet.createOrderSet(associations);
-        final MemberGroupLayoutFacet memberGroupLayoutFacet = this.getFacet(MemberGroupLayoutFacet.class);
-
-        if(memberGroupLayoutFacet != null) {
-            final List<String> groupOrder = Lists.newArrayList();
-            groupOrder.addAll(memberGroupLayoutFacet.getLeft());
-            groupOrder.addAll(memberGroupLayoutFacet.getMiddle());
-            groupOrder.addAll(memberGroupLayoutFacet.getRight());
-
-            orderSet.reorderChildren(groupOrder);
-        }
+//TODO [ahuber] marked for removal (breaks legacy functionality) ...        
+//        final MemberGroupLayoutFacet memberGroupLayoutFacet = this.getFacet(MemberGroupLayoutFacet.class);
+//
+//        if(memberGroupLayoutFacet != null) {
+//            final List<String> groupOrder = Lists.newArrayList();
+//            groupOrder.addAll(memberGroupLayoutFacet.getLeft());
+//            groupOrder.addAll(memberGroupLayoutFacet.getMiddle());
+//            groupOrder.addAll(memberGroupLayoutFacet.getRight());
+//
+//            orderSet.reorderChildren(groupOrder);
+//        }
         final List<ObjectAssociation> orderedAssociations = Lists.newArrayList();
         sortAssociations(orderSet, orderedAssociations);
         return orderedAssociations;
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index 2898637..5254cbe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -20,6 +20,8 @@ package org.apache.isis.progmodels.dflt;
 import java.util.List;
 import java.util.Set;
 
+import com.google.common.collect.Lists;
+
 import org.apache.isis.commons.internal.context._Plugin;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facets.actions.action.ActionAnnotationFacetFactory;
@@ -80,7 +82,6 @@ import org.apache.isis.core.metamodel.facets.object.ignore.javalang.RemoveMethod
 import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoEnhancementTypesFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoPrefixedMethodsFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.CopyImmutableFacetOntoMembersFactory;
-import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacetForMixinAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.navparent.annotation.NavigableParentAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassNameFactory;
@@ -168,8 +169,6 @@ import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin.FacetFactoryCategory;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelPlugin.FactoryCollector;
 
-import com.google.common.collect.Lists;
-
 public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract {
 
     public ProgrammingModelFacetsJava5(final IsisConfiguration configuration) {
@@ -262,11 +261,8 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
         addFactory(new ValidateObjectFacetMethodFactory());
         addFactory(new ObjectValidPropertiesFacetImplFactory());
 
-
         addFactory(new MemberOrderFacetFactory());
 
-        addFactory(new MemberGroupLayoutFacetFactory());
-
         addFactory(new BookmarkPolicyFacetFallbackFactory());
         addFactory(new HomePageFacetAnnotationFactory());
 


[isis] 04/05: ISIS-1905: explicitely set axon 2.x version in runtime-legacy

Posted by ah...@apache.org.
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

commit 519ff978bbabb7f5cc3cf1ef997430ed2a21a73a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Aug 27 15:51:34 2018 +0200

    ISIS-1905: explicitely set axon 2.x version in runtime-legacy
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1905
---
 core/legacy/runtime-legacy/pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/core/legacy/runtime-legacy/pom.xml b/core/legacy/runtime-legacy/pom.xml
index 2270c9c..cda80ee 100644
--- a/core/legacy/runtime-legacy/pom.xml
+++ b/core/legacy/runtime-legacy/pom.xml
@@ -149,6 +149,7 @@
                 <dependency>
                     <groupId>org.axonframework</groupId>
                     <artifactId>axon-core</artifactId>
+                    <version>2.4.4</version>
                 </dependency>
             </dependencies>
         </profile>


[isis] 03/05: ISIS-1918: Remove hamcrest as a compile dependency from core modules

Posted by ah...@apache.org.
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

commit 68535da0e7557563fa5d2b050955ad2414ff8c38
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Aug 27 15:49:35 2018 +0200

    ISIS-1918: Remove hamcrest as a compile dependency from core modules
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1918
---
 .../commons/internal/functions/_Functions.java     |  2 +-
 .../commons/internal/functions/_Predicates.java    | 54 ++++++++++++++++++++++
 .../ensure/Ensure_GivenValueThatDoesMatchTest.java | 22 ++-------
 .../Ensure_GivenValueThatDoesNotMatchTest.java     | 36 ++-------------
 .../system/persistence/PersistenceSession4.java    | 21 +++++----
 .../system/persistence/PersistenceSession5.java    | 22 ++++-----
 6 files changed, 84 insertions(+), 73 deletions(-)

diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java
index 81147a0..48347fa 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java
@@ -34,7 +34,7 @@ import java.util.function.Supplier;
  *
  * @since 2.0.0
  */
-public class _Functions {
+public final class _Functions {
 
     // -- INDEX AWARE
 
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Predicates.java b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Predicates.java
new file mode 100644
index 0000000..e2acd22
--- /dev/null
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Predicates.java
@@ -0,0 +1,54 @@
+/*
+ *  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.commons.internal.functions;
+
+import java.util.Objects;
+import java.util.function.Predicate;
+
+/**
+ * <h1>- internal use only -</h1>
+ * <p>
+ * General purpose Predicates.
+ * </p>
+ * <p>
+ * <b>WARNING</b>: Do <b>NOT</b> use any of the classes provided by this package! <br/>
+ * These may be changed or removed without notice!
+ * </p>
+ *
+ * @since 2.0.0
+ */
+public final class _Predicates {
+
+    /**
+     * @param operand
+     * @return a Predicate that tests its argument against equality to the given {@code operand}
+     */
+    public static <T> Predicate<T> equalTo(T operand) {
+        return arg->Objects.equals(arg, operand);
+    }
+
+    /**
+     * @param operand
+     * @return a Predicate that tests its argument whether it is the same instance as the given {@code operand}
+     */
+    public static <T> Predicate<T> sameAs(T operand) {
+        return arg-> arg == operand;
+    }
+    
+}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesMatchTest.java b/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesMatchTest.java
index 9edd180..aa07f43 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesMatchTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesMatchTest.java
@@ -32,42 +32,28 @@ public class Ensure_GivenValueThatDoesMatchTest {
     @Test
     public void whenCallEnsureThatArgThenShouldReturnOriginalObject() {
         final String object = "foo";
-        final String returnedObject = Ensure.ensureThatArg(object, is(not(nullValue(String.class))));
+        final String returnedObject = Ensure.ensureThatArg(object, is(not(nullValue(String.class)))::matches, ()->"some message");
         assertThat(returnedObject, sameInstance(object));
     }
 
     @Test
     public void whenCallEnsureThatArgWithOverloadedShouldReturnOriginalObject() {
         final String object = "foo";
-        final String returnedObject = Ensure.ensureThatArg(object, is(not(nullValue(String.class))), "some message");
-        assertThat(returnedObject, sameInstance(object));
-    }
-
-    @Test
-    public void whenCallEnsureThatStateThenShouldReturnOriginalObject() {
-        final String object = "foo";
-        final String returnedObject = Ensure.ensureThatState(object, is(not(nullValue(String.class))));
+        final String returnedObject = Ensure.ensureThatArg(object, is(not(nullValue(String.class)))::matches, "some message");
         assertThat(returnedObject, sameInstance(object));
     }
 
     @Test
     public void whenCallEnsureThatStateWithOverloadedShouldReturnOriginalObject() {
         final String object = "foo";
-        final String returnedObject = Ensure.ensureThatState(object, is(not(nullValue(String.class))), "some message");
-        assertThat(returnedObject, sameInstance(object));
-    }
-
-    @Test
-    public void whenCallEnsureThatContextThenShouldReturnOriginalObject() {
-        final String object = "foo";
-        final String returnedObject = Ensure.ensureThatContext(object, is(not(nullValue(String.class))));
+        final String returnedObject = Ensure.ensureThatState(object, is(not(nullValue(String.class)))::matches, "some message");
         assertThat(returnedObject, sameInstance(object));
     }
 
     @Test
     public void whenCallEnsureThatContextWithOverloadedShouldReturnOriginalObject() {
         final String object = "foo";
-        final String returnedObject = Ensure.ensureThatContext(object, is(not(nullValue(String.class))), "some message");
+        final String returnedObject = Ensure.ensureThatContext(object, is(not(nullValue(String.class)))::matches, "some message");
         assertThat(returnedObject, sameInstance(object));
     }
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesNotMatchTest.java b/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesNotMatchTest.java
index ad9c65a..5cae091 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesNotMatchTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/commons/ensure/Ensure_GivenValueThatDoesNotMatchTest.java
@@ -29,19 +29,9 @@ import org.junit.Test;
 public class Ensure_GivenValueThatDoesNotMatchTest {
 
     @Test
-    public void whenCallEnsureThatArgShouldThrowIllegalArgumentException() {
-        try {
-            Ensure.ensureThatArg("foo", is(nullValue()));
-            fail();
-        } catch (final IllegalArgumentException ex) {
-            assertThat(ex.getMessage(), is("illegal argument, expected: is null"));
-        }
-    }
-
-    @Test
     public void whenCallEnsureThatArgOverloadedShouldThrowIllegalArgumentExceptionUsingSuppliedMessage() {
         try {
-            Ensure.ensureThatArg("foo", is(nullValue()), "my message");
+            Ensure.ensureThatArg("foo", is(nullValue())::matches, "my message");
             fail();
         } catch (final IllegalArgumentException ex) {
             assertThat(ex.getMessage(), is("my message"));
@@ -49,19 +39,9 @@ public class Ensure_GivenValueThatDoesNotMatchTest {
     }
 
     @Test
-    public void whenCallEnsureThatStateShouldThrowIllegalStateException() {
-        try {
-            Ensure.ensureThatState("foo", is(nullValue()));
-            fail();
-        } catch (final IllegalStateException ex) {
-            assertThat(ex.getMessage(), is("illegal argument, expected: is null"));
-        }
-    }
-
-    @Test
     public void whenCallEnsureThatStateOverloadedShouldThrowIllegalStateExceptionUsingSuppliedMessage() {
         try {
-            Ensure.ensureThatState("foo", is(nullValue()), "my message");
+            Ensure.ensureThatState("foo", is(nullValue())::matches, "my message");
             fail();
         } catch (final IllegalStateException ex) {
             assertThat(ex.getMessage(), is("my message"));
@@ -69,19 +49,9 @@ public class Ensure_GivenValueThatDoesNotMatchTest {
     }
 
     @Test
-    public void whenCallEnsureThatContextShouldThrowIllegalThreadStateException() {
-        try {
-            Ensure.ensureThatContext("foo", is(nullValue()));
-            fail();
-        } catch (final IllegalThreadStateException ex) {
-            assertThat(ex.getMessage(), is("illegal argument, expected: is null"));
-        }
-    }
-
-    @Test
     public void whenCallEnsureThatContextOverloadedShouldThrowIllegalThreadStateExceptionUsingSuppliedMessage() {
         try {
-            Ensure.ensureThatContext("foo", is(nullValue()), "my message");
+            Ensure.ensureThatContext("foo", is(nullValue())::matches, "my message");
             fail();
         } catch (final IllegalThreadStateException ex) {
             assertThat(ex.getMessage(), is("my message"));
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
index b193a3f..3f99a1a 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
@@ -18,8 +18,8 @@
  */
 package org.apache.isis.core.runtime.system.persistence;
 
+import static org.apache.isis.commons.internal.functions._Predicates.equalTo;
 import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
-import static org.hamcrest.CoreMatchers.is;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Modifier;
@@ -39,6 +39,15 @@ import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.identity.SingleFieldIdentity;
 import javax.jdo.listener.InstanceLifecycleListener;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import org.datanucleus.enhancement.Persistable;
+import org.datanucleus.exceptions.NucleusObjectNotFoundException;
+import org.datanucleus.identity.DatastoreIdImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.events.lifecycle.AbstractLifecycleEvent;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.services.bookmark.Bookmark;
@@ -117,14 +126,6 @@ import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.Persisten
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryFindUsingApplibQueryProcessor;
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryProcessor;
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.spi.JdoObjectIdSerializer;
-import org.datanucleus.enhancement.Persistable;
-import org.datanucleus.exceptions.NucleusObjectNotFoundException;
-import org.datanucleus.identity.DatastoreIdImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 
 /**
  * A wrapper around the JDO {@link PersistenceManager}, which also manages concurrency
@@ -1242,7 +1243,7 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
                     + ": provided adapter's OID: " + adapterOid + "; but no adapter found in map");
         }
         ensureThatArg(
-                adapter, is(adapterAccordingToMap),
+                adapter, equalTo(adapterAccordingToMap),
                 ()->"mismatch in "
                         + mapName
                         + ": provided adapter's OID: " + adapterOid + ", \n"
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
index 80c7b61..1f3c89a 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
@@ -18,8 +18,8 @@
  */
 package org.apache.isis.core.runtime.system.persistence;
 
+import static org.apache.isis.commons.internal.functions._Predicates.equalTo;
 import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
-import static org.hamcrest.CoreMatchers.is;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Modifier;
@@ -39,6 +39,15 @@ import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.identity.SingleFieldIdentity;
 import javax.jdo.listener.InstanceLifecycleListener;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import org.datanucleus.enhancement.Persistable;
+import org.datanucleus.exceptions.NucleusObjectNotFoundException;
+import org.datanucleus.identity.DatastoreIdImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.events.lifecycle.AbstractLifecycleEvent;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.services.bookmark.Bookmark;
@@ -48,7 +57,6 @@ import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.ensure.Assert;
 import org.apache.isis.core.commons.ensure.IsisAssertException;
@@ -118,14 +126,6 @@ import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.Persisten
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryFindUsingApplibQueryProcessor;
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryProcessor;
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.spi.JdoObjectIdSerializer;
-import org.datanucleus.enhancement.Persistable;
-import org.datanucleus.exceptions.NucleusObjectNotFoundException;
-import org.datanucleus.identity.DatastoreIdImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 
 /**
  * A wrapper around the JDO {@link PersistenceManager}, which also manages concurrency
@@ -1244,7 +1244,7 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
         }
 
         ensureThatArg(
-                adapter, is(adapterAccordingToMap),
+                adapter, equalTo(adapterAccordingToMap),
                 ()->"mismatch in "
                         + mapName
                         + ": provided adapter's OID: " + adapterOid + ", \n"


[isis] 01/05: ISIS-1841: moving MemberGroupLayout to -legacy

Posted by ah...@apache.org.
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

commit 7dd440add54569b30b206979cbd326952cff6999
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Aug 27 13:58:15 2018 +0200

    ISIS-1841: moving MemberGroupLayout to -legacy
---
 .../main/java/org/apache/isis/applib/services/grid/GridService.java | 6 ++----
 .../java/org/apache/isis/applib/services/layout/LayoutService.java  | 4 ++--
 .../java/org/apache/isis/applib/annotation/MemberGroupLayout.java   | 1 +
 .../isis/applib/annotation/MemberGroupLayoutColumnSpansTest.java    | 0
 4 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
index 02125ab..249a5bb 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
@@ -19,7 +19,6 @@ package org.apache.isis.applib.services.grid;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.CollectionLayout;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
-import org.apache.isis.applib.annotation.MemberGroupLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.PropertyLayout;
@@ -63,7 +62,7 @@ public interface GridService {
      *
      * <p>
      *     If a &quot;normalized&quot; grid is persisted as the <code>layout.xml</code>, then the expectation is that
-     *     the {@link MemberOrder} and {@link MemberGroupLayout} annotations can be removed from the domain class
+     *     the {@link MemberOrder} annotation can be removed from the domain class
      *     because the binding of properties/collections/actions will be within the XML.  However, the layout
      *     annotations ({@link DomainObjectLayout}, {@link ActionLayout}, {@link PropertyLayout} and
      *     {@link CollectionLayout}) (if present) will continue to be used to provide additional layout metadata.  Of
@@ -81,7 +80,7 @@ public interface GridService {
      *
      * <p>
      *     If a &quot;completed&quot; grid is persisted as the <code>layout.xml</code>, then there should be no need
-     *     for any of the layout annotations, nor the {@link MemberOrder} or {@link MemberGroupLayout} annotations,
+     *     for any of the layout annotations, nor the {@link MemberOrder} annotations,
      *     to be required in the domain class itself.
      * </p>
      */
@@ -95,7 +94,6 @@ public interface GridService {
      *     If a &quot;minimal&quot; grid is persisted as the <code>layout.xml</code>, then the expectation is that
      *     most of the layout annotations ({@link DomainObjectLayout}, {@link ActionLayout}, {@link PropertyLayout},
      *     {@link CollectionLayout}, but also {@link MemberOrder}) will still be retained in the domain class code.
-     *     The only annotation that can be removed and is no longer used {@link MemberGroupLayout}.
      * </p>
      *
      * @param grid
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
index 992905b..aca743e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
@@ -16,9 +16,9 @@
  */
 package org.apache.isis.applib.services.layout;
 
-import org.apache.isis.applib.annotation.MemberGroupLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.layout.grid.Grid;
 
 public interface LayoutService {
 
@@ -49,7 +49,7 @@ public interface LayoutService {
          * and unused/empty regions are removed/trimmed.
          * <p/>
          * <p>
-         * It should be possible to remove any {@link MemberOrder} and {@link MemberGroupLayout} annotations but
+         * It should be possible to remove any {@link MemberOrder} annotation but
          * any layout annotations would need to be retained.
          * </p>
          */
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/MemberGroupLayout.java b/core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/annotation/MemberGroupLayout.java
similarity index 99%
rename from core/applib/src/main/java/org/apache/isis/applib/annotation/MemberGroupLayout.java
rename to core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/annotation/MemberGroupLayout.java
index 1df58e9..deddc6d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/MemberGroupLayout.java
+++ b/core/legacy/applib-legacy/src/main/java/org/apache/isis/applib/annotation/MemberGroupLayout.java
@@ -49,6 +49,7 @@ import org.apache.isis.commons.internal.base._Strings;
 @Inherited
 @Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
 @Retention(RetentionPolicy.RUNTIME)
+@Deprecated
 public @interface MemberGroupLayout {
 
     /**
diff --git a/core/applib/src/test/java/org/apache/isis/applib/annotation/MemberGroupLayoutColumnSpansTest.java b/core/legacy/applib-legacy/src/test/java/org/apache/isis/applib/annotation/MemberGroupLayoutColumnSpansTest.java
similarity index 100%
rename from core/applib/src/test/java/org/apache/isis/applib/annotation/MemberGroupLayoutColumnSpansTest.java
rename to core/legacy/applib-legacy/src/test/java/org/apache/isis/applib/annotation/MemberGroupLayoutColumnSpansTest.java