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 2020/01/14 19:22:10 UTC

[isis] branch 2263-Update_RO_spec created (now a18e1be)

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

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


      at a18e1be  ISIS-2263: bump schema XSDs to v2/2.0

This branch includes the following new commits:

     new af17748  ISIS-2263: re-implement java.time facet factories
     new a18e1be  ISIS-2263: bump schema XSDs to v2/2.0

The 2 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.



[isis] 01/02: ISIS-2263: re-implement java.time facet factories

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit af17748288bc14b3a2cbe8cabe41bf40eb3cbf1f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jan 14 15:40:49 2020 +0100

    ISIS-2263: re-implement java.time facet factories
---
 .../xmlsnapshot/XmlSnapshotServiceAbstract.java    |   9 +-
 .../applib/services/urlencoding/MementosTest.java  |   6 +-
 .../XmlSnapshotServiceAbstractTest.java            |   4 +-
 .../apache/isis/applib/util/schema/Roundtrip.java  |  64 ++---
 .../isis/schema/timeadapters/XmlTimeUtil.java      |  96 ++++++++
 .../value/datejdk8local/Jdk8LocalDateUtil.java     | 170 -------------
 ...ateValueFacetUsingSemanticsProviderFactory.java |  45 ----
 .../Jdk8LocalDateValueSemanticsProvider.java       | 252 -------------------
 .../facets/value/datejdk8local/TimeFormatter.java  |  27 --
 .../datetimejdk8local/Jdk8LocalDateTimeUtil.java   | 157 ------------
 ...imeValueFacetUsingSemanticsProviderFactory.java |  45 ----
 .../Jdk8LocalDateTimeValueSemanticsProvider.java   | 272 ---------------------
 .../value/datetimejdk8local/TimeFormatter.java     |  27 --
 .../facets/value/datetimejdk8local/TimeParser.java |  27 --
 ...imeValueFacetUsingSemanticsProviderFactory.java |  45 ----
 .../Jdk8OffsetDateTimeValueSemanticsProvider.java  | 103 --------
 ...fsetDateTimeValueSemanticsProviderAbstract.java | 121 ---------
 .../facets/value/temporal/TemporalAdjust.java      | 108 ++++++++
 .../facets/value/temporal/TemporalAdjustUtil.java  |  61 +++++
 .../TemporalValueFacet.java}                       |  27 +-
 ...ralValueFacetUsingSemanticsProviderFactory.java |  64 +++++
 .../TemporalValueSemanticsProviderAbstract.java    | 234 ++++++++++++++++++
 ...teValueFacetUsingSemanticsProviderFactory.java} |  14 +-
 .../localdate/LocalDateValueSemanticsProvider.java |  53 ++++
 ...meValueFacetUsingSemanticsProviderFactory.java} |  14 +-
 .../LocalDateTimeValueSemanticsProvider.java       |  64 +++++
 ...meValueFacetUsingSemanticsProviderFactory.java} |  14 +-
 .../localtime/LocalTimeValueSemanticsProvider.java |  63 +++++
 ...meValueFacetUsingSemanticsProviderFactory.java} |  14 +-
 .../OffsetDateTimeValueSemanticsProvider.java      |  65 +++++
 ...meValueFacetUsingSemanticsProviderFactory.java} |  16 +-
 .../OffsetTimeValueSemanticsProvider.java          |  60 +++++
 ...meValueFacetUsingSemanticsProviderFactory.java} |  16 +-
 .../ZonedDateTimeValueSemanticsProvider.java       |  61 +++++
 .../time/TimeValueSemanticsProviderAbstract.java   |   3 +-
 .../dflt/ProgrammingModelFacetsJava8.java          |  96 ++++----
 ...HelperTest_newPropertyDomainEvent_forClear.java |   7 +-
 ...elperTest_newPropertyDomainEvent_forModify.java |  11 +-
 .../core/runtimeservices/i18n/po/PoWriter.java     |  11 +-
 .../applib/bean/FixtureDatumFactoriesForTime.java  |  76 ++++++
 .../unittestsupport/applib/dom/valuetypes/VT.java  |   2 +-
 41 files changed, 1186 insertions(+), 1438 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
index a8d0168..7003d18 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
@@ -21,6 +21,8 @@ package org.apache.isis.applib.services.xmlsnapshot;
 import java.io.StringReader;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.Locale;
 
 import javax.xml.transform.OutputKeys;
@@ -30,8 +32,6 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.stream.StreamSource;
 
-import org.joda.time.format.DateTimeFormat;
-import org.joda.time.format.DateTimeFormatter;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -75,8 +75,9 @@ public abstract class XmlSnapshotServiceAbstract implements XmlSnapshotService {
         }
         if("isis:LocalDate".equals(dataType)) {
             final String str = getChildTextValue(chldEl);
-            final DateTimeFormatter forPattern = DateTimeFormat.forPattern("dd-MMM-yyyy").withLocale(Locale.ENGLISH);
-            return (T)forPattern.parseLocalDate(str);
+            final DateTimeFormatter parser = DateTimeFormatter
+                    .ofPattern("dd-MMM-yyyy", Locale.ENGLISH);
+            return (T)parser.parse(str, LocalDate::from);
         }
         if("isis:Byte".equals(dataType)) {
             final String str = getChildTextValue(chldEl);
diff --git a/api/applib/src/test/java/org/apache/isis/applib/services/urlencoding/MementosTest.java b/api/applib/src/test/java/org/apache/isis/applib/services/urlencoding/MementosTest.java
index b6fa72a..f426698 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/services/urlencoding/MementosTest.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/services/urlencoding/MementosTest.java
@@ -22,9 +22,9 @@ package org.apache.isis.applib.services.urlencoding;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.time.LocalDate;
 import java.util.Date;
 
-import org.joda.time.LocalDate;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -93,7 +93,7 @@ public class MementosTest {
         memento.put("someBooleanFalse", Boolean.FALSE);
         memento.put("someBigInteger", new BigInteger("123456789012345678901234567890"));
         memento.put("someBigDecimal", new BigDecimal("123456789012345678901234567890.123456789"));
-        memento.put("someLocalDate", new LocalDate(2013,9,3));
+        memento.put("someLocalDate", LocalDate.of(2013,9,3));
         memento.put("someJavaUtilDate", new Date(300_000_000));
 
         memento.put("someBookmark", new Bookmark("CUS", "12345"));
@@ -117,7 +117,7 @@ public class MementosTest {
         assertThat(memento2.get("someBooleanFalse", Boolean.class), is(Boolean.FALSE));
         assertThat(memento2.get("someBigInteger", BigInteger.class), is(new BigInteger("123456789012345678901234567890")));
         assertThat(memento2.get("someBigDecimal", BigDecimal.class), is(new BigDecimal("123456789012345678901234567890.123456789")));
-        assertThat(memento2.get("someLocalDate", LocalDate.class), is(new LocalDate(2013,9,3)));
+        assertThat(memento2.get("someLocalDate", LocalDate.class), is(LocalDate.of(2013,9,3)));
         assertThat(memento2.get("someJavaUtilDate", Date.class), is(new Date(300_000_000)));
         assertThat(memento2.get("someBookmark", Bookmark.class), is(new Bookmark("CUS", "12345")));
 
diff --git a/api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java b/api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
index 2b301da..2eab325 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
@@ -19,9 +19,9 @@ package org.apache.isis.applib.services.xmlsnapshot;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.nio.charset.Charset;
+import java.time.LocalDate;
 import java.util.Locale;
 
-import org.joda.time.LocalDate;
 import org.junit.Before;
 import org.junit.Test;
 import org.w3c.dom.Document;
@@ -65,7 +65,7 @@ public class XmlSnapshotServiceAbstractTest {
                 assertThat(
                         xmlSnapshotService.getChildElementValue(rootEl, "app:someString", String.class), is("OXF"));
                 assertThat(
-                        xmlSnapshotService.getChildElementValue(rootEl, "app:someLocalDate", LocalDate.class), is(new LocalDate(2013,4,1)));
+                        xmlSnapshotService.getChildElementValue(rootEl, "app:someLocalDate", LocalDate.class), is(LocalDate.of(2013,4,1)));
                 assertThat(
                         xmlSnapshotService.getChildElementValue(rootEl, "app:someBigDecimal", BigDecimal.class), is(new BigDecimal("123456789012345678901234567890.12345678")));
                 assertThat(
diff --git a/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java b/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java
index 923d65c..87a752d 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java
@@ -21,16 +21,16 @@ import java.io.CharArrayWriter;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.sql.Timestamp;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.OffsetDateTime;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
 import org.hamcrest.Matchers;
-import org.joda.time.DateTime;
-import org.joda.time.LocalDate;
-import org.joda.time.LocalDateTime;
-import org.joda.time.LocalTime;
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.equalTo;
@@ -133,20 +133,20 @@ public class Roundtrip {
         .addParamArg(interactionDto, "nullBigDecimal", java.math.BigDecimal.class, (java.math.BigDecimal) null, null);
 
         InteractionDtoUtils
-        .addParamArg(interactionDto, "aJodaDateTime", org.joda.time.DateTime.class, new org.joda.time.DateTime(2015, 5, 23, 9, 54, 1), null);
+        .addParamArg(interactionDto, "aOffsetDateTime", java.time.OffsetDateTime.class, OffsetDateTime.of(2015, 5, 23, 9, 54, 1, 0, null), null);
         InteractionDtoUtils
-        .addParamArg(interactionDto, "nullJodaDateTime", org.joda.time.DateTime.class, (org.joda.time.DateTime) null, null);
+        .addParamArg(interactionDto, "nullOffsetDateTime", java.time.OffsetDateTime.class, (OffsetDateTime) null, null);
 
         InteractionDtoUtils
-        .addParamArg(interactionDto, "aJodaLocalDate", org.joda.time.LocalDate.class, new org.joda.time.LocalDate(2015, 5, 23), null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullJodaLocalDate", org.joda.time.LocalDate.class, (org.joda.time.LocalDate) null, null);
+        .addParamArg(interactionDto, "aLocalDate", java.time.LocalDate.class, LocalDate.of(2015, 5, 23), null);
+        InteractionDtoUtils.addParamArg(interactionDto, "nullLocalDate", java.time.LocalDate.class, (LocalDate) null, null);
 
-        InteractionDtoUtils.addParamArg(interactionDto, "aJodaLocalDateTime", org.joda.time.LocalDateTime.class, new org.joda.time.LocalDateTime(2015, 5, 23, 9, 54, 1), null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullJodaLocalDateTime", org.joda.time.LocalDateTime.class, (org.joda.time.LocalDateTime) null, null);
+        InteractionDtoUtils.addParamArg(interactionDto, "aLocalDateTime", java.time.LocalDateTime.class, LocalDateTime.of(2015, 5, 23, 9, 54, 1), null);
+        InteractionDtoUtils.addParamArg(interactionDto, "nullLocalDateTime", java.time.LocalDateTime.class, (LocalDateTime) null, null);
 
         InteractionDtoUtils
-        .addParamArg(interactionDto, "aJodaLocalTime", org.joda.time.LocalTime.class, new org.joda.time.LocalTime(9, 54, 1), null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullJodaLocalTime", org.joda.time.LocalTime.class, (org.joda.time.LocalTime) null, null);
+        .addParamArg(interactionDto, "aLocalTime", java.time.LocalTime.class, LocalTime.of(9, 54, 1), null);
+        InteractionDtoUtils.addParamArg(interactionDto, "nullLocalTime", java.time.LocalTime.class, (LocalTime) null, null);
 
         InteractionDtoUtils.addParamArg(interactionDto, "aReference", null, new Bookmark("ORD", "12345"), null);
         InteractionDtoUtils.addParamArg(interactionDto, "nullReference", null, null, null);
@@ -292,52 +292,52 @@ public class Roundtrip {
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aJodaDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_DATE_TIME));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aOffsetDateTime"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.OFFSET_DATE_TIME));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
         // bit hacky... regular comparison fails but toString() works... must be some additional data that differs, not sure what tho'
         assertThat(
-                InteractionDtoUtils.getParameterArgValue(invocationDto, param, DateTime.class).toString(), is(new DateTime(2015, 5, 23, 9, 54, 1).toString()));
+                InteractionDtoUtils.getParameterArgValue(invocationDto, param, OffsetDateTime.class).toString(), is(OffsetDateTime.of(2015, 5, 23, 9, 54, 1, 0, null).toString()));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullJodaDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_DATE_TIME));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullOffsetDateTime"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.OFFSET_DATE_TIME));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aJodaLocalDate"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_LOCAL_DATE));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aLocalDate"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
         final LocalDate actual = InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalDate.class);
-        final LocalDate expected = new LocalDate(2015, 5, 23);
+        final LocalDate expected = LocalDate.of(2015, 5, 23);
         assertThat(actual, equalTo(expected));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullJodaLocalDate"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_LOCAL_DATE));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullLocalDate"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aJodaLocalDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_LOCAL_DATE_TIME));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aLocalDateTime"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE_TIME));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalDateTime.class), is(new org.joda.time.LocalDateTime(2015, 5, 23, 9, 54, 1)));
+        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalDateTime.class), is(LocalDateTime.of(2015, 5, 23, 9, 54, 1)));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullJodaLocalDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_LOCAL_DATE_TIME));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullLocalDateTime"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE_TIME));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aJodaLocalTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_LOCAL_TIME));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aLocalTime"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_TIME));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
         assertThat(
-                InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalTime.class), is(new org.joda.time.LocalTime(9, 54, 1)));
+                InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalTime.class), is(LocalTime.of(9, 54, 1)));
 
         param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullJodaLocalTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.JODA_LOCAL_TIME));
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullLocalTime"));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_TIME));
         assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
 
         param++;
diff --git a/api/schema/src/main/java/org/apache/isis/schema/timeadapters/XmlTimeUtil.java b/api/schema/src/main/java/org/apache/isis/schema/timeadapters/XmlTimeUtil.java
new file mode 100644
index 0000000..a097e2e
--- /dev/null
+++ b/api/schema/src/main/java/org/apache/isis/schema/timeadapters/XmlTimeUtil.java
@@ -0,0 +1,96 @@
+/*
+ *  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.schema.timeadapters;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.time.ZonedDateTime;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+public class XmlTimeUtil {
+
+    // -- TO XML
+    
+    public static XMLGregorianCalendar fromLocalDate(LocalDate localDate) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static XMLGregorianCalendar fromLocalDateTime(LocalDateTime localDateTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static XMLGregorianCalendar fromOffsetDateTime(OffsetDateTime offsetDateTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static XMLGregorianCalendar fromLocalTime(LocalTime localTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static XMLGregorianCalendar fromOffsetTime(OffsetTime offsetTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static XMLGregorianCalendar fromZonedDateTime(ZonedDateTime zonedDateTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+    
+    // -- FROM XML
+
+    public static LocalDate toLocalDate(XMLGregorianCalendar cal) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static LocalTime toLocalTime(XMLGregorianCalendar localTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static LocalDateTime toLocalDateTime(XMLGregorianCalendar localDateTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static OffsetDateTime toOffsetDateTime(XMLGregorianCalendar offsetDateTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static OffsetTime toOffsetTime(XMLGregorianCalendar offsetTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static ZonedDateTime toZonedDateTime(XMLGregorianCalendar zonedDateTime) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateUtil.java
deleted file mode 100644
index da56196..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateUtil.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
-
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.Locale;
-import java.util.StringTokenizer;
-
-import org.joda.time.format.DateTimeFormat;
-
-import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
-
-final class Jdk8LocalDateUtil  {
-
-    private Jdk8LocalDateUtil(){}
-
-    // -- CONVERSION (LEGACY OF JODA TIME LIBRARY)
-
-    static TimeParser parserOfStyle(String style) {
-        return parserOf(DateTimeFormat.forStyle(style));
-    }
-
-    private static TimeParser parserOf(org.joda.time.format.DateTimeFormatter jodaFormatter) {
-        return t->
-        toJava8(jodaFormatter.withLocale(Locale.getDefault()).parseLocalDate(t));
-    }
-
-    private static LocalDate toJava8(org.joda.time.LocalDate x) {
-        return LocalDate.of(x.getYear(), x.getMonthOfYear(), x.getDayOfMonth());
-    }
-
-    static TimeFormatter formatterOfStyle(String style) {
-        return formatterOf(DateTimeFormat.forStyle(style));
-    }
-
-    private static TimeFormatter formatterOf(org.joda.time.format.DateTimeFormatter jodaFormatter) {
-        return t->
-        jodaFormatter.withLocale(Locale.getDefault()).print(toJoda(t));
-    }
-
-    private static org.joda.time.LocalDate toJoda(LocalDate x) {
-        return new org.joda.time.LocalDate(x.getYear(), x.getMonthValue(), x.getDayOfMonth());
-    }
-
-    // -- PARSING AND FORMATING GENERALIZATION
-
-    static TimeFormatter formatterOf(DateTimeFormatter formatter) {
-        return t->
-        formatter.withLocale(Locale.getDefault()).format(t);
-    }
-
-    static TimeParser parserOf(DateTimeFormatter formatter) {
-        return text->
-        LocalDate.parse(text, formatter.withLocale(Locale.getDefault()));
-    }
-
-    // //////////////////////////////////////
-
-    static LocalDate parseDate(
-            final String dateStr,
-            List<TimeParser> parsers) {
-        LocalDate parsedDate = _parseDate(dateStr, parsers);
-        return parsedDate;
-    }
-
-    private static LocalDate _parseDate(String dateStr, Iterable<TimeParser> parsers) {
-        for(TimeParser parser: parsers) {
-            try {
-                return parser.apply(dateStr);
-            } catch (final IllegalArgumentException e) {
-                // continue to next
-            }
-        }
-        throw new TextEntryParseException("Not recognised as a date: " + dateStr);
-    }
-
-    // //////////////////////////////////////
-
-    static LocalDate relativeDate(final LocalDate contextDate, final String str, final boolean add) {
-        LocalDate relativeDate = contextDate;
-        if (str.equals("")) {
-            return contextDate;
-        }
-
-        try {
-            final StringTokenizer st = new StringTokenizer(str.substring(1), " ");
-            while (st.hasMoreTokens()) {
-                final String token = st.nextToken();
-                relativeDate = adjustDate(relativeDate, token, add);
-            }
-            return relativeDate;
-        } catch (final Exception e) {
-            return contextDate;
-        }
-    }
-
-    private static LocalDate adjustDate(final LocalDate contextDate, String str, final boolean add) {
-        int hours = 0;
-        int minutes = 0;
-        int days = 0;
-        int months = 0;
-        int years = 0;
-
-        if (str.endsWith("H")) {
-            str = str.substring(0, str.length() - 1);
-            hours = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("M")) {
-            str = str.substring(0, str.length() - 1);
-            minutes = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("w")) {
-            str = str.substring(0, str.length() - 1);
-            days = 7 * Integer.valueOf(str).intValue();
-        } else if (str.endsWith("y")) {
-            str = str.substring(0, str.length() - 1);
-            years = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("m")) {
-            str = str.substring(0, str.length() - 1);
-            months = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("d")) {
-            str = str.substring(0, str.length() - 1);
-            days = Integer.valueOf(str).intValue();
-        } else {
-            days = Integer.valueOf(str).intValue();
-        }
-
-        if (add) {
-            return add(contextDate, years, months, days, hours, minutes);
-        } else {
-            return add(contextDate, -years, -months, -days, -hours, -minutes);
-        }
-    }
-
-    private static LocalDate add(final LocalDate original, final int years, final int months, final int days, final int hours, final int minutes) {
-        if(hours != 0 || minutes != 0) {
-            throw new IllegalArgumentException("cannot add non-zero hours or minutes to a LocalDate");
-        }
-        return original.plusYears(years).plusMonths(months).plusDays(days);
-    }
-
-
-    // //////////////////////////////////////
-
-    public static String titleString(final TimeFormatter formatter, final LocalDate date) {
-        return date == null ? "" : formatter.apply(date);
-    }
-
-
-
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacetUsingSemanticsProviderFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacetUsingSemanticsProviderFactory.java
deleted file mode 100644
index 703436b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacetUsingSemanticsProviderFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
-
-import java.time.LocalDate;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
-
-public class Jdk8LocalDateValueFacetUsingSemanticsProviderFactory extends ValueFacetUsingSemanticsProviderFactory<LocalDate> {
-
-    public Jdk8LocalDateValueFacetUsingSemanticsProviderFactory() {
-        // as per inherited DateTimeValueSemanticsProvider#facetType
-        super();
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> type = processClassContext.getCls();
-        final FacetHolder holder = processClassContext.getFacetHolder();
-
-        if (type != LocalDate.class) {
-            return;
-        }
-        addFacets(new Jdk8LocalDateValueSemanticsProvider(holder));
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
deleted file mode 100644
index e44d865..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
-
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.applib.adapters.EncoderDecoder;
-import org.apache.isis.applib.adapters.EncodingException;
-import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
-import org.apache.isis.core.metamodel.facets.value.datejodalocal.JodaLocalDateValueFacet;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-public class Jdk8LocalDateValueSemanticsProvider
-extends ValueSemanticsProviderAndFacetAbstract<LocalDate>
-implements Jdk8LocalDateValueFacet {
-
-    public static final int MAX_LENGTH = 12;
-    public static final int TYPICAL_LENGTH = MAX_LENGTH;
-
-    /**
-     * Introduced to allow BDD tests to provide a different format string "mid-flight".
-     *
-     * <p>
-     * REVIEW: This seems only to have any effect if 'propertyType' is set to 'date'.
-     *
-     * @see #setTitlePatternOverride(String)
-     * @deprecated - because 'propertyType' parameter is never used
-     */
-    @Deprecated
-    public static void setFormat(final String propertyType, final String pattern) {
-        setTitlePatternOverride(pattern);
-    }
-    /**
-     * A replacement for {@link #setFormat(String, String)}.
-     */
-    public static void setTitlePatternOverride(final String pattern) {
-        override_title_pattern.set(pattern);
-    }
-
-    /**
-     * Keys represent the values which can be configured, and which are used for the rendering of dates.
-     *
-     */
-    private static Map<String, TimeFormatter> named_title_formatters = _Maps.newHashMap();
-    static {
-        named_title_formatters.put("iso_encoding", Jdk8LocalDateUtil.formatterOf(DateTimeFormatter.ofPattern("yyyyMMdd")));
-        named_title_formatters.put("iso", Jdk8LocalDateUtil.formatterOf(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
-        named_title_formatters.put("long", Jdk8LocalDateUtil.formatterOfStyle("L-"));
-        named_title_formatters.put("medium", Jdk8LocalDateUtil.formatterOfStyle("M-"));
-        named_title_formatters.put("short", Jdk8LocalDateUtil.formatterOfStyle("S-"));
-    }
-
-    private final static ThreadLocal<String> override_title_pattern = new ThreadLocal<String>() {
-        @Override
-        protected String initialValue() {
-            return null;
-        }
-    };
-
-
-    private final static List<TimeParser> parse_formatters = _Lists.newArrayList();
-    static {
-        parse_formatters.add(Jdk8LocalDateUtil.parserOfStyle("L-"));
-        parse_formatters.add(Jdk8LocalDateUtil.parserOfStyle("M-"));
-        parse_formatters.add(Jdk8LocalDateUtil.parserOfStyle("S-"));
-        parse_formatters.add(Jdk8LocalDateUtil.parserOf(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
-        parse_formatters.add(Jdk8LocalDateUtil.parserOf(DateTimeFormatter.ofPattern("yyyyMMdd")));
-    }
-
-    public static Class<? extends Facet> type() {
-        return JodaLocalDateValueFacet.class;
-    }
-
-
-    // no default
-    private static final LocalDate DEFAULT_VALUE = null;
-
-
-    private final DateTimeFormatter encodingFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
-
-    private TimeFormatter titleStringFormatter;
-    private String titleStringFormatNameOrPattern;
-
-
-    // //////////////////////////////////////
-    // constructor
-    // //////////////////////////////////////
-
-    /**
-     * Required because implementation of {@link TimeParser} and
-     * {@link EncoderDecoder}.
-     */
-    public Jdk8LocalDateValueSemanticsProvider() {
-        this(null);
-    }
-
-    /**
-     * Uses {@link #type()} as the facet type.
-     */
-    public Jdk8LocalDateValueSemanticsProvider(final FacetHolder holder) {
-        super(type(), holder, LocalDate.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
-
-        String configuredNameOrPattern = getConfiguration()
-                .getValue().getFormatOrElse(FormatIdentifier.DATE, "medium");
-        updateTitleStringFormatter(configuredNameOrPattern);
-    }
-
-
-    private void updateTitleStringFormatter(String titleStringFormatNameOrPattern) {
-        titleStringFormatter = named_title_formatters.get(titleStringFormatNameOrPattern);
-        if (titleStringFormatter == null) {
-            titleStringFormatter = Jdk8LocalDateUtil.formatterOf(DateTimeFormatter.ofPattern(titleStringFormatNameOrPattern));
-        }
-        this.titleStringFormatNameOrPattern = titleStringFormatNameOrPattern;
-    }
-
-
-    // //////////////////////////////////////////////////////////////////
-    // Parsing
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    protected LocalDate doParse(
-            final String entry,
-            final Object context) {
-
-        updateTitleStringFormatterIfOverridden();
-
-        LocalDate contextDate = (LocalDate) context;
-
-        final String dateString = entry.trim().toUpperCase();
-        if (dateString.startsWith("+") && contextDate != null) {
-            return Jdk8LocalDateUtil.relativeDate(contextDate, dateString, true);
-        } else if (dateString.startsWith("-")  && contextDate != null) {
-            return Jdk8LocalDateUtil.relativeDate(contextDate, dateString, false);
-        } else {
-            return parseDate(dateString, contextDate);
-        }
-    }
-
-    private void updateTitleStringFormatterIfOverridden() {
-        final String overridePattern = override_title_pattern.get();
-        if (overridePattern == null ||
-                titleStringFormatNameOrPattern.equals(overridePattern)) {
-            return;
-        }
-
-        // (re)create format
-        updateTitleStringFormatter(overridePattern);
-    }
-
-    private LocalDate parseDate(final String dateStr, final Object original) {
-        return Jdk8LocalDateUtil.parseDate(dateStr, parse_formatters);
-    }
-
-
-    // ///////////////////////////////////////////////////////////////////////////
-    // TitleProvider
-    // ///////////////////////////////////////////////////////////////////////////
-
-    @Override
-    public String titleString(final Object value) {
-        if (value == null) {
-            return null;
-        }
-        final LocalDate date = (LocalDate) value;
-        //DateTimeFormatter f = titleStringFormatter.withLocale(Locale.getDefault());
-        return Jdk8LocalDateUtil.titleString(titleStringFormatter, date);
-    }
-
-    @Override
-    public String titleStringWithMask(final Object value, final String usingMask) {
-        final LocalDate date = (LocalDate) value;
-        return Jdk8LocalDateUtil.titleString(Jdk8LocalDateUtil.formatterOf(DateTimeFormatter.ofPattern(usingMask)), date);
-    }
-
-
-    // //////////////////////////////////////////////////////////////////
-    // EncoderDecoder
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    protected String doEncode(final Object object) {
-        final LocalDate date = (LocalDate) object;
-        return encode(date);
-    }
-
-    private synchronized String encode(final LocalDate date) {
-        return encodingFormatter.format(date);
-    }
-
-    @Override
-    protected LocalDate doRestore(final String data) {
-        try {
-            return parse(data);
-        } catch (final IllegalArgumentException e) {
-            throw new EncodingException(e);
-        }
-    }
-
-    private synchronized LocalDate parse(final String data) {
-        return LocalDate.parse(data, encodingFormatter);
-    }
-
-    // //////////////////////////////////////////////////////////////////
-    // Jdk8LocalDateValueFacet
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    public final LocalDate dateValue(final ManagedObject object) {
-        return (LocalDate) (object == null ? null : object.getPojo());
-    }
-
-    @Override
-    public final ManagedObject createValue(final LocalDate date) {
-        return getObjectManager().adapt(date);
-    }
-
-
-    // //////////////////////////////////////
-
-    @Override
-    public String toString() {
-        return "Jdk8LocalDateValueSemanticsProvider: " + titleStringFormatter;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/TimeFormatter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/TimeFormatter.java
deleted file mode 100644
index 0769108..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/TimeFormatter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
-
-import java.time.LocalDate;
-import java.util.function.Function;
-
-interface TimeFormatter extends Function<LocalDate, String> {
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeUtil.java
deleted file mode 100644
index 2c088a1..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeUtil.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8local;
-
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-import java.util.StringTokenizer;
-
-import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
-
-final class Jdk8LocalDateTimeUtil  {
-
-    private Jdk8LocalDateTimeUtil(){}
-
-    // -- CONVERSION (LEGACY OF JODA TIME LIBRARY)
-
-    private final static ZoneId zId = ZoneId.systemDefault();
-
-    static TimeParser parserOf(org.joda.time.format.DateTimeFormatter jodaFormatter) {
-        return t->
-        toJava8(jodaFormatter.withLocale(Locale.getDefault()).parseLocalDateTime(t));
-    }
-
-    private static LocalDateTime toJava8(org.joda.time.LocalDateTime x){
-        if(x==null)
-            return null;
-        return toLocalDateTime(x.toDate().getTime());
-    }
-
-    private static LocalDateTime toLocalDateTime(long epochMilli) {
-        return LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli),zId);
-    }
-
-    static TimeFormatter formatterOf(org.joda.time.format.DateTimeFormatter jodaFormatter) {
-        return t->
-        jodaFormatter.withLocale(Locale.getDefault()).print(toJoda(t));
-
-    }
-
-    private static org.joda.time.LocalDateTime toJoda(LocalDateTime x){
-        if(x==null)
-            return null;
-        return org.joda.time.LocalDateTime.fromDateFields(new Date(toEpochMilli(x)));
-    }
-
-    private static long toEpochMilli(LocalDateTime localDateTime){
-        return localDateTime.atZone(zId).toInstant().toEpochMilli();
-    }
-
-    // //////////////////////////////////////
-
-    static LocalDateTime parseDate(
-            final String dateStr,
-            List<TimeParser> parseFormatters) {
-        return parseDateTime(dateStr, parseFormatters);
-    }
-
-    private static LocalDateTime parseDateTime(String dateStr, Iterable<TimeParser> parsers) {
-        for(TimeParser parser: parsers) {
-            try {
-                return parser.apply(dateStr);
-            } catch (final IllegalArgumentException e) {
-                // continue to next
-            }
-        }
-        throw new TextEntryParseException("Not recognised as a date: " + dateStr);
-    }
-
-    // //////////////////////////////////////
-
-
-    static LocalDateTime relativeDateTime(final LocalDateTime contextDate, final String str, final boolean add) {
-        LocalDateTime relativeDate = contextDate;
-        if (str.equals("")) {
-            return contextDate;
-        }
-
-        try {
-            final StringTokenizer st = new StringTokenizer(str.substring(1), " ");
-            while (st.hasMoreTokens()) {
-                final String token = st.nextToken();
-                relativeDate = adjustDateTime(relativeDate, token, add);
-            }
-            return relativeDate;
-        } catch (final Exception e) {
-            return contextDate;
-        }
-    }
-
-    private static LocalDateTime adjustDateTime(final LocalDateTime contextDateTime, String str, final boolean add) {
-        int hours = 0;
-        int minutes = 0;
-        int days = 0;
-        int months = 0;
-        int years = 0;
-
-        if (str.endsWith("H")) {
-            str = str.substring(0, str.length() - 1);
-            hours = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("M")) {
-            str = str.substring(0, str.length() - 1);
-            minutes = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("w")) {
-            str = str.substring(0, str.length() - 1);
-            days = 7 * Integer.valueOf(str).intValue();
-        } else if (str.endsWith("y")) {
-            str = str.substring(0, str.length() - 1);
-            years = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("m")) {
-            str = str.substring(0, str.length() - 1);
-            months = Integer.valueOf(str).intValue();
-        } else if (str.endsWith("d")) {
-            str = str.substring(0, str.length() - 1);
-            days = Integer.valueOf(str).intValue();
-        } else {
-            days = Integer.valueOf(str).intValue();
-        }
-
-        if (add) {
-            return add(contextDateTime, years, months, days, hours, minutes);
-        } else {
-            return add(contextDateTime, -years, -months, -days, -hours, -minutes);
-        }
-    }
-
-    private static LocalDateTime add(final LocalDateTime original, final int years, final int months, final int days, final int hours, final int minutes) {
-        return original.plusYears(years).plusMonths(months).plusDays(days).plusHours(hours).plusMinutes(minutes);
-    }
-
-    // //////////////////////////////////////
-
-    static String titleString(TimeFormatter titleFormatter, LocalDateTime dateTime) {
-        return dateTime == null ? "" : titleFormatter.apply(dateTime);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory.java
deleted file mode 100644
index ab3cedd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8local;
-
-import java.time.LocalDateTime;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
-
-public class Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory extends ValueFacetUsingSemanticsProviderFactory<LocalDateTime> {
-
-    public Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory() {
-        // as per inherited DateTimeValueSemanticsProvider#facetType
-        super();
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> type = processClassContext.getCls();
-        final FacetHolder holder = processClassContext.getFacetHolder();
-
-        if (type != LocalDateTime.class) {
-            return;
-        }
-        addFacets(new Jdk8LocalDateTimeValueSemanticsProvider(holder));
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
deleted file mode 100644
index 127b779..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8local;
-
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.Map;
-
-import org.joda.time.format.DateTimeFormat;
-import org.joda.time.format.ISODateTimeFormat;
-
-import org.apache.isis.applib.adapters.EncoderDecoder;
-import org.apache.isis.applib.adapters.EncodingException;
-import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-
-public class Jdk8LocalDateTimeValueSemanticsProvider extends ValueSemanticsProviderAndFacetAbstract<LocalDateTime> implements Jdk8LocalDateTimeValueFacet {
-
-    public static final int MAX_LENGTH = 36;
-    public static final int TYPICAL_LENGTH = 22;
-
-    /**
-     * Introduced to allow BDD tests to provide a different format string "mid-flight".
-     *
-     * <p>
-     * REVIEW: This seems only to have any effect if 'propertyType' is set to 'date'.
-     *
-     * @see #setTitlePatternOverride(String)
-     * @deprecated - because 'propertyType' parameter is never used
-     */
-    @Deprecated
-    public static void setFormat(final String propertyType, final String pattern) {
-        setTitlePatternOverride(pattern);
-    }
-    /**
-     * A replacement for {@link #setFormat(String, String)}.
-     */
-    public static void setTitlePatternOverride(final String pattern) {
-        OVERRIDE_TITLE_PATTERN.set(pattern);
-    }
-
-    /*
-     * Key to indicate how LocalDateTime should be parsed/rendered.
-     *
-     * <p>
-     * eg:
-     * <pre>
-     * isis.value.format.datetime=iso
-     * </pre>
-     *
-     * <p>
-     * A pre-determined list of values is available, specifically 'iso_encoding', 'iso' and 'medium' (see
-     * {@link #NAMED_TITLE_FORMATTERS}).  Alternatively,  can also specify a mask, eg <tt>dd-MMM-yyyy</tt>.
-     *
-     * @see #NAMED_TITLE_FORMATTERS
-     */
-   //public final static String CFG_FORMAT_KEY = ConfigurationConstants.ROOT + "value.format.datetime";
-
-
-    /**
-     * Keys represent the values which can be configured, and which are used for the rendering of dates.
-     *
-     */
-    private static Map<String, TimeFormatter> NAMED_TITLE_FORMATTERS = _Maps.newHashMap();
-    static {
-        NAMED_TITLE_FORMATTERS.put("iso_encoding", Jdk8LocalDateTimeUtil.formatterOf(ISODateTimeFormat.basicDateTime()));
-        NAMED_TITLE_FORMATTERS.put("iso", Jdk8LocalDateTimeUtil.formatterOf(ISODateTimeFormat.basicDateTimeNoMillis()));
-        NAMED_TITLE_FORMATTERS.put("long", Jdk8LocalDateTimeUtil.formatterOf(DateTimeFormat.forStyle("LL")));
-        NAMED_TITLE_FORMATTERS.put("medium", Jdk8LocalDateTimeUtil.formatterOf(DateTimeFormat.forStyle("MM")));
-        NAMED_TITLE_FORMATTERS.put("short", Jdk8LocalDateTimeUtil.formatterOf(DateTimeFormat.forStyle("SS")));
-    }
-
-    private final static ThreadLocal<String> OVERRIDE_TITLE_PATTERN = new ThreadLocal<String>() {
-        @Override
-        protected String initialValue() {
-            return null;
-        }
-    };
-
-
-    private final static List<TimeParser> PARSE_FORMATTERS = _Lists.newArrayList();
-    static {
-        PARSE_FORMATTERS.add(Jdk8LocalDateTimeUtil.parserOf(DateTimeFormat.forStyle("LL")));
-        PARSE_FORMATTERS.add(Jdk8LocalDateTimeUtil.parserOf(DateTimeFormat.forStyle("MM")));
-        PARSE_FORMATTERS.add(Jdk8LocalDateTimeUtil.parserOf(DateTimeFormat.forStyle("SS")));
-        PARSE_FORMATTERS.add(Jdk8LocalDateTimeUtil.parserOf(ISODateTimeFormat.basicDateTimeNoMillis()));
-        PARSE_FORMATTERS.add(Jdk8LocalDateTimeUtil.parserOf(ISODateTimeFormat.basicDateTime()));
-    }
-
-    public static Class<? extends Facet> type() {
-        return Jdk8LocalDateTimeValueFacet.class;
-    }
-
-    // no default
-    private static final LocalDateTime DEFAULT_VALUE = null;
-
-    private final TimeParser encodingParser = Jdk8LocalDateTimeUtil.parserOf(ISODateTimeFormat.dateHourMinuteSecondMillis());
-    private final TimeFormatter encodingFormatter = Jdk8LocalDateTimeUtil.formatterOf(ISODateTimeFormat.dateHourMinuteSecondMillis());
-
-    private TimeFormatter titleStringFormatter;
-    private String titleStringFormatNameOrPattern;
-
-
-    // //////////////////////////////////////
-    // constructor
-    // //////////////////////////////////////
-
-    /**
-     * Required because implementation of {@link TimeParser} and
-     * {@link EncoderDecoder}.
-     */
-    public Jdk8LocalDateTimeValueSemanticsProvider() {
-        this(null);
-    }
-
-    /**
-     * Uses {@link #type()} as the facet type.
-     */
-    public Jdk8LocalDateTimeValueSemanticsProvider(final FacetHolder holder) {
-        super(type(), holder, LocalDateTime.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
-
-        String configuredNameOrPattern = getConfiguration()
-                .getValue().getFormatOrElse(FormatIdentifier.DATETIME, "medium");
-        updateTitleStringFormatter(configuredNameOrPattern);
-    }
-
-
-    private void updateTitleStringFormatter(String titleStringFormatNameOrPattern) {
-        titleStringFormatter = NAMED_TITLE_FORMATTERS.get(titleStringFormatNameOrPattern);
-        if (titleStringFormatter == null) {
-            titleStringFormatter =
-                    DateTimeFormatter.ofPattern(titleStringFormatNameOrPattern)::format;
-        }
-        this.titleStringFormatNameOrPattern = titleStringFormatNameOrPattern;
-    }
-
-
-    // //////////////////////////////////////////////////////////////////
-    // Parsing
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    protected LocalDateTime doParse(
-            final String entry,
-            final Object context) {
-
-        updateTitleStringFormatterIfOverridden();
-
-        LocalDateTime contextDateTime = (LocalDateTime) context;
-
-        final String dateString = entry.trim().toUpperCase();
-        if (dateString.startsWith("+") && contextDateTime != null) {
-            return Jdk8LocalDateTimeUtil.relativeDateTime(contextDateTime, dateString, true);
-        } else if (dateString.startsWith("-")  && contextDateTime != null) {
-            return Jdk8LocalDateTimeUtil.relativeDateTime(contextDateTime, dateString, false);
-        } else {
-            return parseDateTime(dateString, contextDateTime);
-        }
-    }
-
-    private void updateTitleStringFormatterIfOverridden() {
-        final String overridePattern = OVERRIDE_TITLE_PATTERN.get();
-        if (overridePattern == null ||
-                titleStringFormatNameOrPattern.equals(overridePattern)) {
-            return;
-        }
-
-        // (re)create format
-        updateTitleStringFormatter(overridePattern);
-    }
-
-    private LocalDateTime parseDateTime(final String dateStr, final Object original) {
-        return Jdk8LocalDateTimeUtil.parseDate(dateStr, PARSE_FORMATTERS);
-    }
-
-
-    // ///////////////////////////////////////////////////////////////////////////
-    // TitleProvider
-    // ///////////////////////////////////////////////////////////////////////////
-
-    @Override
-    public String titleString(final Object value) {
-        if (value == null) {
-            return null;
-        }
-        final LocalDateTime dateTime = (LocalDateTime) value;
-        return Jdk8LocalDateTimeUtil.titleString(titleStringFormatter, dateTime);
-    }
-
-    @Override
-    public String titleStringWithMask(final Object value, final String usingMask) {
-        final LocalDateTime dateTime = (LocalDateTime) value;
-        return Jdk8LocalDateTimeUtil.titleString(
-                DateTimeFormatter.ofPattern(usingMask)::format,
-                dateTime);
-    }
-
-
-    // //////////////////////////////////////////////////////////////////
-    // EncoderDecoder
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    protected String doEncode(final Object object) {
-        final LocalDateTime date = (LocalDateTime) object;
-        return encode(date);
-    }
-
-    private synchronized String encode(final LocalDateTime date) {
-        return encodingFormatter.apply(date);
-    }
-
-    @Override
-    protected LocalDateTime doRestore(final String data) {
-        try {
-            return parse(data);
-        } catch (final IllegalArgumentException e) {
-            throw new EncodingException(e);
-        }
-    }
-
-    private synchronized LocalDateTime parse(final String data) {
-        return encodingParser.apply(data);
-    }
-
-    // //////////////////////////////////////////////////////////////////
-    // Jdk8LocalDateValueFacet
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    public final LocalDateTime dateValue(final ManagedObject object) {
-        return (LocalDateTime) (object == null ? null : object.getPojo());
-    }
-
-    @Override
-    public final ManagedObject createValue(final LocalDateTime date) {
-        return getObjectManager().adapt(date);
-    }
-
-
-    // //////////////////////////////////////
-
-    @Override
-    public String toString() {
-        return "Jdk8LocalDateTimeValueSemanticsProvider: " + titleStringFormatter;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/TimeFormatter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/TimeFormatter.java
deleted file mode 100644
index 4911dfc..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/TimeFormatter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8local;
-
-import java.time.LocalDateTime;
-import java.util.function.Function;
-
-interface TimeFormatter extends Function<LocalDateTime, String> {
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/TimeParser.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/TimeParser.java
deleted file mode 100644
index 2417cfd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/TimeParser.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8local;
-
-import java.time.LocalDateTime;
-import java.util.function.Function;
-
-interface TimeParser extends Function<String, LocalDateTime> {
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory.java
deleted file mode 100644
index ab0dfa9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8offset;
-
-import java.time.OffsetDateTime;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
-
-public class Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory extends ValueFacetUsingSemanticsProviderFactory<OffsetDateTime> {
-
-    public Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory() {
-        // as per inherited DateTimeValueSemanticsProvider#facetType
-        super();
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> type = processClassContext.getCls();
-        final FacetHolder holder = processClassContext.getFacetHolder();
-
-        if (type != OffsetDateTime.class) {
-            return;
-        }
-        addFacets(new Jdk8OffsetDateTimeValueSemanticsProvider(holder));
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProvider.java
deleted file mode 100644
index 26d06b7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProvider.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8offset;
-
-import java.time.OffsetDateTime;
-import java.time.ZoneOffset;
-import java.time.format.DateTimeFormatter;
-import java.util.Date;
-
-import org.apache.isis.applib.adapters.EncoderDecoder;
-import org.apache.isis.applib.adapters.EncodingException;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.value.datetimejoda.JodaDateTimeValueSemanticsProviderAbstract;
-
-public class Jdk8OffsetDateTimeValueSemanticsProvider extends JodaDateTimeValueSemanticsProviderAbstract<OffsetDateTime> {
-
-    // no default
-    private static final OffsetDateTime DEFAULT_VALUE = null;
-
-
-    /**
-     * Required because implementation of {@link TimeParser} and
-     * {@link EncoderDecoder}.
-     */
-    public Jdk8OffsetDateTimeValueSemanticsProvider() {
-        this(null);
-    }
-
-    public Jdk8OffsetDateTimeValueSemanticsProvider(final FacetHolder holder) {
-        super(holder, OffsetDateTime.class, DEFAULT_VALUE);
-    }
-
-    @Override
-    protected OffsetDateTime add(final OffsetDateTime original, final int years, final int months, final int days, final int hours, final int minutes) {
-        if(hours != 0 || minutes != 0) {
-            throw new IllegalArgumentException("cannot add non-zero hours or minutes to a DateTime");
-        }
-        return original.plusYears(years).plusMonths(months).plusDays(days);
-    }
-
-    @Override
-    protected OffsetDateTime now() {
-        return OffsetDateTime.now();
-    }
-
-    @Override
-    protected Date dateValue(final Object value) {
-        long epochMilli = ((OffsetDateTime) value).toInstant().toEpochMilli();
-        return new Date(epochMilli);
-    }
-
-    @Override
-    protected OffsetDateTime setDate(final Date date) {
-        return OffsetDateTime.ofInstant(date.toInstant(), ZoneOffset.UTC);
-    }
-
-    // //////////////////////////////////////////////////////////////////
-    // EncoderDecoder
-    // //////////////////////////////////////////////////////////////////
-
-    private final DateTimeFormatter encodingFormatter = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss.SSSZ");
-
-    @Override
-    protected String doEncode(final Object object) {
-        final OffsetDateTime date = (OffsetDateTime) object;
-        return encode(date);
-    }
-
-    private synchronized String encode(final OffsetDateTime date) {
-        return encodingFormatter.format(date);
-    }
-
-    @Override
-    protected OffsetDateTime doRestore(final String data) {
-        try {
-            return parse(data);
-        } catch (final IllegalArgumentException e) {
-            throw new EncodingException(e);
-        }
-    }
-
-    private synchronized OffsetDateTime parse(final String data) {
-        return OffsetDateTime.parse(data, encodingFormatter);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
deleted file mode 100644
index 93111e0..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8offset;
-
-import java.text.DateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
-
-public abstract class Jdk8OffsetDateTimeValueSemanticsProviderAbstract<T> extends ValueSemanticsProviderAbstractTemporal<T> {
-
-    private static final Map<String, DateFormat> FORMATS = _Maps.newHashMap();
-
-    static {
-        FORMATS.put(ISO_ENCODING_FORMAT, createDateEncodingFormat("yyyyMMdd"));
-        FORMATS.put("iso", createDateFormat("yyyy-MM-dd"));
-        FORMATS.put("medium", DateFormat.getDateInstance(DateFormat.MEDIUM));
-    }
-
-    public Jdk8OffsetDateTimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final T defaultValue) {
-        super(FormatIdentifier.DATE, holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
-
-        String formatRequired = getConfiguration()
-                .getValue().getFormatOrElse(FormatIdentifier.DATE, "medium");
-        
-        if (formatRequired == null) {
-            format = formats().get(defaultFormat());
-        } else {
-            setMask(formatRequired);
-        }
-    }
-
-
-    // //////////////////////////////////////////////////////////////////
-    // temporal-specific stuff
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    protected void clearFields(final Calendar cal) {
-        cal.set(Calendar.HOUR, 0);
-        cal.set(Calendar.HOUR_OF_DAY, 0);
-        cal.set(Calendar.MINUTE, 0);
-        cal.set(Calendar.SECOND, 0);
-        cal.set(Calendar.AM_PM, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-    }
-
-    @Override
-    protected String defaultFormat() {
-        return "medium";
-    }
-
-    @Override
-    protected boolean ignoreTimeZone() {
-        return true;
-    }
-
-    @Override
-    protected Map<String, DateFormat> formats() {
-        return FORMATS;
-    }
-
-    @Override
-    public String toString() {
-        return "DateValueSemanticsProvider: " + format;
-    }
-
-    @Override
-    protected DateFormat format() {
-        final Locale locale = Locale.getDefault();
-
-        final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
-        dateFormat.setTimeZone(UTC_TIME_ZONE);
-        return dateFormat;
-    }
-
-    @Override
-    protected List<DateFormat> formatsToTry() {
-
-        final Locale locale = Locale.getDefault();
-
-        List<DateFormat> formats = new ArrayList<>();
-
-        formats.add(DateFormat.getDateInstance(DateFormat.LONG, locale));
-        formats.add(DateFormat.getDateInstance(DateFormat.MEDIUM, locale));
-        formats.add(DateFormat.getDateInstance(DateFormat.SHORT, locale));
-        formats.add(createDateFormat("yyyy-MM-dd"));
-        formats.add(createDateFormat("yyyyMMdd"));
-
-        for (DateFormat format : formats) {
-            format.setTimeZone(UTC_TIME_ZONE);
-        }
-
-        return formats;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjust.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjust.java
new file mode 100644
index 0000000..f03b100
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjust.java
@@ -0,0 +1,108 @@
+package org.apache.isis.core.metamodel.facets.value.temporal;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.time.ZonedDateTime;
+
+import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+
+import lombok.Value;
+
+@Value(staticConstructor = "of")
+public class TemporalAdjust {
+
+    private int years;
+    private int months;
+    private int days;
+    private int hours;
+    private int minutes;
+    
+    public static TemporalAdjust parse(String str) {
+        int hours = 0;
+        int minutes = 0;
+        int days = 0;
+        int months = 0;
+        int years = 0;
+
+        if (str.endsWith("H")) {
+            str = str.substring(0, str.length() - 1);
+            hours = Integer.valueOf(str).intValue();
+        } else if (str.endsWith("M")) {
+            str = str.substring(0, str.length() - 1);
+            minutes = Integer.valueOf(str).intValue();
+        } else if (str.endsWith("w")) {
+            str = str.substring(0, str.length() - 1);
+            days = 7 * Integer.valueOf(str).intValue();
+        } else if (str.endsWith("y")) {
+            str = str.substring(0, str.length() - 1);
+            years = Integer.valueOf(str).intValue();
+        } else if (str.endsWith("m")) {
+            str = str.substring(0, str.length() - 1);
+            months = Integer.valueOf(str).intValue();
+        } else if (str.endsWith("d")) {
+            str = str.substring(0, str.length() - 1);
+            days = Integer.valueOf(str).intValue();
+        } else {
+            days = Integer.valueOf(str).intValue();
+        }
+        
+        return TemporalAdjust.of(years, months, days, hours, minutes);
+    }
+    
+    public TemporalAdjust sign(int sign) {
+        if(sign==1) {
+            return this;
+        }
+        if(sign==-1) {
+            return of(-this.years, -this.months, -this.days, -this.hours, -this.minutes);
+        }
+        throw _Exceptions.unsupportedOperation();
+    }
+    
+    
+    public LocalDate adjustLocalDate(final LocalDate temporal) {
+        if(hours != 0 || minutes != 0) {
+            throw _Exceptions.illegalState("cannot add non-zero hours or minutes to a %s", 
+                    temporal.getClass().getName());
+        }
+        return temporal.plusYears(years).plusMonths(months).plusDays(days);
+    }
+    
+    public LocalTime adjustLocalTime(final LocalTime temporal) {
+        if(years != 0 || months != 0 || days != 0) {
+            throw _Exceptions.illegalState("cannot add non-zero years, months or days to a %s", 
+                    temporal.getClass().getName());
+        }
+        return temporal.plusHours(hours).plusMinutes(minutes);
+    }
+    
+    public OffsetTime adjustOffsetTime(final OffsetTime temporal) {
+        if(years != 0 || months != 0 || days != 0) {
+            throw _Exceptions.illegalState("cannot add non-zero years, months or days to a %s", 
+                    temporal.getClass().getName());
+        }
+        return temporal.plusHours(hours).plusMinutes(minutes);
+    }
+
+    public LocalDateTime adjustLocalDateTime(final LocalDateTime temporal) {
+        return temporal.plusYears(years).plusMonths(months).plusDays(days)
+                .plusHours(hours).plusMinutes(minutes);
+    }
+
+    public OffsetDateTime adjustOffsetDateTime(final OffsetDateTime temporal) {
+        return temporal.plusYears(years).plusMonths(months).plusDays(days)
+                .plusHours(hours).plusMinutes(minutes);
+    }
+    
+    public ZonedDateTime adjustZonedDateTime(final ZonedDateTime temporal) {
+        return temporal.plusYears(years).plusMonths(months).plusDays(days)
+                .plusHours(hours).plusMinutes(minutes);
+    }
+    
+    
+    
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjustUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjustUtil.java
new file mode 100644
index 0000000..9b114f3
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjustUtil.java
@@ -0,0 +1,61 @@
+package org.apache.isis.core.metamodel.facets.value.temporal;
+
+import java.time.temporal.Temporal;
+import java.util.StringTokenizer;
+import java.util.function.BiFunction;
+
+import lombok.val;
+import lombok.experimental.UtilityClass;
+
+@UtilityClass
+final class TemporalAdjustUtil {
+    
+    static <T extends Temporal> T parseAdjustment(
+            final BiFunction<TemporalAdjust, T, T> adjuster,
+            final T contextTemporal, 
+            final String temporalString) {
+        
+        if (temporalString.startsWith("+")) {
+            return TemporalAdjustUtil.relativeTemporal(adjuster, contextTemporal, temporalString, 1);
+        } 
+        if (temporalString.startsWith("-")) {
+            return TemporalAdjustUtil.relativeTemporal(adjuster, contextTemporal, temporalString, -1);
+        }
+        return null;
+    }
+    
+    private static <T extends Temporal> T relativeTemporal(
+            final BiFunction<TemporalAdjust, T, T> adjuster,
+            final T contextTemporal, 
+            final String str, 
+            final int sign) {
+        
+        T relativeDate = contextTemporal;
+        if (str.equals("")) {
+            return contextTemporal;
+        }
+
+        try {
+            final StringTokenizer st = new StringTokenizer(str.substring(1), " ");
+            while (st.hasMoreTokens()) {
+                final String token = st.nextToken();
+                relativeDate = adjustTemporal(adjuster, relativeDate, token, sign);
+            }
+            return relativeDate;
+        } catch (final Exception e) {
+            return contextTemporal;
+        }
+    }
+
+    private static <T extends Temporal> T adjustTemporal(
+            final BiFunction<TemporalAdjust, T, T> adjuster,
+            final T contextDate, 
+            final String str, 
+            final int sign) {
+        
+        val temporalAdjust = TemporalAdjust.parse(str).sign(sign);
+        return adjuster.apply(temporalAdjust, contextDate);
+    }
+
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueFacet.java
similarity index 61%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueFacet.java
index f67c452..6e9cec9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueFacet.java
@@ -16,18 +16,31 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
+package org.apache.isis.core.metamodel.facets.value.temporal;
 
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
-
-import java.time.LocalDate;
+import java.time.temporal.Temporal;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
-public interface Jdk8LocalDateValueFacet extends Facet {
-
-    LocalDate dateValue(ManagedObject object);
+/**
+ * Common base for {@link java.time.temporal.Temporal} types.
+ * 
+ * @since 2.0
+ *
+ * @param <T> implementing {@link java.time.temporal.Temporal} type
+ */
+public interface TemporalValueFacet<T extends Temporal> extends Facet {
 
-    ManagedObject createValue(LocalDate date);
+    T temporalValue(ManagedObject object);
+    ManagedObject createValue(T temporal);
+    
+//    TemporalCategory getTemporalCategory();
+//    
+//    static enum TemporalCategory {
+//        TIME_ONLY,
+//        DATE_ONLY,
+//        DATE_TIME
+//    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueFacetUsingSemanticsProviderFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueFacetUsingSemanticsProviderFactory.java
new file mode 100644
index 0000000..a47be49
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueFacetUsingSemanticsProviderFactory.java
@@ -0,0 +1,64 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.core.metamodel.facets.value.temporal;
+
+import java.time.temporal.Temporal;
+import java.util.function.Function;
+
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
+
+import lombok.NonNull;
+import lombok.val;
+
+/**
+ * Common base for {@link java.time.temporal.Temporal} types.
+ * 
+ * @since 2.0
+ *
+ * @param <T> implementing {@link java.time.temporal.Temporal} type
+ */
+public abstract class TemporalValueFacetUsingSemanticsProviderFactory<T extends Temporal>
+extends ValueFacetUsingSemanticsProviderFactory<T> {
+
+    @NonNull protected final Class<T> valueType;
+    @NonNull protected final Function<FacetHolder, ValueSemanticsProviderAndFacetAbstract<T>> facetFactory;
+    
+    public TemporalValueFacetUsingSemanticsProviderFactory(Class<T> valueType,
+            Function<FacetHolder, ValueSemanticsProviderAndFacetAbstract<T>> facetFactory) {
+        super();
+        this.valueType = valueType;
+        this.facetFactory = facetFactory;
+    }
+
+    @Override
+    public final void process(final ProcessClassContext processClassContext) {
+        val type = processClassContext.getCls();
+        if (!valueType.isAssignableFrom(type)) {
+            return;
+        }
+        val facetHolder = processClassContext.getFacetHolder();
+        addFacets(facetFactory.apply(facetHolder));
+    }
+    
+     
+    
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
new file mode 100644
index 0000000..1ae7121
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
@@ -0,0 +1,234 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.core.metamodel.facets.value.temporal;
+
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.Temporal;
+import java.time.temporal.TemporalQuery;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.BiFunction;
+import java.util.function.Function;
+
+import javax.annotation.Nullable;
+
+import org.apache.isis.applib.adapters.EncodingException;
+import org.apache.isis.core.commons.collections.Can;
+import org.apache.isis.core.commons.internal.base._Casts;
+import org.apache.isis.core.commons.internal.collections._Maps;
+import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
+import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.Setter;
+import lombok.val;
+import lombok.extern.log4j.Log4j2;
+
+/**
+ * Common base for {@link java.time.temporal.Temporal} types.
+ * 
+ * @since 2.0
+ *
+ * @param <T> implementing {@link java.time.temporal.Temporal} type
+ */
+@Log4j2
+public abstract class TemporalValueSemanticsProviderAbstract<T extends Temporal> 
+extends ValueSemanticsProviderAndFacetAbstract<T>
+implements TemporalValueFacet<T> {
+    
+    @Getter private DateTimeFormatter encodingFormatter;
+    @Getter @Setter private DateTimeFormatter titleFormatter;
+    
+    /**
+     * Keys represent the values which can be configured, 
+     * and which are used for the rendering of dates.
+     */
+    protected final Map<String, DateTimeFormatter> namedFormatters;
+    protected Can<Function<String, T>> parsers;
+    
+    protected final TemporalQuery<T> query;
+    protected final BiFunction<TemporalAdjust, T, T> adjuster;
+    
+    public TemporalValueSemanticsProviderAbstract(
+            Class<? extends Facet> adapterFacetType, 
+            FacetHolder holder,
+            Class<T> valueType, 
+            int typicalLength, 
+            int maxLength,
+            TemporalQuery<T> query,
+            BiFunction<TemporalAdjust, T, T> adjuster) {
+        
+        super(adapterFacetType, holder, valueType, typicalLength, maxLength, 
+                Immutability.IMMUTABLE, EqualByContent.HONOURED, /*DEFAULT_VALUE*/ null);
+        
+        this.query = query;
+        this.adjuster = adjuster;
+        
+        namedFormatters = _Maps.newLinkedHashMap();
+        namedFormatters.put("internal_encoding", this.getEncodingFormatter());
+        updateParsers();
+    }
+    
+    protected void setEncodingFormatter(DateTimeFormatter encodingFormatter) {
+        this.encodingFormatter = encodingFormatter;
+    }
+    
+    protected void addNamedFormat(String name, String pattern) {
+        namedFormatters.put(name, DateTimeFormatter.ofPattern(pattern, Locale.getDefault()));
+    }
+    
+    protected Optional<DateTimeFormatter> lookupNamedFormatter(String formatName) {
+        return Optional.ofNullable(namedFormatters.get(formatName));
+    }
+    
+    protected DateTimeFormatter lookupNamedFormatterElseFail(String formatName) {
+        return lookupNamedFormatter(formatName)
+                .orElseThrow(()->_Exceptions.noSuchElement("unknown format name %s", formatName));
+    }
+    
+    protected DateTimeFormatter formatterFromConfig(FormatIdentifier formatIdentifier, String namedFallback) {
+        
+        val configuredNameOrPattern = getConfiguration()
+                .getValue()
+                .getFormatOrElse(formatIdentifier, namedFallback);
+        
+        val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
+        if(formatter!=null) {
+            return formatter;
+        }
+        
+        try {
+            return DateTimeFormatter.ofPattern(configuredNameOrPattern, Locale.getDefault());
+        } catch (Exception e) {
+            log.warn(e);
+        }
+        
+        return lookupNamedFormatterElseFail(namedFallback);
+
+    }
+    
+    
+    protected void updateParsers() {
+        parsers = Can.ofCollection(namedFormatters.values())
+                .map(formatter->{
+                    return $->formatter.parse($, query);
+                });
+    }
+    
+    // -- TEMPORAL VALUE FACET
+
+    @Override
+    public final T temporalValue(final ManagedObject adapter) {
+        return _Casts.uncheckedCast(ManagedObject.unwrapSingle(adapter));
+    }
+
+    @Override
+    public final ManagedObject createValue(final T temporal) {
+        return getObjectManager().adapt(temporal);
+    }
+    
+    // -- ENCODER/DECODER
+
+    @Override
+    protected String doEncode(final Object object) {
+        final T temporal = _Casts.uncheckedCast(object);
+        return encodingFormatter.format(temporal);
+    }
+
+    @Override
+    protected T doRestore(final String data) {
+        try {
+            return encodingFormatter.parse(data, query);
+        } catch (final IllegalArgumentException e) {
+            throw new EncodingException(e);
+        }
+    }
+    
+    // -- PARSING
+
+    @Override
+    protected T doParse(
+            final String entry,
+            final Object context) {
+
+        T contextTemporal = _Casts.uncheckedCast(context);
+
+        val temporalString = entry.trim().toUpperCase();
+        if(contextTemporal != null) {
+            val adjusted = TemporalAdjustUtil
+                    .parseAdjustment(adjuster, contextTemporal, temporalString);
+            if(adjusted!=null) {
+                return adjusted;
+            }
+        }
+        return parse(temporalString, parsers);
+    }
+    
+    private T parse(String dateStr, Iterable<Function<String, T>> parsers) {
+        for(val parser: parsers) {
+            try {
+                return parser.apply(dateStr);
+            } catch (final IllegalArgumentException e) {
+                // continue to next
+            }
+        }
+        val msg = String.format("Not recognised as a %s: %s", 
+                super.getAdaptedClass().getName(), 
+                dateStr);
+        throw new TextEntryParseException(msg);
+    }
+    
+    // -- TITLE
+
+    @Override
+    public String titleString(final Object value) {
+        if (value == null) {
+            return null;
+        }
+        val temporal = _Casts.<T>uncheckedCast(value);
+        return titleString(titleFormatter, temporal);
+    }
+
+    @Override
+    public String titleStringWithMask(final Object value, final String usingMask) {
+        val temporal = _Casts.<T>uncheckedCast(value);
+        val formatter = DateTimeFormatter.ofPattern(usingMask, Locale.getDefault());
+        return titleString(formatter, temporal);
+    }
+    
+    private String titleString(@NonNull DateTimeFormatter formatter, @Nullable T temporal) {
+        return temporal != null ? formatter.format(temporal) : "";
+    }
+
+    // --
+
+    @Override
+    public String toString() {
+        return this.getClass().getSimpleName()+ ": " + titleFormatter;
+    }
+    
+    
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueFacetUsingSemanticsProviderFactory.java
similarity index 65%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueFacetUsingSemanticsProviderFactory.java
index f67c452..a22118d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueFacetUsingSemanticsProviderFactory.java
@@ -17,17 +17,17 @@
  *  under the License.
  */
 
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
+package org.apache.isis.core.metamodel.facets.value.temporal.localdate;
 
 import java.time.LocalDate;
 
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacetUsingSemanticsProviderFactory;
 
-public interface Jdk8LocalDateValueFacet extends Facet {
+public class LocalDateValueFacetUsingSemanticsProviderFactory 
+extends TemporalValueFacetUsingSemanticsProviderFactory<LocalDate> {
 
-    LocalDate dateValue(ManagedObject object);
-
-    ManagedObject createValue(LocalDate date);
+    public LocalDateValueFacetUsingSemanticsProviderFactory() {
+        super(LocalDate.class, LocalDateValueSemanticsProvider::new);
+    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueSemanticsProvider.java
new file mode 100644
index 0000000..9af407f
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueSemanticsProvider.java
@@ -0,0 +1,53 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.value.temporal.localdate;
+
+import java.time.LocalDate;
+
+import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueSemanticsProviderAbstract;
+
+public class LocalDateValueSemanticsProvider
+extends TemporalValueSemanticsProviderAbstract<LocalDate> {
+
+    public static final int MAX_LENGTH = 12;
+    public static final int TYPICAL_LENGTH = MAX_LENGTH;
+
+    public LocalDateValueSemanticsProvider(final FacetHolder holder) {
+        super(TemporalValueFacet.class, holder, LocalDate.class, TYPICAL_LENGTH, MAX_LENGTH,
+                LocalDate::from,
+                TemporalAdjust::adjustLocalDate);
+        
+        super.addNamedFormat("long", "L-");
+        super.addNamedFormat("medium", "M-");
+        super.addNamedFormat("short", "S-");
+        super.addNamedFormat("iso", "yyyy-MM-dd");
+        super.addNamedFormat("iso_encoding", "yyyy-MM-dd");
+        super.updateParsers();
+
+        setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
+        setTitleFormatter(formatterFromConfig(FormatIdentifier.DATE, "medium"));
+    }
+
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueFacetUsingSemanticsProviderFactory.java
similarity index 64%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueFacet.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueFacetUsingSemanticsProviderFactory.java
index 1a69d2f..04e0d71 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueFacetUsingSemanticsProviderFactory.java
@@ -17,17 +17,17 @@
  *  under the License.
  */
 
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8local;
+package org.apache.isis.core.metamodel.facets.value.temporal.localdatetime;
 
 import java.time.LocalDateTime;
 
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacetUsingSemanticsProviderFactory;
 
-public interface Jdk8LocalDateTimeValueFacet extends Facet {
+public class LocalDateTimeValueFacetUsingSemanticsProviderFactory 
+extends TemporalValueFacetUsingSemanticsProviderFactory<LocalDateTime> {
 
-    LocalDateTime dateValue(ManagedObject object);
-
-    ManagedObject createValue(LocalDateTime date);
+    public LocalDateTimeValueFacetUsingSemanticsProviderFactory() {
+        super(LocalDateTime.class, LocalDateTimeValueSemanticsProvider::new);
+    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueSemanticsProvider.java
new file mode 100644
index 0000000..42bc101
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueSemanticsProvider.java
@@ -0,0 +1,64 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.value.temporal.localdatetime;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+
+import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueSemanticsProviderAbstract;
+
+import lombok.val;
+
+
+public class LocalDateTimeValueSemanticsProvider 
+extends TemporalValueSemanticsProviderAbstract<LocalDateTime> {
+
+    public static final int MAX_LENGTH = 36;
+    public static final int TYPICAL_LENGTH = 22;
+    
+    public LocalDateTimeValueSemanticsProvider(final FacetHolder holder) {
+        super(TemporalValueFacet.class, holder, LocalDateTime.class, TYPICAL_LENGTH, MAX_LENGTH,
+                LocalDateTime::from,
+                TemporalAdjust::adjustLocalDateTime);
+        
+        val dateHourMinuteSecondMillis = "yyyy-MM-dd'T'HH:mm:ss.SSS";
+        val basicDateTimeNoMillis = "yyyyMMdd'T'HHmmssZ";
+        val basicDateTime = "yyyyMMdd'T'HHmmss.SSSZ";
+        
+        super.addNamedFormat("long", "LL");
+        super.addNamedFormat("medium", "MM");
+        super.addNamedFormat("short", "SS");
+        super.addNamedFormat("iso", basicDateTimeNoMillis);
+        super.addNamedFormat("iso_encoding", basicDateTime);
+        
+        super.updateParsers();
+
+        setEncodingFormatter(
+                DateTimeFormatter.ofPattern(dateHourMinuteSecondMillis, Locale.getDefault()));
+        setTitleFormatter(formatterFromConfig(FormatIdentifier.DATETIME, "medium"));
+        
+    }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/TimeParser.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueFacetUsingSemanticsProviderFactory.java
similarity index 63%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/TimeParser.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueFacetUsingSemanticsProviderFactory.java
index b8d945a..94a8d9f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/TimeParser.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueFacetUsingSemanticsProviderFactory.java
@@ -17,11 +17,17 @@
  *  under the License.
  */
 
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
+package org.apache.isis.core.metamodel.facets.value.temporal.localtime;
 
-import java.time.LocalDate;
-import java.util.function.Function;
+import java.time.LocalTime;
 
-interface TimeParser extends Function<String, LocalDate> {
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacetUsingSemanticsProviderFactory;
+
+public class LocalTimeValueFacetUsingSemanticsProviderFactory 
+extends TemporalValueFacetUsingSemanticsProviderFactory<LocalTime> {
+
+    public LocalTimeValueFacetUsingSemanticsProviderFactory() {
+        super(LocalTime.class, LocalTimeValueSemanticsProvider::new);
+    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueSemanticsProvider.java
new file mode 100644
index 0000000..1eee4c0
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueSemanticsProvider.java
@@ -0,0 +1,63 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.value.temporal.localtime;
+
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+
+import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueSemanticsProviderAbstract;
+
+import lombok.val;
+
+public class LocalTimeValueSemanticsProvider
+extends TemporalValueSemanticsProviderAbstract<LocalTime> {
+
+    public static final int MAX_LENGTH = 12;
+    public static final int TYPICAL_LENGTH = MAX_LENGTH;
+
+    public LocalTimeValueSemanticsProvider(final FacetHolder holder) {
+        super(TemporalValueFacet.class, holder, LocalTime.class, TYPICAL_LENGTH, MAX_LENGTH,
+                LocalTime::from,
+                TemporalAdjust::adjustLocalTime);
+        
+        val hourMinuteSecondMillis = "HH:mm:ss.SSS";
+        val basicTimeNoMillis = "HHmmssZ";
+        val basicTime = "HHmmss.SSSZ";
+        
+        super.addNamedFormat("long", "-L");
+        super.addNamedFormat("medium", "-M");
+        super.addNamedFormat("short", "-S");
+        super.addNamedFormat("iso", basicTimeNoMillis);
+        super.addNamedFormat("iso_encoding", basicTime);
+        super.updateParsers();
+
+        setEncodingFormatter(
+                DateTimeFormatter.ofPattern(hourMinuteSecondMillis, Locale.getDefault()));
+        setTitleFormatter(formatterFromConfig(FormatIdentifier.TIME, "medium"));
+
+    }
+
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueFacetUsingSemanticsProviderFactory.java
similarity index 64%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueFacet.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueFacetUsingSemanticsProviderFactory.java
index 8c48349..5700867 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueFacetUsingSemanticsProviderFactory.java
@@ -17,17 +17,17 @@
  *  under the License.
  */
 
-package org.apache.isis.core.metamodel.facets.value.datetimejdk8offset;
+package org.apache.isis.core.metamodel.facets.value.temporal.offsetdatetime;
 
 import java.time.OffsetDateTime;
 
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacetUsingSemanticsProviderFactory;
 
-public interface Jdk8OffsetDateTimeValueFacet extends Facet {
+public class OffsetDateTimeValueFacetUsingSemanticsProviderFactory 
+extends TemporalValueFacetUsingSemanticsProviderFactory<OffsetDateTime> {
 
-    OffsetDateTime dateValue(ManagedObject object);
-
-    ManagedObject createValue(OffsetDateTime date);
+    public OffsetDateTimeValueFacetUsingSemanticsProviderFactory() {
+        super(OffsetDateTime.class, OffsetDateTimeValueSemanticsProvider::new);
+    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueSemanticsProvider.java
new file mode 100644
index 0000000..6b5bbdd
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueSemanticsProvider.java
@@ -0,0 +1,65 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.value.temporal.offsetdatetime;
+
+import java.time.OffsetDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+
+import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueSemanticsProviderAbstract;
+
+import lombok.val;
+
+
+public class OffsetDateTimeValueSemanticsProvider 
+extends TemporalValueSemanticsProviderAbstract<OffsetDateTime> {
+
+    public static final int MAX_LENGTH = 36;
+    public static final int TYPICAL_LENGTH = 22;
+    
+    public OffsetDateTimeValueSemanticsProvider(final FacetHolder holder) {
+        super(TemporalValueFacet.class, holder, OffsetDateTime.class, TYPICAL_LENGTH, MAX_LENGTH,
+                OffsetDateTime::from,
+                TemporalAdjust::adjustOffsetDateTime);
+        
+        val basicDateTimeNoMillis = "yyyyMMdd'T'HHmmssZ";
+        val basicDateTime = "yyyyMMdd'T'HHmmss.SSSZ";
+        
+        super.addNamedFormat("long", "LL");
+        super.addNamedFormat("medium", "MM");
+        super.addNamedFormat("short", "SS");
+        super.addNamedFormat("iso", basicDateTimeNoMillis);
+        super.addNamedFormat("iso_encoding", basicDateTime);
+        
+        super.updateParsers();
+
+        setEncodingFormatter(
+                DateTimeFormatter.ofPattern(basicDateTime, Locale.getDefault()));
+        
+        setTitleFormatter(formatterFromConfig(FormatIdentifier.DATETIME, "medium"));
+        
+        
+    }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueFacetUsingSemanticsProviderFactory.java
similarity index 63%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueFacetUsingSemanticsProviderFactory.java
index f67c452..76b77e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueFacetUsingSemanticsProviderFactory.java
@@ -17,17 +17,17 @@
  *  under the License.
  */
 
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
+package org.apache.isis.core.metamodel.facets.value.temporal.offsettime;
 
-import java.time.LocalDate;
+import java.time.OffsetTime;
 
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacetUsingSemanticsProviderFactory;
 
-public interface Jdk8LocalDateValueFacet extends Facet {
+public class OffsetTimeValueFacetUsingSemanticsProviderFactory 
+extends TemporalValueFacetUsingSemanticsProviderFactory<OffsetTime> {
 
-    LocalDate dateValue(ManagedObject object);
-
-    ManagedObject createValue(LocalDate date);
+    public OffsetTimeValueFacetUsingSemanticsProviderFactory() {
+        super(OffsetTime.class, OffsetTimeValueSemanticsProvider::new);
+    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueSemanticsProvider.java
new file mode 100644
index 0000000..60bac06
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueSemanticsProvider.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.core.metamodel.facets.value.temporal.offsettime;
+
+import java.time.OffsetTime;
+
+import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueSemanticsProviderAbstract;
+
+import lombok.val;
+
+public class OffsetTimeValueSemanticsProvider
+extends TemporalValueSemanticsProviderAbstract<OffsetTime> {
+
+    public static final int MAX_LENGTH = 12;
+    public static final int TYPICAL_LENGTH = MAX_LENGTH;
+
+    public OffsetTimeValueSemanticsProvider(final FacetHolder holder) {
+        super(TemporalValueFacet.class, holder, OffsetTime.class, TYPICAL_LENGTH, MAX_LENGTH,
+                OffsetTime::from,
+                TemporalAdjust::adjustOffsetTime);
+        
+        val basicTimeNoMillis = "HHmmssZ";
+        val basicTime = "HHmmss.SSSZ";
+        
+        super.addNamedFormat("long", "-L");
+        super.addNamedFormat("medium", "-M");
+        super.addNamedFormat("short", "-S");
+        super.addNamedFormat("iso", basicTimeNoMillis);
+        super.addNamedFormat("iso_encoding", basicTime);
+        super.updateParsers();
+        
+        setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
+        setTitleFormatter(formatterFromConfig(FormatIdentifier.TIME, "medium"));
+    }
+
+
+
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueFacetUsingSemanticsProviderFactory.java
similarity index 62%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueFacetUsingSemanticsProviderFactory.java
index f67c452..f6520f7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueFacetUsingSemanticsProviderFactory.java
@@ -17,17 +17,17 @@
  *  under the License.
  */
 
-package org.apache.isis.core.metamodel.facets.value.datejdk8local;
+package org.apache.isis.core.metamodel.facets.value.temporal.zoneddatetime;
 
-import java.time.LocalDate;
+import java.time.ZonedDateTime;
 
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacetUsingSemanticsProviderFactory;
 
-public interface Jdk8LocalDateValueFacet extends Facet {
+public class ZonedDateTimeValueFacetUsingSemanticsProviderFactory 
+extends TemporalValueFacetUsingSemanticsProviderFactory<ZonedDateTime> {
 
-    LocalDate dateValue(ManagedObject object);
-
-    ManagedObject createValue(LocalDate date);
+    public ZonedDateTimeValueFacetUsingSemanticsProviderFactory() {
+        super(ZonedDateTime.class, ZonedDateTimeValueSemanticsProvider::new);
+    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueSemanticsProvider.java
new file mode 100644
index 0000000..04dd12e
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueSemanticsProvider.java
@@ -0,0 +1,61 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.value.temporal.zoneddatetime;
+
+import java.time.ZonedDateTime;
+
+import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
+import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueSemanticsProviderAbstract;
+
+import lombok.val;
+
+
+public class ZonedDateTimeValueSemanticsProvider 
+extends TemporalValueSemanticsProviderAbstract<ZonedDateTime> {
+
+    public static final int MAX_LENGTH = 36;
+    public static final int TYPICAL_LENGTH = 22;
+    
+    //TODO adjust formats and config options (just copied over from OffsetDateTime... )
+    public ZonedDateTimeValueSemanticsProvider(final FacetHolder holder) {
+        super(TemporalValueFacet.class, holder, ZonedDateTime.class, TYPICAL_LENGTH, MAX_LENGTH,
+                ZonedDateTime::from,
+                TemporalAdjust::adjustZonedDateTime);
+        
+        val basicDateTimeNoMillis = "yyyyMMdd'T'HHmmssZ";
+        val basicDateTime = "yyyyMMdd'T'HHmmss.SSSZ";
+        
+        super.addNamedFormat("long", "LL");
+        super.addNamedFormat("medium", "MM");
+        super.addNamedFormat("short", "SS");
+        super.addNamedFormat("iso", basicDateTimeNoMillis);
+        super.addNamedFormat("iso_encoding", basicDateTime);
+        
+        super.updateParsers();
+
+        setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
+        setTitleFormatter(formatterFromConfig(FormatIdentifier.TIME, "medium"));
+        
+    }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
index 6da2493..3fda3df 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
@@ -30,7 +30,8 @@ import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
 
-public abstract class TimeValueSemanticsProviderAbstract<T> extends ValueSemanticsProviderAbstractTemporal<T> {
+public abstract class TimeValueSemanticsProviderAbstract<T> 
+extends ValueSemanticsProviderAbstractTemporal<T> {
 
     private static final Object DEFAULT_VALUE = null; // no default
     private static final int TYPICAL_LENGTH = 8;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index d807f3b..6bc4609 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -23,6 +23,7 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.core.commons.internal.ioc.BeanSort;
 import org.apache.isis.core.metamodel.authorization.standard.AuthorizationFacetFactory;
+import org.apache.isis.core.metamodel.facets.OrphanedSupportingMethodValidator;
 import org.apache.isis.core.metamodel.facets.actions.action.ActionAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.actions.action.ActionChoicesForCollectionParameterFacetFactory;
 import org.apache.isis.core.metamodel.facets.actions.defaults.method.ActionDefaultsFacetViaMethodFactory;
@@ -32,7 +33,17 @@ import org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotC
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacetFactory;
 import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.derived.NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory;
 import org.apache.isis.core.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethodFactory;
+import org.apache.isis.core.metamodel.facets.all.i18n.TranslationFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessorFactory;
+import org.apache.isis.core.metamodel.facets.collections.clear.CollectionClearFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.collection.CollectionAnnotationFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.layout.CollectionLayoutFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToRemoveFromAndValidateFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.parented.ParentedFacetSinceCollectionFactory;
+import org.apache.isis.core.metamodel.facets.collections.sortedby.annotation.SortedByFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.fallback.FallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.jaxb.JaxbFacetFactory;
 import org.apache.isis.core.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnActionFromConfiguredRegexFactory;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
 import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
@@ -40,12 +51,38 @@ import org.apache.isis.core.metamodel.facets.members.disabled.method.DisableForC
 import org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.ViewModelSemanticCheckingFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable.BookmarkPolicyFacetFallbackFactory;
+import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.callbacks.LoadCallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.callbacks.PersistCallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.callbacks.PersistCallbackViaSaveMethodFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.callbacks.RemoveCallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.callbacks.UpdateCallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.choices.enums.EnumFacetUsingValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.object.cssclass.method.CssClassFacetMethodFactory;
+import org.apache.isis.core.metamodel.facets.object.defaults.annotcfg.DefaultedFacetAnnotationElseConfigurationFactory;
+import org.apache.isis.core.metamodel.facets.object.disabled.method.DisabledObjectFacetViaMethodFactory;
+import org.apache.isis.core.metamodel.facets.object.domainobject.DomainObjectAnnotationFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.DomainObjectLayoutFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.facets.annotation.FacetsFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.object.icon.method.IconFacetMethodFactory;
+import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemoveAnnotatedMethodsFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.ignore.javalang.IteratorFilteringFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.ignore.javalang.RemoveMethodsFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.layout.LayoutFacetFactory;
 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;
+import org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImplFactory;
+import org.apache.isis.core.metamodel.facets.object.recreatable.RecreatableObjectFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaMethodsFactory;
+import org.apache.isis.core.metamodel.facets.object.validating.validateobject.method.ValidateObjectFacetMethodFactory;
+import org.apache.isis.core.metamodel.facets.object.value.annotcfg.ValueFacetAnnotationOrConfigurationFactory;
 import org.apache.isis.core.metamodel.facets.param.autocomplete.method.ActionParameterAutoCompleteFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.param.bigdecimal.javaxvaldigits.BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.param.choices.method.ActionChoicesFacetViaMethodFactory;
@@ -59,12 +96,14 @@ import org.apache.isis.core.metamodel.facets.param.name.ParameterNameFacetFactor
 import org.apache.isis.core.metamodel.facets.param.parameter.ParameterAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.param.validate.method.ActionParameterValidationFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessorFactory;
+import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetMethodFactory;
 import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.properties.choices.method.PropertyChoicesFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.properties.defaults.method.PropertyDefaultFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.properties.disabled.inferred.DisabledFacetOnPropertyInferredFactory;
 import org.apache.isis.core.metamodel.facets.properties.mandatory.dflt.MandatoryFacetOnProperyDefaultFactory;
 import org.apache.isis.core.metamodel.facets.properties.property.PropertyAnnotationFacetFactory;
+import org.apache.isis.core.metamodel.facets.properties.propertylayout.PropertyLayoutFacetFactory;
 import org.apache.isis.core.metamodel.facets.properties.update.PropertyModifyFacetFactory;
 import org.apache.isis.core.metamodel.facets.properties.update.PropertySetAndClearFacetFactory;
 import org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefaultFactory;
@@ -79,11 +118,8 @@ import org.apache.isis.core.metamodel.facets.value.bytes.ByteWrapperValueFacetUs
 import org.apache.isis.core.metamodel.facets.value.chars.CharPrimitiveValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.chars.CharWrapperValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.clobs.ClobValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.datejdk8local.Jdk8LocalDateValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datejodalocal.JodaLocalDateValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datesql.JavaSqlDateValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.datetimejdk8local.Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.value.datetimejdk8offset.Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datetimejoda.JodaDateTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.datetimejodalocal.JodaLocalDateTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.dateutil.JavaUtilDateValueFacetUsingSemanticsProviderFactory;
@@ -102,51 +138,18 @@ import org.apache.isis.core.metamodel.facets.value.password.PasswordValueFacetUs
 import org.apache.isis.core.metamodel.facets.value.shortint.ShortPrimitiveValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.shortint.ShortWrapperValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.string.StringValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.temporal.localdate.LocalDateValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.temporal.localdatetime.LocalDateTimeValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.temporal.localtime.LocalTimeValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.temporal.offsetdatetime.OffsetDateTimeValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.temporal.offsettime.OffsetTimeValueFacetUsingSemanticsProviderFactory;
+import org.apache.isis.core.metamodel.facets.value.temporal.zoneddatetime.ZonedDateTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.timejodalocal.JodaLocalTimeValueFacetSimpleFactory;
 import org.apache.isis.core.metamodel.facets.value.timesql.JavaSqlTimeValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.timestampsql.JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.url.URLValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.uuid.UUIDValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.postprocessors.param.DeriveFacetsPostProcessor;
-import org.apache.isis.core.metamodel.facets.OrphanedSupportingMethodValidator;
-import org.apache.isis.core.metamodel.facets.all.i18n.TranslationFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessorFactory;
-import org.apache.isis.core.metamodel.facets.collections.clear.CollectionClearFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.collection.CollectionAnnotationFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.layout.CollectionLayoutFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToRemoveFromAndValidateFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.parented.ParentedFacetSinceCollectionFactory;
-import org.apache.isis.core.metamodel.facets.collections.sortedby.annotation.SortedByFacetAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.jaxb.JaxbFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable.BookmarkPolicyFacetFallbackFactory;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.callbacks.LoadCallbackFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistCallbackFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistCallbackViaSaveMethodFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.callbacks.RemoveCallbackFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.callbacks.UpdateCallbackFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.choices.enums.EnumFacetUsingValueFacetUsingSemanticsProviderFactory;
-import org.apache.isis.core.metamodel.facets.object.cssclass.method.CssClassFacetMethodFactory;
-import org.apache.isis.core.metamodel.facets.object.defaults.annotcfg.DefaultedFacetAnnotationElseConfigurationFactory;
-import org.apache.isis.core.metamodel.facets.object.disabled.method.DisabledObjectFacetViaMethodFactory;
-import org.apache.isis.core.metamodel.facets.object.domainobject.DomainObjectAnnotationFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.DomainObjectLayoutFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.object.facets.annotation.FacetsFacetAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory;
-import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemoveAnnotatedMethodsFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.ignore.javalang.IteratorFilteringFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.ignore.javalang.RemoveMethodsFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.layout.LayoutFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.navparent.annotation.NavigableParentAnnotationFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassNameFactory;
-import org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImplFactory;
-import org.apache.isis.core.metamodel.facets.object.recreatable.RecreatableObjectFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.validating.validateobject.method.ValidateObjectFacetMethodFactory;
-import org.apache.isis.core.metamodel.facets.object.value.annotcfg.ValueFacetAnnotationOrConfigurationFactory;
-import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetMethodFactory;
-import org.apache.isis.core.metamodel.facets.properties.propertylayout.PropertyLayoutFacetFactory;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelAbstract;
 import org.apache.isis.core.metamodel.services.title.TitlesAndTranslationsValidator;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -334,9 +337,12 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
         addFactory(FacetProcessingOrder.G1_VALUE_TYPES, JodaLocalTimeValueFacetSimpleFactory.class);
 
         // java 8 time values
-        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, Jdk8LocalDateValueFacetUsingSemanticsProviderFactory.class);
-        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, Jdk8OffsetDateTimeValueFacetUsingSemanticsProviderFactory.class);
-        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, Jdk8LocalDateTimeValueFacetUsingSemanticsProviderFactory.class);
+        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, LocalTimeValueFacetUsingSemanticsProviderFactory.class);
+        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, OffsetTimeValueFacetUsingSemanticsProviderFactory.class);
+        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, LocalDateValueFacetUsingSemanticsProviderFactory.class);
+        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, LocalDateTimeValueFacetUsingSemanticsProviderFactory.class);
+        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, OffsetDateTimeValueFacetUsingSemanticsProviderFactory.class);
+        addFactory(FacetProcessingOrder.G1_VALUE_TYPES, ZonedDateTimeValueFacetUsingSemanticsProviderFactory.class);
 
         addFactory(FacetProcessingOrder.Z0_BEFORE_FINALLY, AuthorizationFacetFactory.class);
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forClear.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forClear.java
index c17aff9..3dfc238 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forClear.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forClear.java
@@ -18,7 +18,8 @@
  */
 package org.apache.isis.core.metamodel.facets;
 
-import org.joda.time.LocalDate;
+import java.time.LocalDate;
+
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -43,7 +44,7 @@ public class DomainEventHelperTest_newPropertyDomainEvent_forClear {
 
         SomeDomainObject sdo = new SomeDomainObject();
         Identifier identifier = Identifier.propertyOrCollectionIdentifier(SomeDomainObject.class, "someDateProperty");
-        LocalDate oldValue = new LocalDate(2013,4,1);
+        LocalDate oldValue = LocalDate.of(2013,4,1);
         LocalDate newValue = null;
 
         Utils.domainEventHelper();
@@ -61,7 +62,7 @@ public class DomainEventHelperTest_newPropertyDomainEvent_forClear {
 
         SomeDomainObject sdo = new SomeDomainObject();
         Identifier identifier = Identifier.propertyOrCollectionIdentifier(SomeDomainObject.class, "someDateProperty");
-        LocalDate oldValue = new LocalDate(2013,4,1);
+        LocalDate oldValue = LocalDate.of(2013,4,1);
         LocalDate newValue = null;
 
         Utils.domainEventHelper();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forModify.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forModify.java
index dcf4048..319edc6 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forModify.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/DomainEventHelperTest_newPropertyDomainEvent_forModify.java
@@ -18,7 +18,8 @@
  */
 package org.apache.isis.core.metamodel.facets;
 
-import org.joda.time.LocalDate;
+import java.time.LocalDate;
+
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -39,8 +40,8 @@ public class DomainEventHelperTest_newPropertyDomainEvent_forModify {
 
         SomeDomainObject sdo = new SomeDomainObject();
         Identifier identifier = Identifier.propertyOrCollectionIdentifier(SomeDomainObject.class, "someDateProperty");
-        LocalDate oldValue = new LocalDate(2013,4,1);
-        LocalDate newValue = new LocalDate(2013,5,2);
+        LocalDate oldValue = LocalDate.of(2013,4,1);
+        LocalDate newValue = LocalDate.of(2013,5,2);
 
         Utils.domainEventHelper();
         final PropertyDomainEvent<Object, Object> ev =
@@ -57,8 +58,8 @@ public class DomainEventHelperTest_newPropertyDomainEvent_forModify {
 
         SomeDomainObject sdo = new SomeDomainObject();
         Identifier identifier = Identifier.propertyOrCollectionIdentifier(SomeDomainObject.class, "someDateProperty");
-        LocalDate oldValue = new LocalDate(2013,4,1);
-        LocalDate newValue = new LocalDate(2013,5,2);
+        LocalDate oldValue = LocalDate.of(2013,4,1);
+        LocalDate newValue = LocalDate.of(2013,5,2);
 
         Utils.domainEventHelper();
         final PropertyDomainEvent<SomeDomainObject, LocalDate> ev =
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/PoWriter.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/PoWriter.java
index 9651285..36f5be9 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/PoWriter.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/PoWriter.java
@@ -18,11 +18,12 @@
  */
 package org.apache.isis.core.runtimeservices.i18n.po;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
 import java.util.SortedMap;
 import java.util.SortedSet;
 
-import org.joda.time.LocalDateTime;
-
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.internal.collections._Sets;
@@ -80,11 +81,15 @@ class PoWriter extends PoAbstract {
         log.info(buf.toString());
     }
 
+    final static DateTimeFormatter timestampFormat = 
+            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss+Z", Locale.US);
+    
     /**
      * As per <a href="http://pology.nedohodnik.net/doc/user/en_US/ch-poformat.html">section 2.6</a>.
      */
     protected void header(final StringBuilder buf) {
-        final String createdAt = LocalDateTime.now().toString("yyyy-MM-dd HH:mm:ss+Z");
+        
+        final String createdAt = LocalDateTime.now().format(timestampFormat);
         buf.append("#, fuzzy").append("\n");
         buf.append("msgid \"\"").append("\n");
         buf.append("msgstr \"\"").append("\n");
diff --git a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/bean/FixtureDatumFactoriesForTime.java b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/bean/FixtureDatumFactoriesForTime.java
new file mode 100644
index 0000000..b0f35a7
--- /dev/null
+++ b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/bean/FixtureDatumFactoriesForTime.java
@@ -0,0 +1,76 @@
+/*
+ *  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.testing.unittestsupport.applib.bean;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.OffsetDateTime;
+import java.time.ZoneOffset;
+
+/**
+ * 
+ * @since 2.0
+ *
+ */
+public class FixtureDatumFactoriesForTime {
+
+    public static PojoTester.FixtureDatumFactory<LocalTime> localTimes() {
+        return new PojoTester.FixtureDatumFactory<>(
+                LocalTime.class,
+                LocalTime.of(11, 15),
+                LocalTime.of(12, 20),
+                LocalTime.of(13, 30),
+                LocalTime.of(14, 45)
+        );
+    }
+    
+	public static PojoTester.FixtureDatumFactory<LocalDate> localDates() {
+		return new PojoTester.FixtureDatumFactory<>(
+				LocalDate.class,
+				LocalDate.of(2012, 7, 19),
+				LocalDate.of(2012, 7, 20),
+				LocalDate.of(2012, 8, 19),
+				LocalDate.of(2013, 7, 19)
+		);
+	}
+
+	public static PojoTester.FixtureDatumFactory<LocalDateTime> localDateTimes() {
+		return new PojoTester.FixtureDatumFactory<>(
+				LocalDateTime.class,
+				LocalDateTime.of(2012, 7, 19, 11, 15),
+				LocalDateTime.of(2012, 7, 20, 12, 20),
+				LocalDateTime.of(2012, 8, 19, 13, 30),
+				LocalDateTime.of(2013, 7, 19, 14, 45)
+		);
+	}
+
+
+	public static PojoTester.FixtureDatumFactory<OffsetDateTime> offsetDateTimes() {
+		return new PojoTester.FixtureDatumFactory<>(
+		        OffsetDateTime.class,
+				OffsetDateTime.of(2012, 7, 19, 11, 15, 0, 0, ZoneOffset.UTC),
+				OffsetDateTime.of(2012, 7, 20, 12, 20, 0, 0, ZoneOffset.UTC),
+				OffsetDateTime.of(2012, 8, 19, 13, 30, 0, 0, ZoneOffset.UTC),
+				OffsetDateTime.of(2013, 7, 19, 14, 45, 0, 0, ZoneOffset.UTC)
+		);
+	}
+
+
+}
diff --git a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/dom/valuetypes/VT.java b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/dom/valuetypes/VT.java
index a454635..66202d5 100644
--- a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/dom/valuetypes/VT.java
+++ b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/dom/valuetypes/VT.java
@@ -35,7 +35,7 @@ public final class VT {
 //    }
 //
 //    public static LocalDate ld(int yyyy, int mm, int dd) {
-//        return new LocalDate(yyyy,mm,dd);
+//        return LocalDate.of(yyyy,mm,dd);
 //    }
 //
 //    // //////////////////////////////////////


[isis] 02/02: ISIS-2263: bump schema XSDs to v2/2.0

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a18e1be8065b6afc1dc3034469d875e4da3006ce
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jan 14 20:21:43 2020 +0100

    ISIS-2263: bump schema XSDs to v2/2.0
---
 antora/supplemental-ui/ui.yml                      |   1 +
 .../jaxbadapters/PersistentEntitiesAdapter.java    |   2 +-
 .../jaxbadapters/PersistentEntityAdapter.java      |   2 +-
 .../applib/layout/menubars/MenuBarsAbstract.java   |   1 -
 .../isis/applib/mixins/dto/DtoMappingHelper.java   |   4 +-
 .../RepresentsInteractionMemberExecution.java      |   2 +-
 .../background/BackgroundCommandService.java       |   2 +-
 .../isis/applib/services/bookmark/Bookmark.java    |   4 +-
 .../isis/applib/services/command/Command.java      |   2 +-
 .../services/command/CommandDtoProcessor.java      |   2 +-
 .../CommandDtoProcessorForActionAbstract.java      |   8 +-
 .../CommandDtoProcessorForPropertyAbstract.java    |   4 +-
 .../applib/services/command/CommandWithDto.java    |   2 +-
 .../ContentMappingServiceForCommandDto.java        |   4 +-
 .../ContentMappingServiceForCommandsDto.java       |   4 +-
 .../command/spi/CommandDtoProcessorService.java    |   2 +-
 .../isis/applib/services/iactn/Interaction.java    |  16 +-
 .../services/metamodel/MetaModelService.java       |   2 +-
 .../services/metamodel/MetaModelServicesMenu.java  |   2 +-
 .../applib/services/metrics/MetricsService.java    |   2 +-
 .../applib/services/publish/PublishedObjects.java  |   2 +-
 .../services/publish/PublisherServiceLogging.java  |   4 +-
 .../org/apache/isis/applib/util/JaxbAdapters.java  |  77 ++++
 .../isis/applib/util/schema/ChangesDtoUtils.java   |   2 +-
 .../isis/applib/util/schema/CommandDtoUtils.java   |  12 +-
 .../isis/applib/util/schema/CommonDtoUtils.java    | 109 ++++--
 .../applib/util/schema/InteractionDtoUtils.java    |  22 +-
 .../util/schema/MemberExecutionDtoUtils.java       |  10 +-
 .../applib/util/schema/CommandDtoUtils_Test.java   |   4 +-
 .../applib/util/schema/CommonDtoUtils_Test.java    |   6 +-
 .../schema/CommonDtoUtils_setValueOn_Test.java     |   8 +-
 .../apache/isis/applib/util/schema/Roundtrip.java  | 422 +++++++++------------
 api/schema/pom.xml                                 |  10 +-
 .../org/apache/isis/schema/IsisModuleSchema.java   |   1 -
 .../schema/jaxbadapters/XmlCalendarFactory.java    | 158 +++++++-
 .../isis/schema/timeadapters/XmlTimeUtil.java      |  96 -----
 .../resources/org/apache/isis/schema/bindings.xml  |  22 +-
 .../isis/schema/chg/{chg-1.1.xsd => chg-2.0.xsd}   |   4 +-
 .../isis/schema/cmd/{cmd-1.4.xsd => cmd-2.0.xsd}   |   4 +-
 .../common/{common-1.1.xsd => common-2.0.xsd}      |  20 +-
 .../isis/schema/ixn/{ixn-1.3.xsd => ixn-2.0.xsd}   |   8 +-
 .../{metamodel-1.0.xsd => metamodel-2.0.xsd}       |   0
 .../core/metamodel/adapter/oid/Oid_Parented.java   |   3 +-
 .../isis/core/metamodel/adapter/oid/Oid_Root.java  |   4 +-
 .../isis/core/metamodel/adapter/oid/Oid_Value.java |   2 +-
 .../isis/core/metamodel/adapter/oid/RootOid.java   |   2 +-
 .../core/metamodel/context/MetaModelContext.java   |   2 +-
 .../context/MetaModelContext_usingIoc.java         |   2 +-
 .../isis/core/metamodel/facetapi/FeatureType.java  |   2 +-
 .../isis/core/metamodel/facets/Annotations.java    |   2 +-
 .../core/metamodel/facets/CollectionUtils.java     |   2 +-
 .../facets/ContributeeMemberFacetFactory.java      |   2 +-
 .../isis/core/metamodel/facets/FacetedMethod.java  |   8 +-
 .../facets/MethodPrefixBasedFacetFactory.java      |   2 +-
 .../MethodPrefixBasedFacetFactoryAbstract.java     |   6 +-
 .../action/ActionAnnotationFacetFactory.java       |   6 +-
 ...nChoicesForCollectionParameterFacetFactory.java |  10 +-
 .../command/CommandFacetForActionAnnotation.java   |   2 +-
 .../command/CommandFacetFromConfiguration.java     |   2 +-
 .../hidden/HiddenFacetForActionAnnotation.java     |   2 +-
 .../action/invocation/ActionDomainEventFacet.java  |   2 +-
 .../invocation/ActionDomainEventFacetAbstract.java |   8 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |   6 +-
 .../PrototypeFacetForActionAnnotation.java         |   2 +-
 .../PublishedActionFacetForActionAnnotation.java   |   2 +-
 .../PublishedActionFacetFromConfiguration.java     |   2 +-
 ...ctionSemanticsFacetFallbackToNonIdempotent.java |   2 +-
 .../ActionSemanticsFacetForActionAnnotation.java   |   2 +-
 .../actions/layout/ActionLayoutFacetFactory.java   |  14 +-
 ...tionPositionFacetForActionLayoutAnnotation.java |   2 +-
 .../layout/ActionPositionFacetForActionXml.java    |   2 +-
 .../CssClassFaFacetForActionLayoutAnnotation.java  |   2 +-
 .../layout/CssClassFaFacetForActionXml.java        |   2 +-
 .../CssClassFacetForActionLayoutAnnotation.java    |   2 +-
 .../actions/layout/CssClassFacetForActionXml.java  |   2 +-
 .../HiddenFacetForActionLayoutAnnotation.java      |   2 +-
 .../actions/layout/HiddenFacetForActionXml.java    |   2 +-
 ...tContributedFacetForActionLayoutAnnotation.java |   2 +-
 .../RedirectFacetFromActionLayoutAnnotation.java   |   2 +-
 .../actions/layout/RedirectFacetFromActionXml.java |   2 +-
 ...ntributedFacetDerivedFromMixinFacetFactory.java |   2 +-
 .../validate/ActionParameterValidationFacet.java   |   2 +-
 .../metamodel/facets/all/hide/HiddenFacet.java     |   2 +-
 .../all/i18n/DescribedAsFacetTranslated.java       |   2 +-
 .../facets/all/i18n/NamedFacetTranslated.java      |   2 +-
 .../facets/all/i18n/TranslationFacetFactory.java   |   4 +-
 .../CollectionAnnotationFacetFactory.java          |   4 +-
 ...ectionAddToFacetForDomainEventFromAbstract.java |   2 +-
 ...acetForDomainEventFromCollectionAnnotation.java |   2 +-
 ...lectionAddToFacetForDomainEventFromDefault.java |   2 +-
 ...nRemoveFromFacetForDomainEventFromAbstract.java |   2 +-
 ...acetForDomainEventFromCollectionAnnotation.java |   2 +-
 ...onRemoveFromFacetForDomainEventFromDefault.java |   2 +-
 .../javautilcollection/JavaArrayFacet.java         |   2 +-
 .../javautilcollection/JavaCollectionFacet.java    |   2 +-
 .../ParentedFacetSinceCollectionFactory.java       |   2 +-
 .../annotation/SortedByFacetAnnotationFactory.java |   2 +-
 .../fallback/PagedFacetFromConfiguration.java      |   2 +-
 .../metamodel/facets/fallback/TitleFacetNone.java  |   2 +-
 .../metamodel/facets/jaxb/JaxbFacetFactory.java    |  18 +-
 .../facets/members/cssclass/CssClassFacet.java     |   2 +-
 .../facets/members/hidden/HiddenFacetAbstract.java |   4 +-
 .../autocomplete/AutoCompleteFacetAbstract.java    |   4 +-
 .../BookmarkPolicyFacetFallbackFactory.java        |   4 +-
 ...ssClassFaFacetForDomainObjectLayoutFactory.java |   2 +-
 .../CssClassFaFacetForViewModelLayoutFactory.java  |   2 +-
 .../method/DisabledObjectFacetViaMethod.java       |   2 +-
 .../DisabledObjectFacetViaMethodFactory.java       |   2 +-
 .../DomainObjectAnnotationFacetFactory.java        |  32 +-
 .../AuditableFacetForDomainObjectAnnotation.java   |   2 +-
 .../auditing/AuditableFacetFromConfiguration.java  |   2 +-
 ...EventDefaultFacetForDomainObjectAnnotation.java |   4 +-
 ...EventDefaultFacetForDomainObjectAnnotation.java |   4 +-
 ...EventDefaultFacetForDomainObjectAnnotation.java |   4 +-
 ...ObjectSpecIdFacetForDomainObjectAnnotation.java |   2 +-
 ...lishedObjectFacetForDomainObjectAnnotation.java |   2 +-
 .../PublishedObjectFacetFromConfiguration.java     |   2 +-
 ...atableObjectFacetForDomainObjectAnnotation.java |   2 +-
 ...lassFaFacetForDomainObjectLayoutAnnotation.java |   2 +-
 .../CssClassFaFacetForDomainObjectXml.java         |   2 +-
 ...ssClassFaFacetForViewModelLayoutAnnotation.java |   2 +-
 ...sClassFacetForDomainObjectLayoutAnnotation.java |   2 +-
 .../CssClassFacetForDomainObjectXml.java           |   2 +-
 .../CssClassFacetForViewModelLayoutAnnotation.java |   2 +-
 ...ObjectLayoutAnnotationUsingCssClassUiEvent.java |   4 +-
 ...wModelLayoutAnnotationUsingCssClassUiEvent.java |   4 +-
 ...mainObjectLayoutAnnotationUsingIconUiEvent.java |   4 +-
 ...aViewModelLayoutAnnotationUsingIconUiEvent.java |   4 +-
 .../PagedFacetForDomainObjectLayoutAnnotation.java |   2 +-
 .../PagedFacetForViewModelLayoutAnnotation.java    |   2 +-
 ...ainObjectLayoutAnnotationUsingTitleUiEvent.java |   4 +-
 ...ViewModelLayoutAnnotationUsingTitleUiEvent.java |   4 +-
 .../object/domainservice/DomainServiceFacet.java   |   2 +-
 .../DomainServiceFacetAnnotationFactory.java       |   8 +-
 ...conFacetDerivedFromDomainServiceAnnotation.java |   2 +-
 .../DomainServiceLayoutFacetFactory.java           |   2 +-
 .../object/encodeable/EncodableFacetAbstract.java  |   2 +-
 .../hidden/method/HiddenObjectFacetViaMethod.java  |   2 +-
 .../method/HiddenObjectFacetViaMethodFactory.java  |   2 +-
 .../facets/object/immutable/ImmutableFacet.java    |   2 +-
 .../object/immutable/ImmutableFacetAbstract.java   |   1 -
 .../CopyImmutableFacetOntoMembersFactory.java      |   2 +-
 .../NavigableParentAnnotationFacetFactory.java     |   2 +-
 ...jectSpecIdFacetDerivedFromClassNameFactory.java |   8 +-
 .../ObjectValidPropertiesFacet.java                |   4 +-
 .../ObjectValidPropertiesFacetAbstract.java        |   4 +-
 .../impl/ObjectValidPropertiesFacetImpl.java       |   2 +-
 .../facets/object/parseable/ParseableFacet.java    |   2 +-
 .../object/parseable/ParseableFacetAbstract.java   |   4 +-
 .../facets/object/parseable/ParserUtil.java        |   2 +-
 .../parser/ParseableFacetUsingParser.java          |  10 +-
 .../ProjectionFacetFromProjectingProperty.java     |   2 +-
 .../CssClassFacetDerivedFromProjectionFacet.java   |   2 +-
 .../ident/IconFacetDerivedFromProjectionFacet.java |   2 +-
 .../TitleFacetDerivedFromProjectionFacet.java      |   2 +-
 ...etOnCollectionDerivedFromRecreatableObject.java |   2 +-
 ...CollectionDerivedFromViewModelFacetFactory.java |   2 +-
 ...acetOnPropertyDerivedFromRecreatableObject.java |   2 +-
 ...tyDerivedFromRecreatableObjectFacetFactory.java |   2 +-
 .../RecreatableObjectFacetAbstract.java            |   4 +-
 ...ObjectFacetDeclarativeInitializingAbstract.java |   4 +-
 .../recreatable/RecreatableObjectFacetFactory.java |  10 +-
 ...ctFacetForRecreatableDomainObjectInterface.java |   2 +-
 ...eObjectFacetForRecreatableObjectAnnotation.java |   2 +-
 ...leObjectFacetForRecreatableObjectInterface.java |   2 +-
 ...creatableObjectFacetForViewModelAnnotation.java |   2 +-
 ...ableObjectFacetForXmlRootElementAnnotation.java |   2 +-
 .../annotation/TitleAnnotationFacetFactory.java    |   2 +-
 .../validateobject/ValidateObjectFacet.java        |   2 +-
 .../ValidateObjectFacetAbstract.java               |   4 +-
 .../method/ValidateObjectFacetMethod.java          |   2 +-
 .../method/ValidateObjectFacetMethodFactory.java   |   6 +-
 ...ValueFacetAnnotationOrConfigurationFactory.java |   2 +-
 ...ameterFromJavaxValidationAnnotationFactory.java |   2 +-
 ...rameterFromJavaxValidationDigitsAnnotation.java |   4 +-
 ...ParameterDefaultFacetDerivedFromTypeFacets.java |   2 +-
 ...arameterDefaultFacetDerivedFromTypeFactory.java |   2 +-
 ...tionParameterDefaultsFacetViaMethodFactory.java |   2 +-
 .../disable/ActionParameterDisabledFacet.java      |   2 +-
 .../ActionParameterDisabledFacetAbstract.java      |   4 +-
 .../param/hide/ActionParameterHiddenFacet.java     |   2 +-
 .../hide/ActionParameterHiddenFacetAbstract.java   |   4 +-
 .../CssClassFacetForParameterLayoutAnnotation.java |   2 +-
 .../MandatoryFacetOnParametersDefaultFactory.java  |   2 +-
 .../parameter/ParameterAnnotationFacetFactory.java |  10 +-
 .../validate/ActionParameterValidationFacet.java   |   2 +-
 .../ActionParameterValidationFacetAbstract.java    |   4 +-
 ...onParameterValidationFacetViaMethodFactory.java |   2 +-
 .../method/PropertyAutoCompleteFacetMethod.java    |   2 +-
 .../property/PropertyAnnotationFacetFactory.java   |  16 +-
 ...tySetterOrClearFacetForDomainEventAbstract.java |   2 +-
 .../update/PropertyModifyFacetFactory.java         |   2 +-
 .../update/PropertySetAndClearFacetFactory.java    |   8 +-
 .../update/init/PropertyInitializationFacet.java   |   4 +-
 .../update/modify/PropertySetterFacet.java         |   4 +-
 .../ValueSemanticsProviderAbstractTemporal.java    |   2 +-
 .../BooleanPrimitiveValueSemanticsProvider.java    |   2 +-
 .../bytes/BytePrimitiveValueSemanticsProvider.java |   2 +-
 .../chars/CharPrimitiveValueSemanticsProvider.java |   2 +-
 .../datesql/JavaSqlDateValueSemanticsProvider.java |   4 +-
 .../DoublePrimitiveValueSemanticsProvider.java     |   2 +-
 .../FloatPrimitiveValueSemanticsProvider.java      |   2 +-
 .../IntPrimitiveValueSemanticsProvider.java        |   2 +-
 .../longs/LongPrimitiveValueSemanticsProvider.java |   2 +-
 .../ShortPrimitiveValueSemanticsProvider.java      |   2 +-
 .../JodaLocalTimeValueFacetSimpleFactory.java      |   2 +-
 .../JavaSqlTimeStampValueSemanticsProvider.java    |   2 +-
 .../metamodel/objectmanager/ObjectManager.java     |   4 +-
 .../objectmanager/ObjectManagerDefault.java        |   2 +-
 .../identify/ObjectIdentifier_builtinHandlers.java |   2 +-
 ...arameterChoicesFacetFromParentedCollection.java |   2 +-
 .../param/DeriveFacetsPostProcessor.java           |  48 +--
 .../core/metamodel/progmodel/ProgrammingModel.java |   4 +-
 .../progmodel/ProgrammingModelAbstract.java        |   2 +-
 .../progmodel/ProgrammingModelInitFilter.java      |   2 +-
 .../ProgrammingModelInitFilterDefault.java         |   5 +-
 .../metamodel/services/ServiceInjectorLegacy.java  |   2 +-
 .../ApplicationFeatureRepositoryDefault.java       |   8 +-
 .../classsubstitutor/ClassSubstitutorAbstract.java |   2 +-
 .../command/CommandDtoServiceInternal.java         |   6 +-
 .../services/grid/GridSystemServiceAbstract.java   |  26 +-
 .../ixn/InteractionDtoServiceInternal.java         |   4 +-
 .../services/layout/LayoutServiceDefault.java      |   2 +-
 .../services/metamodel/DomainMemberDefault.java    |  14 +-
 .../services/metamodel/MetaModelExporter.java      |  51 +--
 .../metamodel/MetaModelServiceDefault.java         |   4 +-
 .../services/title/TitleServiceDefault.java        |   2 +-
 .../isis/core/metamodel/spec/ManagedObject.java    |  14 +-
 .../core/metamodel/spec/ObjectSpecification.java   |  18 +-
 .../core/metamodel/spec/feature/ObjectAction.java  |   6 +-
 .../spec/feature/ObjectActionParameter.java        |   4 +-
 .../metamodel/spec/feature/ObjectAssociation.java  |   8 +-
 .../core/metamodel/spec/feature/ObjectMember.java  |   4 +-
 .../metamodel/specloader/SpecificationLoader.java  |   6 +-
 .../specloader/SpecificationLoaderDefault.java     |  20 +-
 .../specloader/specimpl/FacetedMethodsBuilder.java |   6 +-
 .../specimpl/ObjectActionContributee.java          |   6 +-
 .../specloader/specimpl/ObjectActionDefault.java   |  22 +-
 .../specloader/specimpl/ObjectActionMixedIn.java   |   8 +-
 .../specimpl/ObjectActionParameterAbstract.java    |  22 +-
 .../ObjectActionParameterMixedInAbstract.java      |   2 +-
 .../specimpl/ObjectAssociationAbstract.java        |   6 +-
 .../specloader/specimpl/ObjectMemberAbstract.java  |  22 +-
 .../specimpl/ObjectSpecificationAbstract.java      |  24 +-
 .../OneToManyActionParameterContributee.java       |   2 +-
 .../specimpl/OneToManyActionParameterDefault.java  |   4 +-
 .../specimpl/OneToManyActionParameterMixedIn.java  |   2 +-
 .../specimpl/OneToManyAssociationContributee.java  |  10 +-
 .../specimpl/OneToManyAssociationDefault.java      |  20 +-
 .../specimpl/OneToManyAssociationMixedIn.java      |  14 +-
 .../specimpl/OneToOneAssociationContributee.java   |  12 +-
 .../specimpl/OneToOneAssociationDefault.java       |  18 +-
 .../specimpl/OneToOneAssociationMixedIn.java       |  12 +-
 .../metamodel/specloader/specimpl/Predicates.java  |   2 +-
 .../specimpl/dflt/ObjectSpecificationDefault.java  |   6 +-
 .../ObjectSpecificationOnStandaloneList.java       |   4 +-
 .../core/metamodel/util/snapshot/XmlSnapshot.java  |   2 +-
 .../metamodel/valuetypes/ValueTypeDefinition.java  |   2 +-
 .../valuetypes/ValueTypeProviderDefault.java       |   2 +-
 .../metamodel/valuetypes/ValueTypeRegistry.java    |   2 +-
 .../command/CommandDtoServiceInternalDefault.java  |  16 +-
 .../command/CommandExecutorServiceDefault.java     |  20 +-
 .../ixn/InteractionDtoServiceInternalDefault.java  |  12 +-
 .../publish/PublishedObjectsDefault.java           |   8 +-
 .../wrapper/WrapperFactoryDefault.java             |   2 +-
 .../WrapperFactoryDefault_wrappedObject_Test.java  |   4 +-
 ...actoryDefault_wrappedObject_transient_Test.java |   2 +-
 267 files changed, 1139 insertions(+), 1034 deletions(-)

diff --git a/antora/supplemental-ui/ui.yml b/antora/supplemental-ui/ui.yml
index b8ac1b5..ba7cb06 100644
--- a/antora/supplemental-ui/ui.yml
+++ b/antora/supplemental-ui/ui.yml
@@ -18,6 +18,7 @@ static_files:
 - schema/common/common.xsd
 - schema/common/common-1.0.xsd
 - schema/common/common-1.1.xsd
+- schema/common/common-1.2.xsd
 - schema/ixn/ixn.xsd
 - schema/ixn/ixn-1.0.xsd
 - schema/ixn/ixn-1.1.xsd
diff --git a/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java b/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java
index 0bea114..087d748 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java
@@ -26,7 +26,7 @@ import javax.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.schema.common.v1.OidsDto;
+import org.apache.isis.schema.common.v2.OidsDto;
 
 import lombok.val;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntityAdapter.java b/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntityAdapter.java
index 60f1e97..67d2cef 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntityAdapter.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntityAdapter.java
@@ -21,7 +21,7 @@ import javax.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.schema.common.v1.OidDto;
+import org.apache.isis.schema.common.v2.OidDto;
 
 import lombok.val;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
index aa38830..3fbaf16 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
@@ -26,7 +26,6 @@ import javax.xml.bind.annotation.XmlTransient;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
 
-
 import lombok.val;
 
 @XmlTransient // ignore this class
diff --git a/api/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java b/api/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
index e46d79c..f0fbb7b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
@@ -30,8 +30,8 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.schema.common.v1.BookmarkObjectState;
-import org.apache.isis.schema.common.v1.OidDto;
+import org.apache.isis.schema.common.v2.BookmarkObjectState;
+import org.apache.isis.schema.common.v2.OidDto;
 
 @Service
 @Named("isisApplib.DtoMappingHelper")
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/RepresentsInteractionMemberExecution.java b/api/applib/src/main/java/org/apache/isis/applib/services/RepresentsInteractionMemberExecution.java
index 83ad5a0..f9d27bc 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/RepresentsInteractionMemberExecution.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/RepresentsInteractionMemberExecution.java
@@ -19,7 +19,7 @@
 package org.apache.isis.applib.services;
 
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.schema.ixn.v1.InteractionDto;
+import org.apache.isis.schema.ixn.v2.InteractionDto;
 
 /**
  * Extends {@link HasUniqueId}, where the {@link HasUniqueId#getUniqueId()} is interpreted as an
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java b/api/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
index 24acf64..7ede1da 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
@@ -19,7 +19,7 @@
 package org.apache.isis.applib.services.background;
 
 import org.apache.isis.applib.services.command.Command;
-import org.apache.isis.schema.cmd.v1.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 /**
  * Persists a {@link org.apache.isis.schema.cmd.v1.CommandDto command-reified} action such that it can be executed asynchronously,
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
index ec03bb3..df9ebff 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
@@ -25,8 +25,8 @@ import java.util.Objects;
 import org.apache.isis.applib.annotation.Value;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.schema.common.v1.BookmarkObjectState;
-import org.apache.isis.schema.common.v1.OidDto;
+import org.apache.isis.schema.common.v2.BookmarkObjectState;
+import org.apache.isis.schema.common.v2.OidDto;
 
 import lombok.Getter;
 import lombok.val;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/Command.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
index 1c234e6..fd09128 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.schema.cmd.v1.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 /**
  * Represents the <i>intention to</i> invoke either an action or modify a property.  There can be only one such
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessor.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessor.java
index e1dbf13..4a3b53d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessor.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessor.java
@@ -19,7 +19,7 @@
 package org.apache.isis.applib.services.command;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.schema.cmd.v1.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 public interface CommandDtoProcessor {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForActionAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForActionAbstract.java
index 9eccbb9..531c945 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForActionAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForActionAbstract.java
@@ -18,10 +18,10 @@
  */
 package org.apache.isis.applib.services.command;
 
-import org.apache.isis.schema.cmd.v1.ActionDto;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.ParamDto;
-import org.apache.isis.schema.cmd.v1.ParamsDto;
+import org.apache.isis.schema.cmd.v2.ActionDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.ParamDto;
+import org.apache.isis.schema.cmd.v2.ParamsDto;
 
 /**
  * Convenience adapter for command processors for action invocations.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForPropertyAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForPropertyAbstract.java
index 11b687a..6bc4d69 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForPropertyAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForPropertyAbstract.java
@@ -18,8 +18,8 @@
  */
 package org.apache.isis.applib.services.command;
 
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.PropertyDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.PropertyDto;
 
 /**
  * Convenience adapter for command processors for property edits.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandWithDto.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandWithDto.java
index 4bb2bc6..d294b20 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandWithDto.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandWithDto.java
@@ -19,7 +19,7 @@
 package org.apache.isis.applib.services.command;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.schema.cmd.v1.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 public interface CommandWithDto extends Command {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java
index 8d3ab83..ca64906 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java
@@ -39,8 +39,8 @@ import org.apache.isis.applib.services.conmap.ContentMappingService;
 import org.apache.isis.applib.services.conmap.command.spi.CommandDtoProcessorService;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.applib.util.schema.CommandDtoUtils;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.common.v1.PeriodDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.common.v2.PeriodDto;
 import org.apache.isis.schema.jaxbadapters.JavaSqlTimestampXmlGregorianCalendarAdapter;
 
 @Service
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java
index 46fd141..6a7e793 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java
@@ -31,8 +31,8 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.conmap.ContentMappingService;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.CommandsDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandsDto;
 
 @Service
 @Named("isisApplib.ContentMappingServiceForCommandsDto")
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/spi/CommandDtoProcessorService.java b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/spi/CommandDtoProcessorService.java
index 90b7b3c..ae56cbd 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/spi/CommandDtoProcessorService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/command/spi/CommandDtoProcessorService.java
@@ -22,7 +22,7 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandDtoProcessor;
 import org.apache.isis.applib.services.conmap.command.ContentMappingServiceForCommandDto;
-import org.apache.isis.schema.cmd.v1.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 /**
  * Optional SPI called by {@link ContentMappingServiceForCommandDto}.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
index 378c702..1f5b67c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
@@ -40,14 +40,14 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.util.schema.MemberExecutionDtoUtils;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.schema.common.v1.DifferenceDto;
-import org.apache.isis.schema.common.v1.InteractionType;
-import org.apache.isis.schema.common.v1.PeriodDto;
-import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
-import org.apache.isis.schema.ixn.v1.MemberExecutionDto;
-import org.apache.isis.schema.ixn.v1.MetricsDto;
-import org.apache.isis.schema.ixn.v1.ObjectCountsDto;
-import org.apache.isis.schema.ixn.v1.PropertyEditDto;
+import org.apache.isis.schema.common.v2.DifferenceDto;
+import org.apache.isis.schema.common.v2.InteractionType;
+import org.apache.isis.schema.common.v2.PeriodDto;
+import org.apache.isis.schema.ixn.v2.ActionInvocationDto;
+import org.apache.isis.schema.ixn.v2.MemberExecutionDto;
+import org.apache.isis.schema.ixn.v2.MetricsDto;
+import org.apache.isis.schema.ixn.v2.ObjectCountsDto;
+import org.apache.isis.schema.ixn.v2.PropertyEditDto;
 import org.apache.isis.schema.jaxbadapters.JavaSqlTimestampXmlGregorianCalendarAdapter;
 
 import lombok.val;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
index 01b9723..945d762 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
@@ -29,7 +29,7 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.command.CommandDtoProcessor;
 import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.ioc.BeanSort;
-import org.apache.isis.schema.metamodel.v1.MetamodelDto;
+import org.apache.isis.schema.metamodel.v2.MetamodelDto;
 
 import lombok.val;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
index 77a0ad5..86dbb92 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
@@ -45,7 +45,7 @@ import org.apache.isis.applib.value.Clob;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.schema.metamodel.v1.MetamodelDto;
+import org.apache.isis.schema.metamodel.v2.MetamodelDto;
 
 @Named("isisApplib.MetaModelServicesMenu")
 @DomainService(objectType = "isisApplib.MetaModelServicesMenu")
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java b/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java
index f25c57f..aca91b2 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java
@@ -19,7 +19,7 @@
 package org.apache.isis.applib.services.metrics;
 
 import org.apache.isis.applib.services.iactn.InteractionContext;
-import org.apache.isis.schema.ixn.v1.MemberExecutionDto;
+import org.apache.isis.schema.ixn.v2.MemberExecutionDto;
 
 public interface MetricsService {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java
index 6d09c75..87f60ad 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java
@@ -23,7 +23,7 @@ import java.sql.Timestamp;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.HasUniqueId;
 import org.apache.isis.applib.services.HasUsername;
-import org.apache.isis.schema.chg.v1.ChangesDto;
+import org.apache.isis.schema.chg.v2.ChangesDto;
 
 public interface PublishedObjects extends HasUniqueId, HasUsername {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
index b21e72b..69fcb63 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
@@ -29,8 +29,8 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.applib.util.schema.ChangesDtoUtils;
 import org.apache.isis.applib.util.schema.InteractionDtoUtils;
-import org.apache.isis.schema.chg.v1.ChangesDto;
-import org.apache.isis.schema.ixn.v1.InteractionDto;
+import org.apache.isis.schema.chg.v2.ChangesDto;
+import org.apache.isis.schema.ixn.v2.InteractionDto;
 
 import lombok.extern.log4j.Log4j2;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java b/api/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java
index 67a142e..d4a1f44 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java
@@ -19,9 +19,14 @@
 package org.apache.isis.applib.util;
 
 import java.nio.charset.StandardCharsets;
+import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.time.Period;
+import java.time.ZonedDateTime;
 import java.util.Base64;
 
 import javax.activation.MimeType;
@@ -156,6 +161,20 @@ public final class JaxbAdapters {
 
     }
 
+    public static final class LocalTimeAdapter extends XmlAdapter<String, LocalTime> {
+
+        @Override
+        public LocalTime unmarshal(String v) throws Exception {
+            return LocalTime.parse(v);
+        }
+
+        @Override
+        public String marshal(LocalTime v) throws Exception {
+            return v.toString();
+        }
+
+    }
+    
     public static final class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
 
         @Override
@@ -183,6 +202,20 @@ public final class JaxbAdapters {
         }
 
     }
+    
+    public static final class OffsetTimeAdapter extends XmlAdapter<String, OffsetTime> {
+
+        @Override
+        public OffsetTime unmarshal(String v) throws Exception {
+            return OffsetTime.parse(v);
+        }
+
+        @Override
+        public String marshal(OffsetTime v) throws Exception {
+            return v.toString();
+        }
+
+    }
 
     public static final class OffsetDateTimeAdapter extends XmlAdapter<String, OffsetDateTime> {
 
@@ -197,5 +230,49 @@ public final class JaxbAdapters {
         }
 
     }
+    
+    public static final class ZonedDateTimeAdapter extends XmlAdapter<String, ZonedDateTime> {
+
+        @Override
+        public ZonedDateTime unmarshal(String v) throws Exception {
+            return ZonedDateTime.parse(v);
+        }
+
+        @Override
+        public String marshal(ZonedDateTime v) throws Exception {
+            return v.toString();
+        }
+
+    }
+    
+    public static final class DurationAdapter extends XmlAdapter<String, Duration> {
+
+        @Override
+        public Duration unmarshal(String v) throws Exception {
+            return Duration.parse(v);
+        }
+
+        @Override
+        public String marshal(Duration v) throws Exception {
+            return v.toString();
+        }
+
+    }
+    
+    public static final class PeriodAdapter extends XmlAdapter<String, Period> {
+
+        @Override
+        public Period unmarshal(String v) throws Exception {
+            return Period.parse(v);
+        }
+
+        @Override
+        public String marshal(Period v) throws Exception {
+            return v.toString();
+        }
+
+    }
+    
+    
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/util/schema/ChangesDtoUtils.java b/api/applib/src/main/java/org/apache/isis/applib/util/schema/ChangesDtoUtils.java
index 78043f8..4c92a33 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/util/schema/ChangesDtoUtils.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/util/schema/ChangesDtoUtils.java
@@ -33,7 +33,7 @@ import javax.xml.bind.Unmarshaller;
 
 import org.apache.isis.applib.util.JaxbUtil;
 import org.apache.isis.core.commons.internal.resources._Resources;
-import org.apache.isis.schema.chg.v1.ChangesDto;
+import org.apache.isis.schema.chg.v2.ChangesDto;
 
 public final class ChangesDtoUtils {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommandDtoUtils.java b/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommandDtoUtils.java
index 820a995..bb7a815 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommandDtoUtils.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommandDtoUtils.java
@@ -32,12 +32,12 @@ import javax.xml.bind.Unmarshaller;
 
 import org.apache.isis.applib.util.JaxbUtil;
 import org.apache.isis.core.commons.internal.resources._Resources;
-import org.apache.isis.schema.cmd.v1.ActionDto;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.MapDto;
-import org.apache.isis.schema.cmd.v1.ParamsDto;
-import org.apache.isis.schema.common.v1.OidsDto;
-import org.apache.isis.schema.common.v1.PeriodDto;
+import org.apache.isis.schema.cmd.v2.ActionDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.MapDto;
+import org.apache.isis.schema.cmd.v2.ParamsDto;
+import org.apache.isis.schema.common.v2.OidsDto;
+import org.apache.isis.schema.common.v2.PeriodDto;
 
 public final class CommandDtoUtils {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java b/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java
index c80b435..76f0189 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java
@@ -20,6 +20,12 @@ package org.apache.isis.applib.util.schema;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.time.ZonedDateTime;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Objects;
@@ -27,11 +33,6 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 
-import org.joda.time.DateTime;
-import org.joda.time.LocalDate;
-import org.joda.time.LocalDateTime;
-import org.joda.time.LocalTime;
-
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.value.Blob;
@@ -41,21 +42,22 @@ import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.internal.context._Context;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.schema.cmd.v1.MapDto;
-import org.apache.isis.schema.cmd.v1.ParamDto;
-import org.apache.isis.schema.common.v1.BlobDto;
-import org.apache.isis.schema.common.v1.ClobDto;
-import org.apache.isis.schema.common.v1.CollectionDto;
-import org.apache.isis.schema.common.v1.EnumDto;
-import org.apache.isis.schema.common.v1.OidDto;
-import org.apache.isis.schema.common.v1.ValueDto;
-import org.apache.isis.schema.common.v1.ValueType;
-import org.apache.isis.schema.common.v1.ValueWithTypeDto;
+import org.apache.isis.schema.cmd.v2.MapDto;
+import org.apache.isis.schema.cmd.v2.ParamDto;
+import org.apache.isis.schema.common.v2.BlobDto;
+import org.apache.isis.schema.common.v2.ClobDto;
+import org.apache.isis.schema.common.v2.CollectionDto;
+import org.apache.isis.schema.common.v2.EnumDto;
+import org.apache.isis.schema.common.v2.OidDto;
+import org.apache.isis.schema.common.v2.ValueDto;
+import org.apache.isis.schema.common.v2.ValueType;
+import org.apache.isis.schema.common.v2.ValueWithTypeDto;
 import org.apache.isis.schema.jaxbadapters.JavaSqlTimestampXmlGregorianCalendarAdapter;
 import org.apache.isis.schema.jaxbadapters.JodaDateTimeXMLGregorianCalendarAdapter;
 import org.apache.isis.schema.jaxbadapters.JodaLocalDateTimeXMLGregorianCalendarAdapter;
 import org.apache.isis.schema.jaxbadapters.JodaLocalDateXMLGregorianCalendarAdapter;
 import org.apache.isis.schema.jaxbadapters.JodaLocalTimeXMLGregorianCalendarAdapter;
+import org.apache.isis.schema.jaxbadapters.XmlCalendarFactory;
 
 import static org.apache.isis.core.commons.internal.collections._Maps.entry;
 
@@ -88,10 +90,21 @@ public final class CommonDtoUtils {
                     entry(Double.class, ValueType.DOUBLE),
                     entry(BigInteger.class, ValueType.BIG_INTEGER),
                     entry(BigDecimal.class, ValueType.BIG_DECIMAL),
-                    entry(DateTime.class, ValueType.JODA_DATE_TIME),
-                    entry(LocalDateTime.class, ValueType.JODA_LOCAL_DATE_TIME),
-                    entry(LocalDate.class, ValueType.JODA_LOCAL_DATE),
-                    entry(LocalTime.class, ValueType.JODA_LOCAL_TIME),
+
+                    // java.time
+                    entry(LocalDate.class, ValueType.LOCAL_DATE),
+                    entry(LocalDateTime.class, ValueType.LOCAL_DATE_TIME),
+                    entry(LocalTime.class, ValueType.LOCAL_TIME),
+                    entry(OffsetDateTime.class, ValueType.OFFSET_DATE_TIME),
+                    entry(OffsetTime.class, ValueType.OFFSET_TIME),
+                    entry(ZonedDateTime.class, ValueType.ZONED_DATE_TIME),
+                    
+                    // joda.time
+                    entry(org.joda.time.DateTime.class, ValueType.JODA_DATE_TIME),
+                    entry(org.joda.time.LocalDateTime.class, ValueType.JODA_LOCAL_DATE_TIME),
+                    entry(org.joda.time.LocalDate.class, ValueType.JODA_LOCAL_DATE),
+                    entry(org.joda.time.LocalTime.class, ValueType.JODA_LOCAL_TIME),
+                    
                     entry(java.sql.Timestamp.class, ValueType.JAVA_SQL_TIMESTAMP),
                     entry(Blob.class, ValueType.BLOB),
                     entry(Clob.class, ValueType.CLOB)
@@ -211,23 +224,53 @@ public final class CommonDtoUtils {
             valueDto.setBigDecimal(argValue);
             return valueDto;
         }
+        case LOCAL_DATE: {
+            final LocalDate argValue = (LocalDate) val;
+            valueDto.setLocalDate(XmlCalendarFactory.create(argValue));
+            return valueDto;
+        }
+        case LOCAL_TIME: {
+            final LocalTime argValue = (LocalTime) val;
+            valueDto.setLocalTime(XmlCalendarFactory.create(argValue));
+            return valueDto;
+        }
+        case LOCAL_DATE_TIME: {
+            final LocalDateTime argValue = (LocalDateTime) val;
+            valueDto.setLocalDateTime(XmlCalendarFactory.create(argValue));
+            return valueDto;
+        }
+        case OFFSET_DATE_TIME: {
+            final OffsetDateTime argValue = (OffsetDateTime) val;
+            valueDto.setOffsetDateTime(XmlCalendarFactory.create(argValue));
+            return valueDto;
+        }
+        case OFFSET_TIME: {
+            final OffsetTime argValue = (OffsetTime) val;
+            valueDto.setOffsetTime(XmlCalendarFactory.create(argValue));
+            return valueDto;
+        }
+        case ZONED_DATE_TIME: {
+            final ZonedDateTime argValue = (ZonedDateTime) val;
+            valueDto.setZonedDateTime(XmlCalendarFactory.create(argValue));
+            return valueDto;
+        }
         case JODA_DATE_TIME: {
-            final DateTime argValue = (DateTime) val;
-            valueDto.setDateTime(JodaDateTimeXMLGregorianCalendarAdapter.print(argValue));
+            final org.joda.time.DateTime argValue = (org.joda.time.DateTime) val;
+            valueDto.setOffsetDateTime(JodaDateTimeXMLGregorianCalendarAdapter.print(argValue));
             return valueDto;
         }
         case JODA_LOCAL_DATE_TIME: {
-            final LocalDateTime argValue = (LocalDateTime) val;
+            final org.joda.time.LocalDateTime argValue = (org.joda.time.LocalDateTime) val;
             valueDto.setLocalDateTime(JodaLocalDateTimeXMLGregorianCalendarAdapter.print(argValue));
             return valueDto;
         }
         case JODA_LOCAL_DATE: {
-            final LocalDate argValue = (LocalDate) val;
+            final org.joda.time.LocalDate argValue = (org.joda.time.LocalDate) val;
             valueDto.setLocalDate(JodaLocalDateXMLGregorianCalendarAdapter.print(argValue));
             return valueDto;
         }
         case JODA_LOCAL_TIME: {
-            final LocalTime argValue = (LocalTime) val;
+            final org.joda.time.LocalTime argValue = (org.joda.time.LocalTime) val;
             valueDto.setLocalTime(JodaLocalTimeXMLGregorianCalendarAdapter.print(argValue));
             return valueDto;
         }
@@ -342,10 +385,24 @@ public final class CommonDtoUtils {
             return valueDto.getBigDecimal();
         case BIG_INTEGER:
             return valueDto.getBigInteger();
+         // JAVA TIME    
+        case LOCAL_DATE:
+            return XmlCalendarFactory.toLocalDate(valueDto.getLocalDate());
+        case LOCAL_TIME:
+            return XmlCalendarFactory.toLocalTime(valueDto.getLocalTime());
+        case LOCAL_DATE_TIME:
+            return XmlCalendarFactory.toLocalDateTime(valueDto.getLocalDateTime());
+        case OFFSET_DATE_TIME:
+            return XmlCalendarFactory.toOffsetDateTime(valueDto.getOffsetDateTime());
+        case OFFSET_TIME:
+            return XmlCalendarFactory.toOffsetTime(valueDto.getOffsetTime());
+        case ZONED_DATE_TIME:
+            return XmlCalendarFactory.toZonedDateTime(valueDto.getZonedDateTime());
         case JAVA_SQL_TIMESTAMP:
-            return JavaSqlTimestampXmlGregorianCalendarAdapter.parse(valueDto.getDateTime());
+            return JavaSqlTimestampXmlGregorianCalendarAdapter.parse(valueDto.getTimestamp());
+        // JODA
         case JODA_DATE_TIME:
-            return JodaDateTimeXMLGregorianCalendarAdapter.parse(valueDto.getDateTime());
+            return JodaDateTimeXMLGregorianCalendarAdapter.parse(valueDto.getOffsetDateTime());
         case JODA_LOCAL_DATE:
             return JodaLocalDateXMLGregorianCalendarAdapter.parse(valueDto.getLocalDate());
         case JODA_LOCAL_DATE_TIME:
diff --git a/api/applib/src/main/java/org/apache/isis/applib/util/schema/InteractionDtoUtils.java b/api/applib/src/main/java/org/apache/isis/applib/util/schema/InteractionDtoUtils.java
index a6fc9e2..2b2e506 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/util/schema/InteractionDtoUtils.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/util/schema/InteractionDtoUtils.java
@@ -41,17 +41,17 @@ import org.apache.isis.applib.util.JaxbUtil;
 import org.apache.isis.core.commons.internal.base._NullSafe;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.resources._Resources;
-import org.apache.isis.schema.cmd.v1.ParamDto;
-import org.apache.isis.schema.cmd.v1.ParamsDto;
-import org.apache.isis.schema.common.v1.InteractionType;
-import org.apache.isis.schema.common.v1.OidDto;
-import org.apache.isis.schema.common.v1.ValueDto;
-import org.apache.isis.schema.common.v1.ValueType;
-import org.apache.isis.schema.common.v1.ValueWithTypeDto;
-import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
-import org.apache.isis.schema.ixn.v1.InteractionDto;
-import org.apache.isis.schema.ixn.v1.MemberExecutionDto;
-import org.apache.isis.schema.ixn.v1.PropertyEditDto;
+import org.apache.isis.schema.cmd.v2.ParamDto;
+import org.apache.isis.schema.cmd.v2.ParamsDto;
+import org.apache.isis.schema.common.v2.InteractionType;
+import org.apache.isis.schema.common.v2.OidDto;
+import org.apache.isis.schema.common.v2.ValueDto;
+import org.apache.isis.schema.common.v2.ValueType;
+import org.apache.isis.schema.common.v2.ValueWithTypeDto;
+import org.apache.isis.schema.ixn.v2.ActionInvocationDto;
+import org.apache.isis.schema.ixn.v2.InteractionDto;
+import org.apache.isis.schema.ixn.v2.MemberExecutionDto;
+import org.apache.isis.schema.ixn.v2.PropertyEditDto;
 
 public final class InteractionDtoUtils {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/util/schema/MemberExecutionDtoUtils.java b/api/applib/src/main/java/org/apache/isis/applib/util/schema/MemberExecutionDtoUtils.java
index 999af94..cbc491b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/util/schema/MemberExecutionDtoUtils.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/util/schema/MemberExecutionDtoUtils.java
@@ -31,11 +31,11 @@ import javax.xml.transform.stream.StreamSource;
 
 import org.apache.isis.applib.util.JaxbUtil;
 import org.apache.isis.core.commons.internal.base._Casts;
-import org.apache.isis.schema.common.v1.DifferenceDto;
-import org.apache.isis.schema.common.v1.PeriodDto;
-import org.apache.isis.schema.ixn.v1.MemberExecutionDto;
-import org.apache.isis.schema.ixn.v1.MetricsDto;
-import org.apache.isis.schema.ixn.v1.ObjectCountsDto;
+import org.apache.isis.schema.common.v2.DifferenceDto;
+import org.apache.isis.schema.common.v2.PeriodDto;
+import org.apache.isis.schema.ixn.v2.MemberExecutionDto;
+import org.apache.isis.schema.ixn.v2.MetricsDto;
+import org.apache.isis.schema.ixn.v2.ObjectCountsDto;
 
 public final class MemberExecutionDtoUtils {
 
diff --git a/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommandDtoUtils_Test.java b/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommandDtoUtils_Test.java
index 8d78bad..62ed541 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommandDtoUtils_Test.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommandDtoUtils_Test.java
@@ -25,8 +25,8 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.junit.Assert.assertThat;
 
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.MapDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.MapDto;
 
 public class CommandDtoUtils_Test {
 
diff --git a/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_Test.java b/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_Test.java
index 8e0283f..dd99621 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_Test.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_Test.java
@@ -29,10 +29,10 @@ import static org.hamcrest.CoreMatchers.nullValue;
 import static org.junit.Assert.assertThat;
 
 import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.schema.cmd.v1.MapDto;
-import org.apache.isis.schema.common.v1.ValueDto;
-import org.apache.isis.schema.common.v1.ValueType;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.schema.cmd.v2.MapDto;
+import org.apache.isis.schema.common.v2.ValueDto;
+import org.apache.isis.schema.common.v2.ValueType;
 
 public class CommonDtoUtils_Test {
 
diff --git a/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_setValueOn_Test.java b/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_setValueOn_Test.java
index 7f4cfdf..50184ea 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_setValueOn_Test.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/util/schema/CommonDtoUtils_setValueOn_Test.java
@@ -31,11 +31,11 @@ import static org.hamcrest.CoreMatchers.nullValue;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
-import org.apache.isis.schema.common.v1.BlobDto;
-import org.apache.isis.schema.common.v1.ClobDto;
-import org.apache.isis.schema.common.v1.ValueDto;
-import org.apache.isis.schema.common.v1.ValueType;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.schema.common.v2.BlobDto;
+import org.apache.isis.schema.common.v2.ClobDto;
+import org.apache.isis.schema.common.v2.ValueDto;
+import org.apache.isis.schema.common.v2.ValueType;
 
 public class CommonDtoUtils_setValueOn_Test {
 
diff --git a/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java b/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java
index 87a752d..f6c969d 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/util/schema/Roundtrip.java
@@ -25,28 +25,32 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+import java.util.concurrent.atomic.LongAdder;
 
 import org.hamcrest.Matchers;
 import org.junit.Test;
 
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertThat;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.schema.cmd.v1.ParamDto;
-import org.apache.isis.schema.common.v1.InteractionType;
-import org.apache.isis.schema.common.v1.OidDto;
-import org.apache.isis.schema.common.v1.ValueType;
-import org.apache.isis.schema.common.v1.ValueWithTypeDto;
-import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
-import org.apache.isis.schema.ixn.v1.InteractionDto;
-import org.apache.isis.schema.ixn.v1.MemberExecutionDto;
+import org.apache.isis.schema.cmd.v2.ParamDto;
+import org.apache.isis.schema.common.v2.InteractionType;
+import org.apache.isis.schema.common.v2.OidDto;
+import org.apache.isis.schema.common.v2.ValueType;
+import org.apache.isis.schema.common.v2.ValueWithTypeDto;
+import org.apache.isis.schema.ixn.v2.ActionInvocationDto;
+import org.apache.isis.schema.ixn.v2.InteractionDto;
+import org.apache.isis.schema.ixn.v2.MemberExecutionDto;
+
+import lombok.val;
 
 public class Roundtrip {
 
@@ -77,6 +81,101 @@ public class Roundtrip {
         return interactionDto;
     }
 
+    private static void addArg(InteractionDto interactionDto, Object sampleValue) {
+        val type = sampleValue.getClass();
+        val name = type.getSimpleName();
+        InteractionDtoUtils.addParamArg(interactionDto, "a"+name, type, sampleValue, null);
+        InteractionDtoUtils.addParamArg(interactionDto, "null"+name, type, type.cast(null), null);
+    }
+    
+    private static void testArg(
+            ActionInvocationDto invocationDto, 
+            LongAdder paramIndex, 
+            ValueType valueType, 
+            Object expectedValue) {
+        testArg(invocationDto, paramIndex, valueType, expectedValue, null);
+    }
+    
+    private static void testArg(
+            ActionInvocationDto invocationDto, 
+            LongAdder paramIndex, 
+            ValueType valueType, 
+            Object expectedValue,
+            String nameOverride) {
+        
+        paramIndex.increment();
+        int param = paramIndex.intValue();
+        
+        val type = expectedValue.getClass();
+        val name = nameOverride!=null ? nameOverride : type.getSimpleName();
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("a"+name));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(valueType));
+        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
+        
+        val actualValue = InteractionDtoUtils.getParameterArgValue(invocationDto, param, type);
+        
+        // equals test, some types need special checks ...
+        if(expectedValue instanceof OidDto) {
+            
+            assertThat( ((OidDto)actualValue).getId(), is(((OidDto)expectedValue).getId()) );
+            assertThat( ((OidDto)actualValue).getType(), is(((OidDto)expectedValue).getType()) );
+            
+        } else if(expectedValue instanceof org.joda.time.DateTime) {
+            
+            assertThat( actualValue.toString(), is(expectedValue.toString()) );
+            
+        } else {
+            assertThat(actualValue, is(expectedValue));    
+        }
+        
+        paramIndex.increment();
+        param = paramIndex.intValue();
+        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("null"+name));
+        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(valueType));
+        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
+    }
+    
+    private static class SampleValues {
+        
+        final Bookmark bookmark = new Bookmark("ORD", "12345");
+        final OidDto reference = new OidDto();
+        {
+            reference.setId("12345");
+            reference.setType("ORD");
+        }
+        
+        final String string = "Fred";
+        final byte primitiveByte = (byte)123;
+        final short primitiveShort= (short) 32123;
+        final int primitiveInteger = 123454321;
+        final long primitiveLong = 1234567654321L;
+        final float primitiveFloat = 12345.6789F;
+        final double primitiveDouble = 12345678.90123d;
+        final boolean primitiveBoolean = true;
+        final char primitiveCharacter = 'x';
+        
+        final BigInteger bigInteger = new java.math.BigInteger("12345678901234567890");
+        final BigDecimal bigDecimal = new java.math.BigDecimal("12345678901234567890");
+                
+        // java.time
+        final LocalTime localTime = LocalTime.of(9, 54, 1);
+        final OffsetTime offsetTime = OffsetTime.of(9, 54, 1, 123_000_000, ZoneOffset.ofTotalSeconds(-120));
+        final LocalDate localDate = LocalDate.of(2015, 5, 23);
+        final LocalDateTime localDateTime = LocalDateTime.of(2015, 5, 23, 9, 54, 1);
+        final OffsetDateTime offsetDateTime = OffsetDateTime.of(2015, 5, 23, 9, 54, 1, 0, ZoneOffset.UTC);
+        final ZonedDateTime zonedDateTime = ZonedDateTime.of(2015, 5, 23, 9, 54, 1, 0, ZoneOffset.UTC);
+        
+        // joda.time
+        final org.joda.time.DateTime jodaDateTime = new org.joda.time.DateTime(2015, 5, 23, 9, 54, 1);
+        final org.joda.time.LocalDate jodaLocalDate = new org.joda.time.LocalDate(2015, 5, 23);
+        final org.joda.time.LocalDateTime jodaLocalDateTime = new org.joda.time.LocalDateTime(2015, 5, 23, 9, 54, 1);
+        final org.joda.time.LocalTime jodaLocalTime = new org.joda.time.LocalTime(9, 54, 1);
+
+    }
+    
+    private final SampleValues sampleValues = new SampleValues();
+    
+    
     @Test
     public void happyCase() throws Exception {
 
@@ -96,61 +195,34 @@ public class Roundtrip {
                 new Bookmark("CUS", "12345"), "John Customer", "com.mycompany.Customer#placeOrder", Arrays.<ParamDto>asList(),
                 "freddyUser"
                 );
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aString", String.class, "Fred", null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullString", String.class, (String) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aByte", Byte.class, (Byte) (byte) 123, null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullByte", Byte.class, (Byte) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aShort", Short.class, (Short) (short) 32123, null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullShort", Short.class, (Short) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "anInt", Integer.class, 123454321, null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullInt", Integer.class, (Integer) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aLong", Long.class, 1234567654321L, null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullLong", Long.class, (Long) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aFloat", Float.class, 12345.6789F, null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullFloat", Float.class, (Float) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aDouble", Double.class, 12345678.90123, null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullDouble", Double.class, (Double) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aBoolean", Boolean.class, true, null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullBoolean", Boolean.class, (Boolean) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aChar", Character.class, 'x', null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullChar", Character.class, (Character) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aBigInteger", java.math.BigInteger.class, new java.math.BigInteger("12345678901234567890"), null);
-        InteractionDtoUtils
-        .addParamArg(interactionDto, "nullBigInteger", java.math.BigInteger.class, (java.math.BigInteger) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aBigDecimal", java.math.BigDecimal.class, new java.math.BigDecimal("12345678901234567890"), null);
-        InteractionDtoUtils
-        .addParamArg(interactionDto, "nullBigDecimal", java.math.BigDecimal.class, (java.math.BigDecimal) null, null);
-
-        InteractionDtoUtils
-        .addParamArg(interactionDto, "aOffsetDateTime", java.time.OffsetDateTime.class, OffsetDateTime.of(2015, 5, 23, 9, 54, 1, 0, null), null);
-        InteractionDtoUtils
-        .addParamArg(interactionDto, "nullOffsetDateTime", java.time.OffsetDateTime.class, (OffsetDateTime) null, null);
-
-        InteractionDtoUtils
-        .addParamArg(interactionDto, "aLocalDate", java.time.LocalDate.class, LocalDate.of(2015, 5, 23), null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullLocalDate", java.time.LocalDate.class, (LocalDate) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aLocalDateTime", java.time.LocalDateTime.class, LocalDateTime.of(2015, 5, 23, 9, 54, 1), null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullLocalDateTime", java.time.LocalDateTime.class, (LocalDateTime) null, null);
-
-        InteractionDtoUtils
-        .addParamArg(interactionDto, "aLocalTime", java.time.LocalTime.class, LocalTime.of(9, 54, 1), null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullLocalTime", java.time.LocalTime.class, (LocalTime) null, null);
-
-        InteractionDtoUtils.addParamArg(interactionDto, "aReference", null, new Bookmark("ORD", "12345"), null);
-        InteractionDtoUtils.addParamArg(interactionDto, "nullReference", null, null, null);
-
+        
+        addArg(interactionDto, sampleValues.bookmark);
+        addArg(interactionDto, sampleValues.string);
+        addArg(interactionDto, sampleValues.primitiveByte);
+        addArg(interactionDto, sampleValues.primitiveShort);
+        addArg(interactionDto, sampleValues.primitiveInteger);
+        addArg(interactionDto, sampleValues.primitiveLong);
+        addArg(interactionDto, sampleValues.primitiveFloat);
+        addArg(interactionDto, sampleValues.primitiveDouble);
+        addArg(interactionDto, sampleValues.primitiveBoolean);
+        addArg(interactionDto, sampleValues.primitiveCharacter);
+        
+        addArg(interactionDto, sampleValues.bigInteger);
+        addArg(interactionDto, sampleValues.bigDecimal);
+        
+        // java.time
+        addArg(interactionDto, sampleValues.localTime);
+        addArg(interactionDto, sampleValues.localDate);
+        addArg(interactionDto, sampleValues.localDateTime);
+        addArg(interactionDto, sampleValues.offsetTime);
+        addArg(interactionDto, sampleValues.offsetDateTime);
+        addArg(interactionDto, sampleValues.zonedDateTime);
+        
+        // joda.time
+        addArg(interactionDto, sampleValues.jodaDateTime);
+        addArg(interactionDto, sampleValues.jodaLocalDate);
+        addArg(interactionDto, sampleValues.jodaLocalDateTime);
+        addArg(interactionDto, sampleValues.jodaLocalTime);
 
         // when
         final CharArrayWriter caw = new CharArrayWriter();
@@ -168,196 +240,40 @@ public class Roundtrip {
         assertThat(recreated.getExecution().getTarget().getId(), Matchers.is(interactionDto.getExecution().getTarget().getId()));
 
         final ActionInvocationDto invocationDto = (ActionInvocationDto) recreated.getExecution();
+        val paramIndex = new LongAdder(); 
+        paramIndex.decrement();
+
+        testArg(invocationDto, paramIndex, ValueType.REFERENCE, sampleValues.reference, "Bookmark");
+        testArg(invocationDto, paramIndex, ValueType.STRING, sampleValues.string);
+        testArg(invocationDto, paramIndex, ValueType.BYTE, sampleValues.primitiveByte);
+        testArg(invocationDto, paramIndex, ValueType.SHORT, sampleValues.primitiveShort);
+        testArg(invocationDto, paramIndex, ValueType.INT, sampleValues.primitiveInteger);
+        testArg(invocationDto, paramIndex, ValueType.LONG, sampleValues.primitiveLong);
+        testArg(invocationDto, paramIndex, ValueType.FLOAT, sampleValues.primitiveFloat);
+        testArg(invocationDto, paramIndex, ValueType.DOUBLE, sampleValues.primitiveDouble);
+        testArg(invocationDto, paramIndex, ValueType.BOOLEAN, sampleValues.primitiveBoolean);
+        testArg(invocationDto, paramIndex, ValueType.CHAR, sampleValues.primitiveCharacter);
+        
+        testArg(invocationDto, paramIndex, ValueType.BIG_INTEGER, sampleValues.bigInteger);
+        testArg(invocationDto, paramIndex, ValueType.BIG_DECIMAL, sampleValues.bigDecimal);
+        
+        // java.time
+        testArg(invocationDto, paramIndex, ValueType.LOCAL_TIME, sampleValues.localTime);
+        testArg(invocationDto, paramIndex, ValueType.LOCAL_DATE, sampleValues.localDate);
+        testArg(invocationDto, paramIndex, ValueType.LOCAL_DATE_TIME, sampleValues.localDateTime);
+        testArg(invocationDto, paramIndex, ValueType.OFFSET_TIME, sampleValues.offsetTime);
+        testArg(invocationDto, paramIndex, ValueType.OFFSET_DATE_TIME, sampleValues.offsetDateTime);
+        testArg(invocationDto, paramIndex, ValueType.ZONED_DATE_TIME, sampleValues.zonedDateTime);
+        
+        // joda.time
+        testArg(invocationDto, paramIndex, ValueType.JODA_DATE_TIME, sampleValues.jodaDateTime);
+        testArg(invocationDto, paramIndex, ValueType.JODA_LOCAL_DATE, sampleValues.jodaLocalDate);
+        testArg(invocationDto, paramIndex, ValueType.JODA_LOCAL_DATE_TIME, sampleValues.jodaLocalDateTime);
+        testArg(invocationDto, paramIndex, ValueType.JODA_LOCAL_TIME, sampleValues.jodaLocalTime);
+        
 
-        int param = 0;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aString"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.STRING));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, String.class), is("Fred"));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullString"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.STRING));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, String.class), is(nullValue()));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aByte"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BYTE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, Byte.class), is((byte) 123));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BYTE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullByte"));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aShort"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.SHORT));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, Short.class), is((short) 32123));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullShort"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.SHORT));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("anInt"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.INT));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, int.class), is((int) 123454321));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullInt"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.INT));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aLong"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LONG));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, long.class), is((long) 1234567654321L));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullLong"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LONG));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aFloat"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.FLOAT));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, float.class), is((float) 12345.6789F));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullFloat"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.FLOAT));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aDouble"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.DOUBLE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, double.class), is(12345678.90123));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullDouble"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.DOUBLE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aBoolean"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BOOLEAN));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, boolean.class), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullBoolean"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BOOLEAN));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aChar"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.CHAR));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, char.class), is('x'));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullChar"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.CHAR));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aBigInteger"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BIG_INTEGER));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, BigInteger.class), is(new java.math.BigInteger("12345678901234567890")));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullBigInteger"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BIG_INTEGER));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aBigDecimal"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BIG_DECIMAL));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, BigDecimal.class), is(new java.math.BigDecimal("12345678901234567890")));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullBigDecimal"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.BIG_DECIMAL));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aOffsetDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.OFFSET_DATE_TIME));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        // bit hacky... regular comparison fails but toString() works... must be some additional data that differs, not sure what tho'
-        assertThat(
-                InteractionDtoUtils.getParameterArgValue(invocationDto, param, OffsetDateTime.class).toString(), is(OffsetDateTime.of(2015, 5, 23, 9, 54, 1, 0, null).toString()));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullOffsetDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.OFFSET_DATE_TIME));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aLocalDate"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        final LocalDate actual = InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalDate.class);
-        final LocalDate expected = LocalDate.of(2015, 5, 23);
-        assertThat(actual, equalTo(expected));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullLocalDate"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aLocalDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE_TIME));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalDateTime.class), is(LocalDateTime.of(2015, 5, 23, 9, 54, 1)));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullLocalDateTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_DATE_TIME));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aLocalTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_TIME));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(
-                InteractionDtoUtils.getParameterArgValue(invocationDto, param, LocalTime.class), is(LocalTime.of(9, 54, 1)));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullLocalTime"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.LOCAL_TIME));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("aReference"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.REFERENCE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(false));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, OidDto.class).getType(), is("ORD"));
-        assertThat(InteractionDtoUtils.getParameterArgValue(invocationDto, param, OidDto.class).getId(), is("12345"));
-
-        param++;
-        assertThat(InteractionDtoUtils.getParameterName(invocationDto, param), is("nullReference"));
-        assertThat(InteractionDtoUtils.getParameterType(invocationDto, param), Matchers.is(ValueType.REFERENCE));
-        assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
+    }
 
-        param++;
-        //        final int expected = param;
-        //        assertThat(recreated.getParameters().getNum(), is(expected);
-        //        assertThat(recreated.getParameters().getParam().size(), is(expected);
-        //        assertThat(ActionInvocationMementoDtoUtils.getNumberOfParameters(recreated), is(expected);
 
-    }
 
 }
diff --git a/api/schema/pom.xml b/api/schema/pom.xml
index e2e1637..6a6bf7b 100644
--- a/api/schema/pom.xml
+++ b/api/schema/pom.xml
@@ -117,11 +117,11 @@
 								<configuration>
 									<schemaDirectory>src/main/resources/org/apache/isis/schema</schemaDirectory>
 									<schemaIncludes>
-										<schemaInclude>common/common-1.1.xsd</schemaInclude>
-										<schemaInclude>cmd/cmd-1.4.xsd</schemaInclude>
-										<schemaInclude>ixn/ixn-1.3.xsd</schemaInclude>
-										<schemaInclude>chg/chg-1.1.xsd</schemaInclude>
-										<schemaInclude>metamodel/metamodel-1.0.xsd</schemaInclude>
+										<schemaInclude>common/common-2.0.xsd</schemaInclude>
+										<schemaInclude>cmd/cmd-2.0.xsd</schemaInclude>
+										<schemaInclude>ixn/ixn-2.0.xsd</schemaInclude>
+										<schemaInclude>chg/chg-2.0.xsd</schemaInclude>
+										<schemaInclude>metamodel/metamodel-2.0.xsd</schemaInclude>
 									</schemaIncludes>
 									<bindingDirectory>src/main/resources/org/apache/isis/schema</bindingDirectory>
 									<bindingIncludes>
diff --git a/api/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java b/api/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
index 312559b..3279205 100644
--- a/api/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
+++ b/api/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
@@ -19,7 +19,6 @@
 package org.apache.isis.schema;
 
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
 
 @Configuration
 public class IsisModuleSchema {
diff --git a/api/schema/src/main/java/org/apache/isis/schema/jaxbadapters/XmlCalendarFactory.java b/api/schema/src/main/java/org/apache/isis/schema/jaxbadapters/XmlCalendarFactory.java
index ab3358a..05af3d5 100644
--- a/api/schema/src/main/java/org/apache/isis/schema/jaxbadapters/XmlCalendarFactory.java
+++ b/api/schema/src/main/java/org/apache/isis/schema/jaxbadapters/XmlCalendarFactory.java
@@ -18,6 +18,13 @@
  */
 package org.apache.isis.schema.jaxbadapters;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.util.function.Function;
 
 import javax.xml.datatype.DatatypeConfigurationException;
@@ -25,22 +32,140 @@ import javax.xml.datatype.DatatypeConstants;
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.datatype.XMLGregorianCalendar;
 
-import org.joda.time.DateTime;
-import org.joda.time.LocalDate;
-import org.joda.time.LocalDateTime;
-import org.joda.time.LocalTime;
+public class XmlCalendarFactory {
+    
+    // -- JAVA TIME - FROM XML
 
-class XmlCalendarFactory {
-	
-	public static XMLGregorianCalendar create(DateTime dateTime) {
+    public static LocalDate toLocalDate(XMLGregorianCalendar cal) {
+        return LocalDate.of(cal.getYear(), cal.getMonth(), cal.getDay());
+    }
+
+    public static LocalTime toLocalTime(XMLGregorianCalendar cal) {
+        return LocalTime.of(cal.getHour(), cal.getMinute(), cal.getSecond(), 
+                cal.getMillisecond()*1000_000);
+    }
+
+    public static LocalDateTime toLocalDateTime(XMLGregorianCalendar cal) {
+        return LocalDateTime.of(cal.getYear(), cal.getMonth(), cal.getDay(),
+                cal.getHour(), cal.getMinute(), cal.getSecond(), 
+                cal.getMillisecond()*1000_000);
+    }
+
+    public static OffsetDateTime toOffsetDateTime(XMLGregorianCalendar cal) {
+        return OffsetDateTime.of(cal.getYear(), cal.getMonth(), cal.getDay(),
+                cal.getHour(), cal.getMinute(), cal.getSecond(), 
+                cal.getMillisecond()*1000_000,
+                ZoneOffset.ofTotalSeconds(cal.getTimezone()*60));
+    }
+
+    public static OffsetTime toOffsetTime(XMLGregorianCalendar cal) {
+        return OffsetTime.of(
+                cal.getHour(), cal.getMinute(), cal.getSecond(), 
+                cal.getMillisecond()*1000_000,
+                ZoneOffset.ofTotalSeconds(cal.getTimezone()*60));
+    }
+
+    public static ZonedDateTime toZonedDateTime(XMLGregorianCalendar cal) {
+        return ZonedDateTime.of(cal.getYear(), cal.getMonth(), cal.getDay(),
+                cal.getHour(), cal.getMinute(), cal.getSecond(), 
+                cal.getMillisecond()*1000_000,
+                ZoneOffset.ofTotalSeconds(cal.getTimezone()*60));
+    }
+    
+    // -- JAVA TIME - TO XML
+    
+    public static XMLGregorianCalendar create(LocalDate localDate) {
+        return localDate!=null 
+                ? withTypeFactoryDo($->$.newXMLGregorianCalendarDate(
+                        localDate.getYear(),
+                        localDate.getMonthValue(),
+                        localDate.getDayOfMonth(),
+                        DatatypeConstants.FIELD_UNDEFINED // timezone offset in minutes
+                        ))  
+                : null;
+    }
+    
+    public static XMLGregorianCalendar create(LocalTime localTime) {
+        return localTime!=null 
+                ? withTypeFactoryDo($->$.newXMLGregorianCalendarTime(
+                        localTime.getHour(),
+                        localTime.getMinute(),
+                        localTime.getSecond(),
+                        localTime.getNano()/1000_000, // millis
+                        DatatypeConstants.FIELD_UNDEFINED // timezone offset in minutes
+                        )) 
+                : null;
+    }
+    
+    public static XMLGregorianCalendar create(LocalDateTime localDateTime) {
+        return localDateTime!=null 
+                ? withTypeFactoryDo($->$.newXMLGregorianCalendar(
+                        localDateTime.getYear(),
+                        localDateTime.getMonthValue(),
+                        localDateTime.getDayOfMonth(),
+                        localDateTime.getHour(),
+                        localDateTime.getMinute(),
+                        localDateTime.getSecond(),
+                        localDateTime.getNano()/1000_000, // millis
+                        DatatypeConstants.FIELD_UNDEFINED // timezone offset in minutes
+                        )) 
+                : null;
+    }
+    
+    public static XMLGregorianCalendar create(OffsetTime offsetTime) {
+        return offsetTime!=null 
+                ? withTypeFactoryDo($->$.newXMLGregorianCalendarTime(
+                        offsetTime.getHour(),
+                        offsetTime.getMinute(),
+                        offsetTime.getSecond(),
+                        offsetTime.getNano()/1000_000, // millis
+                        offsetTime.getOffset().getTotalSeconds()/60 // timezone offset in minutes
+                        ))  
+                : null;
+    }
+    
+    public static XMLGregorianCalendar create(OffsetDateTime offsetDateTime) {
+        return offsetDateTime!=null 
+                ? withTypeFactoryDo($->$.newXMLGregorianCalendar(
+                        offsetDateTime.getYear(),
+                        offsetDateTime.getMonthValue(),
+                        offsetDateTime.getDayOfMonth(),
+                        offsetDateTime.getHour(),
+                        offsetDateTime.getMinute(),
+                        offsetDateTime.getSecond(),
+                        offsetDateTime.getNano()/1000_000, // millis
+                        offsetDateTime.getOffset().getTotalSeconds()/60 // timezone offset in minutes
+                        )) 
+                : null;
+    }
+    
+    public static XMLGregorianCalendar create(ZonedDateTime zonedDateTime) {
+        return zonedDateTime!=null 
+                ? withTypeFactoryDo($->$.newXMLGregorianCalendar(
+                        zonedDateTime.getYear(),
+                        zonedDateTime.getMonthValue(),
+                        zonedDateTime.getDayOfMonth(),
+                        zonedDateTime.getHour(),
+                        zonedDateTime.getMinute(),
+                        zonedDateTime.getSecond(),
+                        zonedDateTime.getNano()/1000_000, // millis
+                        zonedDateTime.getOffset().getTotalSeconds()/60 // timezone offset in minutes
+                        )) 
+                : null;
+    }
+    
+    
+    // -- JODA TIME
+    
+	public static XMLGregorianCalendar create(org.joda.time.DateTime dateTime) {
 		return dateTime!=null 
-				? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendar(dateTime.toGregorianCalendar())) 
+				? withTypeFactoryDo($->$.newXMLGregorianCalendar(dateTime.toGregorianCalendar())) 
 				: null;
 	}
 
-	public static XMLGregorianCalendar create(LocalDateTime localDateTime) {
+	public static XMLGregorianCalendar create(org.joda.time.LocalDateTime localDateTime) {
 		return localDateTime!=null 
-				? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendar(
+				? withTypeFactoryDo($->$.newXMLGregorianCalendar(
 						localDateTime.getYear(),
 				        localDateTime.getMonthOfYear(),
 				        localDateTime.getDayOfMonth(),
@@ -53,9 +178,9 @@ class XmlCalendarFactory {
 				: null;
 	}
 
-	public static XMLGregorianCalendar create(LocalDate localDate) {
+	public static XMLGregorianCalendar create(org.joda.time.LocalDate localDate) {
 		return localDate!=null 
-				? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendarDate(
+				? withTypeFactoryDo($->$.newXMLGregorianCalendarDate(
 						localDate.getYear(),
 						localDate.getMonthOfYear(),
 						localDate.getDayOfMonth(),
@@ -64,9 +189,9 @@ class XmlCalendarFactory {
 				: null;
 	}
 
-	public static XMLGregorianCalendar create(LocalTime localTime) {
+	public static XMLGregorianCalendar create(org.joda.time.LocalTime localTime) {
 		return localTime!=null 
-				? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendarTime(
+				? withTypeFactoryDo($->$.newXMLGregorianCalendarTime(
 				        localTime.getHourOfDay(),
 				        localTime.getMinuteOfHour(),
 				        localTime.getSecondOfMinute(),
@@ -79,10 +204,7 @@ class XmlCalendarFactory {
 	// -- HELPER
 	
 	/*
-	 * Gets an instance of DatatypeFactory and passes it to the factory argument for single use.
-	 * 
-	 * [ahuber] we don't want to store the DatatypeFactory.newInstance() into a static field for 
-	 * reuse, because then we would need to cleanup after IsisContext.destroy() as well.
+	 * Gets an instance of DatatypeFactory and passes it to the factory argument. (thread-safe)
 	 */
 	private static XMLGregorianCalendar withTypeFactoryDo(
 			Function<DatatypeFactory, XMLGregorianCalendar> factory) {
diff --git a/api/schema/src/main/java/org/apache/isis/schema/timeadapters/XmlTimeUtil.java b/api/schema/src/main/java/org/apache/isis/schema/timeadapters/XmlTimeUtil.java
deleted file mode 100644
index a097e2e..0000000
--- a/api/schema/src/main/java/org/apache/isis/schema/timeadapters/XmlTimeUtil.java
+++ /dev/null
@@ -1,96 +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.schema.timeadapters;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.OffsetDateTime;
-import java.time.OffsetTime;
-import java.time.ZonedDateTime;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-public class XmlTimeUtil {
-
-    // -- TO XML
-    
-    public static XMLGregorianCalendar fromLocalDate(LocalDate localDate) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static XMLGregorianCalendar fromLocalDateTime(LocalDateTime localDateTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static XMLGregorianCalendar fromOffsetDateTime(OffsetDateTime offsetDateTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static XMLGregorianCalendar fromLocalTime(LocalTime localTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static XMLGregorianCalendar fromOffsetTime(OffsetTime offsetTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static XMLGregorianCalendar fromZonedDateTime(ZonedDateTime zonedDateTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-    
-    // -- FROM XML
-
-    public static LocalDate toLocalDate(XMLGregorianCalendar cal) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static LocalTime toLocalTime(XMLGregorianCalendar localTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static LocalDateTime toLocalDateTime(XMLGregorianCalendar localDateTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static OffsetDateTime toOffsetDateTime(XMLGregorianCalendar offsetDateTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static OffsetTime toOffsetTime(XMLGregorianCalendar offsetTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public static ZonedDateTime toZonedDateTime(XMLGregorianCalendar zonedDateTime) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-}
diff --git a/api/schema/src/main/resources/org/apache/isis/schema/bindings.xml b/api/schema/src/main/resources/org/apache/isis/schema/bindings.xml
index eaab1e2..02fed67 100644
--- a/api/schema/src/main/resources/org/apache/isis/schema/bindings.xml
+++ b/api/schema/src/main/resources/org/apache/isis/schema/bindings.xml
@@ -24,65 +24,65 @@
                xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd
 			  http://jaxb2-commons.dev.java.net/namespace-prefix http://java.net/projects/jaxb2-commons/sources/svn/content/namespace-prefix/trunk/src/main/resources/prefix-namespace-schema.xsd"
 >
-    <jaxb:bindings schemaLocation="chg/chg-1.1.xsd">
+    <jaxb:bindings schemaLocation="chg/chg-2.0.xsd">
         <jaxb:schemaBindings>
             <!--
             we don't include the minor version, because the
             generated Java class will be backwards compatible
             -->
-            <jaxb:package name="org.apache.isis.schema.chg.v1"/>
+            <jaxb:package name="org.apache.isis.schema.chg.v2"/>
         </jaxb:schemaBindings>
         <jaxb:bindings>
             <namespace:prefix name="chg" />
         </jaxb:bindings>
     </jaxb:bindings>
 
-    <jaxb:bindings schemaLocation="ixn/ixn-1.3.xsd">
+    <jaxb:bindings schemaLocation="ixn/ixn-2.0.xsd">
         <jaxb:schemaBindings>
             <!--
             we don't include the minor version, because the
             generated Java class will be backwards compatible
             -->
-            <jaxb:package name="org.apache.isis.schema.ixn.v1"/>
+            <jaxb:package name="org.apache.isis.schema.ixn.v2"/>
         </jaxb:schemaBindings>
         <jaxb:bindings>
             <namespace:prefix name="ixn" />
         </jaxb:bindings>
     </jaxb:bindings>
-    <!-- since ixn-1.3.xsd does an xs:import of common-1.1.xsd, we need to specify common's package bindings -->
-    <jaxb:bindings schemaLocation="common/common-1.1.xsd">
+    <!-- since ixn-1.3.xsd does an xs:import of common-1.2.xsd, we need to specify common's package bindings -->
+    <jaxb:bindings schemaLocation="common/common-2.0.xsd">
         <jaxb:schemaBindings>
             <!--
             we don't include the minor version, because the
             generated Java class will be backwards compatible
             -->
-            <jaxb:package name="org.apache.isis.schema.common.v1"/>
+            <jaxb:package name="org.apache.isis.schema.common.v2"/>
         </jaxb:schemaBindings>
         <jaxb:bindings>
             <namespace:prefix name="com" />
         </jaxb:bindings>
     </jaxb:bindings>
     <!-- since ixn-1.3.xsd does an xs:import of cmd-1.4.xsd, we need to specify common's package bindings -->
-    <jaxb:bindings schemaLocation="cmd/cmd-1.4.xsd">
+    <jaxb:bindings schemaLocation="cmd/cmd-2.0.xsd">
         <jaxb:schemaBindings>
             <!--
             we don't include the minor version, because the
             generated Java class will be backwards compatible
             -->
-            <jaxb:package name="org.apache.isis.schema.cmd.v1"/>
+            <jaxb:package name="org.apache.isis.schema.cmd.v2"/>
         </jaxb:schemaBindings>
         <jaxb:bindings>
             <namespace:prefix name="cmd" />
         </jaxb:bindings>
     </jaxb:bindings>
 
-    <jaxb:bindings schemaLocation="metamodel/metamodel-1.0.xsd">
+    <jaxb:bindings schemaLocation="metamodel/metamodel-2.0.xsd">
         <jaxb:schemaBindings>
             <!--
             we don't include the minor version, because the
             generated Java class will be backwards compatible
             -->
-            <jaxb:package name="org.apache.isis.schema.metamodel.v1"/>
+            <jaxb:package name="org.apache.isis.schema.metamodel.v2"/>
         </jaxb:schemaBindings>
         <jaxb:bindings>
             <namespace:prefix name="mml" />
diff --git a/api/schema/src/main/resources/org/apache/isis/schema/chg/chg-1.1.xsd b/api/schema/src/main/resources/org/apache/isis/schema/chg/chg-2.0.xsd
similarity index 98%
rename from api/schema/src/main/resources/org/apache/isis/schema/chg/chg-1.1.xsd
rename to api/schema/src/main/resources/org/apache/isis/schema/chg/chg-2.0.xsd
index cb55449..23b3cd6 100644
--- a/api/schema/src/main/resources/org/apache/isis/schema/chg/chg-1.1.xsd
+++ b/api/schema/src/main/resources/org/apache/isis/schema/chg/chg-2.0.xsd
@@ -24,11 +24,11 @@
            xmlns:com="http://isis.apache.org/schema/common"
 >
 
-    <xs:import namespace="http://isis.apache.org/schema/common" schemaLocation="../common/common-1.1.xsd"/>
+    <xs:import namespace="http://isis.apache.org/schema/common" schemaLocation="../common/common-2.0.xsd"/>
 
     <xs:element name="changesDto">
         <xs:annotation>
-            <xs:documentation>Represents v1.1 of this schema (as per majorVersion.minorVersion @default attribute, below).  The changes (create/update/delete) to one or more domain objects within a transaction.  (nb: only published objects are included in these lists).
+            <xs:documentation>Represents v2.0 of this schema (as per majorVersion.minorVersion @default attribute, below).  The changes (create/update/delete) to one or more domain objects within a transaction.  (nb: only published objects are included in these lists).
             </xs:documentation>
         </xs:annotation>
         <xs:complexType>
diff --git a/api/schema/src/main/resources/org/apache/isis/schema/cmd/cmd-1.4.xsd b/api/schema/src/main/resources/org/apache/isis/schema/cmd/cmd-2.0.xsd
similarity index 98%
rename from api/schema/src/main/resources/org/apache/isis/schema/cmd/cmd-1.4.xsd
rename to api/schema/src/main/resources/org/apache/isis/schema/cmd/cmd-2.0.xsd
index 85a0e98..2954b38 100644
--- a/api/schema/src/main/resources/org/apache/isis/schema/cmd/cmd-1.4.xsd
+++ b/api/schema/src/main/resources/org/apache/isis/schema/cmd/cmd-2.0.xsd
@@ -23,7 +23,7 @@
            xmlns="http://isis.apache.org/schema/cmd"
            xmlns:com="http://isis.apache.org/schema/common">
 
-    <xs:import namespace="http://isis.apache.org/schema/common" schemaLocation="../common/common-1.1.xsd"/>
+    <xs:import namespace="http://isis.apache.org/schema/common" schemaLocation="../common/common-2.0.xsd"/>
 
     <xs:element name="commandsDto">
         <xs:annotation>
@@ -38,7 +38,7 @@
 
     <xs:element name="commandDto">
         <xs:annotation>
-            <xs:documentation>Represents v1.4 of this schema (as per majorVersion.minorVersion @default attribute, below).  Adds in 'commandsDto' and extending 'commandDto' to allow additional implementation-specific fields to be attached in 'userData' (a map).
+            <xs:documentation>Represents v2.0 of this schema (as per majorVersion.minorVersion @default attribute, below).  Adds in 'commandsDto' and extending 'commandDto' to allow additional implementation-specific fields to be attached in 'userData' (a map).
             </xs:documentation>
         </xs:annotation>
         <xs:complexType>
diff --git a/api/schema/src/main/resources/org/apache/isis/schema/common/common-1.1.xsd b/api/schema/src/main/resources/org/apache/isis/schema/common/common-2.0.xsd
similarity index 91%
rename from api/schema/src/main/resources/org/apache/isis/schema/common/common-1.1.xsd
rename to api/schema/src/main/resources/org/apache/isis/schema/common/common-2.0.xsd
index ac50abd..1eeb6a6 100644
--- a/api/schema/src/main/resources/org/apache/isis/schema/common/common-1.1.xsd
+++ b/api/schema/src/main/resources/org/apache/isis/schema/common/common-2.0.xsd
@@ -35,10 +35,19 @@
             <xs:element name="char" type="xs:string"/>
             <xs:element name="bigInteger" type="xs:integer"/>
             <xs:element name="bigDecimal" type="xs:decimal"/>
-            <xs:element name="dateTime" type="xs:dateTime"/>
+            <!-- java.time -->
             <xs:element name="localDate" type="xs:date"/>
             <xs:element name="localDateTime" type="xs:dateTime"/>
             <xs:element name="localTime" type="xs:time"/>
+            <xs:element name="offsetTime" type="xs:time"/>
+            <xs:element name="offsetDateTime" type="xs:dateTime"/>
+            <xs:element name="zonedDateTime" type="xs:dateTime"/>
+            <!-- joda -->
+            <xs:element name="jodaDateTime" type="xs:dateTime"/>
+            <xs:element name="jodaLocalDate" type="xs:date"/>
+            <xs:element name="jodaLocalTime" type="xs:time"/>
+            <xs:element name="jodaLocalDateTime" type="xs:dateTime"/>
+            <!--  -->
             <xs:element name="timestamp" type="xs:dateTime"/>
             <xs:element name="enum" type="enumDto"/>
             <xs:element name="reference" type="oidDto"/>
@@ -145,10 +154,19 @@
             <xs:enumeration value="bigInteger"/>
             <xs:enumeration value="bigDecimal"/>
             <xs:enumeration value="javaSqlTimestamp"/>
+            <!-- java.time -->
+            <xs:enumeration value="localDateTime"/>
+            <xs:enumeration value="localDate"/>
+            <xs:enumeration value="localTime"/>
+            <xs:enumeration value="offsetDateTime"/>
+            <xs:enumeration value="offsetTime"/>
+            <xs:enumeration value="zonedDateTime"/>
+            <!-- joda -->
             <xs:enumeration value="jodaDateTime"/>
             <xs:enumeration value="jodaLocalDate"/>
             <xs:enumeration value="jodaLocalTime"/>
             <xs:enumeration value="jodaLocalDateTime"/>
+            <!--  -->
             <xs:enumeration value="enum"/>
             <xs:enumeration value="reference"/>
             <xs:enumeration value="collection"/>
diff --git a/api/schema/src/main/resources/org/apache/isis/schema/ixn/ixn-1.3.xsd b/api/schema/src/main/resources/org/apache/isis/schema/ixn/ixn-2.0.xsd
similarity index 97%
rename from api/schema/src/main/resources/org/apache/isis/schema/ixn/ixn-1.3.xsd
rename to api/schema/src/main/resources/org/apache/isis/schema/ixn/ixn-2.0.xsd
index 63380a8..81be350 100644
--- a/api/schema/src/main/resources/org/apache/isis/schema/ixn/ixn-1.3.xsd
+++ b/api/schema/src/main/resources/org/apache/isis/schema/ixn/ixn-2.0.xsd
@@ -25,12 +25,12 @@
            xmlns:com="http://isis.apache.org/schema/common"
 >
 
-    <xs:import namespace="http://isis.apache.org/schema/common" schemaLocation="../common/common-1.1.xsd"/>
-    <xs:import namespace="http://isis.apache.org/schema/cmd" schemaLocation="../cmd/cmd-1.4.xsd"/>
+    <xs:import namespace="http://isis.apache.org/schema/common" schemaLocation="../common/common-2.0.xsd"/>
+    <xs:import namespace="http://isis.apache.org/schema/cmd" schemaLocation="../cmd/cmd-2.0.xsd"/>
 
     <xs:element name="interactionDto">
         <xs:annotation>
-            <xs:documentation>Represents v1.3 of this schema (as per majorVersion.minorVersion @default attribute, below); just updates to use cmd v1.4 schema.
+            <xs:documentation>Represents v2.0 of this schema (as per majorVersion.minorVersion @default attribute, below); just updates to use cmd v1.4 schema.
             </xs:documentation>
         </xs:annotation>
         <xs:complexType>
@@ -103,7 +103,7 @@
             </xs:element>
             <xs:element name="metrics" type="metricsDto">
                 <xs:annotation>
-                    <xs:documentation>Profiling metrics capturng the this time/number of objects affected as a result of performing this member interaction (invoke the action, or edit the property).
+                    <xs:documentation>Profiling metrics capturing the this time/number of objects affected as a result of performing this member interaction (invoke the action, or edit the property).
                     </xs:documentation>
                 </xs:annotation>
             </xs:element>
diff --git a/api/schema/src/main/resources/org/apache/isis/schema/metamodel/metamodel-1.0.xsd b/api/schema/src/main/resources/org/apache/isis/schema/metamodel/metamodel-2.0.xsd
similarity index 100%
rename from api/schema/src/main/resources/org/apache/isis/schema/metamodel/metamodel-1.0.xsd
rename to api/schema/src/main/resources/org/apache/isis/schema/metamodel/metamodel-2.0.xsd
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Parented.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Parented.java
index 7e12136..dc1996a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Parented.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Parented.java
@@ -25,7 +25,8 @@ import java.util.Objects;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 
 import static org.apache.isis.core.commons.internal.base._With.requires;
-import static org.apache.isis.core.metamodel.adapter.oid.Oid.*;
+import static org.apache.isis.core.metamodel.adapter.oid.Oid.marshaller;
+import static org.apache.isis.core.metamodel.adapter.oid.Oid.unmarshaller;
 
 final class Oid_Parented implements ParentedOid {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java
index ff270c4..e07a522 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java
@@ -24,8 +24,8 @@ import java.util.Objects;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.commons.internal.url.UrlDecoderUtil;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.schema.common.v1.BookmarkObjectState;
-import org.apache.isis.schema.common.v1.OidDto;
+import org.apache.isis.schema.common.v2.BookmarkObjectState;
+import org.apache.isis.schema.common.v2.OidDto;
 
 import static org.apache.isis.core.commons.internal.base._With.requires;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Value.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Value.java
index e14ee9b..2e4bcc8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Value.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Value.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.adapter.oid;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.schema.common.v1.OidDto;
+import org.apache.isis.schema.common.v2.OidDto;
 
 final class Oid_Value implements RootOid {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java
index 4c951b3..72eccd1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOid.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.adapter.oid;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.commons.internal.url.UrlDecoderUtil;
-import org.apache.isis.schema.common.v1.OidDto;
+import org.apache.isis.schema.common.v2.OidDto;
 
 public interface RootOid extends Oid {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java
index 5a2586b..8102eb4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext.java
@@ -30,10 +30,10 @@ import org.apache.isis.applib.services.xactn.TransactionState;
 import org.apache.isis.core.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.services.homepage.HomePageAction;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.security.authentication.manager.AuthenticationManager;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java
index ee90a02..2e8a5ae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingIoc.java
@@ -37,11 +37,11 @@ import org.apache.isis.core.commons.internal.ioc.IocContainer;
 import org.apache.isis.core.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.services.ServiceUtil;
 import org.apache.isis.core.metamodel.services.homepage.HomePageAction;
 import org.apache.isis.core.metamodel.services.homepage.HomePageResolverService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.security.authentication.manager.AuthenticationManager;
 import org.apache.isis.core.security.authorization.manager.AuthorizationManager;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
index 742e222..9831836 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
@@ -24,8 +24,8 @@ import java.lang.reflect.Method;
 import java.util.EnumSet;
 
 import org.apache.isis.applib.Identifier;
-import org.apache.isis.core.metamodel.facets.FacetFactory;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
 
 /**
  * Enumerates the features that a particular Facet can be applied to.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
index 3d54ee3..e1676eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
@@ -49,9 +49,9 @@ import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.reflection._Annotations;
 import org.apache.isis.core.commons.internal.reflection._Reflect;
-import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 import org.apache.isis.core.metamodel.commons.MethodUtil;
 import org.apache.isis.core.metamodel.commons.ThrowableExtensions;
+import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 
 import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
index 0211a0d..b84b0b0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
@@ -41,8 +41,8 @@ import org.apache.isis.core.commons.internal.base._With;
 import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ContributeeMemberFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ContributeeMemberFacetFactory.java
index 9cb1942..920e47f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ContributeeMemberFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ContributeeMemberFacetFactory.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets;
 
-import org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+import org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember;
 
 /**
  * A {@link FacetFactory} which is applied to only for {@link ContributeeMember}s.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java
index 6bce37f..5467ad2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java
@@ -27,14 +27,14 @@ import java.util.List;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
-import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacetDefault;
-import org.apache.isis.core.metamodel.specloader.CollectionUtils;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
+import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
+import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacetDefault;
+import org.apache.isis.core.metamodel.specloader.CollectionUtils;
 
 /**
  * non-final only so it can be mocked if need be.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java
index 2d0da86..5535ee6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets;
 
 import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
 
 /**
  * Indicates that the {@link FacetFactory} works by recognizing methods with a
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
index 21e8ded..5f93d6a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
@@ -21,12 +21,12 @@ package org.apache.isis.core.metamodel.facets;
 import java.util.EnumSet;
 
 import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.Getter;
 import lombok.NonNull;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 7eb14e4..65d2c12 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -26,6 +26,9 @@ import org.apache.isis.applib.events.domain.ActionDomainEvent;
 import org.apache.isis.applib.services.HasUniqueId;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Collections;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
@@ -41,9 +44,6 @@ import org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSema
 import org.apache.isis.core.metamodel.facets.actions.action.typeof.TypeOfFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.actions.fileaccept.FileAcceptFacetForActionAnnotation;
 import org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.ActionDomainEventDefaultFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.util.EventUtil;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java
index 82221f5..f8c038e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java
@@ -19,15 +19,13 @@
 
 package org.apache.isis.core.metamodel.facets.actions.action;
 
-import org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacet;
-import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
-import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacet;
+import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
+import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -36,6 +34,8 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionContributee;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java
index 146d95a..8b14832 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetForActionAnnotation.java
@@ -28,10 +28,10 @@ import org.apache.isis.applib.services.command.CommandDtoProcessor;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.metamodel.facets.CommandActionsConfiguration;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacetAbstract;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CommandFacetForActionAnnotation extends CommandFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java
index fb96e17..3103d57 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/command/CommandFacetFromConfiguration.java
@@ -22,9 +22,9 @@ package org.apache.isis.core.metamodel.facets.actions.action.command;
 import org.apache.isis.applib.annotation.CommandExecuteIn;
 import org.apache.isis.applib.annotation.CommandPersistence;
 import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CommandFacetFromConfiguration extends CommandFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForActionAnnotation.java
index 206b1cd..e5fad12 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/hidden/HiddenFacetForActionAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public class HiddenFacetForActionAnnotation extends HiddenFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacet.java
index 2c8a388..b96db27 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacet.java
@@ -19,10 +19,10 @@
 
 package org.apache.isis.core.metamodel.facets.actions.action.invocation;
 
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacet;
 import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
 import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
-import org.apache.isis.core.metamodel.facets.SingleClassValueFacet;
 
 /**
  * Corresponds to <tt>@Action(domainEvent=...)</tt> annotation in the Isis programming model.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacetAbstract.java
index c5d29f0..3ee7a3d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionDomainEventFacetAbstract.java
@@ -30,16 +30,16 @@ import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
+import org.apache.isis.core.metamodel.facets.DomainEventHelper;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
 import org.apache.isis.core.metamodel.interactions.ActionInteractionContext;
 import org.apache.isis.core.metamodel.interactions.ActionValidityContext;
 import org.apache.isis.core.metamodel.interactions.InteractionContext;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-import org.apache.isis.core.metamodel.facets.DomainEventHelper;
-import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 4027e27..6322ddc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -53,8 +53,6 @@ import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.ioc.BeanSort;
-import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
-import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.commons.MethodInvocationPreprocessor;
 import org.apache.isis.core.metamodel.commons.ThrowableExtensions;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -62,6 +60,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.CollectionUtils;
 import org.apache.isis.core.metamodel.facets.DomainEventHelper;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
+import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.services.ixn.InteractionDtoServiceInternal;
@@ -69,7 +69,7 @@ import org.apache.isis.core.metamodel.services.publishing.PublisherDispatchServi
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
+import org.apache.isis.schema.ixn.v2.ActionInvocationDto;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForActionAnnotation.java
index 3d9f8bb..9ff1bb0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/prototype/PrototypeFacetForActionAnnotation.java
@@ -25,9 +25,9 @@ import java.util.function.Supplier;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.core.commons.internal.environment.DeploymentType;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
 import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class PrototypeFacetForActionAnnotation extends PrototypeFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetForActionAnnotation.java
index 06200d5..2448ec1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetForActionAnnotation.java
@@ -25,10 +25,10 @@ import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.metamodel.facets.PublishActionsConfiguration;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
 import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacetAbstract;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class PublishedActionFacetForActionAnnotation extends PublishedActionFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetFromConfiguration.java
index c0a531b..d5483b9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/publishing/PublishedActionFacetFromConfiguration.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.action.publishing;
 
-import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacetAbstract;
 
 public class PublishedActionFacetFromConfiguration extends PublishedActionFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFallbackToNonIdempotent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFallbackToNonIdempotent.java
index 0d6980b..1dadd7f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFallbackToNonIdempotent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetFallbackToNonIdempotent.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets.actions.action.semantics;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
 
 public class ActionSemanticsFacetFallbackToNonIdempotent extends ActionSemanticsFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetForActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetForActionAnnotation.java
index 5f88196..b6a0863 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetForActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/semantics/ActionSemanticsFacetForActionAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class ActionSemanticsFacetForActionAnnotation extends ActionSemanticsFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
index e0f4cfa..76e118a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
@@ -19,23 +19,23 @@
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback;
 import org.apache.isis.core.metamodel.facets.actions.redirect.RedirectFacet;
 import org.apache.isis.core.metamodel.facets.actions.redirect.RedirectFacetFallback;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
-import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
+import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionLayoutAnnotation.java
index 3c1c1a5..47495da 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionLayoutAnnotation.java
@@ -22,9 +22,9 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class ActionPositionFacetForActionLayoutAnnotation extends ActionPositionFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionXml.java
index 4b56e18..be7cdda 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionPositionFacetForActionXml.java
@@ -20,9 +20,9 @@
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class ActionPositionFacetForActionXml extends ActionPositionFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java
index 97f5c35..75fbeb0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java
@@ -23,10 +23,10 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFaFacetForActionLayoutAnnotation extends CssClassFaFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java
index ba326a5..9e673da 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java
@@ -21,10 +21,10 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.layout.component.ActionLayoutData;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFaFacetForActionXml extends CssClassFaFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java
index be70def..adf6858 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFacetForActionLayoutAnnotation extends CssClassFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java
index ed49c5d..63e38d7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.layout.component.ActionLayoutData;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFacetForActionXml extends CssClassFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionLayoutAnnotation.java
index 8f4a88e..337fa5f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionLayoutAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public class HiddenFacetForActionLayoutAnnotation extends HiddenFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionXml.java
index dad42b9..3fe19e2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/HiddenFacetForActionXml.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.component.ActionLayoutData;
-import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public class HiddenFacetForActionXml extends HiddenFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
index 3d64240..3e43e1c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NotContributedFacetForActionLayoutAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Contributed;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 
 public class NotContributedFacetForActionLayoutAnnotation extends NotContributedFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionLayoutAnnotation.java
index 0603119..9175700 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionLayoutAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Redirect;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.redirect.RedirectFacet;
 import org.apache.isis.core.metamodel.facets.actions.redirect.RedirectFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class RedirectFacetFromActionLayoutAnnotation extends RedirectFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionXml.java
index 673fb2b..6be2bfc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/RedirectFacetFromActionXml.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import org.apache.isis.applib.annotation.Redirect;
 import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.redirect.RedirectFacet;
 import org.apache.isis.core.metamodel.facets.actions.redirect.RedirectFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class RedirectFacetFromActionXml extends RedirectFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacetFactory.java
index 16c1365..cefb6f5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacetFactory.java
@@ -21,11 +21,11 @@ package org.apache.isis.core.metamodel.facets.actions.notcontributed.derived;
 
 import java.lang.reflect.Method;
 
-import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public class NotContributedFacetDerivedFromMixinFacetFactory extends FacetFactoryAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java
index 94370ac..7e3d65b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/ActionParameterValidationFacet.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.validate;
 
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
 import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/hide/HiddenFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/hide/HiddenFacet.java
index 91d4662..f8d9259 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/hide/HiddenFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/hide/HiddenFacet.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.all.hide;
 
-import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 import org.apache.isis.core.metamodel.facets.WhereValueFacet;
+import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 
 /**
  * Hide a property, collection or action.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java
index 4adbac4..9aa024b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java
@@ -22,9 +22,9 @@ package org.apache.isis.core.metamodel.facets.all.i18n;
 import java.util.Map;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
+import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 
 public class DescribedAsFacetTranslated extends FacetAbstract implements DescribedAsFacet {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java
index 095361b..95e6260 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java
@@ -22,9 +22,9 @@ package org.apache.isis.core.metamodel.facets.all.i18n;
 import java.util.Map;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 
 public class NamedFacetTranslated extends FacetAbstract implements NamedFacet {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
index 8bcd767..73fe57d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
@@ -21,13 +21,13 @@ package org.apache.isis.core.metamodel.facets.all.i18n;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
 import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 
 public class TranslationFacetFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index 445bb8c..3fa56c3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -48,12 +48,12 @@ import org.apache.isis.core.metamodel.facets.collections.collection.modify.Colle
 import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForDomainEventFromDefault;
 import org.apache.isis.core.metamodel.facets.collections.collection.notpersisted.NotPersistedFacetForCollectionAnnotation;
 import org.apache.isis.core.metamodel.facets.collections.collection.typeof.TypeOfFacetOnCollectionFromCollectionAnnotation;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.CollectionDomainEventDefaultFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.util.EventUtil;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
index 214e7c1..31e8d4b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
@@ -30,9 +30,9 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.DomainEventHelper;
 import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 
 import static org.apache.isis.core.commons.internal.base._Casts.uncheckedCast;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromCollectionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromCollectionAnnotation.java
index 4308c0d..71cbfe9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromCollectionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromCollectionAnnotation.java
@@ -22,8 +22,8 @@ package org.apache.isis.core.metamodel.facets.collections.collection.modify;
 import org.apache.isis.applib.events.domain.CollectionDomainEvent;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 
 public class CollectionAddToFacetForDomainEventFromCollectionAnnotation
 extends CollectionAddToFacetForDomainEventFromAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromDefault.java
index 0071026..29c2a0d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromDefault.java
@@ -22,8 +22,8 @@ package org.apache.isis.core.metamodel.facets.collections.collection.modify;
 import org.apache.isis.applib.events.domain.CollectionDomainEvent;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 
 public class CollectionAddToFacetForDomainEventFromDefault
 extends CollectionAddToFacetForDomainEventFromAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
index 501ba4f..edd1404 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
@@ -31,9 +31,9 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.DomainEventHelper;
 import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 
 import static org.apache.isis.core.commons.internal.base._Casts.uncheckedCast;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromCollectionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromCollectionAnnotation.java
index 4fe9003..8739eda 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromCollectionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromCollectionAnnotation.java
@@ -22,8 +22,8 @@ package org.apache.isis.core.metamodel.facets.collections.collection.modify;
 import org.apache.isis.applib.events.domain.CollectionDomainEvent;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 
 public class CollectionRemoveFromFacetForDomainEventFromCollectionAnnotation extends
 CollectionRemoveFromFacetForDomainEventFromAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromDefault.java
index 8bd75dc..046e5aa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromDefault.java
@@ -22,8 +22,8 @@ package org.apache.isis.core.metamodel.facets.collections.collection.modify;
 import org.apache.isis.applib.events.domain.CollectionDomainEvent;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 
 public class CollectionRemoveFromFacetForDomainEventFromDefault extends
 CollectionRemoveFromFacetForDomainEventFromAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
index 486569d..bf65b45 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
@@ -24,9 +24,9 @@ import java.util.stream.Stream;
 
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
 
 import static org.apache.isis.core.commons.internal.base._NullSafe.isEmpty;
 import static org.apache.isis.core.commons.internal.collections._Arrays.toArray;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
index be1bd57..04fd87d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
@@ -25,9 +25,9 @@ import java.util.stream.Stream;
 
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java
index a06b6d5..ba1d283 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java
@@ -23,10 +23,10 @@ import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.specloader.CollectionUtils;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 
 /**
  * All {@link CollectionUtils collection types} are intrinsically
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
index 1b98c84..4e842f3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
@@ -25,13 +25,13 @@ import java.util.stream.Stream;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
-import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
 
 /**
  * There is no check that the value is a {@link Comparator}; instead this is done through
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PagedFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PagedFacetFromConfiguration.java
index 2225926..13539ac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PagedFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PagedFacetFromConfiguration.java
@@ -18,8 +18,8 @@
  */
 package org.apache.isis.core.metamodel.facets.fallback;
 
-import org.apache.isis.core.metamodel.facets.object.paged.PagedFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.paged.PagedFacetAbstract;
 
 public class PagedFacetFromConfiguration extends PagedFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java
index 6075599..e6e5e42 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/TitleFacetNone.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.fallback;
 
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public class TitleFacetNone extends TitleFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java
index 84b2287..ba17599 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java
@@ -21,6 +21,11 @@ package org.apache.isis.core.metamodel.facets.jaxb;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Modifier;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.OffsetDateTime;
+import java.time.ZonedDateTime;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Stream;
@@ -32,10 +37,6 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.commons.MethodUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -44,9 +45,13 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.recreatable.RecreatableObjectFacetForXmlRootElementAnnotation;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 /**
  * just adds a validator
@@ -229,6 +234,11 @@ implements MetaModelRefiner {
         }
         if(configuration.getReflector().getValidator().isJaxbViewModelDateTimeTypeAdapter()) {
             propertyValidators.add(new PropertyValidatorForDateTypes(java.sql.Timestamp.class));
+            propertyValidators.add(new PropertyValidatorForDateTypes(ZonedDateTime.class));
+            propertyValidators.add(new PropertyValidatorForDateTypes(OffsetDateTime.class));
+            propertyValidators.add(new PropertyValidatorForDateTypes(LocalDate.class));
+            propertyValidators.add(new PropertyValidatorForDateTypes(LocalDateTime.class));
+            propertyValidators.add(new PropertyValidatorForDateTypes(LocalTime.class));
             propertyValidators.add(new PropertyValidatorForDateTypes(org.joda.time.DateTime.class));
             propertyValidators.add(new PropertyValidatorForDateTypes(org.joda.time.LocalDate.class));
             propertyValidators.add(new PropertyValidatorForDateTypes(org.joda.time.LocalDateTime.class));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacet.java
index dec9798..ccb580f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/CssClassFacet.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets.members.cssclass;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 /**
  * The css class of a class, a property, collection, or an action.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java
index ccaaae4..27115aa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetAbstract.java
@@ -23,12 +23,12 @@ import java.util.function.Predicate;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.WhereValueFacetAbstract;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index 7cd76e1..f303af6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -26,13 +26,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
-import org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
+import org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public abstract class AutoCompleteFacetAbstract 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
index b93b908..b8b10a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
@@ -22,13 +22,13 @@ package org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable
 import java.util.stream.Stream;
 
 import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java
index 184703e..acdccab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java
@@ -19,11 +19,11 @@ package org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.CssClassFaFacetForDomainObjectLayoutAnnotation;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFaFacetForDomainObjectLayoutFactory extends CssClassFaFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java
index 38bae17..8c10c91 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java
@@ -19,11 +19,11 @@ package org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.CssClassFaFacetForViewModelLayoutAnnotation;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFaFacetForViewModelLayoutFactory extends CssClassFaFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethod.java
index 348359a..93e31e5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethod.java
@@ -31,8 +31,8 @@ import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.facets.object.disabled.DisabledObjectFacetAbstract;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public class DisabledObjectFacetViaMethod extends DisabledObjectFacetAbstract implements ImperativeFacet {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
index e64fb11..0393663 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
@@ -29,9 +29,9 @@ import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.object.disabled.DisabledObjectFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.facets.object.disabled.DisabledObjectFacet;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index d24a2b5..d571996 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -40,10 +40,22 @@ import org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent;
 import org.apache.isis.applib.services.HasUniqueId;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.ObjectSpecIdFacetFactory;
 import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
+import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
+import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete.AutoCompleteFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.choices.ChoicesFacetForDomainObjectAnnotation;
@@ -54,28 +66,16 @@ import org.apache.isis.core.metamodel.facets.object.domainobject.editing.Immutab
 import org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.publishing.PublishedObjectFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.recreatable.RecreatableObjectFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MetaModelValidatorForMixinTypes;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForValidationFailures;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
-import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
-import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacetAbstract;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
-import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.util.EventUtil;
 
 import lombok.val;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java
index 49596e7..ff8b8a6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java
@@ -25,9 +25,9 @@ import org.apache.isis.applib.annotation.Auditing;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.metamodel.facets.AuditObjectsConfiguration;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet;
 import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetFromConfiguration.java
index 72763b5..1d7f7fc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/auditing/AuditableFacetFromConfiguration.java
@@ -19,8 +19,8 @@
 package org.apache.isis.core.metamodel.facets.object.domainobject.auditing;
 
 
-import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacetAbstract;
 
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/ActionDomainEventDefaultFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/ActionDomainEventDefaultFacetForDomainObjectAnnotation.java
index f4392b5..989d318 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/ActionDomainEventDefaultFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/ActionDomainEventDefaultFacetForDomainObjectAnnotation.java
@@ -20,10 +20,10 @@
 package org.apache.isis.core.metamodel.facets.object.domainobject.domainevents;
 
 import org.apache.isis.applib.events.domain.ActionDomainEvent;
-import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
 
 /**
  * This does <i>NOT</i> implement {@link ActionDomainEventFacet}, rather it is to record the default type to use
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/CollectionDomainEventDefaultFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/CollectionDomainEventDefaultFacetForDomainObjectAnnotation.java
index b5a79d6..d9944f0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/CollectionDomainEventDefaultFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/CollectionDomainEventDefaultFacetForDomainObjectAnnotation.java
@@ -20,10 +20,10 @@
 package org.apache.isis.core.metamodel.facets.object.domainobject.domainevents;
 
 import org.apache.isis.applib.events.domain.CollectionDomainEvent;
-import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
 
 /**
  * This does <i>NOT</i> implement {@link ActionDomainEventFacet}, rather it is to record the default type to use
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/PropertyDomainEventDefaultFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/PropertyDomainEventDefaultFacetForDomainObjectAnnotation.java
index 1650a18..65ae96b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/PropertyDomainEventDefaultFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/domainevents/PropertyDomainEventDefaultFacetForDomainObjectAnnotation.java
@@ -20,10 +20,10 @@
 package org.apache.isis.core.metamodel.facets.object.domainobject.domainevents;
 
 import org.apache.isis.applib.events.domain.PropertyDomainEvent;
-import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
 
 /**
  * This does <i>NOT</i> implement {@link ActionDomainEventFacet}, rather it is to record the default type to use
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java
index 97e7023..cae1648 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class ObjectSpecIdFacetForDomainObjectAnnotation extends ObjectSpecIdFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetForDomainObjectAnnotation.java
index 1db799e..8223177 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetForDomainObjectAnnotation.java
@@ -24,9 +24,9 @@ import java.util.Optional;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.metamodel.facets.PublishObjectsConfiguration;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
 import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class PublishedObjectFacetForDomainObjectAnnotation extends PublishedObjectFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetFromConfiguration.java
index 81300ff..a1b1088 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/publishing/PublishedObjectFacetFromConfiguration.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.domainobject.publishing;
 
-import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacetAbstract;
 
 public class PublishedObjectFacetFromConfiguration extends PublishedObjectFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/recreatable/RecreatableObjectFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/recreatable/RecreatableObjectFacetForDomainObjectAnnotation.java
index 3929410..d978af1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/recreatable/RecreatableObjectFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/recreatable/RecreatableObjectFacetForDomainObjectAnnotation.java
@@ -23,8 +23,8 @@ import java.util.Objects;
 import java.util.Optional;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facets.object.recreatable.RecreatableObjectFacetDeclarativeInitializingAbstract;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java
index 645d2e1..c18d60f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java
@@ -21,10 +21,10 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFaFacetForDomainObjectLayoutAnnotation extends CssClassFaFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java
index 27c9247..5a9e0ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java
@@ -21,10 +21,10 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFaFacetForDomainObjectXml extends CssClassFaFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java
index 1e9ae75..16f32c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java
@@ -20,10 +20,10 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFaFacetForViewModelLayoutAnnotation extends CssClassFaFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java
index f969216..1391d1c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java
@@ -20,9 +20,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.cssclass.method.CssClassFacetMethod;
 
 public class CssClassFacetForDomainObjectLayoutAnnotation extends CssClassFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java
index 830ec18..964294f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFacetForDomainObjectXml extends CssClassFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java
index 8162dd5..aea7c84 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java
@@ -20,9 +20,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFacetForViewModelLayoutAnnotation extends CssClassFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
index 23399da..cb6a7d7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
@@ -27,11 +27,11 @@ import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.CssClassUiEvent;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
 import org.apache.isis.core.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.util.EventUtil;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java
index df4507a..de8afe8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java
@@ -27,11 +27,11 @@ import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.applib.events.ui.CssClassUiEvent;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
 import org.apache.isis.core.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.util.EventUtil;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
index 668d661..a70de77 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
@@ -27,10 +27,10 @@ import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.IconUiEvent;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
+import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.util.EventUtil;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java
index 6aff76a..ff095df 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java
@@ -27,10 +27,10 @@ import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.applib.events.ui.IconUiEvent;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
+import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.util.EventUtil;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForDomainObjectLayoutAnnotation.java
index 47b8f50..e59f74c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForDomainObjectLayoutAnnotation.java
@@ -22,9 +22,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 import java.util.Optional;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 
 public class PagedFacetForDomainObjectLayoutAnnotation extends PagedFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForViewModelLayoutAnnotation.java
index fa08569..8a315b5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PagedFacetForViewModelLayoutAnnotation.java
@@ -22,9 +22,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 
 public class PagedFacetForViewModelLayoutAnnotation extends PagedFacetAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
index d507cd3..dea72e2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
@@ -29,10 +29,10 @@ import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java
index 9aa39f2..71d32ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java
@@ -29,10 +29,10 @@ import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
index 62a57fe..8a5f07f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
@@ -20,9 +20,9 @@ package org.apache.isis.core.metamodel.facets.object.domainservice;
 
 
 import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet;
-import org.apache.isis.core.metamodel.facetapi.Facet;
 
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
index d17b1f2..08cbfa6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
@@ -25,18 +25,18 @@ import java.util.stream.Stream;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForValidationFailures;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForValidationFailures;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/IconFacetDerivedFromDomainServiceAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/IconFacetDerivedFromDomainServiceAnnotation.java
index 296abbe..975d4ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/IconFacetDerivedFromDomainServiceAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/IconFacetDerivedFromDomainServiceAnnotation.java
@@ -20,8 +20,8 @@ package org.apache.isis.core.metamodel.facets.object.domainservice.annotation;
 
 import java.util.Map;
 
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java
index 9e9dca5..9f271b0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/DomainServiceLayoutFacetFactory.java
@@ -23,9 +23,9 @@ import java.util.Objects;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java
index d0dde78..8617f8a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncodableFacetAbstract.java
@@ -20,10 +20,10 @@
 package org.apache.isis.core.metamodel.facets.object.encodeable;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
-import org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder;
 import org.apache.isis.core.metamodel.commons.ClassExtensions;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public abstract class EncodableFacetAbstract extends FacetAbstract implements EncodableFacet {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java
index 5a7ee4f..4aafdd6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethod.java
@@ -25,9 +25,9 @@ import java.util.Map;
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facets.object.hidden.HiddenObjectFacetAbstract;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.facets.object.hidden.HiddenObjectFacetAbstract;
 
 public class HiddenObjectFacetViaMethod extends HiddenObjectFacetAbstract {
     private final Method method;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
index dcf80cc..b90df94 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
@@ -30,9 +30,9 @@ import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.object.hidden.HiddenObjectFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.facets.object.hidden.HiddenObjectFacet;
 
 /**
  * Installs the {@link HiddenObjectFacetViaMethod} on the
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java
index df4e65b..196bd6a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java
@@ -21,11 +21,11 @@ package org.apache.isis.core.metamodel.facets.object.immutable;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet;
 
 /**
  * Indicates that the instances of this class are immutable and so may not be
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
index 0edf94f..9a32406 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
@@ -20,7 +20,6 @@
 package org.apache.isis.core.metamodel.facets.object.immutable;
 
 import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
-import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/CopyImmutableFacetOntoMembersFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/CopyImmutableFacetOntoMembersFactory.java
index 0cb98ca..fa500f2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/CopyImmutableFacetOntoMembersFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/immutableannot/CopyImmutableFacetOntoMembersFactory.java
@@ -22,8 +22,8 @@ package org.apache.isis.core.metamodel.facets.object.immutable.immutableannot;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public class CopyImmutableFacetOntoMembersFactory extends FacetFactoryAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java
index aee344f..a3e1757 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java
@@ -29,8 +29,8 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.facets.object.navparent.method.NavigableParentFacetMethod;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 
 /**
  * For detailed behavioral specification see
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
index 5dc1b00..8c5c26e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
@@ -26,22 +26,22 @@ import javax.inject.Inject;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.ObjectSpecIdFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorDefault;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacet.java
index a8ee6c4..f6dc13c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacet.java
@@ -19,10 +19,10 @@
 
 package org.apache.isis.core.metamodel.facets.object.objectvalidprops;
 
-import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
-import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
+import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 
 /**
  * Object-level {@link ValidatingInteractionAdvisor validator} that ensures that
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java
index 65f6375..8e26cd4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/ObjectValidPropertiesFacetAbstract.java
@@ -20,11 +20,11 @@
 package org.apache.isis.core.metamodel.facets.object.objectvalidprops;
 
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
-import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
-import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
+import org.apache.isis.core.metamodel.interactions.ValidityContext;
 
 public abstract class ObjectValidPropertiesFacetAbstract extends FacetAbstract implements ObjectValidPropertiesFacet {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/impl/ObjectValidPropertiesFacetImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/impl/ObjectValidPropertiesFacetImpl.java
index 3080a67..90a1e1e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/impl/ObjectValidPropertiesFacetImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectvalidprops/impl/ObjectValidPropertiesFacetImpl.java
@@ -20,9 +20,9 @@
 package org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacetAbstract;
+import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacet.java
index c14d340..16cbdea 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacet.java
@@ -19,10 +19,10 @@
 
 package org.apache.isis.core.metamodel.facets.object.parseable;
 
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.MultipleValueFacet;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 
 /**
  * Indicates that this class can parse an entry string.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java
index d1934c1..aefebf5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAbstract.java
@@ -20,12 +20,12 @@
 package org.apache.isis.core.metamodel.facets.object.parseable;
 
 import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.core.metamodel.commons.ClassExtensions;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.commons.ClassExtensions;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 
 public abstract class ParseableFacetAbstract 
 extends FacetAbstract
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java
index d642081..2dc815c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets.object.parseable;
 
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.commons.ClassUtil;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 import static org.apache.isis.core.commons.internal.base._Casts.uncheckedCast;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
index f30d2fd..c1d21e4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
@@ -24,17 +24,17 @@ import java.util.IllegalFormatException;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.adapters.ParsingException;
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
-import org.apache.isis.core.metamodel.interactions.ParseValueContext;
-import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResultSet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
 import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
+import org.apache.isis.core.metamodel.interactions.ParseValueContext;
+import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java
index 25bd67c..396bca6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ProjectionFacetFromProjectingProperty.java
@@ -20,9 +20,9 @@
 package org.apache.isis.core.metamodel.facets.object.projection;
 
 import org.apache.isis.applib.annotation.Projecting;
-import org.apache.isis.core.metamodel.facets.properties.projection.ProjectingFacet;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.projection.ProjectingFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/CssClassFacetDerivedFromProjectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/CssClassFacetDerivedFromProjectionFacet.java
index a4fbc04..a3e49d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/CssClassFacetDerivedFromProjectionFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/CssClassFacetDerivedFromProjectionFacet.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.facets.object.projection.ident;
 
 import java.util.Map;
 
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract2;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.projection.ProjectionFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/IconFacetDerivedFromProjectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/IconFacetDerivedFromProjectionFacet.java
index ada0a87..bc61dc9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/IconFacetDerivedFromProjectionFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/IconFacetDerivedFromProjectionFacet.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.object.projection.ident;
 
 import java.util.Map;
 
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.projection.ProjectionFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/TitleFacetDerivedFromProjectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/TitleFacetDerivedFromProjectionFacet.java
index 18d778e..7f8ac77 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/TitleFacetDerivedFromProjectionFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/projection/ident/TitleFacetDerivedFromProjectionFacet.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.facets.object.projection.ident;
 
 import java.util.Map;
 
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.projection.ProjectionFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 import lombok.val;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObject.java
index 2b37f2d..6b1e5fc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObject.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromViewModelFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromViewModelFacetFactory.java
index 94511c1..dd2e7d4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromViewModelFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromViewModelFacetFactory.java
@@ -21,10 +21,10 @@ package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import java.lang.reflect.Method;
 
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObject.java
index 5a544ff..6fb2851 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObject.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory.java
index ba2a5a0..3fb5ff7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory.java
@@ -21,10 +21,10 @@ package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import java.lang.reflect.Method;
 
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java
index 5ebb1fd..f838cde 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetAbstract.java
@@ -23,13 +23,13 @@ import java.lang.reflect.Method;
 import java.util.Map;
 
 import org.apache.isis.applib.ViewModel;
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
-import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
 import org.apache.isis.core.metamodel.commons.MethodExtensions;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
 
 public abstract class RecreatableObjectFacetAbstract extends FacetAbstract implements ViewModelFacet {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
index 7342210..cf4a77a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
@@ -24,10 +24,10 @@ import java.util.stream.Stream;
 import org.apache.isis.applib.services.urlencoding.UrlEncodingService;
 import org.apache.isis.core.commons.internal.memento._Mementos;
 import org.apache.isis.core.commons.internal.memento._Mementos.SerializingAdapter;
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
-import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
+import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
index 09f256e..718af72 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
@@ -30,17 +30,17 @@ import org.apache.isis.applib.RecreatableDomainObject;
 import org.apache.isis.applib.ViewModel;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 
 public class RecreatableObjectFacetFactory extends FacetFactoryAbstract
 implements MetaModelRefiner, PostConstructMethodCache {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableDomainObjectInterface.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableDomainObjectInterface.java
index b42591a..2cecf3f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableDomainObjectInterface.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableDomainObjectInterface.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import org.apache.isis.applib.RecreatableDomainObject;
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 
 public class RecreatableObjectFacetForRecreatableDomainObjectInterface extends RecreatableObjectFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectAnnotation.java
index 404c1bd..6ced65e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectAnnotation.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.recreatable;
 
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 
 public class RecreatableObjectFacetForRecreatableObjectAnnotation extends
 RecreatableObjectFacetDeclarativeInitializingAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectInterface.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectInterface.java
index 06d038a..8bde02f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectInterface.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForRecreatableObjectInterface.java
@@ -20,8 +20,8 @@
 package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import org.apache.isis.applib.ViewModel;
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 
 public class RecreatableObjectFacetForRecreatableObjectInterface extends RecreatableObjectFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForViewModelAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForViewModelAnnotation.java
index 689eae9..f516f8f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForViewModelAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForViewModelAnnotation.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.recreatable;
 
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 
 public class RecreatableObjectFacetForViewModelAnnotation extends
 RecreatableObjectFacetDeclarativeInitializingAbstract {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java
index 65e79f7..390dc9f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.urlencoding.UrlEncodingService;
-import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
 
 public class RecreatableObjectFacetForXmlRootElementAnnotation extends RecreatableObjectFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
index 56393fd..1c1c201 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
@@ -28,7 +28,6 @@ import java.util.stream.Collectors;
 import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaMethodsFactory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -37,6 +36,7 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.fallback.FallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaMethodsFactory;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 
 public class TitleAnnotationFacetFactory extends FacetFactoryAbstract
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacet.java
index 340119b..43d2f7b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacet.java
@@ -19,10 +19,10 @@
 
 package org.apache.isis.core.metamodel.facets.object.validating.validateobject;
 
-import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
 import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingCallbackFacet;
+import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java
index 8ccd835..0702d73 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/ValidateObjectFacetAbstract.java
@@ -20,11 +20,11 @@
 package org.apache.isis.core.metamodel.facets.object.validating.validateobject;
 
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
-import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
-import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
+import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public abstract class ValidateObjectFacetAbstract extends FacetAbstract implements ValidateObjectFacet {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethod.java
index 6081494..35f6c77 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethod.java
@@ -26,8 +26,8 @@ import java.util.Map;
 
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.object.validating.validateobject.ValidateObjectFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
index fed4856..ca201b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
@@ -23,13 +23,13 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
-import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
+import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
+import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 
 public class ValidateObjectFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
index c9e445d..bfde5c3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
@@ -34,8 +34,8 @@ import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
 import org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderUtil;
 
 import lombok.val;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java
index fa9c578..6d034b8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java
@@ -22,10 +22,10 @@ import java.math.BigDecimal;
 
 import javax.validation.constraints.Digits;
 
-import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacet;
 
 public class BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory extends FacetFactoryAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java
index 2192bbc..832c357 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation.java
@@ -20,10 +20,10 @@ package org.apache.isis.core.metamodel.facets.param.bigdecimal.javaxvaldigits;
 
 import java.util.Map;
 
-import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacet;
-import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacet;
+import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacetAbstract;
 
 public class BigDecimalFacetOnParameterFromJavaxValidationDigitsAnnotation extends BigDecimalValueFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java
index 98fcfa5..cbed839 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFacets.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.param.defaults.fromtype;
 
 import java.util.Map;
 
-import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFactory.java
index 02d4cce..8b92dae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/fromtype/ActionParameterDefaultFacetDerivedFromTypeFactory.java
@@ -19,9 +19,9 @@
 
 package org.apache.isis.core.metamodel.facets.param.defaults.fromtype;
 
-import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
 import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
index acfcbbe..b57ede1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
@@ -24,7 +24,6 @@ import java.util.List;
 
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.collections._Arrays;
-import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -34,6 +33,7 @@ import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacet.java
index 8908b5a..c57356c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacet.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.param.disable;
 
 import java.util.List;
 
-import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
 import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java
index 85ef998..3fb41b6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/ActionParameterDisabledFacetAbstract.java
@@ -20,11 +20,11 @@
 package org.apache.isis.core.metamodel.facets.param.disable;
 
 import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
-import org.apache.isis.core.metamodel.interactions.ActionArgUsabilityContext;
-import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.interactions.ActionArgUsabilityContext;
+import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 
 public abstract class ActionParameterDisabledFacetAbstract 
 extends FacetAbstract 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacet.java
index 22508a8..ad92b01 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacet.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.param.hide;
 
 import java.util.List;
 
-import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
index 4039949..67661a1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/ActionParameterHiddenFacetAbstract.java
@@ -20,11 +20,11 @@
 package org.apache.isis.core.metamodel.facets.param.hide;
 
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
-import org.apache.isis.core.metamodel.interactions.ActionArgVisibilityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.interactions.ActionArgVisibilityContext;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java
index 865c683..57c4a2a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java
@@ -23,9 +23,9 @@ import java.util.Optional;
 
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class CssClassFacetForParameterLayoutAnnotation extends CssClassFacetAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java
index 1a5c63a..a283387 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/mandatory/dflt/MandatoryFacetOnParametersDefaultFactory.java
@@ -19,13 +19,13 @@
 
 package org.apache.isis.core.metamodel.facets.param.mandatory.dflt;
 
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
 
 /**
  * Simply installs a {@link MandatoryFacetDefault} onto all properties and
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
index f2bd93a..2892d5b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
@@ -23,6 +23,11 @@ import javax.annotation.Nullable;
 import javax.validation.constraints.Pattern;
 
 import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.facets.param.parameter.fileaccept.FileAcceptFacetForParameterAnnotation;
 import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetForParameterAnnotation;
 import org.apache.isis.core.metamodel.facets.param.parameter.mandatory.MandatoryFacetInvertedByNullableAnnotationOnParameter;
@@ -30,11 +35,6 @@ import org.apache.isis.core.metamodel.facets.param.parameter.maxlen.MaxLengthFac
 import org.apache.isis.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForParameterAnnotation;
 import org.apache.isis.core.metamodel.facets.param.parameter.regex.RegExFacetForParameterAnnotation;
 import org.apache.isis.core.metamodel.facets.param.parameter.regex.RegExFacetForPatternAnnotationOnParameter;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForConflictingOptionality;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacet.java
index b5d3da7..d2e1e5c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacet.java
@@ -19,9 +19,9 @@
 
 package org.apache.isis.core.metamodel.facets.param.validate;
 
+import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
-import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java
index 4308740..d5f5c07 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/ActionParameterValidationFacetAbstract.java
@@ -20,11 +20,11 @@
 package org.apache.isis.core.metamodel.facets.param.validate;
 
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
-import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
-import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
+import org.apache.isis.core.metamodel.interactions.ValidityContext;
 
 public abstract class ActionParameterValidationFacetAbstract extends FacetAbstract implements ActionParameterValidationFacet {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
index 7087f83..e33989a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.metamodel.facets.param.validate.ActionParameterValidationFacet;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -31,6 +30,7 @@ import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
 import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.param.validate.ActionParameterValidationFacet;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
index 3cebb1b..d4e8ee6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
@@ -31,9 +31,9 @@ import org.apache.isis.core.metamodel.facets.CollectionUtils;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
+import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacetAbstract;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
index dcbb29f..ac00f32 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -28,6 +28,14 @@ import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.events.domain.PropertyDomainEvent;
 import org.apache.isis.applib.services.HasUniqueId;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.PropertyDomainEventDefaultFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.properties.projection.ProjectingFacetFromPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.command.CommandFacetForPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForPropertyAnnotation;
@@ -48,14 +56,6 @@ import org.apache.isis.core.metamodel.facets.properties.property.notpersisted.No
 import org.apache.isis.core.metamodel.facets.properties.property.publishing.PublishedPropertyFacetForPropertyAnnotation;
 import org.apache.isis.core.metamodel.facets.properties.property.regex.RegExFacetForPatternAnnotationOnProperty;
 import org.apache.isis.core.metamodel.facets.properties.property.regex.RegExFacetForPropertyAnnotation;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
-import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.PropertyDomainEventDefaultFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
 import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
index 6b6ace1..9acd0c2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
@@ -46,7 +46,7 @@ import org.apache.isis.core.metamodel.services.ixn.InteractionDtoServiceInternal
 import org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.ixn.v1.PropertyEditDto;
+import org.apache.isis.schema.ixn.v2.PropertyEditDto;
 
 import static org.apache.isis.core.commons.internal.base._Casts.uncheckedCast;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertyModifyFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertyModifyFacetFactory.java
index 8435ddf..e560079 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertyModifyFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertyModifyFacetFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.properties.update;
 import java.lang.reflect.Method;
 
 import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaModifyMethod;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -30,6 +29,7 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaModifyMethod;
 
 public class PropertyModifyFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java
index e056228..8d6db2a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java
@@ -23,10 +23,6 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaClearMethod;
-import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod;
-import org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod;
-import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -35,6 +31,10 @@ import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaClearMethod;
+import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod;
+import org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod;
+import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod;
 
 public class PropertySetAndClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacet.java
index 8d3934e..1d2295d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/init/PropertyInitializationFacet.java
@@ -19,10 +19,10 @@
 
 package org.apache.isis.core.metamodel.facets.properties.update.init;
 
-import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
-import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
+import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacet.java
index a4e6f9b..1b4fa5a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/modify/PropertySetterFacet.java
@@ -19,11 +19,11 @@
 
 package org.apache.isis.core.metamodel.facets.properties.update.modify;
 
-import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
-import org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacet;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
+import org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
index b67c800..dfbdcdc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
@@ -34,11 +34,11 @@ import org.apache.isis.applib.adapters.EncodingException;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
-import org.apache.isis.core.metamodel.facets.value.date.DateValueFacet;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
+import org.apache.isis.core.metamodel.facets.value.date.DateValueFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 public abstract class ValueSemanticsProviderAbstractTemporal<T> 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanPrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanPrimitiveValueSemanticsProvider.java
index fe0b0dc..73e044a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanPrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanPrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.booleans;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/BytePrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/BytePrimitiveValueSemanticsProvider.java
index 670648d..734a5bd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/BytePrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/BytePrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.bytes;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharPrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharPrimitiveValueSemanticsProvider.java
index 16ef7fb..5e48bdda 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharPrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharPrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.chars;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java
index 347de93..1c9c9f2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java
@@ -25,10 +25,10 @@ import java.util.Calendar;
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.clock.Clock;
-import org.apache.isis.core.metamodel.facets.value.dateutil.JavaUtilDateValueSemanticsProvider;
-import org.apache.isis.core.metamodel.facets.value.timesql.JavaSqlTimeValueSemanticsProvider;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.value.date.DateValueSemanticsProviderAbstract;
+import org.apache.isis.core.metamodel.facets.value.dateutil.JavaUtilDateValueSemanticsProvider;
+import org.apache.isis.core.metamodel.facets.value.timesql.JavaSqlTimeValueSemanticsProvider;
 
 /**
  * An adapter that handles {@link java.sql.Date} with only date component.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoublePrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoublePrimitiveValueSemanticsProvider.java
index e60758b..052ea51 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoublePrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoublePrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.doubles;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatPrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatPrimitiveValueSemanticsProvider.java
index b5accea..ffa6f7b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatPrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatPrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.floats;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntPrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntPrimitiveValueSemanticsProvider.java
index 38d5210..cb7627e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntPrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntPrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.integer;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongPrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongPrimitiveValueSemanticsProvider.java
index 03c10f2..badf78e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongPrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongPrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.longs;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortPrimitiveValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortPrimitiveValueSemanticsProvider.java
index 466438d..bd91523 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortPrimitiveValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortPrimitiveValueSemanticsProvider.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.facets.value.shortint;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timejodalocal/JodaLocalTimeValueFacetSimpleFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timejodalocal/JodaLocalTimeValueFacetSimpleFactory.java
index a087565..c1d2961 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timejodalocal/JodaLocalTimeValueFacetSimpleFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timejodalocal/JodaLocalTimeValueFacetSimpleFactory.java
@@ -22,8 +22,8 @@ package org.apache.isis.core.metamodel.facets.value.timejodalocal;
 import org.joda.time.LocalDate;
 import org.joda.time.LocalTime;
 
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacetSimple;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacetSimple;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
 
 public class JodaLocalTimeValueFacetSimpleFactory extends ValueFacetUsingSemanticsProviderFactory<LocalDate> {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
index 8186377..b405dab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
@@ -28,9 +28,9 @@ import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.InvalidEntryException;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 
 public class JavaSqlTimeStampValueSemanticsProvider
 extends TimeStampValueSemanticsProviderAbstract<java.sql.Timestamp> {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
index 1b84220..db7e6a9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
@@ -20,12 +20,12 @@ package org.apache.isis.core.metamodel.objectmanager;
 
 import javax.annotation.Nullable;
 
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.core.metamodel.objectmanager.identify.ObjectIdentifier;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.objectmanager.refresh.ObjectRefresher;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
index a439cda..97274f8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
@@ -28,11 +28,11 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.core.metamodel.objectmanager.identify.ObjectIdentifier;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.objectmanager.refresh.ObjectRefresher;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
 
 import lombok.Getter;
 import lombok.val;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
index c46840b..104cf7b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
@@ -21,10 +21,10 @@ package org.apache.isis.core.metamodel.objectmanager.identify;
 import java.util.UUID;
 
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.objectmanager.identify.ObjectIdentifier.Handler;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
index f898542..719fd5c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
@@ -22,10 +22,10 @@ package org.apache.isis.core.metamodel.postprocessors.param;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacetAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
index ecd8cd9..d69dd43 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
@@ -30,30 +30,6 @@ import org.apache.isis.applib.events.domain.CollectionDomainEvent;
 import org.apache.isis.applib.events.domain.PropertyDomainEvent;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.reflection._Annotations;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType;
-import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
-import org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFactory;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
-import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
-import org.apache.isis.core.metamodel.facets.properties.choices.enums.PropertyChoicesFacetDerivedFromChoicesFacet;
-import org.apache.isis.core.metamodel.facets.properties.choices.enums.PropertyChoicesFacetDerivedFromChoicesFacetFactory;
-import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
-import org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromDefaultedFacet;
-import org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromTypeFactory;
-import org.apache.isis.core.metamodel.facets.properties.disabled.fromimmutable.DisabledFacetOnPropertyDerivedFromImmutable;
-import org.apache.isis.core.metamodel.facets.properties.disabled.fromimmutable.DisabledFacetOnPropertyDerivedFromImmutableFactory;
-import org.apache.isis.core.metamodel.facets.properties.property.PropertyAnnotationFacetFactory;
-import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet;
-import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetAbstract;
-import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetForPropertyAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromType;
-import org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -70,10 +46,16 @@ import org.apache.isis.core.metamodel.facets.collections.collection.modify.Colle
 import org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionDomainEventFacetForCollectionAnnotation;
 import org.apache.isis.core.metamodel.facets.collections.disabled.fromimmutable.DisabledFacetOnCollectionDerivedFromImmutable;
 import org.apache.isis.core.metamodel.facets.collections.disabled.fromimmutable.DisabledFacetOnCollectionDerivedFromImmutableFactory;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType;
+import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet;
 import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.ActionDomainEventDefaultFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.CollectionDomainEventDefaultFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.PropertyDomainEventDefaultFacetForDomainObjectAnnotation;
+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.projection.ProjectionFacetFromProjectingProperty;
 import org.apache.isis.core.metamodel.facets.object.projection.ident.IconFacetDerivedFromProjectionFacet;
@@ -81,6 +63,8 @@ import org.apache.isis.core.metamodel.facets.object.projection.ident.TitleFacetD
 import org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnCollectionDerivedFromRecreatableObject;
 import org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnCollectionDerivedFromViewModelFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnPropertyDerivedFromRecreatableObject;
+import org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
@@ -90,10 +74,26 @@ import org.apache.isis.core.metamodel.facets.param.choices.enums.ActionParameter
 import org.apache.isis.core.metamodel.facets.param.choices.enums.ActionParameterChoicesFacetDerivedFromChoicesFacetFactory;
 import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
 import org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets;
+import org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFactory;
 import org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory;
 import org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType;
 import org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType;
 import org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
+import org.apache.isis.core.metamodel.facets.properties.choices.enums.PropertyChoicesFacetDerivedFromChoicesFacet;
+import org.apache.isis.core.metamodel.facets.properties.choices.enums.PropertyChoicesFacetDerivedFromChoicesFacetFactory;
+import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
+import org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromDefaultedFacet;
+import org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromTypeFactory;
+import org.apache.isis.core.metamodel.facets.properties.disabled.fromimmutable.DisabledFacetOnPropertyDerivedFromImmutable;
+import org.apache.isis.core.metamodel.facets.properties.disabled.fromimmutable.DisabledFacetOnPropertyDerivedFromImmutableFactory;
+import org.apache.isis.core.metamodel.facets.properties.property.PropertyAnnotationFacetFactory;
+import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet;
+import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetAbstract;
+import org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetForPropertyAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromType;
+import org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory;
 import org.apache.isis.core.metamodel.progmodel.ObjectSpecificationPostProcessor;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java
index 0d1e955..0144278 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java
@@ -24,10 +24,10 @@ import java.util.function.Supplier;
 import java.util.stream.Stream;
 
 import org.apache.isis.core.commons.internal.functions._Functions;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.facets.FacetFactory;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.NonNull;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
index 116d188..8f10da9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
@@ -29,11 +29,11 @@ import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Multimaps;
 import org.apache.isis.core.commons.internal.collections._Multimaps.SetMultimap;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 
 import lombok.EqualsAndHashCode;
 import lombok.Value;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilter.java
index 754c001..c60299c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilter.java
@@ -24,8 +24,8 @@ import java.util.function.Predicate;
 import javax.annotation.Nullable;
 
 import org.apache.isis.core.commons.internal.functions._Predicates;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 
 import static org.apache.isis.core.commons.internal.base._NullSafe.isEmpty;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilterDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilterDefault.java
index 14c1bbc..400ad26 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilterDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelInitFilterDefault.java
@@ -28,10 +28,11 @@ import javax.inject.Named;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 
-import static org.apache.isis.core.metamodel.progmodel.ProgrammingModelInitFilter.*;
+import static org.apache.isis.core.metamodel.progmodel.ProgrammingModelInitFilter.excluding;
+import static org.apache.isis.core.metamodel.progmodel.ProgrammingModelInitFilter.excludingNone;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorLegacy.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorLegacy.java
index efb0c12..7ae2f88 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorLegacy.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorLegacy.java
@@ -41,8 +41,8 @@ import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.collections._Collections;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 import org.apache.isis.core.metamodel.commons.ToString;
+import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 import org.apache.isis.core.metamodel.spec.InjectorMethodEvaluator;
 
 import lombok.val;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index 40833de..2013346 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -43,21 +43,21 @@ import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.metamodel.services.ApplicationFeaturesInitConfiguration;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
+import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember;
 
 import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java
index 0f5ff55..6bcc941 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java
@@ -24,8 +24,8 @@ import java.util.Set;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.commons.internal.base._Blackhole;
 import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
 import org.apache.isis.core.metamodel.commons.ClassUtil;
+import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/command/CommandDtoServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/command/CommandDtoServiceInternal.java
index 43f98d9..fb35499 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/command/CommandDtoServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/command/CommandDtoServiceInternal.java
@@ -24,9 +24,9 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.cmd.v1.ActionDto;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.PropertyDto;
+import org.apache.isis.schema.cmd.v2.ActionDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.PropertyDto;
 
 /**
  * Used to create mementos of a command, such that it can be persisted and then executed either immediately (ie invoke
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index d46fd97..cb0e0fb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -55,6 +55,9 @@ import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.environment.IsisSystemEnvironment;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionXml;
 import org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionXml;
 import org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionXml;
@@ -68,6 +71,15 @@ import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFace
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
+import org.apache.isis.core.metamodel.facets.collections.layout.CssClassFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.layout.DescribedAsFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.layout.HiddenFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.layout.NamedFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.layout.PagedFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.layout.SortedByFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
@@ -80,19 +92,6 @@ import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.Described
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.NamedFacetForDomainObjectXml;
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.PluralFacetForDomainObjectXml;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
-import org.apache.isis.core.metamodel.facets.collections.layout.CssClassFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.DescribedAsFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.HiddenFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.NamedFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.PagedFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.SortedByFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
@@ -115,6 +114,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 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 lombok.extern.log4j.Log4j2;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ixn/InteractionDtoServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ixn/InteractionDtoServiceInternal.java
index 68b86d1..5a0e89b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ixn/InteractionDtoServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ixn/InteractionDtoServiceInternal.java
@@ -24,8 +24,8 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
-import org.apache.isis.schema.ixn.v1.PropertyEditDto;
+import org.apache.isis.schema.ixn.v2.ActionInvocationDto;
+import org.apache.isis.schema.ixn.v2.PropertyEditDto;
 
 public interface InteractionDtoServiceInternal {
 
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 4cf3aee..b9e154b 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
@@ -42,8 +42,8 @@ import org.apache.isis.applib.util.ZipWriter;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
index d762457..f56c9aa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
@@ -32,24 +32,22 @@ import org.apache.isis.applib.services.metamodel.DomainMember;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
 import org.apache.isis.core.metamodel.facets.actions.validate.ActionValidationFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateAddToFacet;
+import org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacet;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacet;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
 import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
+import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet;
-import org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember;
-import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.ImperativeFacet;
-import org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateAddToFacet;
-import org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacet;
-import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
 import org.apache.isis.core.metamodel.services.devutils.MemberType;
 import org.apache.isis.core.metamodel.spec.Hierarchical;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -58,6 +56,8 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 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.specimpl.ContributeeMember;
+import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java
index b36d9e5..c40600c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelExporter.java
@@ -34,7 +34,6 @@ import org.apache.isis.applib.util.schema.CommonDtoUtils;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
@@ -46,16 +45,17 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.metamodel.v1.Action;
-import org.apache.isis.schema.metamodel.v1.Collection;
-import org.apache.isis.schema.metamodel.v1.DomainClassDto;
-import org.apache.isis.schema.metamodel.v1.FacetAttr;
-import org.apache.isis.schema.metamodel.v1.Member;
-import org.apache.isis.schema.metamodel.v1.MetamodelDto;
-import org.apache.isis.schema.metamodel.v1.Param;
-import org.apache.isis.schema.metamodel.v1.Property;
-import org.apache.isis.schema.metamodel.v1.ScalarParam;
-import org.apache.isis.schema.metamodel.v1.VectorParam;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.schema.metamodel.v2.Action;
+import org.apache.isis.schema.metamodel.v2.Collection;
+import org.apache.isis.schema.metamodel.v2.DomainClassDto;
+import org.apache.isis.schema.metamodel.v2.FacetAttr;
+import org.apache.isis.schema.metamodel.v2.Member;
+import org.apache.isis.schema.metamodel.v2.MetamodelDto;
+import org.apache.isis.schema.metamodel.v2.Param;
+import org.apache.isis.schema.metamodel.v2.Property;
+import org.apache.isis.schema.metamodel.v2.ScalarParam;
+import org.apache.isis.schema.metamodel.v2.VectorParam;
 
 import lombok.val;
 
@@ -198,7 +198,7 @@ class MetaModelExporter {
 
         final DomainClassDto domainClass = lookupDomainClass(specification, domainClassByObjectSpec, config);
         if(domainClass.getFacets() == null) {
-            domainClass.setFacets(new org.apache.isis.schema.metamodel.v1.FacetHolder.Facets());
+            domainClass.setFacets(new org.apache.isis.schema.metamodel.v2.FacetHolder.Facets());
         }
         addFacets(specification, domainClass.getFacets(), config);
 
@@ -287,7 +287,7 @@ class MetaModelExporter {
 
         Property propertyType = new Property();
         propertyType.setId(otoa.getId());
-        propertyType.setFacets(new org.apache.isis.schema.metamodel.v1.FacetHolder.Facets());
+        propertyType.setFacets(new org.apache.isis.schema.metamodel.v2.FacetHolder.Facets());
         final ObjectSpecification specification = otoa.getSpecification();
         final DomainClassDto value = lookupDomainClass(specification, domainClassByObjectSpec, config);
         propertyType.setType(value);
@@ -302,7 +302,7 @@ class MetaModelExporter {
             final MetaModelService.Config config) {
         Collection collectionType = new Collection();
         collectionType.setId(otoa.getId());
-        collectionType.setFacets(new org.apache.isis.schema.metamodel.v1.FacetHolder.Facets());
+        collectionType.setFacets(new org.apache.isis.schema.metamodel.v2.FacetHolder.Facets());
         final ObjectSpecification specification = otoa.getSpecification();
         final DomainClassDto value = lookupDomainClass(specification, domainClassByObjectSpec, config);
         collectionType.setType(value);
@@ -317,7 +317,7 @@ class MetaModelExporter {
             final MetaModelService.Config config) {
         Action actionType = new Action();
         actionType.setId(oa.getId());
-        actionType.setFacets(new org.apache.isis.schema.metamodel.v1.FacetHolder.Facets());
+        actionType.setFacets(new org.apache.isis.schema.metamodel.v2.FacetHolder.Facets());
         actionType.setParams(new Action.Params());
 
         final ObjectSpecification specification = oa.getReturnType();
@@ -356,7 +356,7 @@ class MetaModelExporter {
                 ? new ScalarParam()
                         : new VectorParam();
                 parameterType.setId(parameter.getId());
-                parameterType.setFacets(new org.apache.isis.schema.metamodel.v1.FacetHolder.Facets());
+                parameterType.setFacets(new org.apache.isis.schema.metamodel.v2.FacetHolder.Facets());
 
                 final ObjectSpecification specification = parameter.getSpecification();
                 final DomainClassDto value = lookupDomainClass(specification, domainClassByObjectSpec, config);
@@ -368,10 +368,10 @@ class MetaModelExporter {
 
     private void addFacets(
             final FacetHolder facetHolder,
-            final org.apache.isis.schema.metamodel.v1.FacetHolder.Facets facets,
+            final org.apache.isis.schema.metamodel.v2.FacetHolder.Facets facets,
             final MetaModelService.Config config) {
 
-        final List<org.apache.isis.schema.metamodel.v1.Facet> facetList = facets.getFacet();
+        final List<org.apache.isis.schema.metamodel.v2.Facet> facetList = facets.getFacet();
         facetHolder.streamFacets()
         .filter(facet -> !facet.isFallback() || !config.isIgnoreNoop())
         .map(facet -> asXsdType(facet, config))
@@ -380,10 +380,10 @@ class MetaModelExporter {
         sortFacets(facetList);
     }
 
-    private org.apache.isis.schema.metamodel.v1.Facet asXsdType(
+    private org.apache.isis.schema.metamodel.v2.Facet asXsdType(
             final Facet facet,
             final MetaModelService.Config config) {
-        final org.apache.isis.schema.metamodel.v1.Facet facetType = new org.apache.isis.schema.metamodel.v1.Facet();
+        final org.apache.isis.schema.metamodel.v2.Facet facetType = new org.apache.isis.schema.metamodel.v2.Facet();
         facetType.setId(facet.facetType().getCanonicalName());
         facetType.setFqcn(facet.getClass().getCanonicalName());
 
@@ -394,7 +394,7 @@ class MetaModelExporter {
 
     private void addFacetAttributes(
             final Facet facet,
-            final org.apache.isis.schema.metamodel.v1.Facet facetType,
+            final org.apache.isis.schema.metamodel.v2.Facet facetType,
             final MetaModelService.Config config) {
 
         Map<String, Object> attributeMap = _Maps.newTreeMap();
@@ -414,7 +414,7 @@ class MetaModelExporter {
     }
 
     private void addAttribute(
-            final org.apache.isis.schema.metamodel.v1.Facet facetType,
+            final org.apache.isis.schema.metamodel.v2.Facet facetType,
             final String key, final String str) {
         if(str == null) {
             return;
@@ -451,9 +451,10 @@ class MetaModelExporter {
         });
     }
 
-    private void sortFacets(final List<org.apache.isis.schema.metamodel.v1.Facet> facets) {
-        Collections.sort(facets, new Comparator<org.apache.isis.schema.metamodel.v1.Facet>() {
-            @Override public int compare(final org.apache.isis.schema.metamodel.v1.Facet o1, final org.apache.isis.schema.metamodel.v1.Facet o2) {
+    private void sortFacets(final List<org.apache.isis.schema.metamodel.v2.Facet> facets) {
+        Collections.sort(facets, new Comparator<org.apache.isis.schema.metamodel.v2.Facet>() {
+            @Override public int compare(final org.apache.isis.schema.metamodel.v2.Facet o1, 
+                    final org.apache.isis.schema.metamodel.v2.Facet o2) {
                 return o1.getId().compareTo(o2.getId());
             }
         });
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
index efd04d4..bb39922 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
@@ -42,7 +42,6 @@ import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.ioc.BeanSort;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureId;
 import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureType;
@@ -54,7 +53,8 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.metamodel.v1.MetamodelDto;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.schema.metamodel.v2.MetamodelDto;
 
 @Service
 @Named("isisMetaModel.MetaModelServiceDefault")
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
index 1e483fc..1a58196 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
@@ -30,8 +30,8 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.title.TitleService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index fa56b0e..1c86790 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -38,7 +38,14 @@ import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.commons.ClassExtensions;
+import org.apache.isis.core.metamodel.commons.MethodExtensions;
+import org.apache.isis.core.metamodel.commons.MethodUtil;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.ObjectVisibilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
@@ -46,13 +53,6 @@ import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoaderDefault;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.commons.ClassExtensions;
-import org.apache.isis.core.metamodel.commons.MethodExtensions;
-import org.apache.isis.core.metamodel.commons.MethodUtil;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
-import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 
 import lombok.AccessLevel;
 import lombok.EqualsAndHashCode;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 97cc115..8055d6d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -29,14 +29,23 @@ import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.internal.collections._Streams;
 import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.consent.InteractionResult;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 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.objectspecid.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet;
+import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
+import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.interactions.InteractionContext;
@@ -50,15 +59,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
 import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.consent.InteractionResult;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
-import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
-import org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet;
-import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
-import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 
 import lombok.val;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index d151ae3..9c14506 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -39,6 +39,8 @@ import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Sets;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacet;
 import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
@@ -48,14 +50,12 @@ import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
 import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet;
-import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.object.wizard.WizardFacet;
 import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderFacetComparator;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
 
 import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
index 79926a0..a4ec3ec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
@@ -26,10 +26,10 @@ import javax.annotation.Nullable;
 import javax.enterprise.inject.Vetoed;
 
 import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
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 f7145d8..3510d89 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
@@ -33,17 +33,17 @@ import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Maps;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+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.value.ValueFacet;
-import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderComparator;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
 
 /**
  * Provides reflective access to a field on a domain object.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
index 52e7caf..caf7dd0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
@@ -28,10 +28,10 @@ import javax.annotation.meta.When;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-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.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+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.layout.memberorderfacet.MemberOrderFacetComparator;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
index 88360a4..d871fb8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
@@ -23,13 +23,13 @@ import java.util.function.Consumer;
 
 import javax.annotation.Nullable;
 
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutor;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
-import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
index a438f28..001b93f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
@@ -47,26 +47,26 @@ import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistry;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistryHolder;
 import org.apache.isis.core.config.metamodel.specloader.IntrospectionMode;
-import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutor;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
-import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract;
-import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
-import org.apache.isis.core.metamodel.specloader.specimpl.standalonelist.ObjectSpecificationOnStandaloneList;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorAbstract;
-import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelService;
 import org.apache.isis.core.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
+import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutor;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorDefault;
-import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorForCollections;
+import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
 import org.apache.isis.core.metamodel.spec.FreeStandingList;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
+import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
+import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
+import org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract;
+import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
+import org.apache.isis.core.metamodel.specloader.specimpl.standalonelist.ObjectSpecificationOnStandaloneList;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorAbstract;
+import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
 import org.apache.isis.core.metamodel.valuetypes.ValueTypeProviderDefault;
 import org.apache.isis.core.metamodel.valuetypes.ValueTypeRegistry;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index 2291d58..5eb21fb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -39,9 +39,6 @@ import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.reflection._Annotations;
-import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.specloader.traverser.TypeExtractorMethodReturn;
 import org.apache.isis.core.metamodel.commons.CanBeVoid;
 import org.apache.isis.core.metamodel.commons.MethodUtil;
 import org.apache.isis.core.metamodel.commons.ToString;
@@ -54,8 +51,11 @@ import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.object.facets.FacetsFacet;
+import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
+import org.apache.isis.core.metamodel.specloader.traverser.TypeExtractorMethodReturn;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
index 1ad6542..499774a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
@@ -24,15 +24,15 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.UsabilityContext;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
index d5919cb..aeb3a74 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
@@ -37,11 +37,22 @@ import org.apache.isis.core.commons.exceptions.UnknownTypeException;
 import org.apache.isis.core.commons.internal._Constants;
 import org.apache.isis.core.commons.internal.base._Lazy;
 import org.apache.isis.core.commons.internal.collections._Lists;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.consent.InteractionResultSet;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
 import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
+import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacet;
+import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
+import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
 import org.apache.isis.core.metamodel.interactions.ActionUsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ActionValidityContext;
 import org.apache.isis.core.metamodel.interactions.ActionVisibilityContext;
@@ -49,17 +60,6 @@ import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.consent.InteractionResultSet;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
-import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacet;
-import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
-import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.DomainModelException;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
index ae78fba..2059de9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
@@ -25,10 +25,6 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-import org.apache.isis.core.metamodel.interactions.ValidityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResultSet;
@@ -39,6 +35,10 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.core.metamodel.facets.TypedHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.UsabilityContext;
+import org.apache.isis.core.metamodel.interactions.ValidityContext;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index 95dab92..2271a75 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -27,17 +27,6 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
-import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
-import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
-import org.apache.isis.core.metamodel.interactions.ActionArgUsabilityContext;
-import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
-import org.apache.isis.core.metamodel.interactions.ActionArgVisibilityContext;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-import org.apache.isis.core.metamodel.interactions.ValidityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.commons.ClassExtensions;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.consent.Allow;
@@ -52,7 +41,18 @@ import org.apache.isis.core.metamodel.facets.TypedHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
+import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
+import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
+import org.apache.isis.core.metamodel.interactions.ActionArgUsabilityContext;
+import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
+import org.apache.isis.core.metamodel.interactions.ActionArgVisibilityContext;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.UsabilityContext;
+import org.apache.isis.core.metamodel.interactions.ValidityContext;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
+import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.DomainModelException;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java
index 25e4a0f..07b118e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterMixedInAbstract.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 import java.util.List;
 
 import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
index a5e4c07..9c30785 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
@@ -19,14 +19,14 @@
 
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
-import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index 14699e5..e0f7f33 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -27,16 +27,6 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.util.schema.CommandDtoUtils;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
-import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
-import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
-import org.apache.isis.core.metamodel.interactions.AccessContext;
-import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
-import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
-import org.apache.isis.core.metamodel.interactions.InteractionContext;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -46,16 +36,26 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
+import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
+import org.apache.isis.core.metamodel.interactions.AccessContext;
+import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
+import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
+import org.apache.isis.core.metamodel.interactions.InteractionContext;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.UsabilityContext;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.schema.cmd.v1.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 import lombok.val;
 
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 bee946c..196bfea 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
@@ -45,18 +45,6 @@ import org.apache.isis.core.commons.internal.ioc.BeanSort;
 import org.apache.isis.core.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistry;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistryHolder;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
-import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
-import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
-import org.apache.isis.core.metamodel.specloader.specimpl.standalonelist.ObjectSpecificationOnStandaloneList;
 import org.apache.isis.core.metamodel.commons.ClassExtensions;
 import org.apache.isis.core.metamodel.commons.ToString;
 import org.apache.isis.core.metamodel.consent.Consent;
@@ -70,15 +58,24 @@ import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
+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.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.object.navparent.NavigableParentFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.interactions.InteractionContext;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
+import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
@@ -89,6 +86,9 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
+import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
+import org.apache.isis.core.metamodel.specloader.specimpl.standalonelist.ObjectSpecificationOnStandaloneList;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 
 import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java
index 6116294..20fe317 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java
@@ -18,9 +18,9 @@
  */
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemantics;
 import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyActionParameter;
 
 public class OneToManyActionParameterContributee
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java
index 6e19ecc..dc30800 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java
@@ -19,10 +19,10 @@
 
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
-import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemantics;
-import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.TypedHolder;
+import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemantics;
+import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyActionParameter;
 
 public class OneToManyActionParameterDefault extends ObjectActionParameterAbstract implements OneToManyActionParameter {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java
index 51b3a39..70532b7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java
@@ -18,9 +18,9 @@
  */
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemantics;
 import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyActionParameter;
 
 public class OneToManyActionParameterMixedIn
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
index e5465c1..6a507b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
@@ -24,6 +24,11 @@ import java.util.List;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.internal.ioc.ManagedBeanAdapter;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetAbstract;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
@@ -33,11 +38,6 @@ import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedF
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
index 57acf25..8d26180 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
@@ -21,6 +21,16 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.collections.Can;
+import org.apache.isis.core.metamodel.commons.ToString;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.consent.InteractionResult;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemantics;
 import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
@@ -32,16 +42,6 @@ import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.commons.ToString;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.consent.InteractionResult;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
index 6203a1d..242a953 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
@@ -24,13 +24,6 @@ import java.util.List;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
-import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -39,6 +32,13 @@ import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetAbstract;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.UsabilityContext;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
index 7ca7759..7f04168 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
@@ -24,6 +24,12 @@ import java.util.List;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.internal.ioc.ManagedBeanAdapter;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
 import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
@@ -31,12 +37,6 @@ import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedF
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
index 80a280f..db95ed0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
@@ -26,9 +26,17 @@ import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._NullSafe;
+import org.apache.isis.core.metamodel.commons.ToString;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.consent.InteractionResult;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
+import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
@@ -41,19 +49,11 @@ import org.apache.isis.core.metamodel.interactions.PropertyVisibilityContext;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.commons.ToString;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.consent.InteractionResult;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
-import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
 import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.cmd.v1.CommandDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
index 9ffa070..0cb3f25 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
@@ -24,6 +24,12 @@ import java.util.List;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
 import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
@@ -31,12 +37,6 @@ import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedF
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
 import org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/Predicates.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/Predicates.java
index 086f0b0..a828fbe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/Predicates.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/Predicates.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 import java.util.function.Predicate;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 3ecd1fe..db91723 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -33,9 +33,6 @@ import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._Lazy;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.commons.ToString;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -51,6 +48,7 @@ import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.facets.object.wizard.WizardFacet;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
@@ -63,6 +61,8 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
+import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
 import org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder;
 import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
index d6271b9..e8855f2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
@@ -22,8 +22,6 @@ package org.apache.isis.core.metamodel.specloader.specimpl.standalonelist;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._Lazy;
 import org.apache.isis.core.commons.internal.ioc.BeanSort;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetDefaultToObject;
@@ -36,6 +34,8 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
+import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract;
 
 import static org.apache.isis.core.commons.internal.base._With.mapIfPresentElse;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
index 787eaca..e48c6cd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
@@ -50,13 +50,13 @@ import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot;
 import org.apache.isis.applib.snapshot.SnapshottableWithInclusions;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.ObjectSpecificationException;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeDefinition.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeDefinition.java
index 12173f7..14a1975 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeDefinition.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeDefinition.java
@@ -20,7 +20,7 @@ package org.apache.isis.core.metamodel.valuetypes;
 
 import java.util.Map;
 
-import org.apache.isis.schema.common.v1.ValueType;
+import org.apache.isis.schema.common.v2.ValueType;
 
 import lombok.Data;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderDefault.java
index 52412ca..04a611c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderDefault.java
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.util.schema.CommonDtoUtils;
-import org.apache.isis.schema.common.v1.ValueType;
+import org.apache.isis.schema.common.v2.ValueType;
 
 @Component
 @Named("isisMetaModel.ValueTypeProviderBuiltIn")
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeRegistry.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeRegistry.java
index eb10e12..3dbdba0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeRegistry.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeRegistry.java
@@ -34,7 +34,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.schema.common.v1.ValueType;
+import org.apache.isis.schema.common.v2.ValueType;
 
 import lombok.val;
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoServiceInternalDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoServiceInternalDefault.java
index 0a1fe10..73b5bf3 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoServiceInternalDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoServiceInternalDefault.java
@@ -44,14 +44,14 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.cmd.v1.ActionDto;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.ParamDto;
-import org.apache.isis.schema.cmd.v1.ParamsDto;
-import org.apache.isis.schema.cmd.v1.PropertyDto;
-import org.apache.isis.schema.common.v1.InteractionType;
-import org.apache.isis.schema.common.v1.OidsDto;
-import org.apache.isis.schema.common.v1.ValueWithTypeDto;
+import org.apache.isis.schema.cmd.v2.ActionDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.ParamDto;
+import org.apache.isis.schema.cmd.v2.ParamsDto;
+import org.apache.isis.schema.cmd.v2.PropertyDto;
+import org.apache.isis.schema.common.v2.InteractionType;
+import org.apache.isis.schema.common.v2.OidsDto;
+import org.apache.isis.schema.common.v2.ValueWithTypeDto;
 
 import lombok.val;
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index 5d9051d..b347252 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -60,16 +60,16 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.context.IsisContext;
 import org.apache.isis.core.runtime.persistence.session.PersistenceSession;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
-import org.apache.isis.schema.cmd.v1.ActionDto;
-import org.apache.isis.schema.cmd.v1.CommandDto;
-import org.apache.isis.schema.cmd.v1.MemberDto;
-import org.apache.isis.schema.cmd.v1.ParamDto;
-import org.apache.isis.schema.cmd.v1.ParamsDto;
-import org.apache.isis.schema.cmd.v1.PropertyDto;
-import org.apache.isis.schema.common.v1.InteractionType;
-import org.apache.isis.schema.common.v1.OidDto;
-import org.apache.isis.schema.common.v1.OidsDto;
-import org.apache.isis.schema.common.v1.ValueWithTypeDto;
+import org.apache.isis.schema.cmd.v2.ActionDto;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.cmd.v2.MemberDto;
+import org.apache.isis.schema.cmd.v2.ParamDto;
+import org.apache.isis.schema.cmd.v2.ParamsDto;
+import org.apache.isis.schema.cmd.v2.PropertyDto;
+import org.apache.isis.schema.common.v2.InteractionType;
+import org.apache.isis.schema.common.v2.OidDto;
+import org.apache.isis.schema.common.v2.OidsDto;
+import org.apache.isis.schema.common.v2.ValueWithTypeDto;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/ixn/InteractionDtoServiceInternalDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/ixn/InteractionDtoServiceInternalDefault.java
index 93c0027..523bca1 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/ixn/InteractionDtoServiceInternalDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/ixn/InteractionDtoServiceInternalDefault.java
@@ -43,12 +43,12 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.schema.cmd.v1.ActionDto;
-import org.apache.isis.schema.cmd.v1.ParamDto;
-import org.apache.isis.schema.cmd.v1.PropertyDto;
-import org.apache.isis.schema.common.v1.ValueWithTypeDto;
-import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
-import org.apache.isis.schema.ixn.v1.PropertyEditDto;
+import org.apache.isis.schema.cmd.v2.ActionDto;
+import org.apache.isis.schema.cmd.v2.ParamDto;
+import org.apache.isis.schema.cmd.v2.PropertyDto;
+import org.apache.isis.schema.common.v2.ValueWithTypeDto;
+import org.apache.isis.schema.ixn.v2.ActionInvocationDto;
+import org.apache.isis.schema.ixn.v2.PropertyEditDto;
 
 @Service
 @Named("isisRuntimeServices.InteractionDtoServiceInternalDefault")
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublishedObjectsDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublishedObjectsDefault.java
index a8e71ad..f93cfd2 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublishedObjectsDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublishedObjectsDefault.java
@@ -35,10 +35,10 @@ import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.internal.collections._Multimaps.ListMultimap;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.schema.chg.v1.ChangesDto;
-import org.apache.isis.schema.chg.v1.ObjectsDto;
-import org.apache.isis.schema.common.v1.OidDto;
-import org.apache.isis.schema.common.v1.OidsDto;
+import org.apache.isis.schema.chg.v2.ChangesDto;
+import org.apache.isis.schema.chg.v2.ObjectsDto;
+import org.apache.isis.schema.common.v2.OidDto;
+import org.apache.isis.schema.common.v2.OidsDto;
 import org.apache.isis.schema.jaxbadapters.JavaSqlTimestampXmlGregorianCalendarAdapter;
 
 import lombok.ToString;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 9277ecc..1fc3bf8 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -64,11 +64,11 @@ import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcher;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcherTypeSafe;
 import org.apache.isis.core.runtimeservices.wrapper.handlers.ProxyContextHandler;
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
-import org.apache.isis.core.runtime.session.IsisSessionFactory;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java
index bbc403e..a2c59d5 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java
@@ -66,16 +66,16 @@ import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.OneToOneAssociationDefault;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
+import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.runtimeservices.wrapper.dom.employees.Employee;
 import org.apache.isis.core.runtimeservices.wrapper.dom.employees.EmployeeRepository;
 import org.apache.isis.core.runtimeservices.wrapper.dom.employees.EmployeeRepositoryImpl;
-import org.apache.isis.core.runtime.session.IsisSessionFactory;
-import org.apache.isis.schema.cmd.v1.CommandDto;
 import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.security.authentication.standard.SimpleSession;
 import org.apache.isis.core.unittestsupport.config.internal._Config;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 import lombok.val;
 
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java
index edc24b6..dc8ae0e 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java
@@ -63,8 +63,8 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
-import org.apache.isis.core.runtimeservices.wrapper.dom.employees.Employee;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
+import org.apache.isis.core.runtimeservices.wrapper.dom.employees.Employee;
 import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.security.authentication.standard.SimpleSession;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;