You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/10/28 10:19:45 UTC

[isis] 03/04: ISIS-2094: separates mixins from mavendeps

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

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

commit 9ccb865a72d23adf26fb1228a17304d233fd045d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 28 09:56:17 2019 +0000

    ISIS-2094: separates mixins from mavendeps
    
    and makes them inherit from core, for deployment stuff
---
 core/pom.xml                                       |   3 +-
 examples/apps/demo/pom.xml                         |   8 +-
 examples/pom.xml                                   |  16 +-
 mavendeps/_adoc/antora.yml                         |   2 +-
 mavendeps/_adoc/modules/ROOT/pages/about.adoc      |   3 +-
 mavendeps/intellij/pom.xml                         |   2 -
 mavendeps/pom.xml                                  |   4 -
 mavendeps/testing/pom.xml                          |   1 -
 mavendeps/webapp/pom.xml                           |   1 -
 {mavendeps => mixins}/_adoc/antora.yml             |   2 +-
 mixins/_adoc/modules/ROOT/_attributes.adoc         |   6 +
 mixins/_adoc/modules/ROOT/attachments/.gitkeep     |   0
 mixins/_adoc/modules/ROOT/examples/.gitkeep        |   0
 mixins/_adoc/modules/ROOT/images/.gitkeep          |   0
 mixins/_adoc/modules/ROOT/nav.adoc                 |   4 +
 mixins/_adoc/modules/ROOT/pages/_attributes.adoc   |   4 +
 .../_adoc/modules/ROOT/pages/about.adoc            |   1 +
 .../_adoc/modules/ROOT/partials/_attributes.adoc   |   4 +
 mixins/datanucleus-enhance/pom.xml                 | 111 +++++++++++++
 mixins/docker/pom.xml                              | 136 +++++++++++++++
 {mavendeps => mixins}/pom.xml                      |  23 ++-
 mixins/standard/pom.xml                            | 142 ++++++++++++++++
 mixins/surefire/pom.xml                            | 183 +++++++++++++++++++++
 23 files changed, 619 insertions(+), 37 deletions(-)

diff --git a/core/pom.xml b/core/pom.xml
index e1001ec..b12dd1d 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -2487,7 +2487,8 @@
 	<modules>
 	
 		<module>../supplemental-model</module>
-	
+		<module>../mixins</module>
+
 		<module>schema</module>
 		<module>commons</module>
 		<module>config</module>
diff --git a/examples/apps/demo/pom.xml b/examples/apps/demo/pom.xml
index cfbec9b..ee540d8 100644
--- a/examples/apps/demo/pom.xml
+++ b/examples/apps/demo/pom.xml
@@ -228,19 +228,19 @@
 					<mixins>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-standard</artifactId>
+							<artifactId>isis-mixin-standard</artifactId>
 						</mixin>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-datanucleus-enhance</artifactId>
+							<artifactId>isis-mixin-datanucleus-enhance</artifactId>
 						</mixin>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-surefire</artifactId>
+							<artifactId>isis-mixin-surefire</artifactId>
 						</mixin>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-docker</artifactId>
+							<artifactId>isis-mixin-docker</artifactId>
 						</mixin>
 					</mixins>
 				</configuration>
diff --git a/examples/pom.xml b/examples/pom.xml
index 571278a..648c152 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -151,19 +151,19 @@
 					<mixins>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-standard</artifactId>
+							<artifactId>isis-mixin-standard</artifactId>
 						</mixin>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-datanucleus-enhance</artifactId>
+							<artifactId>isis-mixin-datanucleus-enhance</artifactId>
 						</mixin>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-surefire</artifactId>
+							<artifactId>isis-mixin-surefire</artifactId>
 						</mixin>
 						<mixin>
 							<groupId>org.apache.isis.mavendeps</groupId>
-							<artifactId>isis-mavendeps-mixin-docker</artifactId>
+							<artifactId>isis-mixin-docker</artifactId>
 						</mixin>
 					</mixins>
 				</configuration>
@@ -289,25 +289,25 @@
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
-				<artifactId>isis-mavendeps-mixin-standard</artifactId>
+				<artifactId>isis-mixin-standard</artifactId>
 				<version>${isis.version}</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
-				<artifactId>isis-mavendeps-mixin-datanucleus-enhance</artifactId>
+				<artifactId>isis-mixin-datanucleus-enhance</artifactId>
 				<version>${isis.version}</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
-				<artifactId>isis-mavendeps-mixin-surefire</artifactId>
+				<artifactId>isis-mixin-surefire</artifactId>
 				<version>${isis.version}</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
-				<artifactId>isis-mavendeps-mixin-docker</artifactId>
+				<artifactId>isis-mixin-docker</artifactId>
 				<version>${isis.version}</version>
 				<type>pom</type>
 			</dependency>
diff --git a/mavendeps/_adoc/antora.yml b/mavendeps/_adoc/antora.yml
index a316213..9e6a8f6 100644
--- a/mavendeps/_adoc/antora.yml
+++ b/mavendeps/_adoc/antora.yml
@@ -1,5 +1,5 @@
 name: mavendeps
-title: Maven Mixins
+title: Maven Dependencies
 version: master
 start_page: ROOT:about.adoc
 nav:
diff --git a/mavendeps/_adoc/modules/ROOT/pages/about.adoc b/mavendeps/_adoc/modules/ROOT/pages/about.adoc
index a8fab1c..a7a7407 100644
--- a/mavendeps/_adoc/modules/ROOT/pages/about.adoc
+++ b/mavendeps/_adoc/modules/ROOT/pages/about.adoc
@@ -1,3 +1,4 @@
-= Maven Mixins
+= Maven Dependencies
 include::_attributes.adoc[]
 
+TODO: to document
diff --git a/mavendeps/intellij/pom.xml b/mavendeps/intellij/pom.xml
index b6b821e..ee6fc22 100644
--- a/mavendeps/intellij/pom.xml
+++ b/mavendeps/intellij/pom.xml
@@ -20,12 +20,10 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     
     <modelVersion>4.0.0</modelVersion>
-
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
 		<version>${revision}</version>
-		<relativePath>../pom.xml</relativePath>
 	</parent>
 
     <artifactId>isis-mavendeps-intellij</artifactId>
diff --git a/mavendeps/pom.xml b/mavendeps/pom.xml
index 05854e2..e2633b2 100644
--- a/mavendeps/pom.xml
+++ b/mavendeps/pom.xml
@@ -155,10 +155,6 @@
 		<module>intellij</module>
 		<module>testing</module>
 		<module>webapp</module>
-		<module>mixin-standard</module>
-		<module>mixin-surefire</module>
-		<module>mixin-datanucleus-enhance</module>
-		<module>mixin-docker</module>
 	</modules>
 
 </project>
diff --git a/mavendeps/testing/pom.xml b/mavendeps/testing/pom.xml
index 68cf4ae..9d04c42 100644
--- a/mavendeps/testing/pom.xml
+++ b/mavendeps/testing/pom.xml
@@ -19,7 +19,6 @@
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
 		<version>${revision}</version>
-		<relativePath>../pom.xml</relativePath>
 	</parent>
 
 	<artifactId>isis-mavendeps-testing</artifactId>
diff --git a/mavendeps/webapp/pom.xml b/mavendeps/webapp/pom.xml
index 9c92778..27df075 100644
--- a/mavendeps/webapp/pom.xml
+++ b/mavendeps/webapp/pom.xml
@@ -19,7 +19,6 @@
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
 		<version>${revision}</version>
-		<relativePath>../pom.xml</relativePath>
 	</parent>
 
 	<artifactId>isis-mavendeps-webapp</artifactId>
diff --git a/mavendeps/_adoc/antora.yml b/mixins/_adoc/antora.yml
similarity index 85%
copy from mavendeps/_adoc/antora.yml
copy to mixins/_adoc/antora.yml
index a316213..789546f 100644
--- a/mavendeps/_adoc/antora.yml
+++ b/mixins/_adoc/antora.yml
@@ -1,4 +1,4 @@
-name: mavendeps
+name: mixins
 title: Maven Mixins
 version: master
 start_page: ROOT:about.adoc
diff --git a/mixins/_adoc/modules/ROOT/_attributes.adoc b/mixins/_adoc/modules/ROOT/_attributes.adoc
new file mode 100644
index 0000000..43cb529
--- /dev/null
+++ b/mixins/_adoc/modules/ROOT/_attributes.adoc
@@ -0,0 +1,6 @@
+ifndef::env-site,env-github[]
+:attachmentsdir: {moduledir}/attachments
+:examplesdir: {moduledir}/examples
+:imagesdir: {moduledir}/images
+:partialsdir: {moduledir}/partials
+endif::[]
diff --git a/mixins/_adoc/modules/ROOT/attachments/.gitkeep b/mixins/_adoc/modules/ROOT/attachments/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/mixins/_adoc/modules/ROOT/examples/.gitkeep b/mixins/_adoc/modules/ROOT/examples/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/mixins/_adoc/modules/ROOT/images/.gitkeep b/mixins/_adoc/modules/ROOT/images/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/mixins/_adoc/modules/ROOT/nav.adoc b/mixins/_adoc/modules/ROOT/nav.adoc
new file mode 100644
index 0000000..11a6b3a
--- /dev/null
+++ b/mixins/_adoc/modules/ROOT/nav.adoc
@@ -0,0 +1,4 @@
+* xref:about.adoc[About]
+
+
+
diff --git a/mixins/_adoc/modules/ROOT/pages/_attributes.adoc b/mixins/_adoc/modules/ROOT/pages/_attributes.adoc
new file mode 100644
index 0000000..e8ada7c
--- /dev/null
+++ b/mixins/_adoc/modules/ROOT/pages/_attributes.adoc
@@ -0,0 +1,4 @@
+ifndef::env-site,env-github[]
+:moduledir: ..
+include::{moduledir}/_attributes.adoc[]
+endif::[]
diff --git a/mavendeps/_adoc/modules/ROOT/pages/about.adoc b/mixins/_adoc/modules/ROOT/pages/about.adoc
similarity index 72%
copy from mavendeps/_adoc/modules/ROOT/pages/about.adoc
copy to mixins/_adoc/modules/ROOT/pages/about.adoc
index a8fab1c..490143a 100644
--- a/mavendeps/_adoc/modules/ROOT/pages/about.adoc
+++ b/mixins/_adoc/modules/ROOT/pages/about.adoc
@@ -1,3 +1,4 @@
 = Maven Mixins
 include::_attributes.adoc[]
 
+TODO: to document
\ No newline at end of file
diff --git a/mixins/_adoc/modules/ROOT/partials/_attributes.adoc b/mixins/_adoc/modules/ROOT/partials/_attributes.adoc
new file mode 100644
index 0000000..e8ada7c
--- /dev/null
+++ b/mixins/_adoc/modules/ROOT/partials/_attributes.adoc
@@ -0,0 +1,4 @@
+ifndef::env-site,env-github[]
+:moduledir: ..
+include::{moduledir}/_attributes.adoc[]
+endif::[]
diff --git a/mixins/datanucleus-enhance/pom.xml b/mixins/datanucleus-enhance/pom.xml
new file mode 100644
index 0000000..65766ce
--- /dev/null
+++ b/mixins/datanucleus-enhance/pom.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+ 	<parent>
+ 		<groupId>org.apache.isis.mixins</groupId>
+ 		<artifactId>isis-mixins</artifactId>
+ 		<version>${revision}</version>
+ 	</parent>
+
+	<artifactId>isis-mixin-datanucleus-enhance</artifactId>
+	<version>${revision}</version>
+
+	<packaging>pom</packaging>
+
+	<name>Apache Isis Maven Mixin - Datanucleus Enhance Mixin</name>
+	<description>
+        Maven mixin providing the ability to run datanucleus:enhance on JDO/DN entities.
+    </description>
+    
+	<properties>
+		<revision>2.0.0-M3-SNAPSHOT</revision>
+	</properties>
+
+	<profiles>
+		<profile>
+			<id>mavenmixin-datanucleusenhance</id>
+			<activation>
+				<file>
+					<exists>${basedir}/logging-dn-enhance.properties</exists>
+				</file>
+			</activation>
+			<properties>
+			
+				<datanucleus-maven-plugin.version>5.2.1</datanucleus-maven-plugin.version>
+				<datanucleus-api-jdo.version>5.2.1</datanucleus-api-jdo.version>
+				<datanucleus-core.version>5.2.1</datanucleus-core.version>
+				<datanucleus-jodatime.version>5.2.0-release</datanucleus-jodatime.version>
+
+				<datanucleus-maven-plugin.log4jConfiguration>${basedir}/logging-dn-enhance.properties</datanucleus-maven-plugin.log4jConfiguration>
+				<datanucleus-maven-plugin.verbose>true</datanucleus-maven-plugin.verbose>
+				<datanucleus-maven-plugin.fork>false</datanucleus-maven-plugin.fork>
+
+			</properties>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.datanucleus</groupId>
+						<artifactId>datanucleus-maven-plugin</artifactId>
+						<version>${datanucleus-maven-plugin.version}</version>
+						<configuration>
+							<fork>${datanucleus-maven-plugin.fork}</fork>
+							<log4jConfiguration>${datanucleus-maven-plugin.log4jConfiguration}</log4jConfiguration>
+							<verbose>${datanucleus-maven-plugin.verbose}</verbose>
+						</configuration>
+						<executions>
+							<execution>
+								<id>process-classes</id>
+								<phase>process-classes</phase>
+								<goals>
+									<goal>enhance</goal>
+								</goals>
+							</execution>
+							<execution>
+								<id>process-test-classes</id>
+								<phase>process-test-classes</phase>
+								<goals>
+									<goal>enhance</goal>
+								</goals>
+								<configuration>
+									<metadataDirectory>${project.build.testOutputDirectory}</metadataDirectory>
+								</configuration>
+							</execution>
+						</executions>
+						<dependencies>
+							<dependency>
+								<groupId>org.datanucleus</groupId>
+								<artifactId>datanucleus-core</artifactId>
+								<version>${datanucleus-core.version}</version>
+							</dependency>
+							<dependency>
+								<groupId>org.datanucleus</groupId>
+								<artifactId>datanucleus-api-jdo</artifactId>
+								<version>${datanucleus-api-jdo.version}</version>
+							</dependency>
+							<dependency>
+								<groupId>org.datanucleus</groupId>
+								<artifactId>datanucleus-jodatime</artifactId>
+								<version>${datanucleus-jodatime.version}</version>
+							</dependency>
+						</dependencies>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+	</profiles>
+</project>
diff --git a/mixins/docker/pom.xml b/mixins/docker/pom.xml
new file mode 100644
index 0000000..0f3517c
--- /dev/null
+++ b/mixins/docker/pom.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+ 	<parent>
+ 		<groupId>org.apache.isis.mixins</groupId>
+ 		<artifactId>isis-mixins</artifactId>
+ 		<version>${revision}</version>
+ 	</parent>
+
+	<artifactId>isis-mixin-docker</artifactId>
+	<version>${revision}</version>
+
+	<packaging>pom</packaging>
+
+	<name>Apache Isis Maven Mixin - Docker</name>
+	<description>
+         Maven mixin providing the ability to build, tag and deploy Docker images.
+    </description>
+
+    <properties>
+		<revision>2.0.0-M3-SNAPSHOT</revision>
+	</properties>
+
+	<profiles>
+	
+		<profile>
+			<id>mavenmixin-docker-install</id>
+			<activation>
+				<property>
+					<name>mavenmixin-docker</name>
+				</property>
+			</activation>
+
+			<properties>
+				<maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version>
+				<docker-maven-plugin.version>1.0.0</docker-maven-plugin.version>
+				<gmavenplus-plugin.version>1.5</gmavenplus-plugin.version>
+				<groovy-all.version>2.4.7</groovy-all.version>
+
+				<docker-plugin.imageName>XXX/${project.parent.artifactId}</docker-plugin.imageName>
+				<docker-plugin.imageTag>${project.version}</docker-plugin.imageTag>
+				<docker-plugin.resource.include>${project.parent.artifactId}.war</docker-plugin.resource.include>
+				<docker-plugin.serverId>docker-hub</docker-plugin.serverId>
+				<docker-plugin.registryUrl>https://index.docker.io/v1/</docker-plugin.registryUrl>
+			</properties>
+
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-deploy-plugin</artifactId>
+						<version>${maven-deploy-plugin.version}</version>
+						<configuration>
+							<skip>true</skip>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>com.spotify</groupId>
+						<artifactId>docker-maven-plugin</artifactId>
+						<version>${docker-maven-plugin.version}</version>
+						<executions>
+							<execution>
+								<id>build-image</id>
+								<phase>install</phase>
+								<goals>
+									<goal>build</goal>
+								</goals>
+								<configuration>
+									<imageName>${docker-plugin.imageName}</imageName>
+								</configuration>
+							</execution>
+							<execution>
+								<id>tag-image</id>
+								<phase>install</phase>
+								<goals>
+									<goal>tag</goal>
+								</goals>
+								<configuration>
+									<image>${docker-plugin.imageName}</image>
+									<newName>${docker-plugin.imageName}:${docker-plugin.imageTag}</newName>
+								</configuration>
+							</execution>
+							<execution>
+								<id>push-image-tagged</id>
+								<phase>deploy</phase>
+								<goals>
+									<goal>push</goal>
+								</goals>
+								<configuration>
+									<imageName>${docker-plugin.imageName}:${docker-plugin.imageTag}</imageName>
+								</configuration>
+							</execution>
+							<execution>
+								<id>push-image-latest</id>
+								<phase>deploy</phase>
+								<goals>
+									<goal>push</goal>
+								</goals>
+								<configuration>
+									<imageName>${docker-plugin.imageName}:latest</imageName>
+								</configuration>
+							</execution>
+						</executions>
+						<configuration>
+							<dockerDirectory>${project.build.outputDirectory}/docker</dockerDirectory>
+							<resources>
+								<resource>
+									<targetPath>.</targetPath>
+									<directory>${project.build.directory}</directory>
+									<include>${docker-plugin.resource.include}</include>
+								</resource>
+							</resources>
+							<serverId>${docker-plugin.serverId}</serverId>
+							<registryUrl>${docker-plugin.registryUrl}</registryUrl>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+	</profiles>
+</project>
diff --git a/mavendeps/pom.xml b/mixins/pom.xml
similarity index 86%
copy from mavendeps/pom.xml
copy to mixins/pom.xml
index 05854e2..946e519 100644
--- a/mavendeps/pom.xml
+++ b/mixins/pom.xml
@@ -21,19 +21,19 @@
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
-	<groupId>org.apache.isis.mavendeps</groupId>
-	<artifactId>isis-mavendeps</artifactId>
+	<groupId>org.apache.isis.mixins</groupId>
+	<artifactId>isis-mixins</artifactId>
 
-	<name>Apache Isis Maven Dependency Bundles</name>
+	<name>Apache Isis Maven Mixins</name>
 	<description>
-        Collection of Apache Isis Maven Dependency Bundles.
+        Collection of Apache Isis Maven Mixins
     </description>
 
 	<packaging>pom</packaging>
 
 	<properties>
-		<jar-plugin.automaticModuleName>org.apache.isis.mavendeps</jar-plugin.automaticModuleName>
-		<git-plugin.propertiesDir>org/apache/isis/mavendeps</git-plugin.propertiesDir>
+		<jar-plugin.automaticModuleName>org.apache.isis.mixins</jar-plugin.automaticModuleName>
+		<git-plugin.propertiesDir>org/apache/isis/mixins</git-plugin.propertiesDir>
 
 		<lombok.version>[1.18,)</lombok.version>
 
@@ -152,13 +152,10 @@
 	</dependencyManagement>
 
 	<modules>
-		<module>intellij</module>
-		<module>testing</module>
-		<module>webapp</module>
-		<module>mixin-standard</module>
-		<module>mixin-surefire</module>
-		<module>mixin-datanucleus-enhance</module>
-		<module>mixin-docker</module>
+		<module>standard</module>
+		<module>surefire</module>
+		<module>datanucleus-enhance</module>
+		<module>docker</module>
 	</modules>
 
 </project>
diff --git a/mixins/standard/pom.xml b/mixins/standard/pom.xml
new file mode 100644
index 0000000..ee55792
--- /dev/null
+++ b/mixins/standard/pom.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+ 	<parent>
+ 		<groupId>org.apache.isis.mixins</groupId>
+ 		<artifactId>isis-mixins</artifactId>
+ 		<version>${revision}</version>
+ 	</parent>
+
+	<artifactId>isis-mixin-standard</artifactId>
+	<version>${revision}</version>
+
+	<packaging>pom</packaging>
+
+	<name>Apache Isis Maven Mixin - Standard Plugins</name>
+	<description>
+        Maven mixin for the "standard" set of plugins.
+    </description>
+    
+    <properties>
+		<revision>2.0.0-M3-SNAPSHOT</revision>
+	</properties>
+
+	<profiles>
+
+		<profile>
+			<id>mavenmixin-standard</id>
+			<activation>
+				<property>
+					<name>!skip.mavenmixin-standard</name>
+				</property>
+			</activation>
+
+			<properties>
+				<jar-plugin.automaticModuleName></jar-plugin.automaticModuleName>
+
+				<maven-clean-plugin.version>2.5</maven-clean-plugin.version>
+				<maven-project-info-reports-plugin.version>2.9</maven-project-info-reports-plugin.version>
+				<maven-resources-plugin.version>2.6</maven-resources-plugin.version>
+				<maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
+				<maven-jar-plugin.version>2.4</maven-jar-plugin.version>
+				<maven-install-plugin.version>2.5.1</maven-install-plugin.version>
+				<maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version>
+				<maven-site-plugin.version>3.3</maven-site-plugin.version>
+
+				<compiler-plugin.source>1.8</compiler-plugin.source>
+				<compiler-plugin.target>1.8</compiler-plugin.target>
+				<compiler-plugin.compilerArgument>-parameters</compiler-plugin.compilerArgument>
+			</properties>
+
+			<build>
+				<plugins>
+					<plugin>
+						<artifactId>maven-clean-plugin</artifactId>
+						<version>${maven-clean-plugin.version}</version>
+					</plugin>
+
+					<plugin>
+						<artifactId>maven-resources-plugin</artifactId>
+						<version>${maven-resources-plugin.version}</version>
+					</plugin>
+
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-compiler-plugin</artifactId>
+						<version>${maven-compiler-plugin.version}</version>
+						<configuration>
+							<source>${compiler-plugin.source}</source>
+							<target>${compiler-plugin.target}</target>
+							<compilerArgument>${compiler-plugin.compilerArgument}</compilerArgument>
+						</configuration>
+					</plugin>
+
+					<plugin>
+						<artifactId>maven-jar-plugin</artifactId>
+						<version>${maven-jar-plugin.version}</version>
+						<inherited>true</inherited>
+						<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>
+									<SCM-Revision>${git.commit.id.abbrev}</SCM-Revision>
+								</manifestEntries>
+							</archive>
+						</configuration>
+					</plugin>
+
+					<plugin>
+						<artifactId>maven-install-plugin</artifactId>
+						<version>${maven-install-plugin.version}</version>
+					</plugin>
+
+					<plugin>
+						<artifactId>maven-deploy-plugin</artifactId>
+						<version>${maven-deploy-plugin.version}</version>
+					</plugin>
+
+					<plugin>
+						<artifactId>maven-site-plugin</artifactId>
+						<version>${maven-site-plugin.version}</version>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+	</profiles>
+</project>
diff --git a/mixins/surefire/pom.xml b/mixins/surefire/pom.xml
new file mode 100644
index 0000000..d4f2023
--- /dev/null
+++ b/mixins/surefire/pom.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+ 	<parent>
+ 		<groupId>org.apache.isis.mixins</groupId>
+ 		<artifactId>isis-mixins</artifactId>
+ 		<version>${revision}</version>
+ 	</parent>
+
+	<artifactId>isis-mixin-surefire</artifactId>
+	<version>${revision}</version>
+
+	<packaging>pom</packaging>
+
+	<name>Apache Isis Maven Mixin - Surefire</name>
+	<description>
+        Maven mixin that configures the surefire plugin to run unit tests, integration tests and BDD specs in separate executions.
+    </description>
+    
+    <properties>
+		<revision>2.0.0-M3-SNAPSHOT</revision>
+	</properties>
+
+	<profiles>
+
+		<profile>
+			<id>mavenmixin-surefire</id>
+			<activation>
+				<property>
+					<name>!skip.mavenmixin-surefire</name>
+				</property>
+			</activation>
+
+			<properties>
+
+				<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
+				<maven-surefire-report-plugin.version>2.19.1</maven-surefire-report-plugin.version>
+
+				<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
+
+				<isis.integTest.module></isis.integTest.module>
+				<skipTests>false</skipTests>
+				<skipUTs>${skipTests}</skipUTs>
+				<skipITs>${skipTests}</skipITs>
+				<skipBSs>${skipTests}</skipBSs>
+
+				<surefire-plugin.argLine></surefire-plugin.argLine>
+			</properties>
+
+			<build>
+				<pluginManagement>
+					<plugins>
+						<plugin>
+							<groupId>org.apache.maven.plugins</groupId>
+							<artifactId>maven-surefire-plugin</artifactId>
+							<version>${maven-surefire-plugin.version}</version>
+							<executions>
+								<execution>
+									<id>default-test</id>
+									<phase>test</phase>
+									<goals>
+										<goal>test</goal>
+									</goals>
+									<configuration>
+										<skipTests>${skipUTs}</skipTests>
+										<includes>
+											<include>**/*Test*.java</include>
+										</includes>
+										<excludes>
+											<exclude>**/*Testing.java</exclude>
+											<exclude>**/*IntegTest*.java</exclude>
+											<exclude>**/*Abstract*.java</exclude>
+										</excludes>
+										<useFile>true</useFile>
+										<printSummary>true</printSummary>
+										<reportsDirectory>${project.build.directory}/surefire-unittest-reports</reportsDirectory>
+										<forkCount>1</forkCount>
+										<reuseForks>true</reuseForks>
+										<argLine>${surefire-plugin.argLine}</argLine>
+									</configuration>
+								</execution>
+								<execution>
+									<id>integ-test</id>
+									<phase>integration-test</phase>
+									<goals>
+										<goal>test</goal>
+									</goals>
+									<configuration>
+										<skipTests>${skipITs}</skipTests>
+										<includes>
+											<include>**/*IntegTest*.java</include>
+										</includes>
+										<excludes>
+											<exclude>**/*Abstract*.java</exclude>
+										</excludes>
+										<useFile>true</useFile>
+										<printSummary>true</printSummary>
+										<reportsDirectory>${project.build.directory}/surefire-integtest-reports</reportsDirectory>
+										<systemPropertyVariables>
+											<isis.integTest.module>${isis.integTest.module}</isis.integTest.module>
+										</systemPropertyVariables>
+										<forkCount>1</forkCount>
+										<reuseForks>true</reuseForks>
+										<argLine>${surefire-plugin.argLine}</argLine>
+									</configuration>
+								</execution>
+								<execution>
+									<id>integ-bddspecs</id>
+									<phase>integration-test</phase>
+									<goals>
+										<goal>test</goal>
+									</goals>
+									<configuration>
+										<skipTests>${skipBSs}</skipTests>
+										<includes>
+											<include>**/*IntegBddSpecs.java</include>
+										</includes>
+										<excludes>
+											<exclude>**/*Abstract*.java</exclude>
+											<exclude>**/*Test*.java</exclude>
+										</excludes>
+										<useFile>true</useFile>
+										<printSummary>true</printSummary>
+										<testFailureIgnore>true</testFailureIgnore>
+										<reportsDirectory>${project.build.directory}/surefire-integbddspecs-reports</reportsDirectory>
+										<forkCount>1</forkCount>
+										<reuseForks>true</reuseForks>
+										<argLine>${surefire-plugin.argLine}</argLine>
+									</configuration>
+								</execution>
+							</executions>
+						</plugin>
+						<plugin>
+							<groupId>org.apache.maven.plugins</groupId>
+							<artifactId>maven-surefire-report-plugin</artifactId>
+							<version>${maven-surefire-report-plugin.version}</version>
+							<configuration>
+								<showSuccess>false</showSuccess>
+							</configuration>
+							<executions>
+								<execution>
+									<id>test</id>
+									<phase>test</phase>
+								</execution>
+								<execution>
+									<id>integration-test</id>
+									<phase>integration-test</phase>
+								</execution>
+							</executions>
+						</plugin>
+					</plugins>
+				</pluginManagement>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-surefire-plugin</artifactId>
+						<version>${maven-surefire-plugin.version}</version>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-surefire-report-plugin</artifactId>
+						<version>${maven-surefire-report-plugin.version}</version>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+	</profiles>
+</project>