You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/06/03 08:24:06 UTC

[isis] branch 2112_SpringBoot updated: ISIS-2112: switch logging to Log4j-2

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

ahuber pushed a commit to branch 2112_SpringBoot
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/2112_SpringBoot by this push:
     new 6086ac8  ISIS-2112: switch logging to Log4j-2
6086ac8 is described below

commit 6086ac8c912f30843400a61b750847e9ca7f3066
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jun 3 10:23:52 2019 +0200

    ISIS-2112: switch logging to Log4j-2
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2112
---
 .../services/audit/AuditerServiceLogging.java      |    4 +-
 .../services/publish/PublisherServiceLogging.java  |    4 +-
 core/commons/pom.xml                               |   28 +
 .../isis/commons/internal/spring/EventSpring.java  |    4 +-
 .../isis/commons/internal/spring/_Spring.java      |    4 +-
 .../apache/isis/commons/ioc/LifecycleContext.java  |    4 +-
 .../beans/IsisBeanScanInterceptorForSpring.java    |    4 +-
 .../config/internal/_Config_LifecycleResource.java |    4 +-
 .../isis/config/internal/_Config_Parsers.java      |    4 +-
 .../isis/config/registry/IsisBeanTypeRegistry.java |    4 +-
 .../integtestsupport/IntegrationTestAbstract3.java |    2 +-
 core/log4j/pom.xml                                 |    2 +
 core/maven-plugin/pom.xml                          |  715 ++-
 .../metamodel/services/ServiceInjectorDefault.java |    4 +-
 .../services/grid/GridLoaderServiceDefault.java    |    4 +-
 .../services/registry/ServiceRegistryDefault.java  |    4 +-
 .../specloader/SpecificationLoaderDefault.java     |    4 +-
 .../specloader/specimpl/FacetedMethodsBuilder.java |    4 +-
 .../specimpl/ObjectSpecificationAbstract.java      |    4 +-
 .../specimpl/dflt/ObjectSpecificationDefault.java  |    4 +-
 .../core/runtime/threadpool/ThreadPoolSupport.java |    4 +-
 .../system/persistence/PersistenceSessionBase.java |    4 +-
 core/plugins/jdo-datanucleus-5/pom.xml             |    9 +
 .../system/persistence/PersistenceSession5.java    |    4 +-
 .../persistence/PersistenceSessionFactory5.java    |    4 +-
 .../runtime/system/ObjectMemberAbstractTest.java   |   16 +-
 .../shiro/authentication/ShiroAuthenticator.java   |    4 +-
 core/pom.xml                                       | 5019 ++++++++++----------
 .../HeadlessWithBootstrappingAbstract.java         |   10 +-
 .../runtime/headless/IsisSystemBootstrapper.java   |    4 +-
 .../runtime/headless/logging/LeveledLogger.java    |   41 +-
 .../core/runtime/headless/logging/LogConfig.java   |    9 +-
 .../core/runtime/headless/logging/LogStream.java   |    4 +-
 .../background/ForkingInvocationHandler.java       |    4 +-
 .../core/runtime/services/i18n/po/PoReader.java    |    4 +-
 .../menubars/MenuBarsLoaderServiceDefault.java     |    4 +-
 .../menubars/bootstrap3/MenuBarsServiceBS3.java    |    4 +-
 core/runtime/pom.xml                               |    1 +
 .../fixtures/FixturesInstallerDelegate.java        |    4 +-
 .../FixturesInstallerFromConfiguration.java        |    4 +-
 .../apache/isis/core/runtime/memento/Memento.java  |    4 +-
 .../runtime/persistence/adapter/PojoAdapter.java   |    4 +-
 .../adaptermanager/ObjectAdapterContext.java       |    4 +-
 .../ObjectAdapterContext_DependencyInjection.java  |    2 +-
 .../ObjectAdapterContext_Factories.java            |    2 +-
 .../ObjectAdapterContext_MementoSupport.java       |    4 +-
 ...ctAdapterContext_ObjectAdapterByIdProvider.java |    4 +-
 .../ObjectAdapterContext_ServiceLookup.java        |    2 +-
 .../system/session/IsisSessionFactoryDefault.java  |    4 +-
 .../system/transaction/IsisTransactionManager.java |    4 +-
 core/unittestsupport/pom.xml                       |  219 +-
 .../wicket/viewer/IsisWicketApplication.java       |    4 +-
 ...rgetRespondListenerToResetQueryResultCache.java |    4 +-
 .../integration/wicket/WebRequestCycleForIsis.java |    4 +-
 .../services/TranslationsResolverWicket.java       |    4 +-
 .../model/models/ScalarModelWithMultiPending.java  |    4 +-
 core/viewer-wicket-ui/pom.xml                      |    2 +
 .../org/apache/isis/core/webserver/WebServer.java  |    4 +-
 example/application/demo/pom.xml                   |   12 -
 .../java/domainapp/dom/impl/HelloWorldObjects.java |    6 +
 example/misc/smoketest/pom.xml                     |  272 +-
 .../isis/testdomain/jdo/JdoTestDomainModule.java   |   10 +-
 .../testdomain/jdo/isis-non-changing.properties    |    6 +-
 .../testdomain/tests/JdoBootstrappingTest.java     |   18 +-
 64 files changed, 3271 insertions(+), 3300 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
index 2d81d4c..8729e30 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
@@ -26,10 +26,10 @@ import javax.inject.Singleton;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 @Singleton
-@Slf4j
+@Log4j2
 public class AuditerServiceLogging implements AuditerService {
 
     @PostConstruct
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
index 88d9f75..854ae0e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
@@ -26,9 +26,9 @@ import org.apache.isis.schema.ixn.v1.InteractionDto;
 import org.apache.isis.schema.utils.ChangesDtoUtils;
 import org.apache.isis.schema.utils.InteractionDtoUtils;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Singleton @Slf4j
+@Singleton @Log4j2
 public class PublisherServiceLogging implements PublisherService {
 
     @Override
diff --git a/core/commons/pom.xml b/core/commons/pom.xml
index a74d361..2a4e916 100644
--- a/core/commons/pom.xml
+++ b/core/commons/pom.xml
@@ -80,6 +80,34 @@
 			<artifactId>spring-context</artifactId>
 		</dependency>
 
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter</artifactId>
+			<version>${spring-boot.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>javax.validation</groupId>
+					<artifactId>validation-api</artifactId>
+				</exclusion>
+				<exclusion>
+					<!-- we use log4j-2 instead -->
+					<groupId>org.springframework.boot</groupId>
+					<artifactId>spring-boot-starter-logging</artifactId>
+				</exclusion>
+
+			</exclusions>
+		</dependency>
+
+		<!-- Add Log4j2 Dependency, as a replacement for Spring's default 'logback'. 
+			This requires for the 'spring-boot-starter' to exclude the default logging 
+			artifact 'org.springframework.boot:spring-boot-starter-logging' see https://www.callicoder.com/spring-boot-log4j-2-example/ -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-log4j2</artifactId>
+			<version>${spring-boot.version}</version>
+		</dependency>
+
+
 	</dependencies>
 
 	<profiles>
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/spring/EventSpring.java b/core/commons/src/main/java/org/apache/isis/commons/internal/spring/EventSpring.java
index 4df6212..11b8937 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/spring/EventSpring.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/spring/EventSpring.java
@@ -30,10 +30,10 @@ import org.springframework.context.ApplicationEventPublisher;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 
 import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 @RequiredArgsConstructor
-@Slf4j
+@Log4j2
 class EventSpring<T> implements Event<T> {
 
     private final ApplicationEventPublisher publisher;
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/spring/_Spring.java b/core/commons/src/main/java/org/apache/isis/commons/internal/spring/_Spring.java
index 2557e8e..a47038f 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/spring/_Spring.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/spring/_Spring.java
@@ -57,7 +57,7 @@ import static org.apache.isis.commons.internal.base._NullSafe.stream;
 import static org.apache.isis.commons.internal.base._With.requires;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * <h1>- internal use only -</h1>
@@ -69,7 +69,7 @@ import lombok.extern.slf4j.Slf4j;
  *
  * @since 2.0.0
  */
-@Slf4j
+@Log4j2
 public class _Spring {
 
     public static boolean isContextAvailable() {
diff --git a/core/commons/src/main/java/org/apache/isis/commons/ioc/LifecycleContext.java b/core/commons/src/main/java/org/apache/isis/commons/ioc/LifecycleContext.java
index 45e3aa5..19411f7 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/ioc/LifecycleContext.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/ioc/LifecycleContext.java
@@ -20,9 +20,9 @@ package org.apache.isis.commons.ioc;
 
 import org.apache.isis.commons.internal.base._Strings;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public enum LifecycleContext {
     ApplicationScoped,
     Singleton,
diff --git a/core/config/src/main/java/org/apache/isis/config/beans/IsisBeanScanInterceptorForSpring.java b/core/config/src/main/java/org/apache/isis/config/beans/IsisBeanScanInterceptorForSpring.java
index ae1540e..9b68f87 100644
--- a/core/config/src/main/java/org/apache/isis/config/beans/IsisBeanScanInterceptorForSpring.java
+++ b/core/config/src/main/java/org/apache/isis/config/beans/IsisBeanScanInterceptorForSpring.java
@@ -29,9 +29,9 @@ import org.apache.isis.config.registry.TypeMetaData;
 
 import lombok.Getter;
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public class IsisBeanScanInterceptorForSpring implements TypeFilter {
 	
 	@Getter(lazy=true) private final IsisBeanTypeRegistry typeRegistry = IsisBeanTypeRegistry.current();
diff --git a/core/config/src/main/java/org/apache/isis/config/internal/_Config_LifecycleResource.java b/core/config/src/main/java/org/apache/isis/config/internal/_Config_LifecycleResource.java
index 11162db..94e058c 100644
--- a/core/config/src/main/java/org/apache/isis/config/internal/_Config_LifecycleResource.java
+++ b/core/config/src/main/java/org/apache/isis/config/internal/_Config_LifecycleResource.java
@@ -27,9 +27,9 @@ import org.apache.isis.config.IsisConfiguration;
 import static org.apache.isis.commons.internal.base._With.requires;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 class _Config_LifecycleResource {
     
     private final Map<String, String> mutableProperties; 
diff --git a/core/config/src/main/java/org/apache/isis/config/internal/_Config_Parsers.java b/core/config/src/main/java/org/apache/isis/config/internal/_Config_Parsers.java
index 9ddadc8..79792b8 100644
--- a/core/config/src/main/java/org/apache/isis/config/internal/_Config_Parsers.java
+++ b/core/config/src/main/java/org/apache/isis/config/internal/_Config_Parsers.java
@@ -27,9 +27,9 @@ import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Arrays;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 final class _Config_Parsers {
     
     // -- BOOLEAN
diff --git a/core/config/src/main/java/org/apache/isis/config/registry/IsisBeanTypeRegistry.java b/core/config/src/main/java/org/apache/isis/config/registry/IsisBeanTypeRegistry.java
index 6783043..b55429b 100644
--- a/core/config/src/main/java/org/apache/isis/config/registry/IsisBeanTypeRegistry.java
+++ b/core/config/src/main/java/org/apache/isis/config/registry/IsisBeanTypeRegistry.java
@@ -33,13 +33,13 @@ import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Holds the set of domain services, persistent entities and fixture scripts.services etc.
  * @since 2.0.0-M3
  */
-@NoArgsConstructor(access = AccessLevel.PRIVATE) @Slf4j
+@NoArgsConstructor(access = AccessLevel.PRIVATE) @Log4j2
 public final class IsisBeanTypeRegistry implements BeanSortClassifier, AutoCloseable {
 
     public static IsisBeanTypeRegistry current() {
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java
index d34bb82..5a79b3e 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract3.java
@@ -27,7 +27,6 @@ import org.junit.rules.ExpectedException;
 import org.junit.rules.MethodRule;
 import org.junit.runners.model.FrameworkMethod;
 import org.junit.runners.model.Statement;
-import org.slf4j.event.Level;
 
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.config.IsisConfiguration;
@@ -35,6 +34,7 @@ import org.apache.isis.core.runtime.headless.HeadlessTransactionSupport;
 import org.apache.isis.core.runtime.headless.HeadlessWithBootstrappingAbstract;
 import org.apache.isis.core.runtime.headless.IsisSystem;
 import org.apache.isis.core.runtime.headless.logging.LogConfig;
+import org.apache.logging.log4j.Level;
 
 /**
  * Reworked base class for integration tests, uses a {@link Module} to bootstrap, rather than an {@link AppManifest}.
diff --git a/core/log4j/pom.xml b/core/log4j/pom.xml
index 06012af..768c09f 100644
--- a/core/log4j/pom.xml
+++ b/core/log4j/pom.xml
@@ -36,10 +36,12 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <scope>provided</scope>
         </dependency>
 
         <!-- JEE API -->
diff --git a/core/maven-plugin/pom.xml b/core/maven-plugin/pom.xml
index d75d70d..5d82f13 100644
--- a/core/maven-plugin/pom.xml
+++ b/core/maven-plugin/pom.xml
@@ -1,389 +1,382 @@
 <?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/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.isis.core</groupId>
-        <artifactId>isis</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <groupId>org.apache.isis.tool</groupId>
-    <artifactId>isis-maven-plugin</artifactId>
-
-    <packaging>maven-plugin</packaging>
-
-    <name>Apache Isis Maven Plugin (isis-maven-plugin)</name>
-    <description>
+<!-- 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/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+		<version>${revision}</version>
+	</parent>
+
+	<groupId>org.apache.isis.tool</groupId>
+	<artifactId>isis-maven-plugin</artifactId>
+
+	<packaging>maven-plugin</packaging>
+
+	<name>Apache Isis Maven Plugin (isis-maven-plugin)</name>
+	<description>
         Maven plugin for Apache Isis, allowing the metamodel to be validated as part of the build process.
     </description>
 
-    <prerequisites>
-        <maven>3.5.3</maven>
-    </prerequisites>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.isis.tool.mavenplugin</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/isis/tool/mavenplugin</git-plugin.propertiesDir>
-
-        <maven-core.version>3.5.3</maven-core.version>
-        <maven-project.version>3.0-alpha-2</maven-project.version>
-        <maven-plugin-annotations.version>3.5.1</maven-plugin-annotations.version>
-        <plexus-container-default.version>1.7.1</plexus-container-default.version>
-        <plexus-utils.version>3.1.0</plexus-utils.version>
-        
-    </properties>
-
-    <build>
-
-        <pluginManagement>
-            <plugins>
-                <!-- Apache Release Audit Tool -->
-                <plugin>
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <version>0.10</version>
-                    <configuration>
-                        <excludes>
-                            <!--
-                            overriding inherited excludes from oia.core:isis
-                            with a more specific set for this component
-                             -->
-                            <exclude>**/target/**</exclude>
-                            <exclude>**/target-ide/**</exclude>
-
-                            <exclude>**/*.project</exclude>
-                            <exclude>**/.classpath</exclude>
-                            <exclude>**/.settings/**</exclude>
-                        </excludes>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-plugin-plugin</artifactId>
-                <configuration>
-                    <goalPrefix>configurator</goalPrefix>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>default-descriptor</id>
-                        <goals>
-                            <goal>descriptor</goal>
-                        </goals>
-                        <phase>process-classes</phase>
-                    </execution>
-                    <execution>
-                        <id>help-descriptor</id>
-                        <goals>
-                            <goal>helpmojo</goal>
-                        </goals>
-                        <phase>process-classes</phase>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-runtime-services</artifactId>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-runtime-extensions</artifactId>
-        </dependency>
-
-        <!-- 
-        the plethora of exclusions in the following dependencies
-        are to ensure dependency convergence.
-        
-        In some cases, what would have been a transitive dependency
-        is added as a direct dependency in order that its divergent dependency
-        can be excluded.
-        
-        It's all a bit of a pig's ear...
-        -->
-        
-        <dependency>
-        	<groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-utils</artifactId>
-            <version>${plexus-utils.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-plugin-api</artifactId>
-            <version>${maven-core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-component-annotations</artifactId>
-                </exclusion>
-                <exclusion>
-                	<groupId>org.codehaus.plexus</groupId>
-                	<artifactId>plexus-utils</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven.plugin-tools</groupId>
-            <artifactId>maven-plugin-annotations</artifactId>
-            <version>${maven-plugin-annotations.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.maven</groupId>
-                    <artifactId>maven-artifact</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-core</artifactId>
-            <version>${maven-core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-sec-dispatcher</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>com.google.inject</groupId>
-                    <artifactId>guice</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-model</artifactId>
-            <version>${maven-core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-model-builder</artifactId>
-            <version>${maven-core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-settings</artifactId>
-            <version>${maven-core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-artifact</artifactId>
-            <version>${maven-core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-project</artifactId>
-            <version>${maven-project.version}</version>
-            <exclusions>
-                <!-- for dependency convergence -->
-                <exclusion>
-                    <groupId>org.apache.maven</groupId>
-                    <artifactId>maven-core</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.maven</groupId>
-                    <artifactId>maven-model</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.maven</groupId>
-                    <artifactId>maven-compat</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-container-default</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-interpolation</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-compat</artifactId>
-            <version>${maven-core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-container-default</artifactId>
-            <version>${plexus-container-default.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-classworlds</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.codehaus.plexus</groupId>
-                    <artifactId>plexus-utils</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>com.google.collections</groupId>
-                    <artifactId>google-collections</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-toolchain</artifactId>
-            <version>${maven-project.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.maven</groupId>
-                    <artifactId>maven-core</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.maven</groupId>
-                    <artifactId>maven-compat</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        
-        <!-- SPRING -->
+	<prerequisites>
+		<maven>3.5.3</maven>
+	</prerequisites>
+
+	<properties>
+		<jar-plugin.automaticModuleName>org.apache.isis.tool.mavenplugin</jar-plugin.automaticModuleName>
+		<git-plugin.propertiesDir>org/apache/isis/tool/mavenplugin</git-plugin.propertiesDir>
+
+		<maven-core.version>3.5.3</maven-core.version>
+		<maven-project.version>3.0-alpha-2</maven-project.version>
+		<maven-plugin-annotations.version>3.5.1</maven-plugin-annotations.version>
+		<plexus-container-default.version>1.7.1</plexus-container-default.version>
+		<plexus-utils.version>3.1.0</plexus-utils.version>
+
+	</properties>
+
+	<build>
+
+		<pluginManagement>
+			<plugins>
+				<!-- Apache Release Audit Tool -->
+				<plugin>
+					<groupId>org.apache.rat</groupId>
+					<artifactId>apache-rat-plugin</artifactId>
+					<version>0.10</version>
+					<configuration>
+						<excludes>
+							<!-- overriding inherited excludes from oia.core:isis with a more 
+								specific set for this component -->
+							<exclude>**/target/**</exclude>
+							<exclude>**/target-ide/**</exclude>
+
+							<exclude>**/*.project</exclude>
+							<exclude>**/.classpath</exclude>
+							<exclude>**/.settings/**</exclude>
+						</excludes>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-plugin-plugin</artifactId>
+				<configuration>
+					<goalPrefix>configurator</goalPrefix>
+				</configuration>
+				<executions>
+					<execution>
+						<id>default-descriptor</id>
+						<goals>
+							<goal>descriptor</goal>
+						</goals>
+						<phase>process-classes</phase>
+					</execution>
+					<execution>
+						<id>help-descriptor</id>
+						<goals>
+							<goal>helpmojo</goal>
+						</goals>
+						<phase>process-classes</phase>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-runtime-services</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-runtime-extensions</artifactId>
+		</dependency>
+
+		<!-- the plethora of exclusions in the following dependencies are to ensure 
+			dependency convergence. In some cases, what would have been a transitive 
+			dependency is added as a direct dependency in order that its divergent dependency 
+			can be excluded. It's all a bit of a pig's ear... -->
+
+		<dependency>
+			<groupId>org.codehaus.plexus</groupId>
+			<artifactId>plexus-utils</artifactId>
+			<version>${plexus-utils.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-plugin-api</artifactId>
+			<version>${maven-core.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-component-annotations</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven.plugin-tools</groupId>
+			<artifactId>maven-plugin-annotations</artifactId>
+			<version>${maven-plugin-annotations.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.apache.maven</groupId>
+					<artifactId>maven-artifact</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-core</artifactId>
+			<version>${maven-core.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-sec-dispatcher</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>com.google.inject</groupId>
+					<artifactId>guice</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-model</artifactId>
+			<version>${maven-core.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-model-builder</artifactId>
+			<version>${maven-core.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-settings</artifactId>
+			<version>${maven-core.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-artifact</artifactId>
+			<version>${maven-core.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-project</artifactId>
+			<version>${maven-project.version}</version>
+			<exclusions>
+				<!-- for dependency convergence -->
+				<exclusion>
+					<groupId>org.apache.maven</groupId>
+					<artifactId>maven-core</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.apache.maven</groupId>
+					<artifactId>maven-model</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.apache.maven</groupId>
+					<artifactId>maven-compat</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-container-default</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-interpolation</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-compat</artifactId>
+			<version>${maven-core.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.codehaus.plexus</groupId>
+			<artifactId>plexus-container-default</artifactId>
+			<version>${plexus-container-default.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-classworlds</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.codehaus.plexus</groupId>
+					<artifactId>plexus-utils</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>com.google.collections</groupId>
+					<artifactId>google-collections</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.maven</groupId>
+			<artifactId>maven-toolchain</artifactId>
+			<version>${maven-project.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.apache.maven</groupId>
+					<artifactId>maven-core</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.apache.maven</groupId>
+					<artifactId>maven-compat</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<!-- SPRING -->
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-parent</artifactId>
 			<version>${spring-boot.version}</version>
 			<type>pom</type>
 			<scope>import</scope>
-			
+
 			<exclusions>
 				<exclusion>
 					<groupId>org.ow2.asm</groupId>
 					<artifactId>asm</artifactId>
 				</exclusion>
 				<exclusion>
-					<!-- when spring-boot release lags behind spring-core release 
-						explicitly spring-test added below-->
+					<!-- when spring-boot release lags behind spring-core release explicitly 
+						spring-test added below -->
 					<groupId>org.springframework</groupId>
 					<artifactId>spring-test</artifactId>
 				</exclusion>
 				<exclusion>
-					<!-- when spring-boot release lags behind spring-core release 
-						explicitly spring-test added below-->
+					<!-- when spring-boot release lags behind spring-core release explicitly 
+						spring-test added below -->
 					<groupId>org.springframework</groupId>
 					<artifactId>spring-core</artifactId>
 				</exclusion>
 			</exclusions>
 		</dependency>
 
-    </dependencies>
-
-    <profiles>
-        <profile>
-            <id>flatten</id>
-            <activation>
-                <property>
-                    <name>!skip.flatten</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>flatten-maven-plugin</artifactId>
-                        <version>1.0.0</version>
-                        <executions>
-                            <execution>
-                                <id>flatten</id>
-                                <phase>process-resources</phase>
-                                <goals>
-                                    <goal>flatten</goal>
-                                </goals>
-                                <configuration>
-                                    <flattenMode>defaults</flattenMode>
-                                    <updatePomFile>true</updatePomFile>
-                                    <pomElements>
-                                        <name>resolve</name>
-                                        <description>resolve</description>
-                                        <dependencies>resolve</dependencies>
-                                    </pomElements>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>flatten.clean</id>
-                                <phase>clean</phase>
-                                <goals>
-                                    <goal>clean</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
+		<!-- Logging -->
+
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+		</dependency>
+
+	</dependencies>
+
+	<profiles>
+		<profile>
+			<id>flatten</id>
+			<activation>
+				<property>
+					<name>!skip.flatten</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>flatten-maven-plugin</artifactId>
+						<version>1.0.0</version>
+						<executions>
+							<execution>
+								<id>flatten</id>
+								<phase>process-resources</phase>
+								<goals>
+									<goal>flatten</goal>
+								</goals>
+								<configuration>
+									<flattenMode>defaults</flattenMode>
+									<updatePomFile>true</updatePomFile>
+									<pomElements>
+										<name>resolve</name>
+										<description>resolve</description>
+										<dependencies>resolve</dependencies>
+									</pomElements>
+								</configuration>
+							</execution>
+							<execution>
+								<id>flatten.clean</id>
+								<phase>clean</phase>
+								<goals>
+									<goal>clean</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
 
 </project>
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java
index e2fcdff..6c8d2c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceInjectorDefault.java
@@ -44,9 +44,9 @@ import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 import org.apache.isis.core.metamodel.spec.InjectorMethodEvaluator;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Singleton @Slf4j
+@Singleton @Log4j2
 public class ServiceInjectorDefault implements ServiceInjector {
     
     private static final String KEY_SET_PREFIX = "isis.services.injector.setPrefix";
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
index b82bf1e..7e76bb0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
@@ -42,9 +42,9 @@ import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.commons.internal.resources._Resources;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Singleton @Slf4j
+@Singleton @Log4j2
 public class GridLoaderServiceDefault implements GridLoaderService {
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java
index f72f054..e472ed2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java
@@ -50,12 +50,12 @@ import org.apache.isis.core.runtime.threadpool.ThreadPoolExecutionMode;
 import org.apache.isis.core.runtime.threadpool.ThreadPoolSupport;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * @since 2.0.0
  */
-@Singleton @Slf4j
+@Singleton @Log4j2
 public final class ServiceRegistryDefault implements ServiceRegistry, ApplicationContextAware {
 
     @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
index df57289..6b70616 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
@@ -41,7 +41,7 @@ import org.apache.isis.schema.utils.CommonDtoUtils;
 import static org.apache.isis.commons.internal.base._With.requires;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * <p>
@@ -59,7 +59,7 @@ import lombok.extern.slf4j.Slf4j;
  * </p>
  */
 @Singleton
-@Slf4j
+@Log4j2
 public class SpecificationLoaderDefault implements SpecificationLoader {
 
 	private final ClassSubstitutor classSubstitutor = new ClassSubstitutor();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index 39246dd..6008eb5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -53,9 +53,9 @@ import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
 import org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public class FacetedMethodsBuilder {
 
     private static final String GET_PREFIX = "get";
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index ac73a7f..8caa633 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -96,9 +96,9 @@ import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapabl
 import static org.apache.isis.commons.internal.base._NullSafe.stream;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implements ObjectSpecification {
 
     private static class SubclassList {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 3ca2ac5..f8b9b4b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -71,9 +71,9 @@ import org.apache.isis.core.metamodel.specloader.specimpl.OneToOneAssociationDef
 
 import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public class ObjectSpecificationDefault extends ObjectSpecificationAbstract implements FacetHolder {
 
     private static final ClassSubstitutor classSubstitutor = new ClassSubstitutor();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
index 3bea357..f7c628f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
@@ -49,7 +49,7 @@ import static java.util.stream.Collectors.toList;
 import static org.apache.isis.commons.internal.base._Casts.uncheckedCast;
 import static org.apache.isis.commons.internal.base._With.requires;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * ThreadPoolSupport is application-scoped, meaning ThreadPoolSupport is closed on
@@ -59,7 +59,7 @@ import lombok.extern.slf4j.Slf4j;
  * when application shuts down.
  *
  */
-@Slf4j
+@Log4j2
 public final class ThreadPoolSupport implements AutoCloseable {
 
     public static ThreadPoolExecutionMode HIGHEST_CONCURRENCY_EXECUTION_MODE_ALLOWED = 
diff --git a/core/plugins/jdo-common/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java b/core/plugins/jdo-common/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java
index ffc81fd..cd921ac 100644
--- a/core/plugins/jdo-common/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java
+++ b/core/plugins/jdo-common/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java
@@ -43,9 +43,9 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryProcessor;
 
 import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 abstract class PersistenceSessionBase implements PersistenceSession {
 
     // -- FIELDS
diff --git a/core/plugins/jdo-datanucleus-5/pom.xml b/core/plugins/jdo-datanucleus-5/pom.xml
index 1b851e5..04b02c1 100644
--- a/core/plugins/jdo-datanucleus-5/pom.xml
+++ b/core/plugins/jdo-datanucleus-5/pom.xml
@@ -124,6 +124,15 @@
 			<scope>compile</scope>
 		</dependency>
 		
+		<!-- LOGGING -->
+		
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>2.11.2</version>
+		</dependency>
+		
+		
 		<!-- TESTING -->
 		
         <dependency>
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
index d382550..4e992fe 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
@@ -99,14 +99,14 @@ import static java.util.Objects.requireNonNull;
 import static org.apache.isis.commons.internal.base._Casts.uncheckedCast;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * A wrapper around the JDO {@link PersistenceManager}, which also manages concurrency
  * and maintains an identity map of {@link ObjectAdapter adapter}s and {@link Oid
  * identities} for each and every POJO that is being used by the framework.
  */
-@Vetoed @Slf4j
+@Vetoed @Log4j2
 public class PersistenceSession5 extends PersistenceSessionBase
 implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
 
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java
index d3a5889..606802b 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java
@@ -42,14 +42,14 @@ import org.apache.isis.objectstore.jdo.service.JdoEntityTypeRegistry;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  *
  * Factory for {@link PersistenceSession}.
  *
  */
-@Vetoed @Slf4j
+@Vetoed @Log4j2
 public class PersistenceSessionFactory5
 implements PersistenceSessionFactory, ApplicationScopedComponent, FixturesInstalledStateHolder {
 
diff --git a/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java b/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index 6fdc086..9e2a829 100644
--- a/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -28,15 +28,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-import org.datanucleus.enhancement.Persistable;
-import org.jmock.Expectations;
-import org.jmock.auto.Mock;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.config.internal._Config;
 import org.apache.isis.core.metamodel.MetaModelContext;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid.Factory;
@@ -69,6 +61,12 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+import org.datanucleus.enhancement.Persistable;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
 
 public class ObjectMemberAbstractTest {
 
@@ -97,7 +95,7 @@ public class ObjectMemberAbstractTest {
 
     @Before
     public void setUp() throws Exception {
-        org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
+        //org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
 
         MetaModelContext.preset(MetaModelContext.builder()
                 .specificationLoader(mockSpecificationLoader)
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
index 0f8a46a..816ca81 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
@@ -51,7 +51,7 @@ import org.apache.isis.security.shiro.ShiroSecurityContext;
 
 import static org.apache.isis.config.internal._Config.getConfiguration;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * If Shiro is configured for both {@link AuthenticationManagerInstaller authentication} and
@@ -63,7 +63,7 @@ import lombok.extern.slf4j.Slf4j;
  * {@link SecurityManager Shiro SecurityManager}
  * (bound to a thread-local).
  */
-@Slf4j
+@Log4j2
 public class ShiroAuthenticator implements Authenticator {
 
     private static final String ISIS_AUTHENTICATION_SHIRO_AUTO_LOGOUT_KEY = "isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated";
diff --git a/core/pom.xml b/core/pom.xml
index 1f41aa1..2caa160 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -1,41 +1,35 @@
 <?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/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache</groupId>
-        <artifactId>apache</artifactId>
-        <version>21</version>
-        <relativePath />
-    </parent>
-
-    <groupId>org.apache.isis.core</groupId>
-    <artifactId>isis</artifactId>
-    <version>${revision}</version>
-    
-    <packaging>pom</packaging>
-
-    <name>Apache Isis</name>
-
-    <description>
+<!-- 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/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache</groupId>
+		<artifactId>apache</artifactId>
+		<version>21</version>
+		<relativePath />
+	</parent>
+
+	<groupId>org.apache.isis.core</groupId>
+	<artifactId>isis</artifactId>
+	<version>${revision}</version>
+
+	<packaging>pom</packaging>
+
+	<name>Apache Isis</name>
+
+	<description>
         Core framework, providing metamodel, runtime and core APIs.
 
         Also defines standard build process, as well as
@@ -43,1436 +37,1413 @@
         logging frameworks).
     </description>
 
-    <inceptionYear>2010</inceptionYear>
-
-    <properties>
-        <revision>2.0.0-M3-SNAPSHOT</revision>
-        <isis.version>${revision}</isis.version>
-
-        <isis.skipTests>false</isis.skipTests>
-        <maven.test.skip>${isis.skipTests}</maven.test.skip>
-
-        <jar-plugin.automaticModuleName>org.apache.isis.core</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/isis/core</git-plugin.propertiesDir>
-
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-
-        <testsToExclude>**/*IntegrationTest.java</testsToExclude>
-
-        <!-- remaining properties should not need to be overridden -->
-        <compileSource>8</compileSource>
-        <compileTarget>8</compileTarget>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
-        <surefire-plugin.argLine>-Xms1024m -Xmx1024m</surefire-plugin.argLine>
-
-        <dependency.locations.enabled>false</dependency.locations.enabled>
-        <coreBaseDir>${project.build.directory}/..</coreBaseDir>
-        <checkstyle.configLocation>${coreBaseDir}/codequality/checkstyle.xml</checkstyle.configLocation>
-        <pmd.ruleset>${coreBaseDir}/codequality/pmd.xml</pmd.ruleset>
-        <git-plugin.gitDir>${coreBaseDir}/../.git</git-plugin.gitDir>
-
-        <projectUrl>${project.url}</projectUrl>
-
-        <license.additional-notes>In addition, Isis uses some Javascript libraries:
-* Twitter Bootstrap, licensed under MIT [1]
-* Bootstrap-Growl (JQuery plugin), licensed under MIT license [2]
-* LiveQuery (JQuery plugin), licensed under MIT license [3]
-* Wicket Bootstrap, licenced under ASL 2 [4]
-* Bootstrap Datetimepicker, licenced under MIT licence [5]
-* Moment.js, licenced under MIT licence [6]
-
-[1] https://github.com/twbs/bootstrap/blob/master/LICENSE
-[2] https://github.com/mouse0270/bootstrap-growl/blob/master/LICENSE
-[3] https://github.com/brandonaaron/livequery#license
-[4] https://github.com/l0rdn1kk0n/wicket-bootstrap
-[5] https://github.com/Eonasdan/bootstrap-datetimepicker/blob/master/LICENSE
-[6] https://github.com/moment/moment/blob/develop/LICENSE</license.additional-notes>
-
-        <!-- JDO API -->
-        <jdo-api.version>3.1</jdo-api.version>
-
-        <!-- Isis Datanucleus JDO Plugin dn5 -->
-	    <dn5-jdo-api.version>3.2.0-m12</dn5-jdo-api.version>
-        <dn5-core.version>5.2.1</dn5-core.version>
-        <dn5-api-jdo.version>5.2.1</dn5-api-jdo.version>
-        <dn5-jdo-query.version>5.0.9</dn5-jdo-query.version>
-        <dn5-rdbms.version>5.2.1</dn5-rdbms.version>
-        <dn5-jodatime.version>5.2.0-release</dn5-jodatime.version>
-        <dn5-maven-plugin.version>5.0.2</dn5-maven-plugin.version>
-		
-        <!-- Isis Resteasy Plugin 4 (for JEE 8 JAX-RS API 2.1) -->
-		
-        <resteasy4-jaxrs.version>4.0.0.Beta5</resteasy4-jaxrs.version>
-        
-        <!-- failing to update to Shiro 1.4.0, running into unresolved issue: 
-        https://issues.apache.org/jira/browse/SHIRO-610 -->
-        <shiro.version>1.3.2</shiro.version>
-
-        <slf4j.version>1.7.21</slf4j.version>
-        <log4j.version>1.2.17</log4j.version>
-        
-        <lombok.version>[1.18.,)</lombok.version>
-
-        <joda-time.version>2.9.4</joda-time.version>
-        
-        <!-- wicket-guice 8.2.0 requires guice 4.2.2, 
-        which requires guava 25.1-android -->
-        <guice.version>4.1.0</guice.version>
-        <guava.version>19.0</guava.version>
-
-        <hamcrest.version>1.3</hamcrest.version>
-
-        <findbugs-annotations.version>2.0.1</findbugs-annotations.version>
-
-        <commons-logging.version>1.2</commons-logging.version>
-        <commons-httpclient.version>3.1</commons-httpclient.version>
-        <commons-codec.version>1.10</commons-codec.version>
-        <commons-email.version>1.4</commons-email.version>
-        <commons-io.version>2.6</commons-io.version>
-        <com-sun-mail.version>1.5.2</com-sun-mail.version>
-        <jopt-simple.version>6.0-alpha-3</jopt-simple.version>
-
-        <jackson.version>2.9.8</jackson.version>
-        <gson.version>2.7</gson.version>
-        <swagger-core.version>1.5.21</swagger-core.version>
-
-        <hsqldb.version>2.4.1</hsqldb.version>
-        <h2.version>1.4.197</h2.version>
-        <log4jdbc-remix.version>0.2.7</log4jdbc-remix.version>
-
-        <jetty.version>9.4.12.v20180830</jetty.version>
+	<inceptionYear>2010</inceptionYear>
+
+	<properties>
+		<revision>2.0.0-M3-SNAPSHOT</revision>
+		<isis.version>${revision}</isis.version>
+
+		<isis.skipTests>false</isis.skipTests>
+		<maven.test.skip>${isis.skipTests}</maven.test.skip>
+
+		<jar-plugin.automaticModuleName>org.apache.isis.core</jar-plugin.automaticModuleName>
+		<git-plugin.propertiesDir>org/apache/isis/core</git-plugin.propertiesDir>
+
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+		<testsToExclude>**/*IntegrationTest.java</testsToExclude>
+
+		<!-- remaining properties should not need to be overridden -->
+		<compileSource>8</compileSource>
+		<compileTarget>8</compileTarget>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+		<surefire-plugin.argLine>-Xms1024m -Xmx1024m</surefire-plugin.argLine>
+
+		<dependency.locations.enabled>false</dependency.locations.enabled>
+		<coreBaseDir>${project.build.directory}/..</coreBaseDir>
+		<checkstyle.configLocation>${coreBaseDir}/codequality/checkstyle.xml</checkstyle.configLocation>
+		<pmd.ruleset>${coreBaseDir}/codequality/pmd.xml</pmd.ruleset>
+		<git-plugin.gitDir>${coreBaseDir}/../.git</git-plugin.gitDir>
+
+		<projectUrl>${project.url}</projectUrl>
+
+		<license.additional-notes>In addition, Isis uses some Javascript
+			libraries:
+			* Twitter Bootstrap, licensed under MIT [1]
+			* Bootstrap-Growl (JQuery plugin), licensed under MIT license [2]
+			* LiveQuery (JQuery plugin), licensed under MIT license [3]
+			* Wicket Bootstrap, licenced under ASL 2 [4]
+			* Bootstrap Datetimepicker, licenced under MIT licence [5]
+			* Moment.js, licenced under MIT licence [6]
+
+			[1] https://github.com/twbs/bootstrap/blob/master/LICENSE
+			[2] https://github.com/mouse0270/bootstrap-growl/blob/master/LICENSE
+			[3] https://github.com/brandonaaron/livequery#license
+			[4] https://github.com/l0rdn1kk0n/wicket-bootstrap
+			[5]
+			https://github.com/Eonasdan/bootstrap-datetimepicker/blob/master/LICENSE
+			[6] https://github.com/moment/moment/blob/develop/LICENSE</license.additional-notes>
+
+		<!-- JDO API -->
+		<jdo-api.version>3.1</jdo-api.version>
+
+		<!-- Isis Datanucleus JDO Plugin dn5 -->
+		<dn5-jdo-api.version>3.2.0-m12</dn5-jdo-api.version>
+		<dn5-core.version>5.2.1</dn5-core.version>
+		<dn5-api-jdo.version>5.2.1</dn5-api-jdo.version>
+		<dn5-jdo-query.version>5.0.9</dn5-jdo-query.version>
+		<dn5-rdbms.version>5.2.1</dn5-rdbms.version>
+		<dn5-jodatime.version>5.2.0-release</dn5-jodatime.version>
+		<dn5-maven-plugin.version>5.0.2</dn5-maven-plugin.version>
+
+		<!-- Isis Resteasy Plugin 4 (for JEE 8 JAX-RS API 2.1) -->
+
+		<resteasy4-jaxrs.version>4.0.0.Beta5</resteasy4-jaxrs.version>
+
+		<!-- failing to update to Shiro 1.4.0, running into unresolved issue: https://issues.apache.org/jira/browse/SHIRO-610 -->
+		<shiro.version>1.3.2</shiro.version>
+
+		<slf4j.version>1.7.21</slf4j.version>
+		<log4j.version>1.2.17</log4j.version>
+
+		<lombok.version>[1.18.,)</lombok.version>
+
+		<joda-time.version>2.9.4</joda-time.version>
+
+		<!-- wicket-guice 8.2.0 requires guice 4.2.2, which requires guava 25.1-android -->
+		<guice.version>4.1.0</guice.version>
+		<guava.version>19.0</guava.version>
+
+		<hamcrest.version>1.3</hamcrest.version>
+
+		<findbugs-annotations.version>2.0.1</findbugs-annotations.version>
+
+		<commons-logging.version>1.2</commons-logging.version>
+		<commons-httpclient.version>3.1</commons-httpclient.version>
+		<commons-codec.version>1.10</commons-codec.version>
+		<commons-email.version>1.4</commons-email.version>
+		<commons-io.version>2.6</commons-io.version>
+		<com-sun-mail.version>1.5.2</com-sun-mail.version>
+		<jopt-simple.version>6.0-alpha-3</jopt-simple.version>
+
+		<jackson.version>2.9.8</jackson.version>
+		<gson.version>2.7</gson.version>
+		<swagger-core.version>1.5.21</swagger-core.version>
+
+		<hsqldb.version>2.4.1</hsqldb.version>
+		<h2.version>1.4.197</h2.version>
+		<log4jdbc-remix.version>0.2.7</log4jdbc-remix.version>
+
+		<jetty.version>9.4.12.v20180830</jetty.version>
 
 		<spring-framework.version>5.1.7.RELEASE</spring-framework.version>
 		<spring-boot.version>2.1.5.RELEASE</spring-boot.version>
-		
-        <wicket.version>8.4.0</wicket.version>
-        <wicketstuff.version>8.4.0</wicketstuff.version> <!-- org.wicketstuff:wicketstuff-select2 -->
-        <wicket-bootstrap.version>2.0.3</wicket-bootstrap.version> <!-- de.agilecoders.wicket:wicket-bootstrap-core -->
-        <wicket-source.version>7.0.0</wicket-source.version>
 
-<!-- [ahuber] update to newer versions just does not work as a drop in replacement
-        <wicket-webjars.version>2.0.7</wicket-webjars.version>
--->     
-        <wicket-webjars.version>0.5.4</wicket-webjars.version>
-        
-        <select2.version>4.0.5</select2.version>
+		<wicket.version>8.4.0</wicket.version>
+		<wicketstuff.version>8.4.0</wicketstuff.version> <!-- org.wicketstuff:wicketstuff-select2 -->
+		<wicket-bootstrap.version>2.0.3</wicket-bootstrap.version> <!-- de.agilecoders.wicket:wicket-bootstrap-core -->
+		<wicket-source.version>7.0.0</wicket-source.version>
+
+		<!-- [ahuber] update to newer versions just does not work as a drop in 
+			replacement <wicket-webjars.version>2.0.7</wicket-webjars.version> -->
+		<wicket-webjars.version>0.5.4</wicket-webjars.version>
+
+		<select2.version>4.0.5</select2.version>
+
+		<jquery-ui.version>1.12.1</jquery-ui.version>
+
 
-        <jquery-ui.version>1.12.1</jquery-ui.version>
+		<picocontainer.version>2.15</picocontainer.version>
 
-        
-        <picocontainer.version>2.15</picocontainer.version>
-        
-        <javaee.version>8.0</javaee.version>
+		<javaee.version>8.0</javaee.version>
 
-        <htmlparser.version>2.1</htmlparser.version>
+		<htmlparser.version>2.1</htmlparser.version>
 
-        <junit.version>5.4.2</junit.version>
-        <junit-legacy.version>4.12</junit-legacy.version>
-        <assertj.version>3.11.1</assertj.version>
+		<junit.version>5.4.2</junit.version>
+		<junit-legacy.version>4.12</junit-legacy.version>
+		<assertj.version>3.11.1</assertj.version>
 
 		<mockito.version>2.23.4</mockito.version>
 		<bytebuddy.version>1.9.12</bytebuddy.version>
 
-        <jmock.version>2.11.0</jmock.version>
-        <easymock.version>2.5.2</easymock.version>
-        <cucumber.version>1.2.4</cucumber.version>
-
-        <validation-api.version>1.1.0.Final</validation-api.version>
-        <transaction-api.version>1.2</transaction-api.version>
-
-        <javax-mail.version>1.4.7</javax-mail.version>
-
-        <jboss-jaxrs-api_2.0_spec.version>1.0.0.Final</jboss-jaxrs-api_2.0_spec.version>
-    </properties>
-
-    <scm>
-        <connection>scm:git:http://github.com/apache/isis.git</connection>
-        <developerConnection>scm:git:https://github.com/apache/isis.git</developerConnection>
-        <url>http://github.com/apache/isis</url>
-        <tag>HEAD</tag>
-    </scm>
-
-    <url>http://isis.apache.org</url>
-
-    <mailingLists>
-        <mailingList>
-            <name>developers</name>
-            <archive>http://mail-archives.apache.org/mod_mbox/isis-dev/</archive>
-            <post>dev@isis.apache.org</post>
-            <subscribe>dev-subscribe@isis.apache.org</subscribe>
-            <unsubscribe>dev-unsubscribe@isis.apache.org</unsubscribe>
-        </mailingList>
-        <mailingList>
-            <name>users</name>
-            <archive>http://mail-archives.apache.org/mod_mbox/isis-users/</archive>
-            <post>users@isis.apache.org</post>
-            <subscribe>users-subscribe@isis.apache.org</subscribe>
-            <unsubscribe>users-unsubscribe@isis.apache.org</unsubscribe>
-        </mailingList>
-    </mailingLists>
-
-    <developers>
-    	<developer>
-            <id>ahuber</id>
-            <name>Andi Huber</name>
-            <email>ahuber@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+1</timezone>
-        </developer>
-        <developer>
-            <id>danhaywood</id>
-            <name>Dan Haywood</name>
-            <email>danhaywood@apache.org</email>
-            <roles>
-                <role>pmc chair</role>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+0</timezone>
-        </developer>
-        <developer>
-            <id>dslaughter</id>
-            <name>Dave Slaughter</name>
-            <email>dslaughter@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>-6</timezone>
-        </developer>
-        <developer>
-            <id>jcvanderwal</id>
-            <name>Jeroen van der Wal</name>
-            <email>jeroen@stromboli.it</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+1</timezone>
-        </developer>
-        <developer>
-            <id>kevin</id>
-            <name>Kevin Meyer</name>
-            <email>kevin@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+2</timezone>
-        </developer>
-        <developer>
-            <id>madytyoo</id>
-            <name>Maurizio Taverna</name>
-            <email>tavernamaurizio@gmail.com</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+1</timezone>
-        </developer>
-        <developer>
-            <id>mgrigorov</id>
-            <name>Martin Grigorov</name>
-            <email>mgrigorov@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+2</timezone>
-        </developer>
-        <developer>
-            <id>mnour</id>
-            <name>Mohammad Nour El-Din</name>
-            <email>mnour@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>mentor while incubating</role>
-            </roles>
-            <timezone>+1</timezone>
-        </developer>
-        <developer>
-            <id>oscarbou</id>
-            <name>Oscar Bou</name>
-            <email>o.bou@gesconsultor.com</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+1</timezone>
-        </developer>
-        <developer>
-            <id>rcmatthews</id>
-            <name>Robert Matthews</name>
-            <email>rmatthews@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+0</timezone>
-        </developer>
-        <developer>
-            <id>struberg</id>
-            <name>Mark Struberg</name>
-            <email>struberg@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>mentor while incubating</role>
-            </roles>
-            <timezone>+1</timezone>
-        </developer>
-        <developer>
-            <id>themalkolm</id>
-            <name>Alexander Krasnuhkin</name>
-            <email>themalkolm@apache.org</email>
-            <roles>
-                <role>pmc</role>
-                <role>committer</role>
-            </roles>
-            <timezone>+3</timezone>
-        </developer>
-    </developers>
-
-    <issueManagement>
-        <system>Jira</system>
-        <url>https://issues.apache.org/jira/browse/ISIS</url>
-    </issueManagement>
-
-    <ciManagement>
-        <system>CI</system>
-        <url>https://builds.apache.org/job/isis-core-ubuntu</url>
-        <notifiers>
-            <notifier>
-                <type>mail</type>
-                <address>dev@isis.apache.org</address>
-                <!--
-                <sendOnError />
-                <sendOnFailure />
-                <sendOnSuccess />
-                <sendOnWarning />
-                -->
-                <configuration />
-            </notifier>
-        </notifiers>
-    </ciManagement>
-
-    <pluginRepositories>
-        <pluginRepository>
-            <id>DataNucleus_2</id>
-            <url>http://www.datanucleus.org/downloads/maven2/</url>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </pluginRepository>
-    </pluginRepositories>
-
-    <repositories>
-        <repository>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-            <id>central</id>
-            <name>Central Repository</name>
-            <url>https://repo.maven.apache.org/maven2</url>
-        </repository>
-        <repository>
-            <id>Apache Repository</id>
-            <url>https://repository.apache.org/</url>
-            <snapshots>
-              <enabled>false</enabled>
-            </snapshots>
-        </repository>
-        <repository>
-            <id>JBoss Public Release</id>
-            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
-            <snapshots>
-              <enabled>false</enabled>
-            </snapshots>
-        </repository>
-        <repository>
-            <id>sonatype-snapshots</id>
-            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-        </repository>
-
-        <!-- required for RestEasy -->
-        <repository>
-            <id>jboss</id>
-            <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
-            <snapshots>
-              <enabled>false</enabled>
-            </snapshots>
-        </repository>
-
-    </repositories>
-
-
-    <build>
-        <outputDirectory>${project.build.directory}/classes</outputDirectory>
-        <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
-        
-        <extensions>
-            <!-- scp and sftp support for deployments. -->
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh</artifactId>
-                <version>2.4</version>
-            </extension>
-            <!-- ftp support for deployments. -->
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ftp</artifactId>
-                <version>2.4</version>
-            </extension>
-            <extension>
-                <groupId>org.apache.maven.archetype</groupId>
-                <artifactId>archetype-packaging</artifactId>
-                <version>2.2</version>
-            </extension>
-        </extensions>
-
-        <pluginManagement>
-            <!-- defines versions of plugins and the configuration for their
-                non-reporting goals.  -->
-            <plugins>
-
-                <!-- Apache Release Audit Tool -->
-                <plugin>
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <version>0.10</version>
-                    <configuration>
-                        <addDefaultLicenseMatchers>true</addDefaultLicenseMatchers>
-                        <excludeSubProjects>true</excludeSubProjects>
-                        <excludes>
-                            <exclude>**/target/**</exclude>
-                            <exclude>**/target-ide/**</exclude>
-
-                            <exclude>**/*.project</exclude>
-                            <exclude>**/.classpath</exclude>
-                            <exclude>**/.settings/**</exclude>
-                            <exclude>**/*.launch</exclude>
-                            <!--
-                            <exclude>src/site/resources/ide/eclipse/**</exclude>
-                            -->
-
-                            <exclude>**/*.iml</exclude>
-
-                            <exclude>**/*.pdn</exclude>
-                            <exclude>**/*.svg</exclude>
-                            <exclude>**/*.json</exclude>
-                            <exclude>**/*.min.js</exclude>
-
-                            <exclude>**/MANIFEST.MF</exclude>
-                            <exclude>**/*.ucd</exclude>
-                            <exclude>**/*.ucls</exclude>
-
-                            <exclude>**/xml/objects/**</exclude>
-                            <exclude>**/test.data</exclude>
-                            <exclude>**/fixture-data/**</exclude>
-
-                            <exclude>**/application.js</exclude>
-
-                            <exclude>**/jquery.zclip.js</exclude>
-                            <exclude>**/simple-sidebar.css</exclude>
-                            <exclude>**/bootstrap-growl.js</exclude>
-                            <exclude>**/moment.js</exclude>
-
-                            <exclude>**/bootstrap-datetimepicker.min.css</exclude>
-                            <exclude>**/bootstrap-datetimepicker.css</exclude>
-                            <exclude>**/select2-bootstrap.css</exclude>
-
-                            <exclude>**/wicket-xhtml1.4-strict.dtd</exclude>
-
-                            <exclude>**/src/main/appended-resources/supplemental-models.xml</exclude>
-                            <exclude>**/datanucleus.log</exclude>
-                            <exclude>**/gradle/wrapper/gradle-wrapper.properties</exclude>
-                            <exclude>**/gradlew</exclude>
-                            <exclude>**/gradlew.bat</exclude>
-                            <exclude>**/rebel.xml</exclude>
-                            <exclude>**/translations**.po</exclude>
-                            <exclude>**/integtests/translations.pot</exclude>
-                            <exclude>**/intellij/launch/*.xml</exclude>
-
-                            <exclude>**/swagger-ui/**</exclude>
-
-                            <exclude>**/META-INF/services/**</exclude>
-                        </excludes>
-                        <licenses>
-                          <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                            <licenseFamilyCategory>AL2  </licenseFamilyCategory>
-                            <licenseFamilyName>Apache License 2.0</licenseFamilyName>
-                            <notes />
-                            <patterns>
-                              <pattern>Licensed to the Apache Software Foundation (ASF) under one</pattern>
-                            </patterns>
-                          </license>
-                          <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                            <licenseFamilyCategory>JQRY</licenseFamilyCategory>
-                            <licenseFamilyName>MIT  </licenseFamilyName>
-                            <notes />
-                            <patterns>
-                              <pattern>The MIT License (MIT)</pattern>
-                              <pattern>Dual licensed under the MIT</pattern>
-                            </patterns>
-                          </license>
-                          <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                            <licenseFamilyCategory>JMOCK</licenseFamilyCategory>
-                            <licenseFamilyName>JMock</licenseFamilyName>
-                            <notes />
-                            <patterns>
-                              <pattern>Copyright (c) 2000-2007, jMock.org</pattern>
-                            </patterns>
-                          </license>
-                        </licenses>
-                        <licenseFamilies>
-                          <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
-                            <familyName>Apache License 2.0</familyName>
-                          </licenseFamily>
-                          <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
-                            <familyName>MIT</familyName>
-                          </licenseFamily>
-                          <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
-                            <familyName>JMock</familyName>
-                          </licenseFamily>
-                          <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
-                            <familyName>XHTML</familyName>
-                          </licenseFamily>
-                        </licenseFamilies>
-                    </configuration>
-                </plugin>
-
-
-                <!-- IDE support for Eclipse (if not using m2e).
-                    (NetBeans 6.7+ and IDEA 7.0+ also have built-in support
-                    -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-eclipse-plugin</artifactId>
-                    <version>2.9</version>
-                    <configuration>
-                        <downloadSources>true</downloadSources>
-                        <downloadJavadocs>true</downloadJavadocs>
-                        <projectNameTemplate>[groupId].[artifactId]</projectNameTemplate>
-                    </configuration>
-                    <!-- use mvn eclipse:eclipse (no goals bound to phases) -->
-                </plugin>
-
-                <!-- Copies project resources to the output directory -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>2.6</version>
-                    <!-- goal:resources binds to phase:process-resources -->
-                    <!-- goal:testResources binds to phase:process-test-resources -->
-                </plugin>
-
-                <!-- Compile -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.8.1</version>
-                    <configuration>
-                        <showDeprecation>false</showDeprecation>
-                        <showWarnings>false</showWarnings>
-                        <source>${compileSource}</source>
-                        <target>${compileTarget}</target>
-                    </configuration>
-                    <!-- goal:compile binds to phase:compile -->
-                    <!-- goal:testCompile binds to phase:test-compile -->
-                </plugin>
-                
-                <!-- Tests (ignore integration tests)-->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.0.0-M3</version>
-<!--                     <version>2.22.2</version> -->
-                    <configuration>
-                    	<!-- override defaults and include everything unless explicitly excluded -->
-                        <includes>
-                            <include>**/*.java</include>
-                        </includes>
-                        <excludes>
-                            <exclude>${testsToExclude}</exclude>
-                        </excludes>
-                        <printSummary>false</printSummary>
-                        <argLine>${surefire-plugin.argLine}</argLine>
-                    </configuration>
-                    <!-- goal:test binds to phase:test -->
-                </plugin>
-                
-                
-                <!-- Test Reporting -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-report-plugin</artifactId>
-                    <version>[2.22,3)</version>
-                    <!-- goal:report is a report so is configured in the 
-                        reporting section; invokes phase:test before running itself -->
-                </plugin>
-
-
-                <!-- Test coverage: cobertura -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>cobertura-maven-plugin</artifactId>
-                    <version>2.6</version>
-                    <inherited>true</inherited>
-                    <!-- goal:check binds to phase:verify (not currently 
-                        configured, can be used to break build if code coverage < threshold) -->
-                    <!-- goal:cobertura is a report so is configured in the 
-                        reporting section; invokes phase:test before running itself -->
-                </plugin>
-
-
-                <!-- Quality checks: checkstyle -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-checkstyle-plugin</artifactId>
-                    <version>2.11</version>
-                    <!-- goal:check binds to phase:verify (not currently 
-                        configured, can be used to break build if any violations) -->
-                    <!-- goal:checkstyle is a report so is configured in 
-                        the reporting section -->
-                </plugin>
-
-                <!-- Quality checks: pmd -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-pmd-plugin</artifactId>
-                    <version>3.0.1</version>
-                    <!-- goal:check binds to phase:verify (not currently 
-                        configured, can be used to break build if any violations) -->
-                    <!-- goal:check-cpd binds to phase:verify (not currently 
-                        configured, can be used to break build if any CPD violations) -->
-                    <!-- goal:pmd is a report so is configured in the reporting 
-                        section -->
-                    <!-- goal:cpd is a report so is configured in the reporting 
-                        section -->
-                </plugin>
-
-                <!-- Quality checks: NCSS (cyclomatic complexity) -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>javancss-maven-plugin</artifactId>
-                    <version>2.0</version>
-                    <!-- goal:check binds to phase:verify (not currently 
-                        configured, can be used to break build if any violations) -->
-                    <!-- goal:report is a report so is configured in the 
-                        reporting section -->
-                </plugin>
-
-                <!-- Quality checks: jdepend -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>jdepend-maven-plugin</artifactId>
-                    <version>2.0-beta-2</version>
-                    <!-- goal:generate is a report so is configured in the 
-                        reporting section -->
-                </plugin>
-
-                <!-- Artifacts derived from code: taglist -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>taglist-maven-plugin</artifactId>
-                    <version>2.4</version>
-                    <inherited>true</inherited>
-                    <!-- goal:taglist is a report so is configured in the 
-                        reporting section -->
-                </plugin>
-
-                <!-- Artifacts derived from code: javadoc; supports both 
-                    build and report goals; not included as a build plugin except through profiles 
-                    (to speed up the build) -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>2.9.1</version>
-                    <inherited>true</inherited>
-                    <configuration>
-                        <!-- as per http://stackoverflow.com/a/16743137/56880; only if using java 8 to build -->
-<!--
-                        <additionalparam>-Xdoclint:none</additionalparam>
--->
-                        <debug>true</debug>
-                        <minmemory>128m</minmemory>      
-                        <maxmemory>1024m</maxmemory>
-                        <quiet>true</quiet>
-                        <doctitle>${project.name} ${project.version}</doctitle>
-                        <windowtitle>${project.name} ${project.version}</windowtitle>
-                        <testDoctitle>${project.name} ${project.version}
-                            (TEST API)
-                        </testDoctitle>
-                        <testWindowtitle>${project.name}
-                            ${project.version} (TEST API)
-                        </testWindowtitle>
-                        <splitindex>true</splitindex>
-                        <encoding>${project.build.sourceEncoding}</encoding>
-                        <links>
-                            <link>http://docs.oracle.com/javase/7/docs/api/</link>
-                            <link>http://docs.oracle.com/javase/6/docs/api/</link>
-                            <link>http://docs.oracle.com/javase/1.5.0/docs/api/</link>
-                        </links>
-                        <linksource>true</linksource>
-                        <!-- http://jira.codehaus.org/browse/MJAVADOC-268 
-                            and http://jira.codehaus.org/browse/MJAVADOC-284 -->
-                        <detectOfflineLinks>false</detectOfflineLinks>
-                        <additionalparam>
-                            -Xdoclint:none
-                        </additionalparam>
-                    </configuration>
-                    <!-- goal:aggregate (for aggregator modules) has no binding;
-                        explicitly bound in profiles -->
-                    <!-- goal:jar (for non-aggregator modules) binds to phase:package -->
-                    <!-- goal:test-jar (for non-aggregator modules) binds 
-                        to phase:package -->
-                    <!-- goal:javadoc is a report so is configured in the 
-                        reporting section -->
-                </plugin>
-
-                <!-- Artifacts derived from code: Java source x-ref -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jxr-plugin</artifactId>
-                    <version>2.4</version>
-                    <!-- goal:jxr is a report so is configured in the reporting 
-                        section -->
-                </plugin>
-
-
-                <!-- Packaging: source jars of main and test code -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>2.2.1</version>
-                    <configuration>
-                        <includePom>true</includePom>
-                    </configuration>
-                    <!-- goal:aggregate (for aggregator modules) binds to 
-                        phase:package -->
-                    <!-- goal:jar and goal:test-jar are meant to bind to 
-                        phase:package, but doesn't seem to so bound explicitly -->
-                    <executions>
-                        <execution>
-                            <id>package-jars</id>
-                            <phase>package</phase>
-                            <goals>
-                                <goal>jar</goal>
-                                <goal>test-jar</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-
-
-                <plugin>
-                    <groupId>pl.project13.maven</groupId>
-                    <artifactId>git-commit-id-plugin</artifactId>
-                    <version>2.2.3</version>
-                    <executions>
-                        <execution>
-                            <id>get-the-git-infos</id>
-                            <goals>
-                                <goal>revision</goal>
-                            </goals>
-                            <phase>validate</phase>
-                        </execution>
-                    </executions>
-
-                    <configuration>
-                        <verbose>false</verbose>
-                        <dotGitDirectory>${git-plugin.gitDir}</dotGitDirectory>
-
-                        <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
-                        <dateFormatTimeZone>${user.timezone}</dateFormatTimeZone>
-
-                        <failOnNoGitDirectory>true</failOnNoGitDirectory>
-                        <injectAllReactorProjects>true</injectAllReactorProjects>
-
-                        <generateGitPropertiesFile>true</generateGitPropertiesFile>
-                        <generateGitPropertiesFilename>${project.build.outputDirectory}/${git-plugin.propertiesDir}/git.properties</generateGitPropertiesFilename>
-
-                        <abbrevLength>7</abbrevLength>
-                    </configuration>
-
-                </plugin>
-
-
-                <!-- Packaging: jar -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>2.4</version>
-                    <!-- goal:jar binds to phase:package -->
-                    <!-- goal:test-jar supposedly binds to phase:package, 
-                        but seems to need this explicit binding. -->
-                    <executions>
-                        <execution>
-                            <id>package-test-jar</id>
-                            <phase>package</phase>
-                            <goals>
-                                <goal>test-jar</goal>
-                            </goals>
-                            <configuration>
-                                <archive>
-                                    <manifest>
-                                        <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                                    </manifest>
-                                </archive>
-                            </configuration>
-                        </execution>
-                    </executions>
-                    <configuration>
-                        <archive>
-                            <manifest>
-                                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                            </manifest>
-                            <manifestEntries>
-                                <Automatic-Module-Name>${jar-plugin.automaticModuleName}</Automatic-Module-Name>
-                                <Implementation-Vendor-Id>org.apache.isis</Implementation-Vendor-Id>
-                                <Implementation-Vendor>Apache Isisâ„¢ Project</Implementation-Vendor>
-                                <Bundle-SymbolicName>${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
-                                <SCM-Revision>${git.commit.id.abbrev}</SCM-Revision>
+		<jmock.version>2.11.0</jmock.version>
+		<easymock.version>2.5.2</easymock.version>
+		<cucumber.version>1.2.4</cucumber.version>
+
+		<validation-api.version>1.1.0.Final</validation-api.version>
+		<transaction-api.version>1.2</transaction-api.version>
+
+		<javax-mail.version>1.4.7</javax-mail.version>
+
+		<jboss-jaxrs-api_2.0_spec.version>1.0.0.Final</jboss-jaxrs-api_2.0_spec.version>
+	</properties>
+
+	<scm>
+		<connection>scm:git:http://github.com/apache/isis.git</connection>
+		<developerConnection>scm:git:https://github.com/apache/isis.git</developerConnection>
+		<url>http://github.com/apache/isis</url>
+		<tag>HEAD</tag>
+	</scm>
+
+	<url>http://isis.apache.org</url>
+
+	<mailingLists>
+		<mailingList>
+			<name>developers</name>
+			<archive>http://mail-archives.apache.org/mod_mbox/isis-dev/</archive>
+			<post>dev@isis.apache.org</post>
+			<subscribe>dev-subscribe@isis.apache.org</subscribe>
+			<unsubscribe>dev-unsubscribe@isis.apache.org</unsubscribe>
+		</mailingList>
+		<mailingList>
+			<name>users</name>
+			<archive>http://mail-archives.apache.org/mod_mbox/isis-users/</archive>
+			<post>users@isis.apache.org</post>
+			<subscribe>users-subscribe@isis.apache.org</subscribe>
+			<unsubscribe>users-unsubscribe@isis.apache.org</unsubscribe>
+		</mailingList>
+	</mailingLists>
+
+	<developers>
+		<developer>
+			<id>ahuber</id>
+			<name>Andi Huber</name>
+			<email>ahuber@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<id>danhaywood</id>
+			<name>Dan Haywood</name>
+			<email>danhaywood@apache.org</email>
+			<roles>
+				<role>pmc chair</role>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+0</timezone>
+		</developer>
+		<developer>
+			<id>dslaughter</id>
+			<name>Dave Slaughter</name>
+			<email>dslaughter@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>-6</timezone>
+		</developer>
+		<developer>
+			<id>jcvanderwal</id>
+			<name>Jeroen van der Wal</name>
+			<email>jeroen@stromboli.it</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<id>kevin</id>
+			<name>Kevin Meyer</name>
+			<email>kevin@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+2</timezone>
+		</developer>
+		<developer>
+			<id>madytyoo</id>
+			<name>Maurizio Taverna</name>
+			<email>tavernamaurizio@gmail.com</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<id>mgrigorov</id>
+			<name>Martin Grigorov</name>
+			<email>mgrigorov@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+2</timezone>
+		</developer>
+		<developer>
+			<id>mnour</id>
+			<name>Mohammad Nour El-Din</name>
+			<email>mnour@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>mentor while incubating</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<id>oscarbou</id>
+			<name>Oscar Bou</name>
+			<email>o.bou@gesconsultor.com</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<id>rcmatthews</id>
+			<name>Robert Matthews</name>
+			<email>rmatthews@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+0</timezone>
+		</developer>
+		<developer>
+			<id>struberg</id>
+			<name>Mark Struberg</name>
+			<email>struberg@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>mentor while incubating</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<id>themalkolm</id>
+			<name>Alexander Krasnuhkin</name>
+			<email>themalkolm@apache.org</email>
+			<roles>
+				<role>pmc</role>
+				<role>committer</role>
+			</roles>
+			<timezone>+3</timezone>
+		</developer>
+	</developers>
+
+	<issueManagement>
+		<system>Jira</system>
+		<url>https://issues.apache.org/jira/browse/ISIS</url>
+	</issueManagement>
+
+	<ciManagement>
+		<system>CI</system>
+		<url>https://builds.apache.org/job/isis-core-ubuntu</url>
+		<notifiers>
+			<notifier>
+				<type>mail</type>
+				<address>dev@isis.apache.org</address>
+				<!-- <sendOnError /> <sendOnFailure /> <sendOnSuccess /> <sendOnWarning 
+					/> -->
+				<configuration />
+			</notifier>
+		</notifiers>
+	</ciManagement>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>DataNucleus_2</id>
+			<url>http://www.datanucleus.org/downloads/maven2/</url>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</pluginRepository>
+	</pluginRepositories>
+
+	<repositories>
+		<repository>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+			<id>central</id>
+			<name>Central Repository</name>
+			<url>https://repo.maven.apache.org/maven2</url>
+		</repository>
+		<repository>
+			<id>Apache Repository</id>
+			<url>https://repository.apache.org/</url>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+		<repository>
+			<id>JBoss Public Release</id>
+			<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+		<repository>
+			<id>sonatype-snapshots</id>
+			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
+			<snapshots>
+				<enabled>true</enabled>
+			</snapshots>
+		</repository>
+
+		<!-- required for RestEasy -->
+		<repository>
+			<id>jboss</id>
+			<url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+
+	</repositories>
+
+
+	<build>
+		<outputDirectory>${project.build.directory}/classes</outputDirectory>
+		<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
+
+		<extensions>
+			<!-- scp and sftp support for deployments. -->
+			<extension>
+				<groupId>org.apache.maven.wagon</groupId>
+				<artifactId>wagon-ssh</artifactId>
+				<version>2.4</version>
+			</extension>
+			<!-- ftp support for deployments. -->
+			<extension>
+				<groupId>org.apache.maven.wagon</groupId>
+				<artifactId>wagon-ftp</artifactId>
+				<version>2.4</version>
+			</extension>
+			<extension>
+				<groupId>org.apache.maven.archetype</groupId>
+				<artifactId>archetype-packaging</artifactId>
+				<version>2.2</version>
+			</extension>
+		</extensions>
+
+		<pluginManagement>
+			<!-- defines versions of plugins and the configuration for their non-reporting 
+				goals. -->
+			<plugins>
+
+				<!-- Apache Release Audit Tool -->
+				<plugin>
+					<groupId>org.apache.rat</groupId>
+					<artifactId>apache-rat-plugin</artifactId>
+					<version>0.10</version>
+					<configuration>
+						<addDefaultLicenseMatchers>true</addDefaultLicenseMatchers>
+						<excludeSubProjects>true</excludeSubProjects>
+						<excludes>
+							<exclude>**/target/**</exclude>
+							<exclude>**/target-ide/**</exclude>
+
+							<exclude>**/*.project</exclude>
+							<exclude>**/.classpath</exclude>
+							<exclude>**/.settings/**</exclude>
+							<exclude>**/*.launch</exclude>
+							<!-- <exclude>src/site/resources/ide/eclipse/**</exclude> -->
+
+							<exclude>**/*.iml</exclude>
+
+							<exclude>**/*.pdn</exclude>
+							<exclude>**/*.svg</exclude>
+							<exclude>**/*.json</exclude>
+							<exclude>**/*.min.js</exclude>
+
+							<exclude>**/MANIFEST.MF</exclude>
+							<exclude>**/*.ucd</exclude>
+							<exclude>**/*.ucls</exclude>
+
+							<exclude>**/xml/objects/**</exclude>
+							<exclude>**/test.data</exclude>
+							<exclude>**/fixture-data/**</exclude>
+
+							<exclude>**/application.js</exclude>
+
+							<exclude>**/jquery.zclip.js</exclude>
+							<exclude>**/simple-sidebar.css</exclude>
+							<exclude>**/bootstrap-growl.js</exclude>
+							<exclude>**/moment.js</exclude>
+
+							<exclude>**/bootstrap-datetimepicker.min.css</exclude>
+							<exclude>**/bootstrap-datetimepicker.css</exclude>
+							<exclude>**/select2-bootstrap.css</exclude>
+
+							<exclude>**/wicket-xhtml1.4-strict.dtd</exclude>
+
+							<exclude>**/src/main/appended-resources/supplemental-models.xml</exclude>
+							<exclude>**/datanucleus.log</exclude>
+							<exclude>**/gradle/wrapper/gradle-wrapper.properties</exclude>
+							<exclude>**/gradlew</exclude>
+							<exclude>**/gradlew.bat</exclude>
+							<exclude>**/rebel.xml</exclude>
+							<exclude>**/translations**.po</exclude>
+							<exclude>**/integtests/translations.pot</exclude>
+							<exclude>**/intellij/launch/*.xml</exclude>
+
+							<exclude>**/swagger-ui/**</exclude>
+
+							<exclude>**/META-INF/services/**</exclude>
+						</excludes>
+						<licenses>
+							<license
+								implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+								<licenseFamilyCategory>AL2  </licenseFamilyCategory>
+								<licenseFamilyName>Apache License 2.0</licenseFamilyName>
+								<notes />
+								<patterns>
+									<pattern>Licensed to the Apache Software Foundation (ASF) under
+										one</pattern>
+								</patterns>
+							</license>
+							<license
+								implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+								<licenseFamilyCategory>JQRY</licenseFamilyCategory>
+								<licenseFamilyName>MIT  </licenseFamilyName>
+								<notes />
+								<patterns>
+									<pattern>The MIT License (MIT)</pattern>
+									<pattern>Dual licensed under the MIT</pattern>
+								</patterns>
+							</license>
+							<license
+								implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+								<licenseFamilyCategory>JMOCK</licenseFamilyCategory>
+								<licenseFamilyName>JMock</licenseFamilyName>
+								<notes />
+								<patterns>
+									<pattern>Copyright (c) 2000-2007, jMock.org</pattern>
+								</patterns>
+							</license>
+						</licenses>
+						<licenseFamilies>
+							<licenseFamily
+								implementation="org.apache.rat.license.SimpleLicenseFamily">
+								<familyName>Apache License 2.0</familyName>
+							</licenseFamily>
+							<licenseFamily
+								implementation="org.apache.rat.license.SimpleLicenseFamily">
+								<familyName>MIT</familyName>
+							</licenseFamily>
+							<licenseFamily
+								implementation="org.apache.rat.license.SimpleLicenseFamily">
+								<familyName>JMock</familyName>
+							</licenseFamily>
+							<licenseFamily
+								implementation="org.apache.rat.license.SimpleLicenseFamily">
+								<familyName>XHTML</familyName>
+							</licenseFamily>
+						</licenseFamilies>
+					</configuration>
+				</plugin>
+
+
+				<!-- IDE support for Eclipse (if not using m2e). (NetBeans 6.7+ and IDEA 
+					7.0+ also have built-in support -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-eclipse-plugin</artifactId>
+					<version>2.9</version>
+					<configuration>
+						<downloadSources>true</downloadSources>
+						<downloadJavadocs>true</downloadJavadocs>
+						<projectNameTemplate>[groupId].[artifactId]</projectNameTemplate>
+					</configuration>
+					<!-- use mvn eclipse:eclipse (no goals bound to phases) -->
+				</plugin>
+
+				<!-- Copies project resources to the output directory -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-resources-plugin</artifactId>
+					<version>2.6</version>
+					<!-- goal:resources binds to phase:process-resources -->
+					<!-- goal:testResources binds to phase:process-test-resources -->
+				</plugin>
+
+				<!-- Compile -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-compiler-plugin</artifactId>
+					<version>3.8.1</version>
+					<configuration>
+						<showDeprecation>false</showDeprecation>
+						<showWarnings>false</showWarnings>
+						<source>${compileSource}</source>
+						<target>${compileTarget}</target>
+					</configuration>
+					<!-- goal:compile binds to phase:compile -->
+					<!-- goal:testCompile binds to phase:test-compile -->
+				</plugin>
+
+				<!-- Tests (ignore integration tests) -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-surefire-plugin</artifactId>
+					<version>3.0.0-M3</version>
+					<!-- <version>2.22.2</version> -->
+					<configuration>
+						<!-- override defaults and include everything unless explicitly excluded -->
+						<includes>
+							<include>**/*.java</include>
+						</includes>
+						<excludes>
+							<exclude>${testsToExclude}</exclude>
+						</excludes>
+						<printSummary>false</printSummary>
+						<argLine>${surefire-plugin.argLine}</argLine>
+					</configuration>
+					<!-- goal:test binds to phase:test -->
+				</plugin>
+
+
+				<!-- Test Reporting -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-surefire-report-plugin</artifactId>
+					<version>[2.22,3)</version>
+					<!-- goal:report is a report so is configured in the reporting section; 
+						invokes phase:test before running itself -->
+				</plugin>
+
+
+				<!-- Test coverage: cobertura -->
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>cobertura-maven-plugin</artifactId>
+					<version>2.6</version>
+					<inherited>true</inherited>
+					<!-- goal:check binds to phase:verify (not currently configured, can 
+						be used to break build if code coverage < threshold) -->
+					<!-- goal:cobertura is a report so is configured in the reporting section; 
+						invokes phase:test before running itself -->
+				</plugin>
+
+
+				<!-- Quality checks: checkstyle -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-checkstyle-plugin</artifactId>
+					<version>2.11</version>
+					<!-- goal:check binds to phase:verify (not currently configured, can 
+						be used to break build if any violations) -->
+					<!-- goal:checkstyle is a report so is configured in the reporting section -->
+				</plugin>
+
+				<!-- Quality checks: pmd -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-pmd-plugin</artifactId>
+					<version>3.0.1</version>
+					<!-- goal:check binds to phase:verify (not currently configured, can 
+						be used to break build if any violations) -->
+					<!-- goal:check-cpd binds to phase:verify (not currently configured, 
+						can be used to break build if any CPD violations) -->
+					<!-- goal:pmd is a report so is configured in the reporting section -->
+					<!-- goal:cpd is a report so is configured in the reporting section -->
+				</plugin>
+
+				<!-- Quality checks: NCSS (cyclomatic complexity) -->
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>javancss-maven-plugin</artifactId>
+					<version>2.0</version>
+					<!-- goal:check binds to phase:verify (not currently configured, can 
+						be used to break build if any violations) -->
+					<!-- goal:report is a report so is configured in the reporting section -->
+				</plugin>
+
+				<!-- Quality checks: jdepend -->
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>jdepend-maven-plugin</artifactId>
+					<version>2.0-beta-2</version>
+					<!-- goal:generate is a report so is configured in the reporting section -->
+				</plugin>
+
+				<!-- Artifacts derived from code: taglist -->
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>taglist-maven-plugin</artifactId>
+					<version>2.4</version>
+					<inherited>true</inherited>
+					<!-- goal:taglist is a report so is configured in the reporting section -->
+				</plugin>
+
+				<!-- Artifacts derived from code: javadoc; supports both build and report 
+					goals; not included as a build plugin except through profiles (to speed up 
+					the build) -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-javadoc-plugin</artifactId>
+					<version>2.9.1</version>
+					<inherited>true</inherited>
+					<configuration>
+						<!-- as per http://stackoverflow.com/a/16743137/56880; only if using 
+							java 8 to build -->
+						<!-- <additionalparam>-Xdoclint:none</additionalparam> -->
+						<debug>true</debug>
+						<minmemory>128m</minmemory>
+						<maxmemory>1024m</maxmemory>
+						<quiet>true</quiet>
+						<doctitle>${project.name} ${project.version}</doctitle>
+						<windowtitle>${project.name} ${project.version}</windowtitle>
+						<testDoctitle>${project.name} ${project.version}
+							(TEST API)
+						</testDoctitle>
+						<testWindowtitle>${project.name}
+							${project.version} (TEST API)
+						</testWindowtitle>
+						<splitindex>true</splitindex>
+						<encoding>${project.build.sourceEncoding}</encoding>
+						<links>
+							<link>http://docs.oracle.com/javase/7/docs/api/</link>
+							<link>http://docs.oracle.com/javase/6/docs/api/</link>
+							<link>http://docs.oracle.com/javase/1.5.0/docs/api/</link>
+						</links>
+						<linksource>true</linksource>
+						<!-- http://jira.codehaus.org/browse/MJAVADOC-268 and http://jira.codehaus.org/browse/MJAVADOC-284 -->
+						<detectOfflineLinks>false</detectOfflineLinks>
+						<additionalparam>
+							-Xdoclint:none
+						</additionalparam>
+					</configuration>
+					<!-- goal:aggregate (for aggregator modules) has no binding; explicitly 
+						bound in profiles -->
+					<!-- goal:jar (for non-aggregator modules) binds to phase:package -->
+					<!-- goal:test-jar (for non-aggregator modules) binds to phase:package -->
+					<!-- goal:javadoc is a report so is configured in the reporting section -->
+				</plugin>
+
+				<!-- Artifacts derived from code: Java source x-ref -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-jxr-plugin</artifactId>
+					<version>2.4</version>
+					<!-- goal:jxr is a report so is configured in the reporting section -->
+				</plugin>
+
+
+				<!-- Packaging: source jars of main and test code -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-source-plugin</artifactId>
+					<version>2.2.1</version>
+					<configuration>
+						<includePom>true</includePom>
+					</configuration>
+					<!-- goal:aggregate (for aggregator modules) binds to phase:package -->
+					<!-- goal:jar and goal:test-jar are meant to bind to phase:package, 
+						but doesn't seem to so bound explicitly -->
+					<executions>
+						<execution>
+							<id>package-jars</id>
+							<phase>package</phase>
+							<goals>
+								<goal>jar</goal>
+								<goal>test-jar</goal>
+							</goals>
+						</execution>
+					</executions>
+				</plugin>
+
+
+				<plugin>
+					<groupId>pl.project13.maven</groupId>
+					<artifactId>git-commit-id-plugin</artifactId>
+					<version>2.2.3</version>
+					<executions>
+						<execution>
+							<id>get-the-git-infos</id>
+							<goals>
+								<goal>revision</goal>
+							</goals>
+							<phase>validate</phase>
+						</execution>
+					</executions>
+
+					<configuration>
+						<verbose>false</verbose>
+						<dotGitDirectory>${git-plugin.gitDir}</dotGitDirectory>
+
+						<dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
+						<dateFormatTimeZone>${user.timezone}</dateFormatTimeZone>
+
+						<failOnNoGitDirectory>true</failOnNoGitDirectory>
+						<injectAllReactorProjects>true</injectAllReactorProjects>
+
+						<generateGitPropertiesFile>true</generateGitPropertiesFile>
+						<generateGitPropertiesFilename>${project.build.outputDirectory}/${git-plugin.propertiesDir}/git.properties</generateGitPropertiesFilename>
+
+						<abbrevLength>7</abbrevLength>
+					</configuration>
+
+				</plugin>
+
+
+				<!-- Packaging: jar -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-jar-plugin</artifactId>
+					<version>2.4</version>
+					<!-- goal:jar binds to phase:package -->
+					<!-- goal:test-jar supposedly binds to phase:package, but seems to need 
+						this explicit binding. -->
+					<executions>
+						<execution>
+							<id>package-test-jar</id>
+							<phase>package</phase>
+							<goals>
+								<goal>test-jar</goal>
+							</goals>
+							<configuration>
+								<archive>
+									<manifest>
+										<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+										<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+									</manifest>
+								</archive>
+							</configuration>
+						</execution>
+					</executions>
+					<configuration>
+						<archive>
+							<manifest>
+								<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+							</manifest>
+							<manifestEntries>
+								<Automatic-Module-Name>${jar-plugin.automaticModuleName}</Automatic-Module-Name>
+								<Implementation-Vendor-Id>org.apache.isis</Implementation-Vendor-Id>
+								<Implementation-Vendor>Apache Isisâ„¢ Project</Implementation-Vendor>
+								<Bundle-SymbolicName>${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
+								<SCM-Revision>${git.commit.id.abbrev}</SCM-Revision>
 								<!-- required for DN plugin.xml loading -->
-                                <Bundle-SymbolicName>${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
-								<!--
-								no requirement as of yet.
-                                <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
-                                <Bundle-Name>${jar-plugin.automaticModuleName}</Bundle-Name>
-                                <Bundle-Version>${isis.version}</Bundle-Version>
-                                <Bundle-Vendor>Apache Isisâ„¢ Project</Bundle-Vendor>
-								-->
-                            </manifestEntries>
-                        </archive>
-                    </configuration>
-                </plugin>
-
-
-                <!-- Packaging: WAR -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-war-plugin</artifactId>
-                    <version>2.4</version>
-                    <configuration>
-                        <warSourceExcludes>
-                            WEB-INF/lib/*.jar
-                        </warSourceExcludes>
-                        <archive>
-                            <manifest>
-                                <addClasspath>true</addClasspath>
-                                <classpathPrefix>lib/</classpathPrefix>
-                            </manifest>
-                        </archive>
-                    </configuration>
-                    <!-- goal:war binds to phase:package -->
-                </plugin>
-
-                <!-- site (see also reporting and distributionManagement) -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-site-plugin</artifactId>
-                    <version>3.3</version>
-                    <configuration>
-                        <locales>en</locales>
-                        <jarOutputDirectory>
-                            ${project.build.directory}/site
-                        </jarOutputDirectory>
-                        <finalName>isis-${project.version}</finalName>
-                        <jarOutputDirectory>
-                            ${project.reporting.outputDirectory}
-                        </jarOutputDirectory>
-                        <generateReports>true</generateReports>
-                        <generateSitemap>true</generateSitemap>
-                    </configuration>
-                    <!-- goal:jar binds to phase:package; override to bind
-                        to (site lifecycle) phase:site -->
-                    <executions>
-                        <execution>
-                            <id>jar</id>
-                            <phase>site</phase>
-                            <goals>
-                                <goal>jar</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                    <!-- goal:site binds to (site lifecycle) phase:site -->
-                    <!-- goal:deploy binds to (site lifecycle) phase:site-deploy -->
-                </plugin>
-
-
-                <!-- maven reports (for site) -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-project-info-reports-plugin</artifactId>
-                    <version>2.7</version>
-                    <!-- main configuration in reporting section (in inheriting 
-                        modules) -->
-                </plugin>
-
-
-                <!-- release (is also configured in descendant modules) -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <version>2.5.3</version>
-                    <configuration>
-                        <!-- overriddes the default ('clean verify') as workaround -->
-                        <preparationGoals>clean install</preparationGoals>
-                        <autoVersionSubmodules>true</autoVersionSubmodules>
-                        <localCheckout>true</localCheckout>
-                        <pushChanges>false</pushChanges>
-                        <waitBeforeTagging>1</waitBeforeTagging>
-                    </configuration>
-                    <!-- goal:clean (for aggregator modules) has no bindings; 
-                        cleans up release.properties and any backup POM files -->
-                    <!-- goal:prepare (for aggregator modules) has no bindings; 
-                        prepares for release in SCM (modifying x.x-SNAPSHOT to x.x) -->
-                    <!-- goal:update-versions (for aggregator modules) has 
-                        no bindings; updates versions eg to SNAPSHOT -->
-                    <!-- etc; none of the goals has a binding. -->
-                </plugin>
-
-
-                <!-- deploy (see also distributionManagement) -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>2.8.1</version>
-                    <!-- goal:deploy binds to phase:deploy -->
-                </plugin>
-
-
-                <!-- other types of build: archetype -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-archetype-plugin</artifactId>
-                    <version>2.2</version>
-                    <extensions>true</extensions>
-                    <!-- no goals bind to any lifecycle phases; use mvn archetype:generate -->
-                </plugin>
-
-
-                <!-- Runtime: jetty -->
-                <plugin>
-                    <groupId>org.eclipse.jetty</groupId>
-                    <artifactId>jetty-maven-plugin</artifactId>
-                    <version>${jetty.version}</version>
-                    <configuration>
-                        <webAppConfig>
-                            <contextPath>webapp</contextPath>
-                        </webAppConfig>
-                    </configuration>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.0.0-M1</version>
-                    <configuration>
-                        <rules>
-                            <requireMavenVersion>
-                                <version>[3.5.0,)</version>
-                            </requireMavenVersion>
-                            <requireJavaVersion>
-                                <version>[1.8.0,)</version>
-                            </requireJavaVersion>
-                            <!--
-                            seemingly not compatible with use of ${revision} placeholders
-                            <requirePluginVersions>
-                                <message>All plugin versions must be
-                                    defined!</message>
-                                <banLatest>true</banLatest>
-                                <banRelease>true</banRelease>
-                            </requirePluginVersions>
-                            -->
-                            <DependencyConvergence />
-                        </rules>
-                    </configuration>
-                    <!-- goal:enforce supposedly binds to phase:validate, 
-                        but explicit binding seems to be required -->
-                    <executions>
-                        <execution>
-                            <id>validate-enforce</id>
-                            <phase>validate</phase>
-                            <goals>
-                                <goal>enforce</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-
-                <plugin>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>2.5</version>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-install-plugin</artifactId>
-                    <version>2.5.1</version>
-                </plugin>
-
-                <plugin>
-                    <groupId>net.alchim31.maven</groupId>
-                    <artifactId>yuicompressor-maven-plugin</artifactId>
-                    <version>1.5.1</version>
-                    <configuration>
-                        <statistics>true</statistics>
-                        <jswarn>false</jswarn>
-                        <suffix>.min</suffix>
-                        <excludes>
-                            <exclude>**/moment.js</exclude>
-                            <exclude>**/moment.min.js</exclude>
-                            <exclude>**/bootstrap-datetimepicker.js</exclude>
-                            <exclude>**/bootstrap-datetimepicker.min.js</exclude>
-                            <exclude>**/bootstrap-growl.js</exclude>
-                            <exclude>**/bootstrap-growl.min.js</exclude>
-                        </excludes>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>compress</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-
-
-        <!-- build plugins; apply to all inheriting modules. Note that some 
-            plugins also come from the "super-POM" for the default bindings. For example, 
-            in the 'default' lifecycle, the resources, compiler, surefire, jar, install 
-            and deploy plugins are automatically included because they provide the default 
-            bindings. For the 'site' lifecycle, the site plugin is automatically included. -->
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-remote-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>process-remote-resources</id>
-                        <goals>
-                            <goal>process</goal>
-                        </goals>
-                        <configuration>
-                            <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
-                            <appendedResourcesDirectory>${basedir}/src/main/appended-resources</appendedResourcesDirectory>
-                            <supplementalModels>
-                                <supplementalModel>supplemental-models.xml</supplementalModel>
-                            </supplementalModels>
-                            <resourceBundles>
-                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
-                            </resourceBundles>
-                            <properties>
-                                <projectTimespan>2010~2019</projectTimespan>
-                                <postDepListText>
-The above (auto-generated) list aggregates the dependencies (either directly
-or transitively) of all the modules that make up ${project.name}. You can use 
-mvn dependency:list or mvn dependency:tree to view dependencies by submodule.
-
-${license.additional-notes}
-                        </postDepListText>
-                            </properties>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!--
-            run using:
-            mvn org.apache.rat:apache-rat-plugin:check
-             -->
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-eclipse-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <!-- overrides the default ('clean verify') -->
-                    <preparationGoals>clean install</preparationGoals>
-                    <autoVersionSubmodules>true</autoVersionSubmodules>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-
-    <dependencyManagement>
-        <!-- is also for benefit of application developers, using scope=import -->
-        <dependencies>
-        
-            <!-- JEE API -->
-            <dependency>
-                <groupId>javax</groupId>
-                <artifactId>javaee-api</artifactId>
-                <version>${javaee.version}</version>
-            </dependency>
-			
-            <!-- JDO API -->
-<!-- not managed, because scope=provided can not be overwritten by plugins that are 
-     responsible for providing jdo-api -->			
-<!--        <dependency> -->
-<!--            <groupId>javax.jdo</groupId> -->
-<!--            <artifactId>jdo-api</artifactId> -->
-<!--            <version>${jdo-api.version}</version> -->
-                <!-- provided by plugins -->
-<!--            <scope>provided</scope> -->
-<!--         </dependency> -->
-
-            <!-- isis commons -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-commons</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-        
-            <!-- unittestsupport -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-unittestsupport</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-unittestsupport</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- applib -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-applib</artifactId>
-                <version>${isis.version}</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-applib</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-            
-            <!-- config -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-config</artifactId>
-                <version>${isis.version}</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-config</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-	        
-            <!-- provides @Nullable -->
-            <dependency>
-                <groupId>com.google.code.findbugs</groupId>
-                <artifactId>annotations</artifactId>
-                <version>${findbugs-annotations.version}</version>
-            </dependency>
-            
-            <!-- schema -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-schema</artifactId>
-                <version>${isis.version}</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-schema</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- log4j -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-log4j</artifactId>
-                <version>${isis.version}</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-
-            <!-- metamodel -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-metamodel</artifactId>
-                <version>${isis.version}</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-metamodel</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-            
-            <!-- runtime -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-runtime</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-runtime</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-            
-            <!-- runtime-extensions -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-runtime-extensions</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-runtime-extensions</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-            
-            <!-- runtime-services -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-runtime-services</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-runtime-services</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-            
-            <!-- webserver -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-webserver</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <!-- specsupport -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-specsupport</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <!-- integtestsupport -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-integtestsupport</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <!-- Restful Objects viewer -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-restfulobjects-applib</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-restfulobjects-applib</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-restfulobjects-rendering</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-restfulobjects-rendering</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-restfulobjects-server</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-restfulobjects-server</artifactId>
-                <version>${isis.version}</version>
-                <type>test-jar</type>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- security support -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-security</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <!-- core plugins -->
-            
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-plugins-security-shiro</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            
-			<dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-plugins-jdo-common</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-plugins-jdo-datanucleus-4</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-plugins-jdo-datanucleus-5</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-plugins-jaxrs-resteasy-4</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-
-            <!-- also for benefit of application developers, using scope=import -->
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-wicket-model</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-wicket-model</artifactId>
-                <version>${isis.version}</version>
-                <scope>test</scope>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-wicket-ui</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-wicket-ui</artifactId>
-                <version>${isis.version}</version>
-                <scope>test</scope>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-wicket-impl</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.core</groupId>
-                <artifactId>isis-core-viewer-wicket-impl</artifactId>
-                <version>${isis.version}</version>
-                <scope>test</scope>
-                <type>test-jar</type>
-            </dependency>
-
-            <!-- Maven plugin -->
-            <dependency>
-                <groupId>org.apache.isis.tool</groupId>
-                <artifactId>isis-maven-plugin</artifactId>
-                <version>${isis.version}</version>
-            </dependency>
-
-            <!-- Maven dependencies -->
-            <dependency>
-                <groupId>org.apache.isis.mavendeps</groupId>
-                <artifactId>isis-mavendeps-intellij</artifactId>
-                <version>${isis.version}</version>
-                <type>pom</type>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.mavendeps</groupId>
-                <artifactId>isis-mavendeps-testing</artifactId>
-                <version>${isis.version}</version>
-                <type>pom</type>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.isis.mavendeps</groupId>
-                <artifactId>isis-mavendeps-webapp</artifactId>
-                <version>${isis.version}</version>
-                <type>pom</type>
-            </dependency>
-
-            <!-- JodaTime -->
-            <dependency>
-                <groupId>joda-time</groupId>
-                <artifactId>joda-time</artifactId>
-                <version>${joda-time.version}</version>
-            </dependency>
+								<Bundle-SymbolicName>${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
+								<!-- no requirement as of yet. <Bundle-ManifestVersion>2</Bundle-ManifestVersion> 
+									<Bundle-Name>${jar-plugin.automaticModuleName}</Bundle-Name> <Bundle-Version>${isis.version}</Bundle-Version> 
+									<Bundle-Vendor>Apache Isisâ„¢ Project</Bundle-Vendor> -->
+							</manifestEntries>
+						</archive>
+					</configuration>
+				</plugin>
+
+
+				<!-- Packaging: WAR -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-war-plugin</artifactId>
+					<version>2.4</version>
+					<configuration>
+						<warSourceExcludes>
+							WEB-INF/lib/*.jar
+						</warSourceExcludes>
+						<archive>
+							<manifest>
+								<addClasspath>true</addClasspath>
+								<classpathPrefix>lib/</classpathPrefix>
+							</manifest>
+						</archive>
+					</configuration>
+					<!-- goal:war binds to phase:package -->
+				</plugin>
+
+				<!-- site (see also reporting and distributionManagement) -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-site-plugin</artifactId>
+					<version>3.3</version>
+					<configuration>
+						<locales>en</locales>
+						<jarOutputDirectory>
+							${project.build.directory}/site
+						</jarOutputDirectory>
+						<finalName>isis-${project.version}</finalName>
+						<jarOutputDirectory>
+							${project.reporting.outputDirectory}
+						</jarOutputDirectory>
+						<generateReports>true</generateReports>
+						<generateSitemap>true</generateSitemap>
+					</configuration>
+					<!-- goal:jar binds to phase:package; override to bind to (site lifecycle) 
+						phase:site -->
+					<executions>
+						<execution>
+							<id>jar</id>
+							<phase>site</phase>
+							<goals>
+								<goal>jar</goal>
+							</goals>
+						</execution>
+					</executions>
+					<!-- goal:site binds to (site lifecycle) phase:site -->
+					<!-- goal:deploy binds to (site lifecycle) phase:site-deploy -->
+				</plugin>
+
+
+				<!-- maven reports (for site) -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-project-info-reports-plugin</artifactId>
+					<version>2.7</version>
+					<!-- main configuration in reporting section (in inheriting modules) -->
+				</plugin>
+
+
+				<!-- release (is also configured in descendant modules) -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-release-plugin</artifactId>
+					<version>2.5.3</version>
+					<configuration>
+						<!-- overriddes the default ('clean verify') as workaround -->
+						<preparationGoals>clean install</preparationGoals>
+						<autoVersionSubmodules>true</autoVersionSubmodules>
+						<localCheckout>true</localCheckout>
+						<pushChanges>false</pushChanges>
+						<waitBeforeTagging>1</waitBeforeTagging>
+					</configuration>
+					<!-- goal:clean (for aggregator modules) has no bindings; cleans up 
+						release.properties and any backup POM files -->
+					<!-- goal:prepare (for aggregator modules) has no bindings; prepares 
+						for release in SCM (modifying x.x-SNAPSHOT to x.x) -->
+					<!-- goal:update-versions (for aggregator modules) has no bindings; 
+						updates versions eg to SNAPSHOT -->
+					<!-- etc; none of the goals has a binding. -->
+				</plugin>
+
+
+				<!-- deploy (see also distributionManagement) -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-deploy-plugin</artifactId>
+					<version>2.8.1</version>
+					<!-- goal:deploy binds to phase:deploy -->
+				</plugin>
+
+
+				<!-- other types of build: archetype -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-archetype-plugin</artifactId>
+					<version>2.2</version>
+					<extensions>true</extensions>
+					<!-- no goals bind to any lifecycle phases; use mvn archetype:generate -->
+				</plugin>
+
+
+				<!-- Runtime: jetty -->
+				<plugin>
+					<groupId>org.eclipse.jetty</groupId>
+					<artifactId>jetty-maven-plugin</artifactId>
+					<version>${jetty.version}</version>
+					<configuration>
+						<webAppConfig>
+							<contextPath>webapp</contextPath>
+						</webAppConfig>
+					</configuration>
+				</plugin>
+
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-enforcer-plugin</artifactId>
+					<version>3.0.0-M1</version>
+					<configuration>
+						<rules>
+							<requireMavenVersion>
+								<version>[3.5.0,)</version>
+							</requireMavenVersion>
+							<requireJavaVersion>
+								<version>[1.8.0,)</version>
+							</requireJavaVersion>
+							<!-- seemingly not compatible with use of ${revision} placeholders 
+								<requirePluginVersions> <message>All plugin versions must be defined!</message> 
+								<banLatest>true</banLatest> <banRelease>true</banRelease> </requirePluginVersions> -->
+							<DependencyConvergence />
+						</rules>
+					</configuration>
+					<!-- goal:enforce supposedly binds to phase:validate, but explicit binding 
+						seems to be required -->
+					<executions>
+						<execution>
+							<id>validate-enforce</id>
+							<phase>validate</phase>
+							<goals>
+								<goal>enforce</goal>
+							</goals>
+						</execution>
+					</executions>
+				</plugin>
+
+				<plugin>
+					<artifactId>maven-clean-plugin</artifactId>
+					<version>2.5</version>
+				</plugin>
+				<plugin>
+					<artifactId>maven-install-plugin</artifactId>
+					<version>2.5.1</version>
+				</plugin>
+
+				<plugin>
+					<groupId>net.alchim31.maven</groupId>
+					<artifactId>yuicompressor-maven-plugin</artifactId>
+					<version>1.5.1</version>
+					<configuration>
+						<statistics>true</statistics>
+						<jswarn>false</jswarn>
+						<suffix>.min</suffix>
+						<excludes>
+							<exclude>**/moment.js</exclude>
+							<exclude>**/moment.min.js</exclude>
+							<exclude>**/bootstrap-datetimepicker.js</exclude>
+							<exclude>**/bootstrap-datetimepicker.min.js</exclude>
+							<exclude>**/bootstrap-growl.js</exclude>
+							<exclude>**/bootstrap-growl.min.js</exclude>
+						</excludes>
+					</configuration>
+					<executions>
+						<execution>
+							<goals>
+								<goal>compress</goal>
+							</goals>
+						</execution>
+					</executions>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+
+
+		<!-- build plugins; apply to all inheriting modules. Note that some plugins 
+			also come from the "super-POM" for the default bindings. For example, in 
+			the 'default' lifecycle, the resources, compiler, surefire, jar, install 
+			and deploy plugins are automatically included because they provide the default 
+			bindings. For the 'site' lifecycle, the site plugin is automatically included. -->
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-enforcer-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<artifactId>maven-remote-resources-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>process-remote-resources</id>
+						<goals>
+							<goal>process</goal>
+						</goals>
+						<configuration>
+							<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+							<appendedResourcesDirectory>${basedir}/src/main/appended-resources</appendedResourcesDirectory>
+							<supplementalModels>
+								<supplementalModel>supplemental-models.xml</supplementalModel>
+							</supplementalModels>
+							<resourceBundles>
+								<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+							</resourceBundles>
+							<properties>
+								<projectTimespan>2010~2019</projectTimespan>
+								<postDepListText>
+									The above (auto-generated) list aggregates the dependencies
+									(either directly
+									or transitively) of all the modules that make up ${project.name}.
+									You can use
+									mvn dependency:list or mvn dependency:tree to view dependencies by
+									submodule.
+
+									${license.additional-notes}
+								</postDepListText>
+							</properties>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- run using: mvn org.apache.rat:apache-rat-plugin:check -->
+			<plugin>
+				<groupId>org.apache.rat</groupId>
+				<artifactId>apache-rat-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-eclipse-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+			</plugin>
+
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-release-plugin</artifactId>
+				<configuration>
+					<!-- overrides the default ('clean verify') -->
+					<preparationGoals>clean install</preparationGoals>
+					<autoVersionSubmodules>true</autoVersionSubmodules>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-deploy-plugin</artifactId>
+				<configuration>
+					<skip>false</skip>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+
+	<dependencyManagement>
+		<!-- is also for benefit of application developers, using scope=import -->
+		<dependencies>
+
+			<!-- JEE API -->
+			<dependency>
+				<groupId>javax</groupId>
+				<artifactId>javaee-api</artifactId>
+				<version>${javaee.version}</version>
+			</dependency>
+
+			<!-- JDO API -->
+			<!-- not managed, because scope=provided can not be overwritten by plugins 
+				that are responsible for providing jdo-api -->
+			<!-- <dependency> -->
+			<!-- <groupId>javax.jdo</groupId> -->
+			<!-- <artifactId>jdo-api</artifactId> -->
+			<!-- <version>${jdo-api.version}</version> -->
+			<!-- provided by plugins -->
+			<!-- <scope>provided</scope> -->
+			<!-- </dependency> -->
+
+			<!-- isis commons -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-commons</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<!-- unittestsupport -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-unittestsupport</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-unittestsupport</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- applib -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-applib</artifactId>
+				<version>${isis.version}</version>
+				<type>jar</type>
+				<scope>compile</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-applib</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- config -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-config</artifactId>
+				<version>${isis.version}</version>
+				<type>jar</type>
+				<scope>compile</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-config</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- provides @Nullable -->
+			<dependency>
+				<groupId>com.google.code.findbugs</groupId>
+				<artifactId>annotations</artifactId>
+				<version>${findbugs-annotations.version}</version>
+			</dependency>
+
+			<!-- schema -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-schema</artifactId>
+				<version>${isis.version}</version>
+				<type>jar</type>
+				<scope>compile</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-schema</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- log4j -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-log4j</artifactId>
+				<version>${isis.version}</version>
+				<type>jar</type>
+				<scope>compile</scope>
+			</dependency>
+
+			<!-- metamodel -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-metamodel</artifactId>
+				<version>${isis.version}</version>
+				<type>jar</type>
+				<scope>compile</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-metamodel</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- runtime -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-runtime</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-runtime</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- runtime-extensions -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-runtime-extensions</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-runtime-extensions</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- runtime-services -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-runtime-services</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-runtime-services</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- webserver -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-webserver</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<!-- specsupport -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-specsupport</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<!-- integtestsupport -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-integtestsupport</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<!-- Restful Objects viewer -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-restfulobjects-applib</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-restfulobjects-applib</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-restfulobjects-rendering</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-restfulobjects-rendering</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-restfulobjects-server</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-restfulobjects-server</artifactId>
+				<version>${isis.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
+
+			<!-- security support -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-security</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<!-- core plugins -->
+
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-plugins-security-shiro</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-plugins-jdo-common</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-plugins-jdo-datanucleus-4</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-plugins-jdo-datanucleus-5</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-plugins-jaxrs-resteasy-4</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+
+			<!-- also for benefit of application developers, using scope=import -->
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-wicket-model</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-wicket-model</artifactId>
+				<version>${isis.version}</version>
+				<scope>test</scope>
+				<type>test-jar</type>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-wicket-ui</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-wicket-ui</artifactId>
+				<version>${isis.version}</version>
+				<scope>test</scope>
+				<type>test-jar</type>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-wicket-impl</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.core</groupId>
+				<artifactId>isis-core-viewer-wicket-impl</artifactId>
+				<version>${isis.version}</version>
+				<scope>test</scope>
+				<type>test-jar</type>
+			</dependency>
+
+			<!-- Maven plugin -->
+			<dependency>
+				<groupId>org.apache.isis.tool</groupId>
+				<artifactId>isis-maven-plugin</artifactId>
+				<version>${isis.version}</version>
+			</dependency>
+
+			<!-- Maven dependencies -->
+			<dependency>
+				<groupId>org.apache.isis.mavendeps</groupId>
+				<artifactId>isis-mavendeps-intellij</artifactId>
+				<version>${isis.version}</version>
+				<type>pom</type>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.mavendeps</groupId>
+				<artifactId>isis-mavendeps-testing</artifactId>
+				<version>${isis.version}</version>
+				<type>pom</type>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.mavendeps</groupId>
+				<artifactId>isis-mavendeps-webapp</artifactId>
+				<version>${isis.version}</version>
+				<type>pom</type>
+			</dependency>
+
+			<!-- JodaTime -->
+			<dependency>
+				<groupId>joda-time</groupId>
+				<artifactId>joda-time</artifactId>
+				<version>${joda-time.version}</version>
+			</dependency>
 
 			<!-- lombok -->
 			<dependency>
@@ -1481,506 +1452,506 @@ ${license.additional-notes}
 				<version>${lombok.version}</version>
 			</dependency>
 
-            <!-- Google Guava (collections and commons) -->
-            <dependency>
-                <groupId>com.google.guava</groupId>
-                <artifactId>guava</artifactId>
-                <version>${guava.version}</version>
-            </dependency>
-            
-            <!-- Logging -->
-            <dependency>
-              <groupId>org.slf4j</groupId>
-              <artifactId>slf4j-api</artifactId>
-              <version>${slf4j.version}</version>
-            </dependency>    
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-log4j12</artifactId>
-                <version>${slf4j.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>jcl-over-slf4j</artifactId>
-                <version>${slf4j.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>log4j</groupId>
-                <artifactId>log4j</artifactId>
-                <version>${log4j.version}</version>
-            </dependency>
-
-            <dependency>
-                <!--
-                required because resteasy-jaxrs declares as a test dependency
-                whereas httpclient4 needs it as a compile dependency -->
-                <groupId>commons-logging</groupId>
-                <artifactId>commons-logging</artifactId>
-                <version>${commons-logging.version}</version>
-            </dependency>
-
-
-            <!-- Apache Commons -->
-            <dependency>
-                <groupId>commons-httpclient</groupId>
-                <artifactId>commons-httpclient</artifactId>
-                <version>${commons-httpclient.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-codec</groupId>
-                <artifactId>commons-codec</artifactId>
-                <version>${commons-codec.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>${commons-io.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>net.sf.jopt-simple</groupId>
-                <artifactId>jopt-simple</artifactId>
-                <version>${jopt-simple.version}</version>
-            </dependency>
-
-            <!-- Dependency injection -->
-            <dependency>
-                <groupId>com.google.inject</groupId>
-                <artifactId>guice</artifactId>
-                <version>${guice.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.picocontainer</groupId>
-                <artifactId>picocontainer</artifactId>
-                <version>${picocontainer.version}</version>
-            </dependency>
-            
-            <!-- JSON libraries -->
-            <dependency>
-                <groupId>com.fasterxml.jackson.core</groupId>
-                <artifactId>jackson-core</artifactId>
-                <version>${jackson.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.fasterxml.jackson.core</groupId>
-                <artifactId>jackson-databind</artifactId>
-                <version>${jackson.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.fasterxml.jackson.core</groupId>
-                <artifactId>jackson-annotations</artifactId>
-                <version>${jackson.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.fasterxml.jackson.module</groupId>
-                <artifactId>jackson-module-jaxb-annotations</artifactId>
-                <version>${jackson.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.code.gson</groupId>
-                <artifactId>gson</artifactId>
-                <version>${gson.version}</version>
-            </dependency>
-
-
-            <!-- HTML -->
-            <dependency>
-                <groupId>org.htmlparser</groupId>
-                <artifactId>htmlparser</artifactId>
-                <version>${htmlparser.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>com.sun</groupId>
-                        <artifactId>tools</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-
-            <!-- Databases -->
-            <dependency>
-              <groupId>org.hsqldb</groupId>
-              <artifactId>hsqldb</artifactId>
-              <version>${hsqldb.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>com.h2database</groupId>
-                <artifactId>h2</artifactId>
-                <version>${h2.version}</version>
-            </dependency>
-
-
-            <dependency>
-              <groupId>org.lazyluke</groupId>
-              <artifactId>log4jdbc-remix</artifactId>
-              <version>${log4jdbc-remix.version}</version>
-            </dependency>
-
-
-            <!-- Shiro -->
-            <dependency>
-                <groupId>org.apache.shiro</groupId>
-                <artifactId>shiro-core</artifactId>
-                <version>${shiro.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.shiro</groupId>
-                <artifactId>shiro-web</artifactId>
-                <version>${shiro.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket</artifactId>
-                <version>${wicket.version}</version>
-                <type>pom</type>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-core</artifactId>
-                <version>${wicket.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-api</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>commons-io</groupId>
-                        <artifactId>commons-io</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-devutils</artifactId>
-                <version>${wicket.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-request</artifactId>
-                <version>${wicket.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-util</artifactId>
-                <version>${wicket.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-extensions</artifactId>
-                <version>${wicket.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-datetime</artifactId>
-                <version>${wicket.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-auth-roles</artifactId>
-                <version>${wicket.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.wicket</groupId>
-                <artifactId>wicket-spring</artifactId>
-                <version>${wicket.version}</version>
-                <exclusions>
-                	<!-- TODO[2112] exclusions might no longer be relevant-->
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-api</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <!-- for Java7 compatibility (we don't use the proxying capability of this component) -->
-                        <groupId>cglib</groupId>
-                        <artifactId>cglib</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <!-- Wicket-Select2 -->
-            <dependency>
-                <groupId>org.wicketstuff</groupId>
-                <artifactId>wicketstuff-select2</artifactId>
-                <version>${wicketstuff.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-core</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.webjars</groupId>
-                <artifactId>select2</artifactId>
-                <version>${select2.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.webjars</groupId>
-                <artifactId>jquery-ui</artifactId>
-                <version>${jquery-ui.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>jquery</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <!-- Webjars -->
-            <dependency>
-                <groupId>de.agilecoders.wicket.webjars</groupId>
-                <artifactId>wicket-webjars</artifactId>
-                <version>${wicket-webjars.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-request</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>de.agilecoders.wicket</groupId>
-                <artifactId>wicket-bootstrap-core</artifactId>
-                <version>${wicket-bootstrap.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-util</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-request</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-extensions</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>de.agilecoders.wicket</groupId>
-                <artifactId>wicket-bootstrap-extensions</artifactId>
-                <version>${wicket-bootstrap.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-util</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-request</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-extensions</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>bootstrap</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>jquery</artifactId>
-                    </exclusion>
-                    <!-- exclude unused extensions -->
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>jquerypp</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>jquery-ui</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>typeaheadjs</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>x-editable-bootstrap</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>spin-js</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.google.javascript</groupId>
-                        <artifactId>closure-compiler</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.webjars</groupId>
-                <artifactId>Eonasdan-bootstrap-datetimepicker</artifactId>
-                <version>4.17.37-1</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.webjars</groupId>
-                        <artifactId>momentjs</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>de.agilecoders.wicket</groupId>
-                <artifactId>wicket-bootstrap-themes</artifactId>
-                <version>${wicket-bootstrap.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-core</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-
-            <dependency>
-<!-- version 7.0.0 -->            
-                <groupId>net.ftlines.wicket-source</groupId>
-<!-- version 8.0.0 -->
-<!--            <groupId>com.github.jennybrown8.wicket-source</groupId> -->
-                <artifactId>wicket-source</artifactId>
-                <version>${wicket-source.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <!-- for dependency convergence -->
-                        <groupId>org.apache.wicket</groupId>
-                        <artifactId>wicket-core</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            
-            
-            <!-- predicate libraries -->
-            <dependency>
-                <groupId>org.hamcrest</groupId>
-                <artifactId>hamcrest-core</artifactId>
-                <version>${hamcrest.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.hamcrest</groupId>
-                <artifactId>hamcrest-library</artifactId>
-                <version>${hamcrest.version}</version>
-            </dependency>
-
-            <!-- Web development -->
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-                <version>${jetty.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.eclipse.jetty.orbit</groupId>
-                        <artifactId>javax.servlet</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-webapp</artifactId>
-                <version>${jetty.version}</version>
-            </dependency>
-            
-            <!-- Spring -->
-            <dependency>
+			<!-- Google Guava (collections and commons) -->
+			<dependency>
+				<groupId>com.google.guava</groupId>
+				<artifactId>guava</artifactId>
+				<version>${guava.version}</version>
+			</dependency>
+
+			<!-- Logging -->
+			<dependency>
+				<groupId>org.slf4j</groupId>
+				<artifactId>slf4j-api</artifactId>
+				<version>${slf4j.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.slf4j</groupId>
+				<artifactId>slf4j-log4j12</artifactId>
+				<version>${slf4j.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.slf4j</groupId>
+				<artifactId>jcl-over-slf4j</artifactId>
+				<version>${slf4j.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>log4j</groupId>
+				<artifactId>log4j</artifactId>
+				<version>${log4j.version}</version>
+			</dependency>
+
+			<dependency>
+				<!-- required because resteasy-jaxrs declares as a test dependency whereas 
+					httpclient4 needs it as a compile dependency -->
+				<groupId>commons-logging</groupId>
+				<artifactId>commons-logging</artifactId>
+				<version>${commons-logging.version}</version>
+			</dependency>
+
+
+			<!-- Apache Commons -->
+			<dependency>
+				<groupId>commons-httpclient</groupId>
+				<artifactId>commons-httpclient</artifactId>
+				<version>${commons-httpclient.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>commons-codec</groupId>
+				<artifactId>commons-codec</artifactId>
+				<version>${commons-codec.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>commons-io</groupId>
+				<artifactId>commons-io</artifactId>
+				<version>${commons-io.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>net.sf.jopt-simple</groupId>
+				<artifactId>jopt-simple</artifactId>
+				<version>${jopt-simple.version}</version>
+			</dependency>
+
+			<!-- Dependency injection -->
+			<dependency>
+				<groupId>com.google.inject</groupId>
+				<artifactId>guice</artifactId>
+				<version>${guice.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.picocontainer</groupId>
+				<artifactId>picocontainer</artifactId>
+				<version>${picocontainer.version}</version>
+			</dependency>
+
+			<!-- JSON libraries -->
+			<dependency>
+				<groupId>com.fasterxml.jackson.core</groupId>
+				<artifactId>jackson-core</artifactId>
+				<version>${jackson.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>com.fasterxml.jackson.core</groupId>
+				<artifactId>jackson-databind</artifactId>
+				<version>${jackson.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>com.fasterxml.jackson.core</groupId>
+				<artifactId>jackson-annotations</artifactId>
+				<version>${jackson.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>com.fasterxml.jackson.module</groupId>
+				<artifactId>jackson-module-jaxb-annotations</artifactId>
+				<version>${jackson.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>com.google.code.gson</groupId>
+				<artifactId>gson</artifactId>
+				<version>${gson.version}</version>
+			</dependency>
+
+
+			<!-- HTML -->
+			<dependency>
+				<groupId>org.htmlparser</groupId>
+				<artifactId>htmlparser</artifactId>
+				<version>${htmlparser.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>com.sun</groupId>
+						<artifactId>tools</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+
+			<!-- Databases -->
+			<dependency>
+				<groupId>org.hsqldb</groupId>
+				<artifactId>hsqldb</artifactId>
+				<version>${hsqldb.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>com.h2database</groupId>
+				<artifactId>h2</artifactId>
+				<version>${h2.version}</version>
+			</dependency>
+
+
+			<dependency>
+				<groupId>org.lazyluke</groupId>
+				<artifactId>log4jdbc-remix</artifactId>
+				<version>${log4jdbc-remix.version}</version>
+			</dependency>
+
+
+			<!-- Shiro -->
+			<dependency>
+				<groupId>org.apache.shiro</groupId>
+				<artifactId>shiro-core</artifactId>
+				<version>${shiro.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.shiro</groupId>
+				<artifactId>shiro-web</artifactId>
+				<version>${shiro.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket</artifactId>
+				<version>${wicket.version}</version>
+				<type>pom</type>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-core</artifactId>
+				<version>${wicket.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.slf4j</groupId>
+						<artifactId>slf4j-api</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>commons-io</groupId>
+						<artifactId>commons-io</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-devutils</artifactId>
+				<version>${wicket.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-request</artifactId>
+				<version>${wicket.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.slf4j</groupId>
+						<artifactId>slf4j-api</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-util</artifactId>
+				<version>${wicket.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.slf4j</groupId>
+						<artifactId>slf4j-api</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-extensions</artifactId>
+				<version>${wicket.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.slf4j</groupId>
+						<artifactId>slf4j-api</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-datetime</artifactId>
+				<version>${wicket.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.slf4j</groupId>
+						<artifactId>slf4j-api</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-auth-roles</artifactId>
+				<version>${wicket.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.slf4j</groupId>
+						<artifactId>slf4j-api</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.apache.wicket</groupId>
+				<artifactId>wicket-spring</artifactId>
+				<version>${wicket.version}</version>
+				<exclusions>
+					<!-- TODO[2112] exclusions might no longer be relevant -->
+					<exclusion>
+						<groupId>org.slf4j</groupId>
+						<artifactId>slf4j-api</artifactId>
+					</exclusion>
+					<exclusion>
+						<!-- for Java7 compatibility (we don't use the proxying capability 
+							of this component) -->
+						<groupId>cglib</groupId>
+						<artifactId>cglib</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<!-- Wicket-Select2 -->
+			<dependency>
+				<groupId>org.wicketstuff</groupId>
+				<artifactId>wicketstuff-select2</artifactId>
+				<version>${wicketstuff.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-core</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.webjars</groupId>
+				<artifactId>select2</artifactId>
+				<version>${select2.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.webjars</groupId>
+				<artifactId>jquery-ui</artifactId>
+				<version>${jquery-ui.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>jquery</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<!-- Webjars -->
+			<dependency>
+				<groupId>de.agilecoders.wicket.webjars</groupId>
+				<artifactId>wicket-webjars</artifactId>
+				<version>${wicket-webjars.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-core</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-request</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>de.agilecoders.wicket</groupId>
+				<artifactId>wicket-bootstrap-core</artifactId>
+				<version>${wicket-bootstrap.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-util</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-request</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-core</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-extensions</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>de.agilecoders.wicket</groupId>
+				<artifactId>wicket-bootstrap-extensions</artifactId>
+				<version>${wicket-bootstrap.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-util</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-request</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-core</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-extensions</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>bootstrap</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>jquery</artifactId>
+					</exclusion>
+					<!-- exclude unused extensions -->
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>jquerypp</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>jquery-ui</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>typeaheadjs</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>x-editable-bootstrap</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>spin-js</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>com.google.javascript</groupId>
+						<artifactId>closure-compiler</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.webjars</groupId>
+				<artifactId>Eonasdan-bootstrap-datetimepicker</artifactId>
+				<version>4.17.37-1</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.webjars</groupId>
+						<artifactId>momentjs</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>de.agilecoders.wicket</groupId>
+				<artifactId>wicket-bootstrap-themes</artifactId>
+				<version>${wicket-bootstrap.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-core</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+
+			<dependency>
+				<!-- version 7.0.0 -->
+				<groupId>net.ftlines.wicket-source</groupId>
+				<!-- version 8.0.0 -->
+				<!-- <groupId>com.github.jennybrown8.wicket-source</groupId> -->
+				<artifactId>wicket-source</artifactId>
+				<version>${wicket-source.version}</version>
+				<exclusions>
+					<exclusion>
+						<!-- for dependency convergence -->
+						<groupId>org.apache.wicket</groupId>
+						<artifactId>wicket-core</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+
+			<!-- predicate libraries -->
+			<dependency>
+				<groupId>org.hamcrest</groupId>
+				<artifactId>hamcrest-core</artifactId>
+				<version>${hamcrest.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.hamcrest</groupId>
+				<artifactId>hamcrest-library</artifactId>
+				<version>${hamcrest.version}</version>
+			</dependency>
+
+			<!-- Web development -->
+			<dependency>
+				<groupId>org.eclipse.jetty</groupId>
+				<artifactId>jetty-servlet</artifactId>
+				<version>${jetty.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.eclipse.jetty.orbit</groupId>
+						<artifactId>javax.servlet</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+			<dependency>
+				<groupId>org.eclipse.jetty</groupId>
+				<artifactId>jetty-webapp</artifactId>
+				<version>${jetty.version}</version>
+			</dependency>
+
+			<!-- Spring -->
+			<dependency>
 				<groupId>org.springframework</groupId>
 				<artifactId>spring-context</artifactId>
 				<version>${spring-framework.version}</version>
 			</dependency>
-			
+
 			<dependency>
 				<groupId>org.springframework</groupId>
 				<artifactId>spring-web</artifactId>
 				<version>${spring-framework.version}</version>
 			</dependency>
-			
+
 			<dependency>
 				<groupId>org.springframework</groupId>
 				<artifactId>spring-test</artifactId>
 				<version>${spring-framework.version}</version>
 			</dependency>
-            
-
-            <!-- TESTING LIBRARIES (not scope=test because used by isis-core-integtest) -->
-            
-            <dependency>
-                <!-- JUnit API for writing tests and extensions -->
-                <groupId>org.junit.jupiter</groupId>
-                <artifactId>junit-jupiter-api</artifactId>
-                <version>${junit.version}</version>
-            </dependency>
-            <dependency>
-                <!-- implementation of the JUnit Jupiter test engine -->
-                <groupId>org.junit.jupiter</groupId>
-                <artifactId>junit-jupiter-engine</artifactId>
-                <version>${junit.version}</version>
-            </dependency>
-            <dependency>
-                <!-- support for unit tests that use JUnit 4 or JUnit 3 -->
-                <groupId>org.junit.vintage</groupId>
-                <artifactId>junit-vintage-engine</artifactId>
-                <version>${junit.version}</version>
-            </dependency>
-            
-            <!-- SPRING TEST -->
+
+
+			<!-- TESTING LIBRARIES (not scope=test because used by isis-core-integtest) -->
+
+			<dependency>
+				<!-- JUnit API for writing tests and extensions -->
+				<groupId>org.junit.jupiter</groupId>
+				<artifactId>junit-jupiter-api</artifactId>
+				<version>${junit.version}</version>
+			</dependency>
+			<dependency>
+				<!-- implementation of the JUnit Jupiter test engine -->
+				<groupId>org.junit.jupiter</groupId>
+				<artifactId>junit-jupiter-engine</artifactId>
+				<version>${junit.version}</version>
+			</dependency>
+			<dependency>
+				<!-- support for unit tests that use JUnit 4 or JUnit 3 -->
+				<groupId>org.junit.vintage</groupId>
+				<artifactId>junit-vintage-engine</artifactId>
+				<version>${junit.version}</version>
+			</dependency>
+
+			<!-- SPRING TEST -->
 			<dependency>
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-starter-test</artifactId>
@@ -1991,9 +1962,18 @@ ${license.additional-notes}
 						<artifactId>org.ow2.asm</artifactId>
 						<groupId>asm</groupId>
 					</exclusion>
+					<exclusion>
+						<groupId>javax.validation</groupId>
+						<artifactId>validation-api</artifactId>
+					</exclusion>
+					<exclusion>
+						<!-- we use log4j-2 instead -->
+						<groupId>org.springframework.boot</groupId>
+						<artifactId>spring-boot-starter-logging</artifactId>
+					</exclusion>
 				</exclusions>
 			</dependency>
-			
+
 			<!-- BYTEBUDDDY -->
 			<dependency>
 				<groupId>net.bytebuddy</groupId>
@@ -2003,614 +1983,561 @@ ${license.additional-notes}
 
 			<!-- MOCKITO -->
 			<dependency>
-			  <groupId>org.mockito</groupId>
-			  <artifactId>mockito-core</artifactId>
-			  <version>${mockito.version}</version>
-			</dependency>
-
-            <dependency>
-                <groupId>org.jmock</groupId>
-                <artifactId>jmock</artifactId>
-                <version>${jmock.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.jmock</groupId>
-                <artifactId>jmock-junit4</artifactId>
-                <version>${jmock.version}</version>
-                <exclusions>
-                    <exclusion>
-                <!-- for dependency convergence -->
-                        <groupId>junit</groupId>
-                        <artifactId>junit-dep</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.assertj</groupId>
-                <artifactId>assertj-core</artifactId>
-                <version>${assertj.version}</version>
-            </dependency>
-
-
-            <!-- BDD testing -->
-            <dependency>
-                <groupId>info.cukes</groupId>
-                <artifactId>cucumber-java</artifactId>
-                <version>${cucumber.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>info.cukes</groupId>
-                <artifactId>cucumber-junit</artifactId>
-                <version>${cucumber.version}</version>
-            </dependency>
-
-            <!-- Testing libraries (scope=test) -->
-            <dependency>
-                <groupId>org.easymock</groupId>
-                <artifactId>easymock</artifactId>
-                <version>${easymock.version}</version>
-                <scope>test</scope>
-            </dependency>
-
-
-            <!-- JAX-RS API -->
-            <dependency>
-                <groupId>org.jboss.spec.javax.ws.rs</groupId>
-                <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
-                <version>${jboss-jaxrs-api_2.0_spec.version}</version>
-            </dependency>
-
-
-            <!-- VALIDATION API -->
-            <dependency>
-                <groupId>javax.validation</groupId>
-                <artifactId>validation-api</artifactId>
-                <version>${validation-api.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>io.swagger</groupId>
-                <artifactId>swagger-core</artifactId>
-                <version>${swagger-core.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.commons</groupId>
-                        <artifactId>commons-lang3</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-        <!-- COMPILE DEPENDENCIES -->
-        <dependency>
-          <groupId>org.slf4j</groupId>
-          <artifactId>slf4j-api</artifactId>
-        </dependency>
-
-        <!-- TEST DEPENDENCIES -->
-        <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock-junit4</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-library</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- JUnit API for writing tests and extensions -->
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- implementation of the JUnit Jupiter test engine -->
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-engine</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <!-- support for unit tests that use JUnit 4 or JUnit 3 -->
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+				<groupId>org.mockito</groupId>
+				<artifactId>mockito-core</artifactId>
+				<version>${mockito.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.jmock</groupId>
+				<artifactId>jmock</artifactId>
+				<version>${jmock.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>org.jmock</groupId>
+				<artifactId>jmock-junit4</artifactId>
+				<version>${jmock.version}</version>
+				<exclusions>
+					<exclusion>
+						<!-- for dependency convergence -->
+						<groupId>junit</groupId>
+						<artifactId>junit-dep</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+			<dependency>
+				<groupId>org.assertj</groupId>
+				<artifactId>assertj-core</artifactId>
+				<version>${assertj.version}</version>
+			</dependency>
+
+
+			<!-- BDD testing -->
+			<dependency>
+				<groupId>info.cukes</groupId>
+				<artifactId>cucumber-java</artifactId>
+				<version>${cucumber.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>info.cukes</groupId>
+				<artifactId>cucumber-junit</artifactId>
+				<version>${cucumber.version}</version>
+			</dependency>
+
+			<!-- Testing libraries (scope=test) -->
+			<dependency>
+				<groupId>org.easymock</groupId>
+				<artifactId>easymock</artifactId>
+				<version>${easymock.version}</version>
+				<scope>test</scope>
+			</dependency>
+
+
+			<!-- JAX-RS API -->
+			<dependency>
+				<groupId>org.jboss.spec.javax.ws.rs</groupId>
+				<artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
+				<version>${jboss-jaxrs-api_2.0_spec.version}</version>
+			</dependency>
+
+
+			<!-- VALIDATION API -->
+			<dependency>
+				<groupId>javax.validation</groupId>
+				<artifactId>validation-api</artifactId>
+				<version>${validation-api.version}</version>
+			</dependency>
+
+			<dependency>
+				<groupId>io.swagger</groupId>
+				<artifactId>swagger-core</artifactId>
+				<version>${swagger-core.version}</version>
+				<exclusions>
+					<exclusion>
+						<groupId>org.apache.commons</groupId>
+						<artifactId>commons-lang3</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<!-- COMPILE DEPENDENCIES -->
+
+		<!-- TEST DEPENDENCIES -->
+		<dependency>
+			<groupId>org.jmock</groupId>
+			<artifactId>jmock-junit4</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.hamcrest</groupId>
+			<artifactId>hamcrest-library</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<!-- JUnit API for writing tests and extensions -->
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter-api</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<!-- implementation of the JUnit Jupiter test engine -->
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter-engine</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<!-- support for unit tests that use JUnit 4 or JUnit 3 -->
+			<groupId>org.junit.vintage</groupId>
+			<artifactId>junit-vintage-engine</artifactId>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
 
 	<profiles>
-        <profile>
-            <id>apache-release</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-toolchains-plugin</artifactId>
-                        <version>1.1</version>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>toolchain</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <toolchains>
-                                <jdk>
-                                    <version>1.8</version>
-                                    <vendor>oracle</vendor>
-                                </jdk>
-                            </toolchains>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        
-        
 		<profile>
-            <id>jdk11</id>
-            <activation>
-                <jdk>[11,)</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <!-- Compile -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-compiler-plugin</artifactId>
-                        <configuration>
-                            <showDeprecation>true</showDeprecation>
-                            <showWarnings>true</showWarnings>
-                            <source>8</source>
-                            <target>8</target>
-                        </configuration>
-                    </plugin>
-    
-                    <plugin>
-                        <groupId>org.jvnet.jaxb2.maven2</groupId>
-                        <artifactId>maven-jaxb2-plugin</artifactId>
-                        <version>0.14.0</version>
-                        <configuration>
-                            <removeOldOutput>true</removeOldOutput>
-                            <episode>true</episode>
-                            </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        
-
-        <profile>
-            <id>jdk11plus</id>
-            <activation>
-            	<!-- disabled for now, because I have not found a way to enforce jdk8 
-            	build when this condition evaluates true -->
-<!--                 <jdk>[11,)</jdk> -->
-            </activation>
-            <build>
-                <plugins>
-                    <!-- Compile -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-compiler-plugin</artifactId>
-                        <configuration>
-                            <showDeprecation>true</showDeprecation>
-                            <showWarnings>true</showWarnings>
-                            <source>11</source>
-                            <target>11</target>
-                            <!-- TODO on build WARNING: __add-opens has no effect at compile time -->
-                            <compilerArgs>
-                                <arg>--add-opens</arg>
-                                <arg>javax.xml/javax.xml.bind=ALL-UNNAMED</arg>
-                            </compilerArgs>
-                        </configuration>
-                        <!-- goal:compile binds to phase:compile -->
-                        <!-- goal:testCompile binds to phase:test-compile -->
-                    </plugin>
-    
-                    <plugin>
-                        <groupId>org.jvnet.jaxb2.maven2</groupId>
-                        <artifactId>maven-jaxb2-plugin</artifactId>
-                        <version>0.14.0</version>
-                        <configuration>
-                            <removeOldOutput>true</removeOldOutput>
-                            <episode>true</episode>
-                            </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
-            <id>m2e</id>
-            <activation>
-                <property>
-                    <name>m2e.version</name>
-                </property>
-            </activation>
-            <build>
-                <directory>target-ide</directory>
-            </build>
-        </profile>
-
-        <profile>
-            <id>deploy-local</id>
-            <activation>
-                <property>
-                    <name>deploy</name>
-                    <value>local</value>
-                </property>
-            </activation>
-            <!-- to deploy locally -->
-            <properties>
-                <distMgmtSiteUrl>file:///tmp/m2-sites/isis</distMgmtSiteUrl>
-            </properties>
-        </profile>
-
-        <!-- overrides inherited configuration to allow regular deploy plugin 
-            to work to snapshot repo. Use: -D deploy=snapshot -D modules=standard -D 
-            distMgmtSnapshotsUrl=... where the last property is the repo URL to deploy 
-            to -->
-        <profile>
-            <id>deploy-snapshot</id>
-            <activation>
-                <property>
-                    <name>deploy</name>
-                    <value>snapshot</value>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-deploy-plugin</artifactId>
-                        <inherited>true</inherited>
-                        <configuration>
-                            <skip>false</skip>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
-
-            <!--
-            this profile allows builds to be deployed to an inhouse nexus repo.
-
-            export NEXUS_USERNAME=...
-            export NEXUS_PASSWORD=...
-            export NEXUS_REPO_URL=...
-
-            export REVISION=...
-
-            mvn clean deploy \
-                 -Drevision=$REVISION \
-                 -Dnexus-deploy \
-                 -s .m2/settings.xml \
-                 -Dnexus-deploy.repositoryUrl=$NEXUS_REPO_URL
-
-            with .m2/settings.xml as:
-
-            <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
-                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-              <servers>
-                <server>
-                  <id>nexus-deploy.serverId</id>
-                  <username>${env.NEXUS_USERNAME}</username>
-                  <password>${env.NEXUS_PASSWORD}</password>
-                </server>
-              </servers>
-            </settings>
-
-            -->
-            <id>nexus-deploy</id>
-                <activation>
-                <property>
-                    <name>nexus-deploy</name>
-                </property>
-            </activation>
-            <properties>
-                <nexus-deploy.repositoryUrl>http://localhost:8081/repository/builds</nexus-deploy.repositoryUrl>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.sonatype.plugins</groupId>
-                        <artifactId>nexus-staging-maven-plugin</artifactId>
-                        <version>1.6.8</version>
-                        <extensions>true</extensions>
-                        <configuration>
-                            <serverId>nexus-deploy.serverId</serverId>
-                            <skipStaging>true</skipStaging>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-            <distributionManagement>
-                <repository>
-                    <id>nexus-deploy.serverId</id>
-                    <url>${nexus-deploy.repositoryUrl}</url>
-                </repository>
-            </distributionManagement>
-        </profile>
-
-        <!--
-        this profile allows builds to be deployed to GCP, hosting a Maven repo backed by Google Storage
-
-        see:
-        https://github.com/renaudcerrato/appengine-maven-repository
-
-            export GCPAPPENGINEREPO_USERNAME=...
-            export GCPAPPENGINEREPO_PASSWORD=...
-            export GCPAPPENGINEREPO_URL=...
-
-            export REVISION=...
-
-              mvn -s .m2/settings.xml \
-                  -B \
-                  clean deploy \
-                  -Dgcpappenginerepo-deploy \
-                  -Dgcpappenginerepo-deploy.repositoryUrl=$GCPAPPENGINEREPO_URL \
-                  -Drevision=$REVISION \
-                  -Dskip.assemble-zip \
-                  $CORE_ADDITIONAL_OPTS
-
-            with .m2/settings.xml as:
-
-            <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
-                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-              <servers>
-                <server>
-                  <id>gcpappenginerepo-deploy.serverId</id>
-                  <username>${env.GCPAPPENGINEREPO_USERNAME}</username>
-                  <password>${env.GCPAPPENGINEREPO_PASSWORD}</password>
-                </server>
-              </servers>
-            </settings>
-
-        -->
-        <profile>
-            <id>gcpappenginerepo-deploy</id>
-            <activation>
-                <property>
-                    <name>gcpappenginerepo-deploy</name>
-                </property>
-            </activation>
-            <properties>
-                <gcpappenginerepo-deploy.repositoryUrl>https://my-gcp-project-id.appspot.com</gcpappenginerepo-deploy.repositoryUrl>
-            </properties>
-            <distributionManagement>
-                <repository>
-                    <id>gcpappenginerepo-deploy.serverId</id>
-                    <url>${gcpappenginerepo-deploy.repositoryUrl}</url>
-                </repository>
-            </distributionManagement>
-        </profile>
-
-        <profile>
-            <id>owasp</id>
-            <activation>
-                <property>
-                    <name>owasp</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.owasp</groupId>
-                        <artifactId>dependency-check-maven</artifactId>
-                        <version>1.3.1</version>
-                        <executions>
-                            <execution>
-                                <id>owasp-aggregate</id>
-                                <goals>
-                                    <goal>aggregate</goal>
-                                </goals>
-                                <configuration>
-                                    <skipProvidedScope>true</skipProvidedScope>
-                                    <skipRuntimeScope>true</skipRuntimeScope>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>jdeps</id>
-            <activation>
-                <property>
-                    <name>jdeps</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-jdeps-plugin</artifactId>
-                        <version>3.0.0</version>
-                        <executions>
-                            <execution>
-                                <id>jdeps-jdkinternals</id>
-                                <goals>
-                                    <goal>jdkinternals</goal>
-                                    <goal>test-jdkinternals</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
-            <id>src</id>
-            <activation>
-                <property>
-                    <name>!skip.src</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-source-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
-            <id>git</id>
-            <activation>
-                <property>
-                    <name>git</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>pl.project13.maven</groupId>
-                        <artifactId>git-commit-id-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
-            <id>flatten</id>
-            <activation>
-                <property>
-                    <name>!skip.flatten</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>flatten-maven-plugin</artifactId>
-                        <version>1.0.0</version>
-                        <executions>
-                            <execution>
-                                <id>flatten</id>
-                                <phase>process-resources</phase>
-                                <goals>
-                                    <goal>flatten</goal>
-                                </goals>
-                                <configuration>
-                                    <flattenMode>bom</flattenMode>
-                                    <updatePomFile>true</updatePomFile>
-                                    <pomElements>
-                                        <parent>resolve</parent>
-                                    </pomElements>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>flatten.clean</id>
-                                <phase>clean</phase>
-                                <goals>
-                                    <goal>clean</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
-            <!--
-            as per https://stackoverflow.com/a/28860520/56880
-            allows -Dgpg.passphrase= to be used rather than gpg.useagent
-            inherited from parent.
-            Note that this requires gpg v2.1+
-            -->
-            <id>gpg</id>
-            <activation>
-                <property>
-                    <name>gpg.passphrase</name>
-                </property>
-            </activation>
-            <properties>
-                <gpg.useagent>false</gpg.useagent>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-gpg-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>sign-release-artifacts</id>
-                                <goals>
-                                    <goal>sign</goal>
-                                </goals>
-                                <configuration>
-                                    <gpgArguments>
-                                        <arg>--pinentry-mode</arg>
-                                        <arg>loopback</arg>
-                                    </gpgArguments>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-    <modules>
-        <module>schema</module>
-        <module>commons</module>
-        <module>config</module>
-        <module>applib</module>
-        <module>log4j</module>
-        <module>metamodel</module>
-        <module>runtime</module>
-        <module>runtime-services</module>
-        <module>runtime-extensions</module>
-        <module>webserver</module>
-
-        <module>security</module>
-        
-        <module>unittestsupport</module>
-        <module>specsupport</module>
-        <module>integtestsupport</module>
-
-        <module>viewer-restfulobjects-applib</module>
-        <module>viewer-restfulobjects-rendering</module>
-        <module>viewer-restfulobjects-server</module>
-
-        <module>viewer-wicket-model</module>
-        <module>viewer-wicket-ui</module>
-        <module>viewer-wicket-impl</module>
-
-        <module>maven-plugin</module>
-
-        <module>mavendeps/intellij</module>
-        <module>mavendeps/webapp</module>
-        <module>mavendeps/testing</module>
-        
-        <module>plugins/codegen-bytebuddy</module>
-        <module>plugins/jaxrs-resteasy-4</module>
-        <module>plugins/jdo-common</module>
-        <module>plugins/jdo-datanucleus-5</module>
-        <module>plugins/security-shiro</module>
-
-        <!-- to break cyclic dependencies some tests needed to be moved to their own modules -->
-        <module>detached-tests</module>
-
-        <module>webdocker</module>
-    </modules>
+			<id>apache-release</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-toolchains-plugin</artifactId>
+						<version>1.1</version>
+						<executions>
+							<execution>
+								<goals>
+									<goal>toolchain</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<toolchains>
+								<jdk>
+									<version>1.8</version>
+									<vendor>oracle</vendor>
+								</jdk>
+							</toolchains>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+
+		<profile>
+			<id>jdk11</id>
+			<activation>
+				<jdk>[11,)</jdk>
+			</activation>
+			<build>
+				<plugins>
+					<!-- Compile -->
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-compiler-plugin</artifactId>
+						<configuration>
+							<showDeprecation>true</showDeprecation>
+							<showWarnings>true</showWarnings>
+							<source>8</source>
+							<target>8</target>
+						</configuration>
+					</plugin>
+
+					<plugin>
+						<groupId>org.jvnet.jaxb2.maven2</groupId>
+						<artifactId>maven-jaxb2-plugin</artifactId>
+						<version>0.14.0</version>
+						<configuration>
+							<removeOldOutput>true</removeOldOutput>
+							<episode>true</episode>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+
+		<profile>
+			<id>jdk11plus</id>
+			<activation>
+				<!-- disabled for now, because I have not found a way to enforce jdk8 
+					build when this condition evaluates true -->
+				<!-- <jdk>[11,)</jdk> -->
+			</activation>
+			<build>
+				<plugins>
+					<!-- Compile -->
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-compiler-plugin</artifactId>
+						<configuration>
+							<showDeprecation>true</showDeprecation>
+							<showWarnings>true</showWarnings>
+							<source>11</source>
+							<target>11</target>
+							<!-- TODO on build WARNING: __add-opens has no effect at compile time -->
+							<compilerArgs>
+								<arg>--add-opens</arg>
+								<arg>javax.xml/javax.xml.bind=ALL-UNNAMED</arg>
+							</compilerArgs>
+						</configuration>
+						<!-- goal:compile binds to phase:compile -->
+						<!-- goal:testCompile binds to phase:test-compile -->
+					</plugin>
+
+					<plugin>
+						<groupId>org.jvnet.jaxb2.maven2</groupId>
+						<artifactId>maven-jaxb2-plugin</artifactId>
+						<version>0.14.0</version>
+						<configuration>
+							<removeOldOutput>true</removeOldOutput>
+							<episode>true</episode>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+			<id>m2e</id>
+			<activation>
+				<property>
+					<name>m2e.version</name>
+				</property>
+			</activation>
+			<build>
+				<directory>target-ide</directory>
+			</build>
+		</profile>
+
+		<profile>
+			<id>deploy-local</id>
+			<activation>
+				<property>
+					<name>deploy</name>
+					<value>local</value>
+				</property>
+			</activation>
+			<!-- to deploy locally -->
+			<properties>
+				<distMgmtSiteUrl>file:///tmp/m2-sites/isis</distMgmtSiteUrl>
+			</properties>
+		</profile>
+
+		<!-- overrides inherited configuration to allow regular deploy plugin to 
+			work to snapshot repo. Use: -D deploy=snapshot -D modules=standard -D distMgmtSnapshotsUrl=... 
+			where the last property is the repo URL to deploy to -->
+		<profile>
+			<id>deploy-snapshot</id>
+			<activation>
+				<property>
+					<name>deploy</name>
+					<value>snapshot</value>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-deploy-plugin</artifactId>
+						<inherited>true</inherited>
+						<configuration>
+							<skip>false</skip>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+
+			<!-- this profile allows builds to be deployed to an inhouse nexus repo. 
+				export NEXUS_USERNAME=... export NEXUS_PASSWORD=... export NEXUS_REPO_URL=... 
+				export REVISION=... mvn clean deploy \ -Drevision=$REVISION \ -Dnexus-deploy 
+				\ -s .m2/settings.xml \ -Dnexus-deploy.repositoryUrl=$NEXUS_REPO_URL with 
+				.m2/settings.xml as: <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
+				xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
+				http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>nexus-deploy.serverId</id> 
+				<username>${env.NEXUS_USERNAME}</username> <password>${env.NEXUS_PASSWORD}</password> 
+				</server> </servers> </settings> -->
+			<id>nexus-deploy</id>
+			<activation>
+				<property>
+					<name>nexus-deploy</name>
+				</property>
+			</activation>
+			<properties>
+				<nexus-deploy.repositoryUrl>http://localhost:8081/repository/builds</nexus-deploy.repositoryUrl>
+			</properties>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.sonatype.plugins</groupId>
+						<artifactId>nexus-staging-maven-plugin</artifactId>
+						<version>1.6.8</version>
+						<extensions>true</extensions>
+						<configuration>
+							<serverId>nexus-deploy.serverId</serverId>
+							<skipStaging>true</skipStaging>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+			<distributionManagement>
+				<repository>
+					<id>nexus-deploy.serverId</id>
+					<url>${nexus-deploy.repositoryUrl}</url>
+				</repository>
+			</distributionManagement>
+		</profile>
+
+		<!-- this profile allows builds to be deployed to GCP, hosting a Maven 
+			repo backed by Google Storage see: https://github.com/renaudcerrato/appengine-maven-repository 
+			export GCPAPPENGINEREPO_USERNAME=... export GCPAPPENGINEREPO_PASSWORD=... 
+			export GCPAPPENGINEREPO_URL=... export REVISION=... mvn -s .m2/settings.xml 
+			\ -B \ clean deploy \ -Dgcpappenginerepo-deploy \ -Dgcpappenginerepo-deploy.repositoryUrl=$GCPAPPENGINEREPO_URL 
+			\ -Drevision=$REVISION \ -Dskip.assemble-zip \ $CORE_ADDITIONAL_OPTS with 
+			.m2/settings.xml as: <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
+			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
+			http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>gcpappenginerepo-deploy.serverId</id> 
+			<username>${env.GCPAPPENGINEREPO_USERNAME}</username> <password>${env.GCPAPPENGINEREPO_PASSWORD}</password> 
+			</server> </servers> </settings> -->
+		<profile>
+			<id>gcpappenginerepo-deploy</id>
+			<activation>
+				<property>
+					<name>gcpappenginerepo-deploy</name>
+				</property>
+			</activation>
+			<properties>
+				<gcpappenginerepo-deploy.repositoryUrl>https://my-gcp-project-id.appspot.com</gcpappenginerepo-deploy.repositoryUrl>
+			</properties>
+			<distributionManagement>
+				<repository>
+					<id>gcpappenginerepo-deploy.serverId</id>
+					<url>${gcpappenginerepo-deploy.repositoryUrl}</url>
+				</repository>
+			</distributionManagement>
+		</profile>
+
+		<profile>
+			<id>owasp</id>
+			<activation>
+				<property>
+					<name>owasp</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.owasp</groupId>
+						<artifactId>dependency-check-maven</artifactId>
+						<version>1.3.1</version>
+						<executions>
+							<execution>
+								<id>owasp-aggregate</id>
+								<goals>
+									<goal>aggregate</goal>
+								</goals>
+								<configuration>
+									<skipProvidedScope>true</skipProvidedScope>
+									<skipRuntimeScope>true</skipRuntimeScope>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<profile>
+			<id>jdeps</id>
+			<activation>
+				<property>
+					<name>jdeps</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-jdeps-plugin</artifactId>
+						<version>3.0.0</version>
+						<executions>
+							<execution>
+								<id>jdeps-jdkinternals</id>
+								<goals>
+									<goal>jdkinternals</goal>
+									<goal>test-jdkinternals</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+			<id>src</id>
+			<activation>
+				<property>
+					<name>!skip.src</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-source-plugin</artifactId>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+			<id>git</id>
+			<activation>
+				<property>
+					<name>git</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>pl.project13.maven</groupId>
+						<artifactId>git-commit-id-plugin</artifactId>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+			<id>flatten</id>
+			<activation>
+				<property>
+					<name>!skip.flatten</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>flatten-maven-plugin</artifactId>
+						<version>1.0.0</version>
+						<executions>
+							<execution>
+								<id>flatten</id>
+								<phase>process-resources</phase>
+								<goals>
+									<goal>flatten</goal>
+								</goals>
+								<configuration>
+									<flattenMode>bom</flattenMode>
+									<updatePomFile>true</updatePomFile>
+									<pomElements>
+										<parent>resolve</parent>
+									</pomElements>
+								</configuration>
+							</execution>
+							<execution>
+								<id>flatten.clean</id>
+								<phase>clean</phase>
+								<goals>
+									<goal>clean</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+			<!-- as per https://stackoverflow.com/a/28860520/56880 allows -Dgpg.passphrase= 
+				to be used rather than gpg.useagent inherited from parent. Note that this 
+				requires gpg v2.1+ -->
+			<id>gpg</id>
+			<activation>
+				<property>
+					<name>gpg.passphrase</name>
+				</property>
+			</activation>
+			<properties>
+				<gpg.useagent>false</gpg.useagent>
+			</properties>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-gpg-plugin</artifactId>
+						<executions>
+							<execution>
+								<id>sign-release-artifacts</id>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+								<configuration>
+									<gpgArguments>
+										<arg>--pinentry-mode</arg>
+										<arg>loopback</arg>
+									</gpgArguments>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
+	<modules>
+		<module>schema</module>
+		<module>commons</module>
+		<module>config</module>
+		<module>applib</module>
+		<module>log4j</module>
+		<module>metamodel</module>
+		<module>runtime</module>
+		<module>runtime-services</module>
+		<module>runtime-extensions</module>
+		<module>webserver</module>
+
+		<module>security</module>
+
+		<module>unittestsupport</module>
+		<module>specsupport</module>
+		<module>integtestsupport</module>
+
+		<module>viewer-restfulobjects-applib</module>
+		<module>viewer-restfulobjects-rendering</module>
+		<module>viewer-restfulobjects-server</module>
+
+		<module>viewer-wicket-model</module>
+		<module>viewer-wicket-ui</module>
+		<module>viewer-wicket-impl</module>
+
+		<module>maven-plugin</module>
+
+		<module>mavendeps/intellij</module>
+		<module>mavendeps/webapp</module>
+		<module>mavendeps/testing</module>
+
+		<module>plugins/codegen-bytebuddy</module>
+		<module>plugins/jaxrs-resteasy-4</module>
+		<module>plugins/jdo-common</module>
+		<module>plugins/jdo-datanucleus-5</module>
+		<module>plugins/security-shiro</module>
+
+		<!-- to break cyclic dependencies some tests needed to be moved to their 
+			own modules -->
+		<module>detached-tests</module>
+
+		<module>webdocker</module>
+	</modules>
 
 </project>
 
diff --git a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
index 1d0b58a..8926d83 100644
--- a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
+++ b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
@@ -20,9 +20,6 @@ package org.apache.isis.core.runtime.headless;
 
 import java.io.PrintStream;
 
-import org.joda.time.LocalDate;
-import org.slf4j.event.Level;
-
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.config.IsisConfiguration;
@@ -31,8 +28,9 @@ import org.apache.isis.core.runtime.headless.logging.LeveledLogger;
 import org.apache.isis.core.runtime.headless.logging.LogConfig;
 import org.apache.isis.core.runtime.headless.logging.LogStream;
 import org.apache.isis.core.runtime.logging.IsisLoggingConfigurer;
+import org.apache.logging.log4j.Level;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Provides headless access to the system, first bootstrapping the system if required.
@@ -43,7 +41,7 @@ import lombok.extern.slf4j.Slf4j;
  *     to bootstrap the system with a given module for headless access.
  * </p>
  */
-@Slf4j
+@Log4j2
 public abstract class HeadlessWithBootstrappingAbstract extends HeadlessAbstract {
 
     private final LogConfig logConfig;
@@ -89,7 +87,7 @@ public abstract class HeadlessWithBootstrappingAbstract extends HeadlessAbstract
     }
 
 
-    private LocalDate timeBeforeTest;
+    private org.joda.time.LocalDate timeBeforeTest;
 
     protected void bootstrapAndSetupIfRequired() {
 
diff --git a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
index d557975..d8b606e 100644
--- a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
+++ b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
@@ -33,9 +33,9 @@ import org.apache.isis.core.runtime.headless.logging.LogConfig;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public class IsisSystemBootstrapper {
 
     private final IsisConfiguration isisConfiguration;
diff --git a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LeveledLogger.java b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LeveledLogger.java
index 903bef6..e334246 100644
--- a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LeveledLogger.java
+++ b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LeveledLogger.java
@@ -19,8 +19,8 @@
 
 package org.apache.isis.core.runtime.headless.logging;
 
-import org.slf4j.Logger;
-import org.slf4j.event.Level;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Logger;
 
 public class LeveledLogger {
 
@@ -33,23 +33,26 @@ public class LeveledLogger {
     }
 
     public void log(final String message) {
-        switch (level) {
-            case ERROR:
-                logger.error(message);
-                break;
-            case WARN:
-                logger.warn(message);
-                break;
-            case INFO:
-                logger.info(message);
-                break;
-            case DEBUG:
-                logger.debug(message);
-                break;
-            case TRACE:
-                logger.trace(message);
-                break;
-        }
+    	logger.log(level, message);
+    	
+//[2112]    	
+//        switch (level.) {
+//            case ERROR:
+//                logger.error(message);
+//                break;
+//            case WARN:
+//                logger.warn(message);
+//                break;
+//            case INFO:
+//                logger.info(message);
+//                break;
+//            case DEBUG:
+//                logger.debug(message);
+//                break;
+//            case TRACE:
+//                logger.trace(message);
+//                break;
+//        }
     }
 
 }
diff --git a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java
index 805cb19..7edcf80 100644
--- a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java
+++ b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java
@@ -18,12 +18,11 @@
  */
 package org.apache.isis.core.runtime.headless.logging;
 
-import static org.slf4j.event.Level.INFO;
-
 import java.io.PrintStream;
 
-import org.slf4j.Logger;
-import org.slf4j.event.Level;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Logger;
+
 
 public class LogConfig {
     private final String loggingPropertyFile;
@@ -61,7 +60,7 @@ public class LogConfig {
             final Level testLoggingLevel,
             final PrintStream fixtureTracing,
             final String loggingPropertyFile) {
-        this.testLoggingLevel = testLoggingLevel != null ? testLoggingLevel : INFO;
+        this.testLoggingLevel = testLoggingLevel != null ? testLoggingLevel : Level.INFO;
         this.fixtureTracing = fixtureTracing != null ? fixtureTracing : System.out;
         this.loggingPropertyFile =
                 loggingPropertyFile != null ? loggingPropertyFile : "logging-integtest.properties";
diff --git a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java
index 7c77dc6..bded01f 100644
--- a/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java
+++ b/core/runtime-extensions/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java
@@ -21,8 +21,8 @@ package org.apache.isis.core.runtime.headless.logging;
 import java.io.OutputStream;
 import java.io.PrintStream;
 
-import org.slf4j.Logger;
-import org.slf4j.event.Level;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Logger;
 
 public class LogStream extends OutputStream {
 
diff --git a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/background/ForkingInvocationHandler.java b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/background/ForkingInvocationHandler.java
index 226dd00..c5e3386 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/background/ForkingInvocationHandler.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/background/ForkingInvocationHandler.java
@@ -30,13 +30,13 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
 
 import static org.apache.isis.commons.internal.base._With.requires;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Package private invocation handler that executes actions in the background using a ExecutorService
  * @since 2.0.0
  */
-@Slf4j
+@Log4j2
 class ForkingInvocationHandler<T> implements InvocationHandler {
 
     private final T target;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
index da55735..050281d 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
@@ -34,9 +34,9 @@ import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.collections.Bin;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 class PoReader extends PoAbstract {
 
     public static final String DASH = "-";
diff --git a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/MenuBarsLoaderServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/MenuBarsLoaderServiceDefault.java
index 4370444..a7532b7 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/MenuBarsLoaderServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/MenuBarsLoaderServiceDefault.java
@@ -31,9 +31,9 @@ import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.config.beans.WebAppConfigBean;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Singleton @Slf4j
+@Singleton @Log4j2
 public class MenuBarsLoaderServiceDefault implements MenuBarsLoaderService {
     
     @Override
diff --git a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
index 18fa404..11fcf66 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
@@ -61,9 +61,9 @@ import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Singleton @Slf4j
+@Singleton @Log4j2
 public class MenuBarsServiceBS3 implements MenuBarsService {
 
     public static final String MB3_TNS = "http://isis.apache.org/applib/layout/menubars/bootstrap3";
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index dff50d4..ca11561 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -109,6 +109,7 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
+            <scope>provided</scope>
         </dependency>
 
     </dependencies>
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
index 7c6d78f..176ae72 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
@@ -37,9 +37,9 @@ import org.apache.isis.core.runtime.system.session.IsisSession;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public class FixturesInstallerDelegate {
 
     // -- Constructor, fields
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java
index ee3e795..4b6d41c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java
@@ -26,9 +26,9 @@ import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public class FixturesInstallerFromConfiguration extends FixturesInstallerAbstract {
 
     public FixturesInstallerFromConfiguration() {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
index 184ed82..32327eb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
@@ -41,7 +41,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Holds the state for the specified object in serializable form.
@@ -51,7 +51,7 @@ import lombok.extern.slf4j.Slf4j;
  * easily. Also for a persistent objects only the reference's {@link Oid}s are
  * held, avoiding the need for serializing the whole object graph.
  */
-@Slf4j
+@Log4j2
 public class Memento implements Serializable {
 
     private final static long serialVersionUID = 1L;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index f6f06e4..e01d9b4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -43,9 +43,9 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
 import static org.apache.isis.commons.internal.base._With.requires;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public final class PojoAdapter implements ObjectAdapter {
 
     private final AuthenticationSession authenticationSession;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
index 4b2fa56..026ed4c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
@@ -42,14 +42,14 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Encapsulate ObjectAdpater life-cycling.  
  *  
  * @since 2.0.0-M2
  */
-@Slf4j
+@Log4j2
 final public class ObjectAdapterContext {
 
     public static ObjectAdapterContext openContext(
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java
index 818dea6..b047989 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java
@@ -34,7 +34,7 @@ import lombok.RequiredArgsConstructor;
  * </p> 
  * @since 2.0.0-M2
  */
-//@Slf4j
+//@Log4j2
 @RequiredArgsConstructor
 class ObjectAdapterContext_DependencyInjection {
     
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Factories.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Factories.java
index f132a96..9496635 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Factories.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Factories.java
@@ -41,7 +41,7 @@ import lombok.RequiredArgsConstructor;
  * </p>
  * @since 2.0.0-M2
  */
-//@Slf4j
+//@Log4j2
 @RequiredArgsConstructor
 class ObjectAdapterContext_Factories implements ObjectAdapterFactories {
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java
index 8a45439..be31f00 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_MementoSupport.java
@@ -48,7 +48,7 @@ import org.apache.isis.core.runtime.system.persistence.adaptermanager.ObjectAdap
 
 import static org.apache.isis.commons.internal.functions._Predicates.not;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * package private mixin for ObjectAdapterContext
@@ -57,7 +57,7 @@ import lombok.extern.slf4j.Slf4j;
  * </p>
  * @since 2.0.0-M2
  */
-@Slf4j
+@Log4j2
 class ObjectAdapterContext_MementoSupport implements MementoRecreateObjectSupport {
     
     
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java
index 71c3811..e1ed8ad 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterByIdProvider.java
@@ -42,7 +42,7 @@ import org.apache.isis.core.runtime.system.context.session.RuntimeContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * package private mixin for ObjectAdapterContext
@@ -51,7 +51,7 @@ import lombok.extern.slf4j.Slf4j;
  * </p> 
  * @since 2.0.0-M2
  */
-@Slf4j
+@Log4j2
 class ObjectAdapterContext_ObjectAdapterByIdProvider implements ObjectAdapterByIdProvider {
     
     private final ObjectAdapterContext objectAdapterContext;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java
index 07814ad..32af671 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java
@@ -38,7 +38,7 @@ import lombok.val;
  * </p> 
  * @since 2.0.0-M2
  */
-//@Slf4j
+//@Log4j2
 class ObjectAdapterContext_ServiceLookup {
     
     private final ObjectAdapterContext objectAdapterContext;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
index 3bef89b..1f6578f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
@@ -66,7 +66,7 @@ import org.apache.isis.schema.utils.CommandDtoUtils;
 import org.apache.isis.schema.utils.InteractionDtoUtils;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Is the factory of {@link IsisSession}s, also holding a reference to the current session using
@@ -78,7 +78,7 @@ import lombok.extern.slf4j.Slf4j;
  * </p>
  *
  */
-@Singleton @Slf4j
+@Singleton @Log4j2
 public class IsisSessionFactoryDefault implements IsisSessionFactory {
 
     @Inject private IsisConfiguration configuration;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
index f5c87e4..0bb45dd 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
@@ -36,9 +36,9 @@ import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.session.IsisSession;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Vetoed @Slf4j
+@Vetoed @Log4j2
 public class IsisTransactionManager implements SessionScopedComponent {
 
     private int transactionLevel;
diff --git a/core/unittestsupport/pom.xml b/core/unittestsupport/pom.xml
index 1a02737..0d6afd6 100644
--- a/core/unittestsupport/pom.xml
+++ b/core/unittestsupport/pom.xml
@@ -1,40 +1,34 @@
 <?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/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.isis.core</groupId>
-        <artifactId>isis</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>isis-core-unittestsupport</artifactId>
-    <name>Apache Isis Unit Test Support</name>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.isis.core.unittestsupport</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/isis/core/unittestsupport</git-plugin.propertiesDir>
-    </properties>
-
-    <description>
+<!-- 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/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+		<version>${revision}</version>
+	</parent>
+
+	<artifactId>isis-core-unittestsupport</artifactId>
+	<name>Apache Isis Unit Test Support</name>
+
+	<properties>
+		<jar-plugin.automaticModuleName>org.apache.isis.core.unittestsupport</jar-plugin.automaticModuleName>
+		<git-plugin.propertiesDir>org/apache/isis/core/unittestsupport</git-plugin.propertiesDir>
+	</properties>
+
+	<description>
         Support for writing unit tests; should be added as a dependency with scope=test only
     </description>
 
@@ -45,13 +39,13 @@
 			<groupId>org.apache.isis.core</groupId>
 			<artifactId>isis-core-commons</artifactId>
 		</dependency>
-		
+
 		<!-- framework default core-codegen-plugin for tests -->
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>
 			<artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
 		</dependency>
-		
+
 		<!-- SPRING -->
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
@@ -62,20 +56,25 @@
 					<artifactId>asm</artifactId>
 				</exclusion>
 				<exclusion>
-					<!-- when spring-boot release lags behind spring-core release 
-						explicitly spring-test added below-->
+					<!-- when spring-boot release lags behind spring-core release explicitly 
+						spring-test added below -->
 					<groupId>org.springframework</groupId>
 					<artifactId>spring-test</artifactId>
 				</exclusion>
 				<exclusion>
-					<!-- when spring-boot release lags behind spring-core release 
-						explicitly spring-test added below-->
+					<!-- when spring-boot release lags behind spring-core release explicitly 
+						spring-test added below -->
 					<groupId>org.springframework</groupId>
 					<artifactId>spring-core</artifactId>
 				</exclusion>
+				<exclusion>
+					<!-- we use log4j-2 instead -->
+					<groupId>org.springframework.boot</groupId>
+					<artifactId>spring-boot-starter-logging</artifactId>
+				</exclusion>
 			</exclusions>
 		</dependency>
-		
+
 		<dependency>
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-test</artifactId>
@@ -113,18 +112,18 @@
 		</dependency>
 
 		<dependency>
-		  <groupId>org.mockito</groupId>
-		  <artifactId>mockito-core</artifactId>
-		  <exclusions>
-		  	<exclusion>
-		  		<groupId>net.bytebuddy</groupId>
-		  		<artifactId>byte-buddy</artifactId>
-		  	</exclusion>
-		  	<exclusion>
-		  		<groupId>net.bytebuddy</groupId>
-		  		<artifactId>byte-buddy-agent</artifactId>
-		  	</exclusion>
-		  </exclusions>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-core</artifactId>
+			<exclusions>
+				<exclusion>
+					<groupId>net.bytebuddy</groupId>
+					<artifactId>byte-buddy</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>net.bytebuddy</groupId>
+					<artifactId>byte-buddy-agent</artifactId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 
 		<dependency>
@@ -174,20 +173,20 @@
 		</dependency>
 	</dependencies>
 
-    <profiles>
-    
-        <profile>
-        	<!-- Adds 'javax' packages, that were removed with JDK-11 -->
-            <id>jdk11</id>
-            <activation>
-                <jdk>[11,)</jdk>
+	<profiles>
+
+		<profile>
+			<!-- Adds 'javax' packages, that were removed with JDK-11 -->
+			<id>jdk11</id>
+			<activation>
+				<jdk>[11,)</jdk>
 			</activation>
 			<dependencies>
 				<dependency>
-					  <groupId>com.sun.xml.ws</groupId>
-					  <artifactId>jaxws-ri</artifactId>
-					  <version>2.3.2</version>
-					  <type>pom</type>
+					<groupId>com.sun.xml.ws</groupId>
+					<artifactId>jaxws-ri</artifactId>
+					<version>2.3.2</version>
+					<type>pom</type>
 				</dependency>
 				<dependency>
 					<groupId>javax.xml.bind</groupId>
@@ -206,50 +205,50 @@
 				</dependency>
 			</dependencies>
 		</profile>
-    
-        <profile>
-            <id>flatten</id>
-            <activation>
-                <property>
-                    <name>!skip.flatten</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>flatten-maven-plugin</artifactId>
-                        <version>1.0.0</version>
-                        <executions>
-                            <execution>
-                                <id>flatten</id>
-                                <phase>process-resources</phase>
-                                <goals>
-                                    <goal>flatten</goal>
-                                </goals>
-                                <configuration>
-                                    <flattenMode>defaults</flattenMode>
-                                    <updatePomFile>true</updatePomFile>
-                                    <pomElements>
-                                        <name>resolve</name>
-                                        <description>resolve</description>
-                                        <dependencies>resolve</dependencies>
-                                    </pomElements>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>flatten.clean</id>
-                                <phase>clean</phase>
-                                <goals>
-                                    <goal>clean</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
+
+		<profile>
+			<id>flatten</id>
+			<activation>
+				<property>
+					<name>!skip.flatten</name>
+				</property>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>flatten-maven-plugin</artifactId>
+						<version>1.0.0</version>
+						<executions>
+							<execution>
+								<id>flatten</id>
+								<phase>process-resources</phase>
+								<goals>
+									<goal>flatten</goal>
+								</goals>
+								<configuration>
+									<flattenMode>defaults</flattenMode>
+									<updatePomFile>true</updatePomFile>
+									<pomElements>
+										<name>resolve</name>
+										<description>resolve</description>
+										<dependencies>resolve</dependencies>
+									</pomElements>
+								</configuration>
+							</execution>
+							<execution>
+								<id>flatten.clean</id>
+								<phase>clean</phase>
+								<goals>
+									<goal>clean</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
 
 
 </project>
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 0c6caed..f537a2f 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -107,7 +107,7 @@ import de.agilecoders.wicket.webjars.WicketWebjars;
 import de.agilecoders.wicket.webjars.settings.IWebjarsSettings;
 import de.agilecoders.wicket.webjars.settings.WebjarsSettings;
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import net.ftlines.wicketsource.WicketSource;
 
 /**
@@ -133,7 +133,7 @@ import net.ftlines.wicketsource.WicketSource;
  * Alternatively, {@link ComponentFactory}s can be specified by overriding {@link #newIsisWicketModule()}.
  * This mechanism allows a number of other aspects to be customized.
  */
-@Slf4j
+@Log4j2
 public class IsisWicketApplication
 extends AuthenticatedWebApplication
 implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, WicketViewerSettingsAccessor {
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/TargetRespondListenerToResetQueryResultCache.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/TargetRespondListenerToResetQueryResultCache.java
index c16473c..97d9ee1 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/TargetRespondListenerToResetQueryResultCache.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/TargetRespondListenerToResetQueryResultCache.java
@@ -20,9 +20,9 @@ import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 class TargetRespondListenerToResetQueryResultCache implements AjaxRequestTarget.ITargetRespondListener {
 
     @Override
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
index 24502ea..62a287d 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
@@ -76,7 +76,7 @@ import org.apache.isis.viewer.wicket.ui.pages.mmverror.MmvErrorPage;
 import org.apache.isis.viewer.wicket.ui.panels.PromptFormAbstract;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Isis-specific implementation of the Wicket's {@link RequestCycle},
@@ -85,7 +85,7 @@ import lombok.extern.slf4j.Slf4j;
  * 
  * @since 2.0.0-M3
  */
-@Slf4j
+@Log4j2
 public class WebRequestCycleForIsis implements IRequestCycleListener {
 
     private PageClassRegistry pageClassRegistry;
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
index 40d933a..6de7d43 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
@@ -43,13 +43,13 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.config.WebAppConstants;
 import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 
 /**
  * An implementation that reads from /WEB-INF/...
  */
-@Singleton @Slf4j
+@Singleton @Log4j2
 public class TranslationsResolverWicket implements TranslationsResolver {
 
     @Override
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
index 5902f55..02ce6c9 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.runtime.memento.ObjectAdapterMemento;
 
 import lombok.val;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * For widgets that use a <tt>org.wicketstuff.select2.Select2MultiChoice</tt>;
@@ -40,7 +40,7 @@ public interface ScalarModelWithMultiPending extends Serializable {
 
     public ScalarModel getScalarModel();
     
-    @Slf4j
+    @Log4j2
     static class Util {
 
         public static IModel<ArrayList<ObjectAdapterMemento>> createModel(final ScalarModel model) {
diff --git a/core/viewer-wicket-ui/pom.xml b/core/viewer-wicket-ui/pom.xml
index 896b8b4..4462aa7 100644
--- a/core/viewer-wicket-ui/pom.xml
+++ b/core/viewer-wicket-ui/pom.xml
@@ -149,10 +149,12 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
+            <scope>provided</scope>
         </dependency>
 	
         <!-- JDO API (non transient, provided by plugin) -->
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
index fd71bfa..a2c6f3f 100644
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
+++ b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
@@ -34,9 +34,9 @@ import joptsimple.OptionSet;
 import joptsimple.OptionSpec;
 import joptsimple.ValueConversionException;
 import joptsimple.ValueConverter;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 
-@Slf4j
+@Log4j2
 public class WebServer {
 
     public static void main(final String[] args) {
diff --git a/example/application/demo/pom.xml b/example/application/demo/pom.xml
index cd451ec..89afb6a 100644
--- a/example/application/demo/pom.xml
+++ b/example/application/demo/pom.xml
@@ -54,18 +54,6 @@
 
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-web</artifactId>
-			<version>${spring-boot.version}</version>
-			<exclusions>
-				<exclusion>
-					<groupId>javax.validation</groupId>
-					<artifactId>validation-api</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-tomcat</artifactId>
 			<version>${spring-boot.version}</version>
 			<scope>provided</scope>
diff --git a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index 2f259bd..74909f6 100644
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -41,6 +41,12 @@ import domainapp.dom.types.Name;
 public class HelloWorldObjects {
 
     @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
+    public HelloWorldObject createHelloWorld() {
+        return repositoryService.persist(new HelloWorldObject("Hello World!"));
+    }
+	
+	
+    @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
     @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
     public HelloWorldObject create(
             @Name final String name) {
diff --git a/example/misc/smoketest/pom.xml b/example/misc/smoketest/pom.xml
index ba6e6c3..d328001 100644
--- a/example/misc/smoketest/pom.xml
+++ b/example/misc/smoketest/pom.xml
@@ -1,154 +1,156 @@
 <?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/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-    	<groupId>org.apache.isis.examples</groupId>
-    	<artifactId>isis-examples</artifactId>
-        <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
-    </parent>
-
-    <groupId>org.apache.isis.example.misc</groupId>
-    <artifactId>smoketest</artifactId>
-
-    <name>Apache Isis - Smoketest</name>
-
-    <properties>
-    
-        <compiler-plugin.source>1.8</compiler-plugin.source>
-        <compiler-plugin.target>1.8</compiler-plugin.target>
-        <compiler-plugin.compilerArgument>-parameters</compiler-plugin.compilerArgument>
-
-        <failOnMissingWebXml>false</failOnMissingWebXml>
-
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-
-        <maven-war-plugin.warName>${project.artifactId}</maven-war-plugin.warName>
-    </properties>
-
-    <dependencies>
+<!-- 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/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.examples</groupId>
+		<artifactId>isis-examples</artifactId>
+		<version>${revision}</version>
+		<relativePath>../../pom.xml</relativePath>
+	</parent>
+
+	<groupId>org.apache.isis.example.misc</groupId>
+	<artifactId>smoketest</artifactId>
+
+	<name>Apache Isis - Smoketest</name>
+
+	<properties>
+
+		<compiler-plugin.source>1.8</compiler-plugin.source>
+		<compiler-plugin.target>1.8</compiler-plugin.target>
+		<compiler-plugin.compilerArgument>-parameters</compiler-plugin.compilerArgument>
+
+		<failOnMissingWebXml>false</failOnMissingWebXml>
+
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+		<maven-war-plugin.warName>${project.artifactId}</maven-war-plugin.warName>
+	</properties>
+
+	<dependencies>
 
 		<!-- SPRING -->
 
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-web</artifactId>
+			<artifactId>spring-boot-starter-tomcat</artifactId>
 			<version>${spring-boot.version}</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- ISIS API -->
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-applib</artifactId>
+		</dependency>
+
+		<!-- ISIS CORE PLUGINS -->
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-plugins-jdo-datanucleus-5</artifactId>
 			<exclusions>
 				<exclusion>
-					<groupId>javax.validation</groupId>
-					<artifactId>validation-api</artifactId>
+					<groupId>org.slf4j</groupId>
+					<artifactId>slf4j-api</artifactId>
 				</exclusion>
 			</exclusions>
 		</dependency>
 
 		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-tomcat</artifactId>
-			<version>${spring-boot.version}</version>
-			<scope>provided</scope>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-plugins-jaxrs-resteasy-4</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-plugins-security-shiro</artifactId>
+			<exclusions>
+				<exclusion>
+					<groupId>org.slf4j</groupId>
+					<artifactId>slf4j-api</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<!-- OTHER DEPENDENCIES -->
+		<!-- <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> 
+			</dependency> -->
+		<dependency>
+			<groupId>com.h2database</groupId>
+			<artifactId>h2</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.isis.mavendeps</groupId>
+			<artifactId>isis-mavendeps-webapp</artifactId>
+			<type>pom</type>
+			<exclusions>
+				<exclusion>
+					<groupId>org.slf4j</groupId>
+					<artifactId>slf4j-api</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+
+		<!-- TEST DEPENDENCIES -->
+		<dependency>
+			<groupId>org.apache.isis.mavendeps</groupId>
+			<artifactId>isis-mavendeps-testing</artifactId>
+			<scope>test</scope>
+			<type>pom</type>
+			<exclusions>
+				<exclusion>
+					<groupId>org.slf4j</groupId>
+					<artifactId>slf4j-api</artifactId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 
-        <!-- ISIS API -->
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-applib</artifactId>
-        </dependency>
-        
-        <!-- ISIS CORE PLUGINS -->
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-plugins-jdo-datanucleus-5</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-plugins-jaxrs-resteasy-4</artifactId>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-plugins-security-shiro</artifactId>
-        </dependency>
-
-        <!-- OTHER DEPENDENCIES -->
-<!--
-        <dependency>
-            <groupId>org.hsqldb</groupId>
-            <artifactId>hsqldb</artifactId>
-        </dependency>
--->
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-webapp</artifactId>
-            <type>pom</type>
-        </dependency>
-
-
-        <!-- TEST DEPENDENCIES -->
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-testing</artifactId>
-            <scope>test</scope>
-            <type>pom</type>
-        </dependency>
-
-    </dependencies>
-
-    <profiles>
-        <profile>
-            <id>m2e</id>
-            <activation>
-                <property>
-                    <name>m2e.version</name>
-                </property>
-            </activation>
-            <build>
-                <directory>target-ide</directory>
-                <plugins>
-                    <!-- eclipse doesn't seem to support maven mixins config, so repeat here -->
-                    <plugin>
-                        <artifactId>maven-compiler-plugin</artifactId>
-                        <configuration>
-                            <source>${compiler-plugin.source}</source>
-                            <target>${compiler-plugin.target}</target>
-                            <compilerArgument/>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
+	</dependencies>
+
+	<profiles>
+		<profile>
+			<id>m2e</id>
+			<activation>
+				<property>
+					<name>m2e.version</name>
+				</property>
+			</activation>
+			<build>
+				<directory>target-ide</directory>
+				<plugins>
+					<!-- eclipse doesn't seem to support maven mixins config, so repeat 
+						here -->
+					<plugin>
+						<artifactId>maven-compiler-plugin</artifactId>
+						<configuration>
+							<source>${compiler-plugin.source}</source>
+							<target>${compiler-plugin.target}</target>
+							<compilerArgument />
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
 	</profiles>
 
 </project>
diff --git a/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java b/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
index 49f5299..07126e6 100644
--- a/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
+++ b/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
@@ -26,13 +26,14 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
-
+import org.springframework.context.annotation.PropertySources;
+import org.apache.isis.config.Presets;
 import org.apache.isis.config.beans.IsisBeanScanInterceptorForSpring;
 import org.apache.isis.config.beans.WebAppConfigBean;
 import org.apache.isis.core.security.IsisSecurityBoot;
 
 @Configuration
-@PropertySource("classpath:/org/apache/isis/testdomain/jdo/isis-non-changing.properties")
+
 @Import({IsisSecurityBoot.class})
 @ComponentScan(
         basePackageClasses= {
@@ -41,6 +42,11 @@ import org.apache.isis.core.security.IsisSecurityBoot;
         includeFilters= {
                 @Filter(type = FilterType.CUSTOM, classes= {IsisBeanScanInterceptorForSpring.class})
         })
+@PropertySources({
+	@PropertySource("classpath:/org/apache/isis/testdomain/jdo/isis-non-changing.properties"),
+    @PropertySource(name=Presets.H2InMemory, factory = Presets.Factory.class, value = { "" }),
+    @PropertySource(name=Presets.NoTranslations, factory = Presets.Factory.class, value = { "" }),
+})
 public class JdoTestDomainModule {
     
    @Bean @Produces @Singleton
diff --git a/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/isis-non-changing.properties b/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/isis-non-changing.properties
index 463d7d4..ae227e4 100644
--- a/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/isis-non-changing.properties
+++ b/example/misc/smoketest/src/main/java/org/apache/isis/testdomain/jdo/isis-non-changing.properties
@@ -15,11 +15,6 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-
-# -- auto wired by plugins --
-#isis.services.eventbus.implementation=guava
-#isis.services.eventbus.implementation=axon
-
 isis.reflector.validator.allowDeprecated=false
 isis.reflector.validator.noParamsOnly=true
 isis.reflector.validator.explicitObjectType=true
@@ -61,6 +56,7 @@ isis.viewer.wicket.maxTitleLengthInStandaloneTables=0
 isis.viewer.wicket.maxTitleLengthInParentedTables=0
 
 
+isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true
 isis.persistor.datanucleus.impl.datanucleus.schema.validateTables=true
 isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true
 
diff --git a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
index bebe661..6a9ad56 100644
--- a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
+++ b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
@@ -26,6 +26,8 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import org.apache.isis.applib.fixturescripts.FixtureScripts;
 import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.core.commons.collections.Bin;
 import org.apache.isis.core.integtestsupport.components.HeadlessTransactionSupportDefault;
 import org.apache.isis.core.runtime.headless.HeadlessTransactionSupport;
 import org.apache.isis.core.runtime.system.internal.InitialisationSession;
@@ -58,7 +60,7 @@ class JdoBootstrappingTest {
     @Inject IsisSessionFactory isisSessionFactory;
     @Inject HeadlessTransactionSupport transactions;
     @Inject FixtureScripts fixtureScripts;
-    private Inventory inventory;
+    @Inject RepositoryService repository;
     
     @BeforeEach
     void setUp() {
@@ -72,7 +74,7 @@ class JdoBootstrappingTest {
                 JdoTestDomainPersona.PurgeAll.builder());
 
         // given
-        inventory = fixtureScripts.runBuilderScript(
+        fixtureScripts.runBuilderScript(
                 JdoTestDomainPersona.InventoryWith1Book.builder());
         
         transactions.endTransaction();
@@ -84,6 +86,14 @@ class JdoBootstrappingTest {
     @Test
     void sampleInventoryShouldBeSetUp() {
 
+    	isisSessionFactory.openSession(new InitialisationSession());
+    	
+    	transactions.beginTransaction();
+    	
+    	val inventories = Bin.ofCollection(repository.allInstances(Inventory.class)); 
+		assertEquals(1, inventories.size());
+		
+		val inventory = inventories.getSingleton().get();
         assertNotNull(inventory);
         assertNotNull(inventory.getProducts());
         assertEquals(1, inventory.getProducts().size());
@@ -91,6 +101,10 @@ class JdoBootstrappingTest {
         val product = inventory.getProducts().iterator().next();
         assertEquals("Sample Book", product.getName());
         
+        transactions.endTransaction();
+        
+        isisSessionFactory.closeSession();
+        
     }