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 "normalized" 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 "completed" 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 "minimal" 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 "bind" 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