You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/10 11:18:04 UTC

[isis] 15/21: ISIS-2259: reorganises excel subdomain, factors out excel.applib vs excel.testing

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

danhaywood pushed a commit to branch ISIS-2259
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 4295ffbffa81fcad5102fdebc6d81b63fe8bce83
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 10 09:53:25 2020 +0000

    ISIS-2259: reorganises excel subdomain, factors out excel.applib vs excel.testing
    
    Also - makes dependency from applib to commons optional
---
 core/applib/pom.xml                                |  24 ++++++++++++-
 .../apache/isis/applib/annotation/Defaulted.java   |   5 ++-
 .../org/apache/isis/applib/annotation/Value.java   |  16 +++------
 .../isis/applib/domain/DomainObjectList.java       |   4 +--
 .../applib/events/domain/AbstractDomainEvent.java  |  11 +++---
 .../isis/applib/events/ui/AbstractUiEvent.java     |   4 +--
 .../jaxbadapters/PersistentEntitiesAdapter.java    |   4 +--
 .../layout/component/CollectionLayoutData.java     |   4 +--
 .../isis/applib/layout/component/FieldSet.java     |   6 ++--
 .../layout/component/PropertyLayoutData.java       |   4 +--
 .../isis/applib/layout/grid/GridAbstract.java      |  19 +++++-----
 .../isis/applib/layout/grid/bootstrap3/BS3Col.java |  14 ++++----
 .../applib/layout/grid/bootstrap3/BS3Grid.java     |  19 +++++-----
 .../isis/applib/layout/grid/bootstrap3/BS3Row.java |   4 +--
 .../isis/applib/layout/grid/bootstrap3/BS3Tab.java |   4 +--
 .../applib/layout/grid/bootstrap3/BS3TabGroup.java |   4 +--
 .../applib/layout/menubars/MenuBarsAbstract.java   |   4 +--
 .../applib/layout/menubars/bootstrap3/BS3Menu.java |   4 +--
 .../layout/menubars/bootstrap3/BS3MenuBar.java     |   5 +--
 .../layout/menubars/bootstrap3/BS3MenuSection.java |   5 +--
 .../isis/applib/mixins/dto/Dto_downloadXsd.java    |   2 +-
 .../org/apache/isis/applib/util}/ZipWriter.java    |   2 +-
 subdomains/excel/{impl => applib}/pom.xml          |  17 +++------
 .../excel/applib/IsisModuleSubExcelApplib.java}    |   4 +--
 .../excel/applib}/dom/AggregationType.java         |   2 +-
 .../excel/applib}/dom/ExcelMetaDataEnabled.java    |   2 +-
 .../subdomains/excel/applib}/dom/ExcelService.java |   6 ++--
 .../subdomains/excel/applib}/dom/HyperLink.java    |   2 +-
 .../subdomains/excel/applib}/dom/PivotColumn.java  |   2 +-
 .../excel/applib}/dom/PivotDecoration.java         |   2 +-
 .../subdomains/excel/applib}/dom/PivotRow.java     |   2 +-
 .../subdomains/excel/applib}/dom/PivotValue.java   |   2 +-
 .../subdomains/excel/applib}/dom/RowHandler.java   |   2 +-
 .../excel/applib}/dom/WorksheetContent.java        |   2 +-
 .../excel/applib}/dom/WorksheetSpec.java           |   4 +--
 .../excel/applib}/dom/util/AnnotationList.java     |   2 +-
 .../excel/applib}/dom/util/AnnotationTriplet.java  |   2 +-
 .../excel/applib}/dom/util/CellMarshaller.java     |   2 +-
 .../excel/applib}/dom/util/ExcelConverter.java     |  24 ++++++-------
 .../applib}/dom/util/ExcelFileBlobConverter.java   |   4 +--
 .../excel/applib}/dom/util/ExcelServiceImpl.java   |  14 ++++----
 .../subdomains/excel/applib}/dom/util/Mode.java    |   2 +-
 .../excel/applib}/dom/util/PivotUtils.java         |   4 +--
 .../excel/applib}/dom/util/SheetPivoter.java       |   6 ++--
 .../excel/applib}/dom/util/AnnotationListTest.java |   2 +-
 .../applib}/dom/util/AnnotationTripletTest.java    |   2 +-
 .../excel/applib}/dom/util/PivotUtilsTest.java     |   2 +-
 .../excel/applib}/dom/util/SheetPivoterTest.java   |   2 +-
 subdomains/excel/fixture/pom.xml                   |  11 ++++--
 .../fixtures/IsisModuleSubExcelFixtures.java}      |   6 ++--
 .../contributions/ExcelDemoToDoItem_export.java    |   8 ++---
 .../contributions/ExcelDemoToDoItem_export2.java   |   6 ++--
 .../BulkUpdateLineItemForDemoToDoItem.java         |  10 +++---
 .../BulkUpdateLineItemForDemoToDoItem.layout.xml   |   0
 .../BulkUpdateManagerForDemoToDoItem.java          |  10 +++---
 .../BulkUpdateManagerForDemoToDoItem.layout.xml    |   0
 .../bulkupdate/BulkUpdateMenuForDemoToDoItem.java  |   6 ++--
 .../pivot/ExcelPivotByCategoryAndSubcategory.java  |   6 ++--
 .../ExcelPivotByCategoryAndSubcategoryMenu.java    |   4 +--
 .../demotodoitem/DemoToDoItemRowHandler.java       |  10 +++---
 .../demotodoitem/DemoToDoItemRowHandler2.java      |   6 ++--
 .../ExcelUploadRowHandler4ToDoItem.java            |  10 +++---
 .../ExcelUploadServiceForDemoToDoItem.java         |   4 +--
 .../DemoFixture_extending_ExcelFixture2.java       |   4 +--
 .../DemoToDoItem_create_usingExcelFixture.java     |   6 ++--
 .../DemoToDoItem_recreate_usingExcelFixture.java   |   4 +--
 .../demomodule/fixturescripts/MoreToDoItems.xlsx   | Bin
 .../demomodule/fixturescripts/ToDoItems.xlsx       | Bin
 .../fixtures/demoapp/todomodule/dom/Category.java  |   2 +-
 .../todomodule/dom/DependenciesComparator.java     |   2 +-
 .../todomodule/dom/ExcelDemoToDoItem-done.png      | Bin
 .../todomodule/dom/ExcelDemoToDoItem-todo.png      | Bin
 .../demoapp/todomodule/dom/ExcelDemoToDoItem.java  |   2 +-
 .../todomodule/dom/ExcelDemoToDoItem.layout.xml    |   0
 .../demoapp/todomodule/dom/ExcelDemoToDoItem.png   | Bin
 .../todomodule/dom/ExcelDemoToDoItemMenu.java      |   2 +-
 .../demoapp/todomodule/dom/Subcategory.java        |   2 +-
 .../ExcelDemoToDoItem_recreate5_for.java           |  10 +++---
 .../ExcelDemoToDoItem_recreate5_forSven.java       |   2 +-
 .../fixturescripts/ExcelDemoToDoItem_tearDown.java |   4 +--
 .../ExcelDemoToDoItem_tearDown2.java               |   2 +-
 subdomains/excel/integtests/pom.xml                |  10 ++++++
 .../integtests/ExcelModuleIntegTestAbstract.java   |   6 ++--
 .../ExcelModuleDemoMetaDataEnabled_IntegTest.java  |   8 ++---
 ...uleDemoToDoItemBulkUpdateManager_IntegTest.java |  14 ++++----
 .../ExcelModuleDemoUploadService_IntegTest.java    |  12 +++----
 .../tests/ToDoItemsWithMultipleSheets.xlsx         | Bin
 .../excel/integtests/tests/toDoItems-expected.xlsx | Bin
 .../excel/integtests/tests/toDoItems-updated.xlsx  | Bin
 subdomains/excel/pom.xml                           |  39 +++++++++++++++++++++
 .../excel/{impl => }/src/main/doc/antora.yml       |   0
 .../{impl => }/src/main/doc/modules/excel/nav.adoc |   0
 .../src/main/doc/modules/excel/pages/about.adoc    |   0
 .../doc/modules/excel/partials/module-nav.adoc     |   0
 subdomains/excel/testing/pom.xml                   |  38 ++++++++++++++++++++
 .../subdomains/excel/testing}/ExcelFixture.java    |   5 +--
 .../subdomains/excel/testing}/ExcelFixture2.java   |   4 ++-
 .../excel/testing}/ExcelFixtureRowHandler.java     |   2 +-
 .../testing}/ExcelFixtureWorkbookHandler.java      |   2 +-
 .../excel/testing}/FixtureAwareRowHandler.java     |   3 +-
 .../excel/testing/IsisModuleSubExcelTesting.java}  |   4 +--
 subdomains/pom.xml                                 |  13 +++----
 102 files changed, 346 insertions(+), 238 deletions(-)

diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index 380f390..1e3e25d 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -71,9 +71,31 @@
     
         <dependency>
             <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-commons</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-schema</artifactId>
         </dependency>
-		
+
+        <dependency>
+            <groupId>javax</groupId>
+            <artifactId>javaee-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>annotations</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
         <!-- TESTS -->
         <dependency>
             <groupId>org.apache.isis.core</groupId>
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Defaulted.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Defaulted.java
index f01d66b..3cc72fc 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Defaulted.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Defaulted.java
@@ -26,7 +26,6 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 import org.apache.isis.applib.adapters.DefaultsProvider;
-import org.apache.isis.commons.internal.encoding.Encodable;
 
 /**
  * Indicates that the class should have a default, by providing a link to a
@@ -41,8 +40,8 @@ import org.apache.isis.commons.internal.encoding.Encodable;
  * of {@link DefaultsProvider} could adjust the default it provides according to
  * circumstance, for example).
  *
- * @see Encodable
- * @see Parseable
+ * @see <code>Encodable</code>
+ * @see <code>Parseable</code>
  * @see Value
  *
  * <p>
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Value.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Value.java
index 36269fa..03e8dd2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Value.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Value.java
@@ -27,33 +27,27 @@ import java.lang.annotation.Target;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.ValueSemanticsProvider;
-import org.apache.isis.commons.internal.encoding.Encodable;
 
 /**
  * Indicates that the class has value semantics.
  *
  * <p>
  * By &quot;value semantics&quot; all we actually mean that the class is
- * {@link Aggregated} and so therefore (conceptually) is not shared between
+ * aggregated (or embedded) and so therefore (conceptually) is not shared between
  * instances of classes. However, values very often have other semantics, and so
  * this annotation allows these to also be specified:
- * <li>it may be parseable (as per {@link Parseable})</li>
- * <li>it may be encodeable (as per {@link Encodable})</li>
- * <li>it may be immutable (as per {@link Immutable}), and by default is
- * presumed that it is</li>
+ * <li>it may be parseable</li>
+ * <li>it may be encodeable</li>
+ * <li>it may be immutable, and by default is presumed that it is</li>
  * <li>it may follow the equal-by-content contract (as per
  * {@link EqualByContent}), and by default is presumed that it does.</i> </ul>
  *
  * <p>
  * Note also that though a value is conceptually not shared, if it is also
- * {@link Immutable immutable} then it is in fact safe to share objects (as in
+ * immutable then it is in fact safe to share objects (as in
  * the flyweight pattern). In addition, the {@link EqualByContent} semantic
  * means that we needn't care whether value types are being shared or not.
  *
- * @see Aggregated
- * @see Parseable
- * @see Encodable
- * @see Immutable
  * @see EqualByContent
  *
  * <p>
diff --git a/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java b/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
index 5d64609..2a13734 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.domain;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -35,7 +36,6 @@ import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.jaxbadapters.PersistentEntitiesAdapter;
-import org.apache.isis.commons.internal.collections._Lists;
 
 @XmlRootElement(name = "list")
 @XmlType(
@@ -161,7 +161,7 @@ public class DomainObjectList {
     public static class ObjectsDomainEvent extends CollectionDomainEvent<Object> {  }
 
     @XmlJavaTypeAdapter(PersistentEntitiesAdapter.class)
-    private List<Object> objects = _Lists.newArrayList();
+    private List<Object> objects = new ArrayList<>();
 
     @Collection(
             domainEvent = ObjectsDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/domain/AbstractDomainEvent.java b/core/applib/src/main/java/org/apache/isis/applib/events/domain/AbstractDomainEvent.java
index b3bfd81..4d4ac5f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/domain/AbstractDomainEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/domain/AbstractDomainEvent.java
@@ -18,14 +18,17 @@
  */
 package org.apache.isis.applib.events.domain;
 
+import java.util.HashMap;
 import java.util.Map;
 
+import javax.annotation.Nullable;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ToString;
-import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 
 public abstract class AbstractDomainEvent<S> extends EventObjectBase<S> {
@@ -99,8 +102,8 @@ public abstract class AbstractDomainEvent<S> extends EventObjectBase<S> {
         }
 
         /**
-         * When the {@link org.apache.isis.applib.services.command.Command} is made available on the {@link org.apache.isis.applib.events.domain.ActionDomainEvent}
-         * via {@link org.apache.isis.applib.events.domain.ActionDomainEvent#getCommand()}.
+         * When the {@link org.apache.isis.applib.services.command.Command} is made available on the
+         * {@link org.apache.isis.applib.events.domain.ActionDomainEvent} via {@link CommandContext#getCommand()}.
          */
         public boolean isExecutingOrLater() {
             return isExecuting() || isExecuted();
@@ -315,7 +318,7 @@ public abstract class AbstractDomainEvent<S> extends EventObjectBase<S> {
     /**
      * Provides a mechanism to pass data to the next {@link #getEventPhase() phase}.
      */
-    private final Map<Object, Object> userData = _Maps.newHashMap();
+    private final Map<Object, Object> userData = new HashMap<>();
 
     /**
      * Obtain user-data, as set by a previous {@link #getEventPhase() phase}.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/ui/AbstractUiEvent.java b/core/applib/src/main/java/org/apache/isis/applib/events/ui/AbstractUiEvent.java
index a6ecf17..72df250 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/ui/AbstractUiEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/ui/AbstractUiEvent.java
@@ -18,10 +18,10 @@
  */
 package org.apache.isis.applib.events.ui;
 
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.isis.applib.events.domain.EventObjectBase;
-import org.apache.isis.commons.internal.collections._Maps;
 
 public abstract class AbstractUiEvent<S> extends EventObjectBase<S> {
 
@@ -42,7 +42,7 @@ public abstract class AbstractUiEvent<S> extends EventObjectBase<S> {
     /**
      * Provides a mechanism to pass data around.
      */
-    private final Map<Object, Object> userData = _Maps.newHashMap();
+    private final Map<Object, Object> userData = new HashMap<>();
 
     /**
      * Obtain user-data, as set by any other subscribers.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java b/core/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java
index efc9c41..0bea114 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/jaxbadapters/PersistentEntitiesAdapter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.jaxbadapters;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.inject.Inject;
@@ -25,7 +26,6 @@ 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.commons.internal.collections._Lists;
 import org.apache.isis.schema.common.v1.OidsDto;
 
 import lombok.val;
@@ -37,7 +37,7 @@ public class PersistentEntitiesAdapter extends XmlAdapter<OidsDto, List<Object>>
     @Override
     public List<Object> unmarshal(final OidsDto oidsDto) {
 
-        List<Object> domainObjects = _Lists.newArrayList();
+        List<Object> domainObjects = new ArrayList<>();
         for (val oidDto : oidsDto.getOid()) {
             val bookmark = Bookmark.from(oidDto);
             val domainObject = bookmarkService.lookup(bookmark);
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java
index 40fed23..46d4bb2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/component/CollectionLayoutData.java
@@ -19,6 +19,7 @@
 package org.apache.isis.applib.layout.component;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAttribute;
@@ -29,7 +30,6 @@ import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.links.Link;
-import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * Describes the layout of a single collection, broadly corresponds to the {@link org.apache.isis.applib.annotation.CollectionLayout} annotation.
@@ -198,7 +198,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
 
 
 
-    private List<ActionLayoutData> actions = _Lists.newArrayList();
+    private List<ActionLayoutData> actions = new ArrayList<>();
 
     // no wrapper
     @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/component/FieldSet.java b/core/applib/src/main/java/org/apache/isis/applib/layout/component/FieldSet.java
index 52a90f7..335d65a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/component/FieldSet.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/component/FieldSet.java
@@ -19,6 +19,7 @@
 package org.apache.isis.applib.layout.component;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAttribute;
@@ -29,7 +30,6 @@ import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Col;
-import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * A {@link MemberRegion region} of the page containing a set of
@@ -135,7 +135,7 @@ Serializable {
 
 
 
-    private List<ActionLayoutData> actions = _Lists.newArrayList();
+    private List<ActionLayoutData> actions = new ArrayList<>();
 
     // no wrapper
     @Override
@@ -151,7 +151,7 @@ Serializable {
 
 
 
-    private List<PropertyLayoutData> properties = _Lists.newArrayList();
+    private List<PropertyLayoutData> properties = new ArrayList<>();
 
     // no wrapper; required=false because may be auto-generated
     @XmlElement(name = "property", required = false)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
index 6c66a32..817a6aa 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
@@ -19,6 +19,7 @@
 package org.apache.isis.applib.layout.component;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAttribute;
@@ -33,7 +34,6 @@ import org.apache.isis.applib.annotation.RenderDay;
 import org.apache.isis.applib.annotation.Repainting;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.links.Link;
-import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * Describes the layout of a single property, broadly corresponds to the {@link org.apache.isis.applib.annotation.PropertyLayout} annotation.
@@ -234,7 +234,7 @@ HasCssClass, HasDescribedAs, HasHidden, HasNamed  {
         this.repainting = repainting;
     }
 
-    private List<ActionLayoutData> actions = _Lists.newArrayList();
+    private List<ActionLayoutData> actions = new ArrayList<>();
 
     // no wrapper
     @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/GridAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/GridAbstract.java
index 7c6dfb7..5ebfa9d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/GridAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/GridAbstract.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.layout.grid;
 
+import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
 
@@ -33,8 +34,6 @@ import org.apache.isis.applib.layout.component.FieldSetOwner;
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Grid;
 import org.apache.isis.applib.services.layout.LayoutService;
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.commons.internal.collections._Maps;
 
 /**
  * All top-level page layout classes should implement this interface.
@@ -103,7 +102,7 @@ public abstract class GridAbstract implements Grid {
         if(actionLayoutDatas == null) {
             return;
         }
-        for (final ActionLayoutData actionLayoutData : _Lists.newArrayList(actionLayoutDatas)) {
+        for (final ActionLayoutData actionLayoutData : new ArrayList<>(actionLayoutDatas)) {
             actionLayoutData.setOwner(actionLayoutDataOwner);
             visitor.visit(actionLayoutData);
         }
@@ -115,12 +114,12 @@ public abstract class GridAbstract implements Grid {
      */
     protected void traverseFieldSets(final FieldSetOwner fieldSetOwner, final GridAbstract.Visitor visitor) {
         final List<FieldSet> fieldSets = fieldSetOwner.getFieldSets();
-        for (FieldSet fieldSet : _Lists.newArrayList(fieldSets)) {
+        for (FieldSet fieldSet : new ArrayList<>(fieldSets)) {
             fieldSet.setOwner(fieldSetOwner);
             visitor.visit(fieldSet);
             traverseActions(fieldSet, visitor);
             final List<PropertyLayoutData> properties = fieldSet.getProperties();
-            for (final PropertyLayoutData property : _Lists.newArrayList(properties)) {
+            for (final PropertyLayoutData property : new ArrayList<>(properties)) {
                 property.setOwner(fieldSet);
                 visitor.visit(property);
                 traverseActions(property, visitor);
@@ -135,7 +134,7 @@ public abstract class GridAbstract implements Grid {
     protected void traverseCollections(
             final CollectionLayoutDataOwner owner, final GridAbstract.Visitor visitor) {
         final List<CollectionLayoutData> collections = owner.getCollections();
-        for (CollectionLayoutData collection : _Lists.newArrayList(collections)) {
+        for (CollectionLayoutData collection : new ArrayList<>(collections)) {
             collection.setOwner(owner);
             visitor.visit(collection);
             traverseActions(collection, visitor);
@@ -147,7 +146,7 @@ public abstract class GridAbstract implements Grid {
     @Programmatic
     @XmlTransient
     public LinkedHashMap<String, PropertyLayoutData> getAllPropertiesById() {
-        final LinkedHashMap<String, PropertyLayoutData> propertiesById = _Maps.newLinkedHashMap();
+        final LinkedHashMap<String, PropertyLayoutData> propertiesById = new LinkedHashMap<>();
         visit(new BS3Grid.VisitorAdapter() {
             @Override
             public void visit(final PropertyLayoutData propertyLayoutData) {
@@ -162,7 +161,7 @@ public abstract class GridAbstract implements Grid {
     @Programmatic
     @XmlTransient
     public LinkedHashMap<String, CollectionLayoutData> getAllCollectionsById() {
-        final LinkedHashMap<String, CollectionLayoutData> collectionsById = _Maps.newLinkedHashMap();
+        final LinkedHashMap<String, CollectionLayoutData> collectionsById = new LinkedHashMap<>();
 
         visit(new BS3Grid.VisitorAdapter() {
             @Override
@@ -178,7 +177,7 @@ public abstract class GridAbstract implements Grid {
     @Programmatic
     @XmlTransient
     public LinkedHashMap<String, ActionLayoutData> getAllActionsById() {
-        final LinkedHashMap<String, ActionLayoutData> actionsById = _Maps.newLinkedHashMap();
+        final LinkedHashMap<String, ActionLayoutData> actionsById = new LinkedHashMap<>();
 
         visit(new BS3Grid.VisitorAdapter() {
             @Override
@@ -193,7 +192,7 @@ public abstract class GridAbstract implements Grid {
     @Programmatic
     @XmlTransient
     public LinkedHashMap<String, FieldSet> getAllFieldSetsByName() {
-        final LinkedHashMap<String, FieldSet> fieldSetsByName = _Maps.newLinkedHashMap();
+        final LinkedHashMap<String, FieldSet> fieldSetsByName = new LinkedHashMap<>();
 
         visit(new BS3Grid.VisitorAdapter() {
             @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Col.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Col.java
index 141549d..7f44432 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Col.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Col.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.layout.grid.bootstrap3;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAttribute;
@@ -34,7 +35,6 @@ import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutDataOwner;
 import org.apache.isis.applib.layout.component.FieldSet;
 import org.apache.isis.applib.layout.component.FieldSetOwner;
-import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * A column within a row which, depending on its {@link #getSpan()}, could be as narrow as 1/12th of the page's width, all the way up to spanning the entire page.
@@ -158,7 +158,7 @@ CollectionLayoutDataOwner, DomainObjectLayoutDataOwner {
     }
 
 
-    private List<SizeSpan> sizeSpans = _Lists.newArrayList();
+    private List<SizeSpan> sizeSpans = new ArrayList<>();
 
     // no wrapper
     @XmlElement(name = "sizeSpan", required = false)
@@ -172,7 +172,7 @@ CollectionLayoutDataOwner, DomainObjectLayoutDataOwner {
 
 
 
-    private List<ActionLayoutData> actions = _Lists.newArrayList();
+    private List<ActionLayoutData> actions = new ArrayList<>();
 
     // no wrapper
     @Override
@@ -188,7 +188,7 @@ CollectionLayoutDataOwner, DomainObjectLayoutDataOwner {
 
 
 
-    private List<BS3Row> rows = _Lists.newArrayList();
+    private List<BS3Row> rows = new ArrayList<>();
 
     // no wrapper
     @Override
@@ -203,7 +203,7 @@ CollectionLayoutDataOwner, DomainObjectLayoutDataOwner {
 
 
 
-    private List<BS3TabGroup> tabGroups = _Lists.newArrayList();
+    private List<BS3TabGroup> tabGroups = new ArrayList<>();
 
     // no wrapper
     @Override
@@ -218,7 +218,7 @@ CollectionLayoutDataOwner, DomainObjectLayoutDataOwner {
 
 
 
-    private List<FieldSet> fieldSets = _Lists.newArrayList();
+    private List<FieldSet> fieldSets = new ArrayList<>();
 
     // no wrapper
     @Override
@@ -233,7 +233,7 @@ CollectionLayoutDataOwner, DomainObjectLayoutDataOwner {
 
 
 
-    private List<CollectionLayoutData> collections = _Lists.newArrayList();
+    private List<CollectionLayoutData> collections = new ArrayList<>();
 
     // no wrapper
     @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java
index 9db5cd2..f50e427 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.layout.grid.bootstrap3;
 
+import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
 
@@ -36,8 +37,6 @@ import org.apache.isis.applib.layout.component.PropertyLayoutData;
 import org.apache.isis.applib.layout.grid.Grid;
 import org.apache.isis.applib.layout.grid.GridAbstract;
 import org.apache.isis.applib.mixins.dto.Dto;
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.commons.internal.collections._Maps;
 
 /**
  * This is the top-level for rendering the domain object's properties, collections and actions.  It simply consists
@@ -79,7 +78,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
 
 
 
-    private List<BS3Row> rows = _Lists.newArrayList();
+    private List<BS3Row> rows = new ArrayList<>();
 
     // no wrapper
     @Override
@@ -94,7 +93,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
 
 
 
-    private List<String> metadataErrors = _Lists.newArrayList();
+    private List<String> metadataErrors = new ArrayList<>();
 
     /**
      * For diagnostics; populated by the framework if and only if a metadata error.
@@ -170,7 +169,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
     protected void traverseRows(final BS3RowOwner rowOwner, final Grid.Visitor visitor) {
         final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
         final List<BS3Row> rows = rowOwner.getRows();
-        for (BS3Row bs3Row : _Lists.newArrayList(rows)) {
+        for (BS3Row bs3Row : new ArrayList<>(rows)) {
             bs3Row.setOwner(this);
             bs3Visitor.preVisit(bs3Row);
             bs3Visitor.visit(bs3Row);
@@ -182,7 +181,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
     private void traverseCols(final Grid.Visitor visitor, final BS3Row bs3Row) {
         final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
         final List<BS3RowContent> cols = bs3Row.getCols();
-        for (BS3RowContent rowContent : _Lists.newArrayList(cols)) {
+        for (BS3RowContent rowContent : new ArrayList<>(cols)) {
             rowContent.setOwner(bs3Row);
             if(rowContent instanceof BS3Col) {
                 final BS3Col bs3Col = (BS3Col) rowContent;
@@ -219,7 +218,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
             final Grid.Visitor visitor) {
         final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
         final List<BS3TabGroup> tabGroups = bs3TabGroupOwner.getTabGroups();
-        for (BS3TabGroup bs3TabGroup : _Lists.newArrayList(tabGroups)) {
+        for (BS3TabGroup bs3TabGroup : new ArrayList<>(tabGroups)) {
             bs3TabGroup.setOwner(bs3TabGroupOwner);
             bs3Visitor.preVisit(bs3TabGroup);
             bs3Visitor.visit(bs3TabGroup);
@@ -233,7 +232,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
             final Grid.Visitor visitor) {
         final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
         final List<BS3Tab> tabs = bs3TabOwner.getTabs();
-        for (BS3Tab tab : _Lists.newArrayList(tabs)) {
+        for (BS3Tab tab : new ArrayList<>(tabs)) {
             tab.setOwner(bs3TabOwner);
             bs3Visitor.preVisit(tab);
             bs3Visitor.visit(tab);
@@ -270,7 +269,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
     @Programmatic
     @XmlTransient
     public LinkedHashMap<String, BS3Tab> getAllTabsByName() {
-        final LinkedHashMap<String, BS3Tab> tabsByName = _Maps.newLinkedHashMap();
+        final LinkedHashMap<String, BS3Tab> tabsByName = new LinkedHashMap<>();
 
         visit(new BS3Grid.VisitorAdapter() {
             @Override
@@ -285,7 +284,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
     @Programmatic
     @XmlTransient
     public LinkedHashMap<String, HasCssId> getAllCssId() {
-        final LinkedHashMap<String, HasCssId> divsByCssId = _Maps.newLinkedHashMap();
+        final LinkedHashMap<String, HasCssId> divsByCssId = new LinkedHashMap<>();
 
         visit(new BS3Grid.VisitorAdapter() {
             @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Row.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Row.java
index 77b5f70..9fc2d77 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Row.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Row.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.layout.grid.bootstrap3;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAttribute;
@@ -28,7 +29,6 @@ import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * Contains a row of content, either on the top-level {@link BS3Grid page} or at any other lower-level element that can
@@ -67,7 +67,7 @@ public class BS3Row extends BS3ElementAbstract implements HasCssId, BS3RowConten
 
 
 
-    private List<BS3RowContent> cols = _Lists.newArrayList();
+    private List<BS3RowContent> cols = new ArrayList<>();
 
     // no wrapper
     @XmlElementRefs({
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Tab.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Tab.java
index ec54b10..772e6d4 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Tab.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Tab.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.layout.grid.bootstrap3;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Predicate;
@@ -32,7 +33,6 @@ import org.apache.isis.applib.layout.component.ActionLayoutData;
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * Represents a tab within a {@link BS3TabGroup tab group}.
@@ -63,7 +63,7 @@ public class BS3Tab extends BS3ElementAbstract implements BS3RowOwner {
     }
 
 
-    private List<BS3Row> rows = _Lists.newArrayList();
+    private List<BS3Row> rows = new ArrayList<>();
 
     // no wrapper
     @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3TabGroup.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3TabGroup.java
index 9ff4a2c..02471b6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3TabGroup.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3TabGroup.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.applib.layout.grid.bootstrap3;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAttribute;
@@ -26,7 +27,6 @@ import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * Represents a tab group containing one or more {@link BS3Tab tab}s.
@@ -79,7 +79,7 @@ public class BS3TabGroup extends BS3ElementAbstract implements BS3TabOwner {
 
 
 
-    private List<BS3Tab> tabs = _Lists.newArrayList();
+    private List<BS3Tab> tabs = new ArrayList<>();
 
     // no wrapper; required=false because may be auto-generated
     @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
index a99eb21..aa38830 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
@@ -25,7 +25,7 @@ import javax.xml.bind.annotation.XmlTransient;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
-import org.apache.isis.commons.internal.collections._Maps;
+
 
 import lombok.val;
 
@@ -55,7 +55,7 @@ public abstract class MenuBarsAbstract implements MenuBars, Serializable {
     public LinkedHashMap<String, ServiceActionLayoutData> getAllServiceActionsByObjectTypeAndId() {
 
         val serviceActionsByObjectTypeAndId = 
-                _Maps.<String, ServiceActionLayoutData>newLinkedHashMap();
+                new LinkedHashMap<String, ServiceActionLayoutData>();
 
         visit(serviceActionLayoutData -> {
             serviceActionsByObjectTypeAndId
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3Menu.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3Menu.java
index f35be92..a7ccaf0 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3Menu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3Menu.java
@@ -19,6 +19,7 @@
 package org.apache.isis.applib.layout.menubars.bootstrap3;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlAttribute;
@@ -27,7 +28,6 @@ import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.layout.menubars.Menu;
-import org.apache.isis.commons.internal.collections._Lists;
 
 import lombok.ToString;
 
@@ -82,7 +82,7 @@ public class BS3Menu implements Menu, Serializable {
 
 
 
-    private List<BS3MenuSection> sections = _Lists.newArrayList();
+    private List<BS3MenuSection> sections = new ArrayList<>();
 
     // no wrapper
     @XmlElement(name = "section", required = true)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBar.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBar.java
index c46e29f..cb65485 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBar.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBar.java
@@ -19,6 +19,7 @@
 package org.apache.isis.applib.layout.menubars.bootstrap3;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -26,7 +27,7 @@ import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.layout.menubars.MenuBar;
-import org.apache.isis.commons.internal.collections._Lists;
+
 
 /**
  * Describes the collection of domain services into menubars, broadly corresponding to the aggregation of information of {@link org.apache.isis.applib.annotation.DomainServiceLayout} that have the same value of {@link DomainServiceLayout#named()}.
@@ -45,7 +46,7 @@ public class BS3MenuBar implements MenuBar, Serializable {
     }
 
 
-    private List<BS3Menu> menus = _Lists.newArrayList();
+    private List<BS3Menu> menus = new ArrayList<>();
 
     // no wrapper
     @XmlElement(name = "menu", required = true)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuSection.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuSection.java
index 451805d..79716b6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuSection.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuSection.java
@@ -19,6 +19,7 @@
 package org.apache.isis.applib.layout.menubars.bootstrap3;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -27,7 +28,7 @@ import javax.xml.bind.annotation.XmlType;
 import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
 import org.apache.isis.applib.layout.component.ServiceActionLayoutDataOwner;
 import org.apache.isis.applib.layout.menubars.MenuSection;
-import org.apache.isis.commons.internal.collections._Lists;
+
 
 /**
  * Corresponds to a domain service that contributes its serviceActions under a particular {@link BS3MenuBar}.
@@ -46,7 +47,7 @@ public class BS3MenuSection implements MenuSection, Serializable, ServiceActionL
     }
 
 
-    private List<ServiceActionLayoutData> serviceActions = _Lists.newArrayList();
+    private List<ServiceActionLayoutData> serviceActions = new ArrayList<>();
 
     // no wrapper
     @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
index f297601..e724daf 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
@@ -33,8 +33,8 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.mixins.MixinConstants;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.applib.util.ZipWriter;
 import org.apache.isis.applib.value.BlobClobFactory;
-import org.apache.isis.commons.compression.ZipWriter;
 
 import lombok.RequiredArgsConstructor;
 import lombok.val;
diff --git a/core/commons/src/main/java/org/apache/isis/commons/compression/ZipWriter.java b/core/applib/src/main/java/org/apache/isis/applib/util/ZipWriter.java
similarity index 98%
rename from core/commons/src/main/java/org/apache/isis/commons/compression/ZipWriter.java
rename to core/applib/src/main/java/org/apache/isis/applib/util/ZipWriter.java
index 595af5a..d60adc5 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/compression/ZipWriter.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/util/ZipWriter.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.commons.compression;
+package org.apache.isis.applib.util;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/subdomains/excel/impl/pom.xml b/subdomains/excel/applib/pom.xml
similarity index 85%
rename from subdomains/excel/impl/pom.xml
rename to subdomains/excel/applib/pom.xml
index f1829d9..20f0268 100644
--- a/subdomains/excel/impl/pom.xml
+++ b/subdomains/excel/applib/pom.xml
@@ -14,23 +14,16 @@
 
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
-        <artifactId>isis-subdomains</artifactId>
+        <artifactId>isis-subdomains-excel</artifactId>
         <version>2.0.0-M3-SNAPSHOT</version>
-        <relativePath>../../pom.xml</relativePath>
     </parent>
 
-    <artifactId>isis-subdomains-excel-dom</artifactId>
-    <name>Apache Isis Sub - Excel</name>
-
-    <description>
-        A domain service for Apache Isis', allowing collections
-        of (view model) objects to be exported/imported to/from an
-        Excel spreadsheet.  Also support for excel-based fixtures.
-    </description>
+    <artifactId>isis-subdomains-excel-applib</artifactId>
+    <name>Apache Isis Sub - Excel (applib)</name>
 
     <properties>
-    	<jar-plugin.automaticModuleName>org.apache.isis.subdomains.excel.dom</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/isis/subdomains/excel/dom</git-plugin.propertiesDir>
+    	<jar-plugin.automaticModuleName>org.apache.isis.subdomains.excel.applib</jar-plugin.automaticModuleName>
+        <git-plugin.propertiesDir>org/apache/isis/subdomains/excel/applib</git-plugin.propertiesDir>
     </properties>
 
     <dependencies>
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/IsisModuleSubExcelApplib.java
similarity index 63%
copy from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java
copy to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/IsisModuleSubExcelApplib.java
index c3c2c09..43bf630 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/IsisModuleSubExcelApplib.java
@@ -1,9 +1,9 @@
-package org.apache.isis.extensions.excel;
+package org.apache.isis.subdomains.excel.applib;
 
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
 @ComponentScan
-public class IsisModuleExtExcel {
+public class IsisModuleSubExcelApplib {
 }
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/AggregationType.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/AggregationType.java
similarity index 50%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/AggregationType.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/AggregationType.java
index c8384b3..9921c3c 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/AggregationType.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/AggregationType.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 public enum AggregationType {
     SUM,
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelMetaDataEnabled.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelMetaDataEnabled.java
similarity index 74%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelMetaDataEnabled.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelMetaDataEnabled.java
index 03cc123..c80e3a4 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelMetaDataEnabled.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelMetaDataEnabled.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 
 public interface ExcelMetaDataEnabled {
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelService.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelService.java
similarity index 97%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelService.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelService.java
index 774486f..8d05318 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelService.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelService.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -22,8 +22,8 @@ import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.extensions.excel.dom.util.ExcelServiceImpl;
-import org.apache.isis.extensions.excel.dom.util.Mode;
+import org.apache.isis.subdomains.excel.applib.dom.util.ExcelServiceImpl;
+import org.apache.isis.subdomains.excel.applib.dom.util.Mode;
 
 import lombok.extern.log4j.Log4j2;
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/HyperLink.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/HyperLink.java
similarity index 74%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/HyperLink.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/HyperLink.java
index b964d65..52fc543 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/HyperLink.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/HyperLink.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotColumn.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotColumn.java
similarity index 76%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotColumn.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotColumn.java
index dcf5d27..80da3e7 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotColumn.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotColumn.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotDecoration.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotDecoration.java
similarity index 76%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotDecoration.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotDecoration.java
index b4e5207..cdf97f6 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotDecoration.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotDecoration.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotRow.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotRow.java
similarity index 74%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotRow.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotRow.java
index f097fae..5a67e5d 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotRow.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotRow.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotValue.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotValue.java
similarity index 81%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotValue.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotValue.java
index d6aec5c..82ae0e4 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/PivotValue.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotValue.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/RowHandler.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/RowHandler.java
similarity index 64%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/RowHandler.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/RowHandler.java
index ef245d6..46fe479 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/RowHandler.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/RowHandler.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 public interface RowHandler<T extends RowHandler<T>> {
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/WorksheetContent.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetContent.java
similarity index 89%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/WorksheetContent.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetContent.java
index caaf163..b9701a9 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/WorksheetContent.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetContent.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.util.List;
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/WorksheetSpec.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetSpec.java
similarity index 96%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/WorksheetSpec.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetSpec.java
index d8a02d7..aba72ec 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/WorksheetSpec.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetSpec.java
@@ -1,11 +1,11 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.util.List;
 
 import javax.inject.Inject;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
-import org.apache.isis.extensions.excel.dom.util.Mode;
+import org.apache.isis.subdomains.excel.applib.dom.util.Mode;
 
 import lombok.Setter;
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/AnnotationList.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationList.java
similarity index 91%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/AnnotationList.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationList.java
index 7390264..7129633 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/AnnotationList.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationList.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/AnnotationTriplet.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTriplet.java
similarity index 92%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/AnnotationTriplet.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTriplet.java
index ce27174..651cbcb 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/AnnotationTriplet.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTriplet.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 public class AnnotationTriplet implements Comparable<AnnotationTriplet>{
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/CellMarshaller.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/CellMarshaller.java
similarity index 99%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/CellMarshaller.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/CellMarshaller.java
index 75963ae..5726795 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/CellMarshaller.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/CellMarshaller.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelConverter.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
similarity index 96%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelConverter.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
index d0228e4..a8a2112 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelConverter.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -39,17 +39,17 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.util.ObjectContracts;
-import org.apache.isis.extensions.excel.dom.AggregationType;
-import org.apache.isis.extensions.excel.dom.ExcelMetaDataEnabled;
-import org.apache.isis.extensions.excel.dom.ExcelService;
-import org.apache.isis.extensions.excel.dom.HyperLink;
-import org.apache.isis.extensions.excel.dom.PivotColumn;
-import org.apache.isis.extensions.excel.dom.PivotDecoration;
-import org.apache.isis.extensions.excel.dom.PivotRow;
-import org.apache.isis.extensions.excel.dom.PivotValue;
-import org.apache.isis.extensions.excel.dom.RowHandler;
-import org.apache.isis.extensions.excel.dom.WorksheetContent;
-import org.apache.isis.extensions.excel.dom.WorksheetSpec;
+import org.apache.isis.subdomains.excel.applib.dom.AggregationType;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelMetaDataEnabled;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelService;
+import org.apache.isis.subdomains.excel.applib.dom.HyperLink;
+import org.apache.isis.subdomains.excel.applib.dom.PivotColumn;
+import org.apache.isis.subdomains.excel.applib.dom.PivotDecoration;
+import org.apache.isis.subdomains.excel.applib.dom.PivotRow;
+import org.apache.isis.subdomains.excel.applib.dom.PivotValue;
+import org.apache.isis.subdomains.excel.applib.dom.RowHandler;
+import org.apache.isis.subdomains.excel.applib.dom.WorksheetContent;
+import org.apache.isis.subdomains.excel.applib.dom.WorksheetSpec;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.spec.ManagedObject;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelFileBlobConverter.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelFileBlobConverter.java
similarity index 92%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelFileBlobConverter.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelFileBlobConverter.java
index ef3de72..035d64b 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelFileBlobConverter.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelFileBlobConverter.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -11,7 +11,7 @@ import com.google.common.io.Resources;
 import org.apache.poi.util.IOUtils;
 
 import org.apache.isis.applib.value.Blob;
-import org.apache.isis.extensions.excel.dom.ExcelService;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelService;
 
 public class ExcelFileBlobConverter {
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelServiceImpl.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelServiceImpl.java
similarity index 95%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelServiceImpl.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelServiceImpl.java
index ec177f4..3bfa3e5 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/ExcelServiceImpl.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelServiceImpl.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.io.File;
 import java.io.IOException;
@@ -14,12 +14,12 @@ import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.extensions.excel.dom.ExcelService;
-import org.apache.isis.extensions.excel.dom.PivotColumn;
-import org.apache.isis.extensions.excel.dom.PivotRow;
-import org.apache.isis.extensions.excel.dom.PivotValue;
-import org.apache.isis.extensions.excel.dom.WorksheetContent;
-import org.apache.isis.extensions.excel.dom.WorksheetSpec;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelService;
+import org.apache.isis.subdomains.excel.applib.dom.PivotColumn;
+import org.apache.isis.subdomains.excel.applib.dom.PivotRow;
+import org.apache.isis.subdomains.excel.applib.dom.PivotValue;
+import org.apache.isis.subdomains.excel.applib.dom.WorksheetContent;
+import org.apache.isis.subdomains.excel.applib.dom.WorksheetSpec;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.runtime.context.session.RuntimeContextBase;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/Mode.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/Mode.java
similarity index 79%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/Mode.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/Mode.java
index a136a89..d519e7e 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/Mode.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/Mode.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 /**
  * Created by jodo on 31/03/17.
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/PivotUtils.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtils.java
similarity index 97%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/PivotUtils.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtils.java
index 31ea218..b13017c 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/PivotUtils.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtils.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.List;
 
@@ -6,7 +6,7 @@ import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.Row;
 
-import org.apache.isis.extensions.excel.dom.AggregationType;
+import org.apache.isis.subdomains.excel.applib.dom.AggregationType;
 
 public class PivotUtils {
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/SheetPivoter.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoter.java
similarity index 99%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/SheetPivoter.java
rename to subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoter.java
index 75afc60..c0b9823 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/util/SheetPivoter.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoter.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -16,8 +16,8 @@ import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.util.CellReference;
 
-import org.apache.isis.extensions.excel.dom.AggregationType;
-import org.apache.isis.extensions.excel.dom.ExcelService;
+import org.apache.isis.subdomains.excel.applib.dom.AggregationType;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelService;
 
 public class SheetPivoter {
 
diff --git a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/AnnotationListTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationListTest.java
similarity index 94%
rename from subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/AnnotationListTest.java
rename to subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationListTest.java
index 674f5ca..1380664 100644
--- a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/AnnotationListTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationListTest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/AnnotationTripletTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTripletTest.java
similarity index 96%
rename from subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/AnnotationTripletTest.java
rename to subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTripletTest.java
index 432492f..4838f29 100644
--- a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/AnnotationTripletTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTripletTest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
 import java.util.Collections;
diff --git a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/PivotUtilsTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtilsTest.java
similarity index 99%
rename from subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/PivotUtilsTest.java
rename to subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtilsTest.java
index 0857532..2d90767 100644
--- a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/PivotUtilsTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtilsTest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/SheetPivoterTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoterTest.java
similarity index 99%
rename from subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/SheetPivoterTest.java
rename to subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoterTest.java
index e8db5c3..6b66420 100644
--- a/subdomains/excel/impl/src/test/java/org/apache/isis/extensions/excel/dom/util/SheetPivoterTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoterTest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom.util;
+package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/subdomains/excel/fixture/pom.xml b/subdomains/excel/fixture/pom.xml
index b4b52d0..1d7d9dd 100644
--- a/subdomains/excel/fixture/pom.xml
+++ b/subdomains/excel/fixture/pom.xml
@@ -13,8 +13,8 @@
     <name>Apache Isis Sub - Excel (Fixtures)</name>
     
     <properties>
-    	<jar-plugin.automaticModuleName>org.apache.isis.subdomains.excel.fixtures</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/isis/subdomains/excel/fixtures</git-plugin.propertiesDir>
+    	<jar-plugin.automaticModuleName>org.apache.isis.subdomains.excel.fixture</jar-plugin.automaticModuleName>
+        <git-plugin.propertiesDir>org/apache/isis/subdomains/excel/fixture</git-plugin.propertiesDir>
     </properties>
 
     <build>
@@ -56,7 +56,12 @@
 
         <dependency>
             <groupId>org.apache.isis.subdomains</groupId>
-            <artifactId>isis-subdomains-excel-dom</artifactId>
+            <artifactId>isis-subdomains-excel-applib</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.subdomains</groupId>
+            <artifactId>isis-subdomains-excel-testing</artifactId>
         </dependency>
 
         <dependency>
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/ExcelFixturesModule.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/IsisModuleSubExcelFixtures.java
similarity index 79%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/ExcelFixturesModule.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/IsisModuleSubExcelFixtures.java
index 94171dc..787512a 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/ExcelFixturesModule.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/IsisModuleSubExcelFixtures.java
@@ -1,11 +1,11 @@
-package org.apache.isis.extensions.excel.fixtures;
+package org.apache.isis.subdomains.excel.fixtures;
 
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.extensions.excel.ExcelModule;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.fixturescripts.ExcelDemoToDoItem_tearDown;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts.ExcelDemoToDoItem_tearDown;
 import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 import org.apache.isis.extensions.fixtures.modules.Module;
@@ -16,7 +16,7 @@ import org.apache.isis.extensions.fixtures.modules.Module;
         IsisExtFixturesModule.class
 })
 @ComponentScan
-public class ExcelFixturesModule implements Module {
+public class IsisModuleSubExcelFixtures implements Module {
 
     @Override public FixtureScript getTeardownFixture() {
         return new ExcelDemoToDoItem_tearDown();
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
similarity index 82%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
index d49b876..9239582 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.contributions;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.contributions;
 
 import javax.inject.Inject;
 
@@ -7,9 +7,9 @@ import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.value.Blob;
-import org.apache.isis.extensions.excel.dom.ExcelService;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelService;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
 
 @Mixin(method = "act")
 public class ExcelDemoToDoItem_export {
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
similarity index 89%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
index 3d1b595..99d1452 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.contributions;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.contributions;
 
 import javax.inject.Inject;
 
@@ -8,8 +8,8 @@ import org.apache.isis.applib.annotation.Contributed;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.extensions.excel.dom.ExcelService;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
 
 @Mixin(method = "act")
 public class ExcelDemoToDoItem_export2 {
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
similarity index 93%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
index 7379edc..b93efed 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -9,10 +9,10 @@ import javax.jdo.annotations.Column;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.applib.services.title.TitleService;
 import org.apache.isis.applib.services.user.UserService;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
similarity index 94%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
index 0fb191c..b562f7d 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -25,11 +25,11 @@ import org.apache.isis.applib.value.Blob;
 import org.apache.isis.extensions.excel.dom.ExcelService;
 import org.apache.isis.extensions.excel.dom.WorksheetContent;
 import org.apache.isis.extensions.excel.dom.WorksheetSpec;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 
-import static org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem.Predicates.*;
+import static org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem.Predicates.*;
 
 import lombok.Getter;
 import lombok.Setter;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
similarity index 87%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
index 06b81cd..ec358cf 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
 
 import javax.inject.Inject;
 
@@ -7,8 +7,8 @@ import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.extensions.excel.dom.ExcelService;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 
 @DomainService(
         nature = NatureOfService.VIEW,
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
similarity index 85%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
index ebb8b24..0cdf79a 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.pivot;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.pivot;
 
 import java.math.BigDecimal;
 
@@ -8,8 +8,8 @@ import org.apache.isis.extensions.excel.dom.AggregationType;
 import org.apache.isis.extensions.excel.dom.PivotColumn;
 import org.apache.isis.extensions.excel.dom.PivotRow;
 import org.apache.isis.extensions.excel.dom.PivotValue;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 
 import lombok.Getter;
 import lombok.Setter;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
similarity index 92%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
index 50d7844..3b3c022 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.pivot;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.pivot;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -8,7 +8,7 @@ import javax.inject.Inject;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.extensions.excel.dom.ExcelService;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
 
 @DomainService(
         nature = NatureOfService.VIEW,
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
similarity index 89%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
index 7f99ac7..c31d0ce 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -11,10 +11,10 @@ import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.extensions.excel.dom.ExcelFixture;
 import org.apache.isis.extensions.excel.dom.ExcelFixtureRowHandler;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 
 import lombok.Getter;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
similarity index 89%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
index 88bf050..70b8029 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
@@ -1,12 +1,12 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem;
 
 import java.math.BigDecimal;
 
 import org.apache.isis.extensions.excel.dom.ExcelFixture2;
 import org.apache.isis.extensions.excel.dom.ExcelMetaDataEnabled;
 import org.apache.isis.extensions.excel.dom.FixtureAwareRowHandler;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 
 import lombok.Getter;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
similarity index 87%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
index 200a2af..6350780 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -16,10 +16,10 @@ import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.extensions.excel.dom.ExcelFixture;
 import org.apache.isis.extensions.excel.dom.ExcelFixtureRowHandler;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 
 import lombok.Getter;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
similarity index 92%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
index 71613b5..25bddb6 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload;
 
 import java.util.List;
 
@@ -6,7 +6,7 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.extensions.excel.dom.ExcelFixture;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
similarity index 91%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
index f1a67e7..4bddf70 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturescripts;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts;
 
 import com.google.common.io.Resources;
 
@@ -6,7 +6,7 @@ import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.extensions.excel.dom.ExcelFixture2;
 import org.apache.isis.extensions.excel.dom.WorksheetSpec;
 import org.apache.isis.extensions.excel.dom.util.Mode;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler2;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler2;
 
 import lombok.Getter;
 import lombok.Setter;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
similarity index 91%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
index dc22446..6f358d0 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturescripts;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts;
 
 import java.net.URL;
 import java.util.List;
@@ -11,8 +11,8 @@ import com.google.common.io.Resources;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.extensions.excel.dom.ExcelFixture;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 
 import lombok.Getter;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
similarity index 89%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
index fba1b7b..9b750b6 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
@@ -1,11 +1,11 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturescripts;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts;
 
 
 import javax.inject.Inject;
 
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.fixturescripts.ExcelDemoToDoItem_tearDown2;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts.ExcelDemoToDoItem_tearDown2;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 
 public class DemoToDoItem_recreate_usingExcelFixture extends FixtureScript {
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/MoreToDoItems.xlsx b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/MoreToDoItems.xlsx
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/MoreToDoItems.xlsx
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/MoreToDoItems.xlsx
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/ToDoItems.xlsx b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/ToDoItems.xlsx
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/demomodule/fixturescripts/ToDoItems.xlsx
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/ToDoItems.xlsx
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/Category.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Category.java
similarity index 92%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/Category.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Category.java
index 3b5311a..d102cdf 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/Category.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Category.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
similarity index 92%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
index 562f460..462c613 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.util.Comparator;
 
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-done.png b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-done.png
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-done.png
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-done.png
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-todo.png b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-todo.png
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-todo.png
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem-todo.png
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
similarity index 99%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
index 1982133..494d6f6 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.png b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.png
similarity index 100%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.png
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.png
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
similarity index 99%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
index 75825ec..957f4f2 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/Subcategory.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
similarity index 93%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
index 71f18e9..fb4d6aa 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
similarity index 92%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
index 07dd513..695747b 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
@@ -1,14 +1,14 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.fixturescripts;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
 
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Category;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.Subcategory;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Category;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.Subcategory;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 
 public class ExcelDemoToDoItem_recreate5_for extends FixtureScript {
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
similarity index 75%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
index 70aa1f0..9a56036 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.fixturescripts;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 public class ExcelDemoToDoItem_recreate5_forSven extends ExcelDemoToDoItem_recreate5_for {
 
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
similarity index 73%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
index 055dc9e..ec44dfc 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
@@ -1,6 +1,6 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.fixturescripts;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
 import org.apache.isis.extensions.fixtures.legacy.teardown.TeardownFixtureAbstract2;
 
 public class ExcelDemoToDoItem_tearDown extends TeardownFixtureAbstract2 {
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
similarity index 95%
rename from subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
rename to subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
index c46dfc0..2d4e51a 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.fixturescripts;
+package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 import javax.inject.Inject;
 
diff --git a/subdomains/excel/integtests/pom.xml b/subdomains/excel/integtests/pom.xml
index 1e896f0..689ac6c 100644
--- a/subdomains/excel/integtests/pom.xml
+++ b/subdomains/excel/integtests/pom.xml
@@ -14,6 +14,10 @@
     <name>Apache Isis Sub - Excel (Integ Tests)</name>
 
 	<properties>
+
+        <!-- TODO: reinstate -->
+        <skipTests>true</skipTests>
+
     	<jar-plugin.automaticModuleName>org.apache.isis.subdomains.excel.integtests</jar-plugin.automaticModuleName>
         <git-plugin.propertiesDir>org/apache/isis/subdomains/excel/integtests</git-plugin.propertiesDir>
         
@@ -114,6 +118,12 @@
 -->
 
         <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-persistence-jdo-datanucleus5</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
             <groupId>org.hsqldb</groupId>
             <artifactId>hsqldb</artifactId>
             <scope>test</scope>
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/ExcelModuleIntegTestAbstract.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/ExcelModuleIntegTestAbstract.java
similarity index 90%
rename from subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/ExcelModuleIntegTestAbstract.java
rename to subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/ExcelModuleIntegTestAbstract.java
index 2789e10..e315b14 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/ExcelModuleIntegTestAbstract.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/ExcelModuleIntegTestAbstract.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.integtests;
+package org.apache.isis.subdomains.excel.integtests;
 
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Configuration;
@@ -9,7 +9,7 @@ import org.springframework.test.context.ContextConfiguration;
 import org.springframework.transaction.annotation.Transactional;
 
 import org.apache.isis.config.IsisPresets;
-import org.apache.isis.extensions.excel.fixtures.ExcelFixturesModule;
+import org.apache.isis.subdomains.excel.fixtures.IsisModuleSubExcelFixtures;
 import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
 import org.apache.isis.extensions.fixtures.IsisIntegrationTestAbstractWithFixtures;
 import org.apache.isis.jdo.IsisBootDataNucleus;
@@ -40,7 +40,7 @@ public abstract class ExcelModuleIntegTestAbstract extends IsisIntegrationTestAb
                 new ExcelFixturesModule(),
             FakeDataModule.class
              */
-            ExcelFixturesModule.class
+            IsisModuleSubExcelFixtures.class
     })
     public static class AppManifest {
     }
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
similarity index 89%
rename from subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
rename to subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
index a4b1cce..dbff01b 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.integtests.tests;
+package org.apache.isis.subdomains.excel.integtests.tests;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -10,9 +10,9 @@ import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler2;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturescripts.DemoFixture_extending_ExcelFixture2;
-import org.apache.isis.extensions.excel.integtests.ExcelModuleIntegTestAbstract;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem.DemoToDoItemRowHandler2;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts.DemoFixture_extending_ExcelFixture2;
+import org.apache.isis.subdomains.excel.integtests.ExcelModuleIntegTestAbstract;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
similarity index 89%
rename from subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
rename to subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
index 122f0a4..1865a0a 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.integtests.tests;
+package org.apache.isis.subdomains.excel.integtests.tests;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -19,12 +19,12 @@ import org.junit.jupiter.api.Test;
 
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.extensions.excel.dom.ExcelService;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.bulkupdate.BulkUpdateLineItemForDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.bulkupdate.BulkUpdateManagerForDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.dom.bulkupdate.BulkUpdateMenuForDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturescripts.DemoToDoItem_recreate_usingExcelFixture;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
-import org.apache.isis.extensions.excel.integtests.ExcelModuleIntegTestAbstract;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate.BulkUpdateLineItemForDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate.BulkUpdateManagerForDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate.BulkUpdateMenuForDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts.DemoToDoItem_recreate_usingExcelFixture;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.integtests.ExcelModuleIntegTestAbstract;
 
 public class ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest extends ExcelModuleIntegTestAbstract {
 
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
similarity index 78%
rename from subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
rename to subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
index 305410e..30bd8cf 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.integtests.tests;
+package org.apache.isis.subdomains.excel.integtests.tests;
 
 import java.net.URL;
 import java.util.List;
@@ -13,11 +13,11 @@ import org.junit.jupiter.api.Test;
 
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.extensions.excel.dom.util.ExcelFileBlobConverter;
-import org.apache.isis.extensions.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload.ExcelUploadServiceForDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
-import org.apache.isis.extensions.excel.fixtures.demoapp.todomodule.fixturescripts.ExcelDemoToDoItem_tearDown;
-import org.apache.isis.extensions.excel.integtests.ExcelModuleIntegTestAbstract;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload.ExcelUploadServiceForDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItemMenu;
+import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts.ExcelDemoToDoItem_tearDown;
+import org.apache.isis.subdomains.excel.integtests.ExcelModuleIntegTestAbstract;
 
 public class ExcelModuleDemoUploadService_IntegTest extends ExcelModuleIntegTestAbstract {
 
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ToDoItemsWithMultipleSheets.xlsx b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ToDoItemsWithMultipleSheets.xlsx
similarity index 100%
rename from subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/ToDoItemsWithMultipleSheets.xlsx
rename to subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ToDoItemsWithMultipleSheets.xlsx
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/toDoItems-expected.xlsx b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/toDoItems-expected.xlsx
similarity index 100%
rename from subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/toDoItems-expected.xlsx
rename to subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/toDoItems-expected.xlsx
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/toDoItems-updated.xlsx b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/toDoItems-updated.xlsx
similarity index 100%
rename from subdomains/excel/integtests/src/test/java/org/apache/isis/extensions/excel/integtests/tests/toDoItems-updated.xlsx
rename to subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/toDoItems-updated.xlsx
diff --git a/subdomains/excel/pom.xml b/subdomains/excel/pom.xml
new file mode 100644
index 0000000..78ab857
--- /dev/null
+++ b/subdomains/excel/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.isis.subdomains</groupId>
+        <artifactId>isis-subdomains</artifactId>
+        <version>2.0.0-M3-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>isis-subdomains-excel</artifactId>
+    <name>Apache Isis Sub - Excel (parent)</name>
+
+    <description>
+        A domain service for Apache Isis', allowing collections
+        of (view model) objects to be exported/imported to/from an
+        Excel spreadsheet.  Also support for excel-based fixtures.
+    </description>
+
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>applib</module>
+        <module>fixture</module>
+        <module>integtests</module>
+        <module>testing</module>
+    </modules>
+
+</project>
diff --git a/subdomains/excel/impl/src/main/doc/antora.yml b/subdomains/excel/src/main/doc/antora.yml
similarity index 100%
rename from subdomains/excel/impl/src/main/doc/antora.yml
rename to subdomains/excel/src/main/doc/antora.yml
diff --git a/subdomains/excel/impl/src/main/doc/modules/excel/nav.adoc b/subdomains/excel/src/main/doc/modules/excel/nav.adoc
similarity index 100%
rename from subdomains/excel/impl/src/main/doc/modules/excel/nav.adoc
rename to subdomains/excel/src/main/doc/modules/excel/nav.adoc
diff --git a/subdomains/excel/impl/src/main/doc/modules/excel/pages/about.adoc b/subdomains/excel/src/main/doc/modules/excel/pages/about.adoc
similarity index 100%
rename from subdomains/excel/impl/src/main/doc/modules/excel/pages/about.adoc
rename to subdomains/excel/src/main/doc/modules/excel/pages/about.adoc
diff --git a/subdomains/excel/impl/src/main/doc/modules/excel/partials/module-nav.adoc b/subdomains/excel/src/main/doc/modules/excel/partials/module-nav.adoc
similarity index 100%
rename from subdomains/excel/impl/src/main/doc/modules/excel/partials/module-nav.adoc
rename to subdomains/excel/src/main/doc/modules/excel/partials/module-nav.adoc
diff --git a/subdomains/excel/testing/pom.xml b/subdomains/excel/testing/pom.xml
new file mode 100644
index 0000000..75890bd
--- /dev/null
+++ b/subdomains/excel/testing/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.isis.subdomains</groupId>
+        <artifactId>isis-subdomains-excel</artifactId>
+        <version>2.0.0-M3-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>isis-subdomains-excel-testing</artifactId>
+    <name>Apache Isis Sub - Excel (testing support)</name>
+
+    <properties>
+    	<jar-plugin.automaticModuleName>org.apache.isis.subdomains.excel.testing</jar-plugin.automaticModuleName>
+        <git-plugin.propertiesDir>org/apache/isis/subdomains/excel/testing</git-plugin.propertiesDir>
+    </properties>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.apache.isis.subdomains</groupId>
+            <artifactId>isis-subdomains-excel-applib</artifactId>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixture.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture.java
similarity index 97%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixture.java
rename to subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture.java
index ca9fed7..d8835d3 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixture.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.testing;
 
 import java.io.IOException;
 import java.net.URL;
@@ -20,7 +20,8 @@ import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.value.Blob;
-import org.apache.isis.extensions.excel.dom.util.ExcelServiceImpl;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelService;
+import org.apache.isis.subdomains.excel.applib.dom.util.ExcelServiceImpl;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureResultList;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixture2.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture2.java
similarity index 96%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixture2.java
rename to subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture2.java
index 40ba09d..07d77ff 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixture2.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture2.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.testing;
 
 import java.io.IOException;
 import java.net.URL;
@@ -18,6 +18,8 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
+import org.apache.isis.subdomains.excel.applib.dom.ExcelService;
+import org.apache.isis.subdomains.excel.applib.dom.WorksheetSpec;
 
 import lombok.Getter;
 import lombok.Setter;
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixtureRowHandler.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureRowHandler.java
similarity index 86%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixtureRowHandler.java
rename to subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureRowHandler.java
index 328c428..43376c3 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixtureRowHandler.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureRowHandler.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.testing;
 
 import java.util.List;
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixtureWorkbookHandler.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureWorkbookHandler.java
similarity index 86%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixtureWorkbookHandler.java
rename to subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureWorkbookHandler.java
index ec910d9..f656613 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelFixtureWorkbookHandler.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureWorkbookHandler.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.testing;
 
 import java.util.List;
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/FixtureAwareRowHandler.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/FixtureAwareRowHandler.java
similarity index 72%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/FixtureAwareRowHandler.java
rename to subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/FixtureAwareRowHandler.java
index 3454a52..ce212ac 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/FixtureAwareRowHandler.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/FixtureAwareRowHandler.java
@@ -1,7 +1,8 @@
-package org.apache.isis.extensions.excel.dom;
+package org.apache.isis.subdomains.excel.testing;
 
 
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
+import org.apache.isis.subdomains.excel.applib.dom.RowHandler;
 
 public interface FixtureAwareRowHandler<T extends FixtureAwareRowHandler<T>> extends RowHandler<T> {
 
diff --git a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/IsisModuleSubExcelTesting.java
similarity index 63%
rename from subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java
rename to subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/IsisModuleSubExcelTesting.java
index c3c2c09..2f6cd70 100644
--- a/subdomains/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/IsisModuleSubExcelTesting.java
@@ -1,9 +1,9 @@
-package org.apache.isis.extensions.excel;
+package org.apache.isis.subdomains.excel.testing;
 
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
 @ComponentScan
-public class IsisModuleExtExcel {
+public class IsisModuleSubExcelTesting {
 }
diff --git a/subdomains/pom.xml b/subdomains/pom.xml
index 3544fbf..8fbf1d3 100644
--- a/subdomains/pom.xml
+++ b/subdomains/pom.xml
@@ -76,7 +76,12 @@
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
-				<artifactId>isis-subdomains-excel-dom</artifactId>
+				<artifactId>isis-subdomains-excel-applib</artifactId>
+				<version>2.0.0-M3-SNAPSHOT</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.subdomains</groupId>
+				<artifactId>isis-subdomains-excel-testing</artifactId>
 				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
@@ -125,11 +130,7 @@
 		<module>docx</module>
 -->
 
-<!--
-		<module>excel/fixture</module>
-		<module>excel/integtests</module>
--->
-		<module>excel/impl</module>
+		<module>excel</module>
 
 		<module>spring/impl</module>