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 2022/08/10 10:45:28 UTC

[isis] branch master updated: ISIS-3087: removes CURRENT and NORMALIZED for LayoutService file styles

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 e86fa530e4 ISIS-3087: removes CURRENT and NORMALIZED for LayoutService file styles
e86fa530e4 is described below

commit e86fa530e4ba29c37b5392668c350cc04ca18204
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Aug 10 12:45:19 2022 +0200

    ISIS-3087: removes CURRENT and NORMALIZED for LayoutService file styles
---
 .../mixins/layout/Object_downloadLayoutXml.java    |  14 ++--
 .../isis/applib/services/grid/GridService.java     |  32 ++++++--
 .../isis/applib/services/layout/LayoutFormat.java  |  60 +++++++++++++++
 .../isis/applib/services/layout/LayoutService.java |   4 +-
 .../applib/services/layout/LayoutServiceMenu.java  |   8 +-
 .../apache/isis/applib/services/layout/Style.java  |  82 ---------------------
 .../services/grid/GridServiceDefault.java          |   5 +-
 .../services/layout/LayoutServiceDefault.java      |  40 ++--------
 .../metamodel/services/grid/GridLoadingTest.java   |   4 +-
 .../sitemap/SitemapServiceDefault.java             |  31 +-------
 .../domainmodel/MetaModelRegressionTest.java       |   2 -
 .../src/test/resources/metamodel.xml.zip           | Bin 98451 -> 98502 bytes
 12 files changed, 112 insertions(+), 170 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
index ca812a3fba..39620ad38b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
@@ -29,8 +29,8 @@ import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.layout.LayoutConstants;
 import org.apache.isis.applib.mixins.dto.DtoMixinConstants;
+import org.apache.isis.applib.services.layout.LayoutFormat;
 import org.apache.isis.applib.services.layout.LayoutService;
-import org.apache.isis.applib.services.layout.Style;
 import org.apache.isis.applib.value.Clob;
 import org.apache.isis.applib.value.NamedWithMimeType.CommonMimeType;
 
@@ -71,10 +71,10 @@ public class Object_downloadLayoutXml {
                     named = DtoMixinConstants.FILENAME_PROPERTY_NAME,
                     describedAs = DtoMixinConstants.FILENAME_PROPERTY_DESCRIPTION)
             final String fileName,
-            final Style style) {
+            final LayoutFormat format) {
 
-        val xmlString = layoutService.toXml(holder.getClass(), style);
-        return  Clob.of(fileName, CommonMimeType.XML, xmlString);
+        val xmlString = layoutService.toXml(holder.getClass(), format);
+        return Clob.of(fileName, CommonMimeType.XML, xmlString);
     }
 
     /**
@@ -85,10 +85,10 @@ public class Object_downloadLayoutXml {
     }
 
     /**
-     * Default style is {@link Style#NORMALIZED}.
+     * Default style is {@link LayoutFormat#MINIMAL}.
      */
-    @MemberSupport public Style default1Act() {
-        return Style.NORMALIZED;
+    @MemberSupport public LayoutFormat default1Act() {
+        return LayoutFormat.defaults();
     }
 
     @Inject LayoutService layoutService;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
index 8c9d6531a6..2e01ce50e8 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
@@ -23,6 +23,8 @@ import org.apache.isis.applib.annotation.CollectionLayout;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.layout.grid.Grid;
+import org.apache.isis.applib.services.layout.LayoutFormat;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
 
 /**
  * Provides the ability to load the XML layout (grid) for a domain class.
@@ -117,8 +119,8 @@ public interface GridService {
      * Returns a normalized grid for the domain class obtained previously using {@link #load(Class)}.
      *
      * <p>
-     *     If a &quot;normalized&quot; grid is persisted as the <code>layout.xml</code>, then the expectation is that
-     *     the {@link MemberOrder} annotation can be removed from the domain class
+     *     If a 'normalized' grid is persisted as the <code>layout.xml</code>, then the expectation is that
+     *     any ordering metadata from layout annotations 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
@@ -134,8 +136,8 @@ public interface GridService {
      * {@link DomainObjectLayout}, {@link ActionLayout}, {@link PropertyLayout} and {@link CollectionLayout}.
      *
      * <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} annotations,
+     *     If a 'complete' grid is persisted as the <code>layout.xml</code>, then there should be no need
+     *     for any of the layout annotations,
      *     to be required in the domain class itself.
      * </p>
      */
@@ -145,13 +147,31 @@ public interface GridService {
      * Modifies the provided {@link Grid}, removing all metadata except the basic grid structure.
      *
      * <p>
-     *     If a &quot;minimal&quot; grid is persisted as the <code>layout.xml</code>, then the expectation is that
+     *     If a 'minimal' 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.
+     *     {@link CollectionLayout} will still be retained in the domain class code.
      * </p>
      *
      * @param grid
      */
     Grid minimal(Grid grid);
 
+    default Grid toGridForExport(
+            final Class<?> domainClass,
+            final LayoutFormat format) {
+
+        // don't use the grid from the facet, because it will be modified subsequently.
+        Grid grid = load(domainClass);
+        if(grid == null) {
+            grid = defaultGridFor(domainClass);
+        }
+        if (format == LayoutFormat.COMPLETE) {
+            return complete(grid);
+        }
+        if (format == LayoutFormat.MINIMAL) {
+            return minimal(grid);
+        }
+        throw _Exceptions.unmatchedCase(format);
+    }
+
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutFormat.java b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutFormat.java
new file mode 100644
index 0000000000..3264f038ed
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutFormat.java
@@ -0,0 +1,60 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib.services.layout;
+
+import javax.inject.Named;
+
+import org.apache.isis.applib.IsisModuleApplib;
+import org.apache.isis.applib.annotation.Value;
+import org.apache.isis.applib.layout.grid.Grid;
+
+/**
+ * Format option when generating a layout file (while prototyping).
+ * <p>
+ * Once a layout file is in place, its layout data takes precedence over any
+ * conflicting layout data from annotations.
+ *
+ * @since 2.x {@index}
+ */
+@Named(IsisModuleApplib.NAMESPACE + ".services.layout.LayoutFormat")
+@Value
+public enum LayoutFormat {
+
+    /**
+     * Format that yields a full representation for the <code>layout.xml</code>,
+     * such that any layout metadata annotations could be removed from the code,
+     * without affecting the resulting {@link Grid}, when loaded from <code>layout.xml</code>.
+     */
+    COMPLETE,
+
+    /**
+     * Format that yields a minimal representation for the <code>layout.xml</code>,
+     * such that layout annotations are required in code to at least 'bind'
+     * the properties/collections/actions to their regions (groups and tabs).
+     * <p>
+     * In other words: the <code>layout.xml</code> is used only to specify the positioning of the
+     * groups and tabs.
+     */
+    MINIMAL,;
+
+    public static LayoutFormat defaults() {
+        return MINIMAL;
+    }
+
+}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
index f2dbbca9e6..4984fcce2b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
@@ -31,12 +31,12 @@ public interface LayoutService {
     /**
      * Obtains the serialized XML form of the layout (grid) for the specified domain class.
      */
-    String toXml(Class<?> domainClass, Style style);
+    String toXml(Class<?> domainClass, LayoutFormat format);
 
     /**
      * Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
      */
-    byte[] toZip(final Style style);
+    byte[] toZip(final LayoutFormat format);
 
     /**
      * Obtains the serialized XML form of the menu bars layout ({@link MenuBarsService}).
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
index 1add640d30..a85653b505 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
@@ -81,15 +81,15 @@ public class LayoutServiceMenu {
 
         public class ActionDomainEvent extends LayoutServiceMenu.ActionDomainEvent<downloadLayouts> {}
 
-        @MemberSupport public Blob act(final Style style) {
+        @MemberSupport public Blob act(final LayoutFormat format) {
 
-            final String fileName = "layouts." + style.name().toLowerCase() + ".zip";
+            final String fileName = "layouts." + format.name().toLowerCase() + ".zip";
 
-            final byte[] zipBytes = layoutService.toZip(style);
+            final byte[] zipBytes = layoutService.toZip(format);
             return new Blob(fileName, mimeTypeApplicationZip, zipBytes);
         }
 
-        @MemberSupport public Style default0Act() { return Style.NORMALIZED; }
+        @MemberSupport public LayoutFormat default0Act() { return LayoutFormat.defaults(); }
     }
 
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/layout/Style.java b/api/applib/src/main/java/org/apache/isis/applib/services/layout/Style.java
deleted file mode 100644
index beb948e983..0000000000
--- a/api/applib/src/main/java/org/apache/isis/applib/services/layout/Style.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.applib.services.layout;
-
-import javax.inject.Named;
-
-import org.apache.isis.applib.IsisModuleApplib;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.CollectionLayout;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Value;
-import org.apache.isis.applib.layout.grid.Grid;
-
-/**
- * Mode of operation when downloading a layout file (while prototyping).
- *
- * <p>
- * It affects the way the file's
- * content is assembled. Once a layout file is in place, its layout data takes precedence over any
- * conflicting layout data from annotations.
- * </p>
- *
- * @since 1.x {@index}
- */
-@Named(IsisModuleApplib.NAMESPACE + ".services.layout.Style")
-@Value
-public enum Style {
-
-    /**
-     * The current layout for the domain class.
-     * <p>
-     * If a <code>layout.xml</code> exists, then the grid returned will correspond to that
-     * grid, having been {@link org.apache.isis.applib.services.grid.GridService#normalize(Grid) normalized}.
-     * If there is no <code>layout.xml</code> file, then the grid returned will be the
-     * {@link org.apache.isis.applib.services.grid.GridService#defaultGridFor(Class) default grid},
-     * also {@link org.apache.isis.applib.services.grid.GridService#normalize(Grid) normalized}.
-     */
-    CURRENT,
-
-    /**
-     * As per {@link #NORMALIZED}, but also with all (non-null) facets for all
-     * properties/collections/actions also included included in the grid.
-     * <p>
-     * The intention here is that any layout metadata annotations can be removed from the code.
-     */
-    COMPLETE,
-
-    /**
-     * Default, whereby missing properties/collections/actions are added to regions,
-     * and unused/empty regions are removed/trimmed.
-     * <p>
-     * It should be possible to remove any {@link PropertyLayout#sequence()}, {@link CollectionLayout#sequence()} and
-     * {@link ActionLayout#sequence()} annotation attributes, but {@link PropertyLayout#fieldSetId()}/
-     * {@link PropertyLayout#fieldSetName()} annotation attributes would need to be retained.
-     */
-    NORMALIZED,
-
-    /**
-     * As per {@link #NORMALIZED}, but with no properties/collections/actions.
-     * <p>
-     * The intention here is for layout annotations that &quot;bind&quot; the properties/collections/actions
-     * to the regions to be retained; the <code>layout.xml</code> is used only to specify the positioning of the
-     * groups and tabs.
-     */
-    MINIMAL
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
index b10b6bf7d2..f19a4a8633 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
@@ -88,7 +88,7 @@ public class GridServiceDefault implements GridService {
     // //////////////////////////////////////
 
     @Override
-    public Grid defaultGridFor(Class<?> domainClass) {
+    public Grid defaultGridFor(final Class<?> domainClass) {
 
         for (val gridSystemService : gridSystemServices()) {
             val grid = gridSystemService.defaultGrid(domainClass);
@@ -142,7 +142,6 @@ public class GridServiceDefault implements GridService {
         return grid;
     }
 
-
     /**
      * Not public API, exposed only for testing.
      */
@@ -205,4 +204,6 @@ public class GridServiceDefault implements GridService {
     }
 
 
+
+
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java
index 9ced0ed771..4eeefee856 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java
@@ -33,13 +33,12 @@ import org.apache.isis.applib.layout.grid.Grid;
 import org.apache.isis.applib.layout.menubars.MenuBars;
 import org.apache.isis.applib.services.grid.GridService;
 import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.applib.services.layout.LayoutFormat;
 import org.apache.isis.applib.services.layout.LayoutService;
-import org.apache.isis.applib.services.layout.Style;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.applib.util.ZipWriter;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.IsisModuleCoreMetamodel;
-import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
@@ -59,8 +58,8 @@ public class LayoutServiceDefault implements LayoutService {
     private final MenuBarsService menuBarsService;
 
     @Override
-    public String toXml(final Class<?> domainClass, final Style style) {
-        final Grid grid = toGrid(domainClass, style);
+    public String toXml(final Class<?> domainClass, final LayoutFormat format) {
+        final Grid grid = gridService.toGridForExport(domainClass, format);
         return jaxbService.toXml(grid,
                 _Maps.unmodifiable(
                         Marshaller.JAXB_SCHEMA_LOCATION,
@@ -68,37 +67,8 @@ public class LayoutServiceDefault implements LayoutService {
                         ));
     }
 
-    protected Grid toGrid(final Class<?> domainClass, final Style style) {
-
-        if (style == Style.CURRENT) {
-
-            return specificationLoader.specForType(domainClass)
-                    .flatMap(spec->spec.lookupFacet(GridFacet.class))
-                    .map(gridFacet->gridFacet.getGrid(null))
-                    .orElse(null);
-        }
-
-        // don't use the grid from the facet, because it will be modified subsequently.
-        Grid grid = gridService.load(domainClass);
-        if(grid == null) {
-            grid = gridService.defaultGridFor(domainClass);
-        }
-        gridService.normalize(grid);
-        if (style == Style.NORMALIZED) {
-            return grid;
-        }
-        if (style == Style.COMPLETE) {
-            return gridService.complete(grid);
-        }
-        if (style == Style.MINIMAL) {
-            return gridService.minimal(grid);
-        }
-        throw new IllegalArgumentException("unsupported style");
-    }
-
-
     @Override
-    public byte[] toZip(final Style style) {
+    public byte[] toZip(final LayoutFormat format) {
         val domainObjectSpecs = specificationLoader.snapshotSpecifications()
         .filter(spec ->
                 !spec.isAbstract()
@@ -108,7 +78,7 @@ public class LayoutServiceDefault implements LayoutService {
 
         for (val objectSpec : domainObjectSpecs) {
             val domainClass = objectSpec.getCorrespondingClass();
-            val grid = toGrid(domainClass, style);
+            val grid = gridService.toGridForExport(domainClass, format);
             if(grid != null) {
                 zipWriter.nextEntry(zipEntryNameFor(objectSpec), writer->{
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/GridLoadingTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/GridLoadingTest.java
index 595e0614cb..b9c19c546a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/GridLoadingTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/GridLoadingTest.java
@@ -27,8 +27,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertSame;
 
 import org.apache.isis.applib.services.grid.GridLoaderService;
+import org.apache.isis.applib.services.layout.LayoutFormat;
 import org.apache.isis.applib.services.layout.LayoutService;
-import org.apache.isis.applib.services.layout.Style;
 import org.apache.isis.core.metamodel.MetaModelTestAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet.Precedence;
 import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
@@ -55,7 +55,7 @@ extends MetaModelTestAbstract {
         val domainClassAndLayout = new GridLoaderServiceDefault.DomainClassAndLayout(Bar.class, null);
         gridLoaderService.loadXml(domainClassAndLayout);
 
-        val xml = layoutService.toXml(Bar.class, Style.NORMALIZED);
+        val xml = layoutService.toXml(Bar.class, LayoutFormat.MINIMAL);
         System.out.println(xml);
     }
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sitemap/SitemapServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sitemap/SitemapServiceDefault.java
index 813fcaadcd..7d84b2f8ef 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sitemap/SitemapServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sitemap/SitemapServiceDefault.java
@@ -37,7 +37,6 @@ import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
 import org.apache.isis.applib.layout.grid.Grid;
 import org.apache.isis.applib.layout.menubars.bootstrap.BSMenuBars;
 import org.apache.isis.applib.services.grid.GridService;
-import org.apache.isis.applib.services.layout.Style;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.applib.services.sitemap.SitemapService;
 import org.apache.isis.commons.internal.base._NullSafe;
@@ -116,7 +115,9 @@ public class SitemapServiceDefault implements SitemapService {
                         }
                     };
 
-                    val grid = toGrid(actionElementType.getCorrespondingClass(), Style.CURRENT);
+                    val grid = specificationLoader.specForType(actionElementType.getCorrespondingClass())
+                                .flatMap(Facets::bootstrapGrid)
+                                .orElse(null);
                     grid.visit(new Grid.VisitorAdapter() {
                         @Override public void visit(final ActionLayoutData actionLayoutData) {
                             actionElementType.getAction(actionLayoutData.getId(), ActionScope.PRODUCTION_ONLY)
@@ -181,30 +182,4 @@ public class SitemapServiceDefault implements SitemapService {
         .map(typeSpec->typeSpec.getAction(actionLayout.getId(), ActionScope.PRODUCTION_ONLY).orElse(null));
     }
 
-    private Grid toGrid(final Class<?> domainClass, final Style style) {
-
-        if (style == Style.CURRENT) {
-            return specificationLoader.specForType(domainClass)
-                    .flatMap(Facets::bootstrapGrid)
-                    .orElse(null);
-        }
-
-        // don't use the grid from the facet, because it will be modified subsequently.
-        Grid grid = gridService.load(domainClass);
-        if(grid == null) {
-            grid = gridService.defaultGridFor(domainClass);
-        }
-        gridService.normalize(grid);
-        if (style == Style.NORMALIZED) {
-            return grid;
-        }
-        if (style == Style.COMPLETE) {
-            return gridService.complete(grid);
-        }
-        if (style == Style.MINIMAL) {
-            return gridService.minimal(grid);
-        }
-        throw new IllegalArgumentException("unsupported style");
-    }
-
 }
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
index 8b118eea5c..8218e15d61 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
@@ -26,8 +26,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.approvaltests.reporters.DiffReporter;
-import org.approvaltests.reporters.UseReporter;
 import org.assertj.core.api.Assumptions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
diff --git a/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip b/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip
index d13400d05d..d88f58b5a9 100644
Binary files a/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip and b/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip differ