diff --git a/.gitignore b/.gitignore
index 9892c4a..1538da7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
 /othersrc/otdt-examples/*/bin/
 /testplugins/*/bin/
 /testplugins/*/jplis_dump/
+/maven/**/target/
 *~
 *.rej
 *.bak
diff --git a/features/org.eclipse.objectteams.mvn.feature/feature.xml b/features/org.eclipse.objectteams.mvn.feature/feature.xml
index ecf41f4..827ba99 100644
--- a/features/org.eclipse.objectteams.mvn.feature/feature.xml
+++ b/features/org.eclipse.objectteams.mvn.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.objectteams.mvn.feature"
       label="%featureName"
-      version="1.0.1.qualifier"
+      version="1.0.2.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.objectteams.mvn">
 
diff --git a/maven/infrastructure/artifact-deployer/objectteams-otdre-pom.xml b/maven/infrastructure/artifact-deployer/objectteams-otdre-pom.xml
new file mode 100644
index 0000000..ed039b4
--- /dev/null
+++ b/maven/infrastructure/artifact-deployer/objectteams-otdre-pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.eclipse.objectteams</groupId>
+  <artifactId>objectteams-otdre</artifactId>
+  <version>2.5.0</version>
+  <description>The Object Teams Dynamic Runtime Environment (OTDRE)</description>
+
+  <licenses>
+	<license>
+		<name>Eclipse Public License Version 1.0</name>
+		<comments>
+			This file is part of "Object Teams Development Tooling"-Software
+
+			Copyright 2016 GK Software AG and others.
+			All rights reserved. This program and the accompanying materials
+			are made available under the terms of the Eclipse Public License v1.0
+			which accompanies this distribution, and is available at
+			http://www.eclipse.org/legal/epl-v10.html
+
+			Please visit http://www.eclipse.org/objectteams for updates and contact.
+
+			Contributors:
+				Olaf Otto - Initial concept
+				Stephan Herrmann - Initial API and implementation
+		</comments>
+	</license>
+  </licenses>
+
+  <dependencies>
+	<dependency>
+		<groupId>org.ow2.asm</groupId>
+		<artifactId>asm-all</artifactId>
+		<version>5.0.1</version>
+		<scope>provided</scope>
+	</dependency>
+  </dependencies>
+</project>
diff --git a/maven/infrastructure/artifact-deployer/objectteams-otre-pom.xml b/maven/infrastructure/artifact-deployer/objectteams-otre-pom.xml
index d456a44..1df111a 100644
--- a/maven/infrastructure/artifact-deployer/objectteams-otre-pom.xml
+++ b/maven/infrastructure/artifact-deployer/objectteams-otre-pom.xml
@@ -4,7 +4,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.eclipse.objectteams</groupId>
   <artifactId>objectteams-otre</artifactId>
-  <version>2.3.0</version>
+  <version>2.5.0</version>
   <description>The Object Teams Runtime Environment (OTRE)</description>
 
   <licenses>
@@ -13,7 +13,7 @@
 		<comments>
 			This file is part of "Object Teams Development Tooling"-Software
 
-			Copyright 2010, 2013 GK Software AG and others.
+			Copyright 2010, 2016 GK Software AG and others.
 			All rights reserved. This program and the accompanying materials
 			are made available under the terms of the Eclipse Public License v1.0
 			which accompanies this distribution, and is available at
diff --git a/maven/infrastructure/artifact-deployer/pom.xml b/maven/infrastructure/artifact-deployer/pom.xml
index eeb3f8c..0540631 100644
--- a/maven/infrastructure/artifact-deployer/pom.xml
+++ b/maven/infrastructure/artifact-deployer/pom.xml
@@ -5,7 +5,7 @@
 	<parent>
 		<groupId>org.eclipse.objectteams</groupId>
 		<artifactId>objectteams-parent-pom</artifactId>
-		<version>2.3.0</version>
+		<version>2.5.0</version>
 		<relativePath>../parent-pom</relativePath>
 	</parent>
 
@@ -24,7 +24,7 @@
 			<comments>
 				This file is part of "Object Teams Development Tooling"-Software
 
-				Copyright 2010, 2014 GK Software AG and others.
+				Copyright 2010, 2016 GK Software AG and others.
 				All rights reserved. This program and the accompanying materials
 				are made available under the terms of the Eclipse Public License v1.0
 				which accompanies this distribution, and is available at
@@ -53,15 +53,19 @@
 	<properties>
 		<!-- Object Teams versions, update manually: 					-->
 		<!--   version of the signed ecotj jar file:	 				-->
-		<ecotj.version>R-2.3.0-201406101336-signed</ecotj.version> 
+		<ecotj.version>R-2.5.0-201606070953-signed</ecotj.version> 
 		<!--   version of the org.eclipse.objectteams.runtime plugin:	-->
-		<otre.version>2.3.0.201406101339</otre.version>
+		<otre.version>2.5.0.201606070956</otre.version>
+		<!--   version of the org.eclipse.objectteams.otredyn plugin:	-->
+		<otredyn.version>1.2.0.201606070956</otredyn.version>
 		
 		<!-- locate the jar files to install/deploy: -->
 	    <ecotj.jar.file>${ecj.export.dir}/ecotj-${ecotj.version}.jar</ecotj.jar.file>
 	    <otre.jar.file>${otre.export.dir}-${otre.version}/org.eclipse.objectteams.otre_${otre.version}.jar</otre.jar.file>
 	    <ot.runtime.jar.file>${otre.export.dir}-${otre.version}/org.eclipse.objectteams.runtime_${otre.version}.jar</ot.runtime.jar.file>
 	    <otre-agent.jar.file>${otre.export.dir}-${otre.version}/otre_agent.jar</otre-agent.jar.file>
+	    <otdre.jar.file>${otre.export.dir}-${otre.version}/org.eclipse.objectteams.otredyn_${otredyn.version}.jar</otdre.jar.file>
+	    <otdre-agent.jar.file>${otre.export.dir}-${otre.version}/otredyn_agent.jar</otdre-agent.jar.file>
 	    
     	<!-- Repository path of this module within the Object Teams git: -->
     	<project-repository-path>maven/infrastructure/artifacts-deployer</project-repository-path>
@@ -147,6 +151,44 @@
 						</configuration>
 					</execution>
 					<execution>
+						<id>deploy-otdre-as-maven-artifact</id>
+						<phase>deploy</phase>
+						<goals>
+							<goal>deploy-file</goal>
+						</goals>
+						<configuration>
+							<repositoryId>otEclipseRepo</repositoryId>
+							<packaging>jar</packaging>
+							<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/repository</url>
+							<!-- The file to be deployed -->
+							<file>${otdre.jar.file}</file>
+							<groupId>${project.groupId}</groupId>
+							<artifactId>objectteams-otdre</artifactId>
+							<version>${otdre.version}</version>
+							<packaging>jar</packaging>
+							<pomFile>objectteams-otdre-pom.xml</pomFile>
+						</configuration>
+					</execution>
+					<execution>
+						<id>deploy-otdre-agent-as-maven-artifact</id>
+						<phase>deploy</phase>
+						<goals>
+							<goal>deploy-file</goal>
+						</goals>
+						<configuration>
+							<repositoryId>otEclipseRepo</repositoryId>
+							<packaging>jar</packaging>
+							<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/repository</url>
+							<!-- The file to be deployed -->
+							<file>${otdre-agent.jar.file}</file>
+							<groupId>${project.groupId}</groupId>
+							<artifactId>objectteams-otdre-agent</artifactId>
+							<classifier>nodep</classifier>
+							<version>${otdre.version}</version>
+							<packaging>jar</packaging>
+						</configuration>
+					</execution>
+					<execution>
 						<id>deploy-ecotj-as-maven-artifact</id>
 						<phase>deploy</phase>
 						<goals>
@@ -223,6 +265,40 @@
 						</configuration>
 					</execution>
 					<execution>
+						<id>install-otdre-as-maven-artifact</id>
+						<phase>install</phase>
+						<goals>
+							<goal>install-file</goal>
+						</goals>
+						<configuration>
+							<packaging>jar</packaging>
+							<!-- The file to be deployed -->
+							<file>${otdre.jar.file}</file>
+							<groupId>${project.groupId}</groupId>
+							<artifactId>objectteams-otdre</artifactId>
+							<version>${otdre.version}</version>
+							<packaging>jar</packaging>
+							<pomFile>objectteams-otdre-pom.xml</pomFile>
+						</configuration>
+					</execution>
+					<execution>
+						<id>install-otdre-agent-as-maven-artifact</id>
+						<phase>install</phase>
+						<goals>
+							<goal>install-file</goal>
+						</goals>
+						<configuration>
+							<packaging>jar</packaging>
+							<!-- The file to be deployed -->
+							<file>${otdre-agent.jar.file}</file>
+							<groupId>${project.groupId}</groupId>
+							<artifactId>objectteams-otdre-agent</artifactId>
+							<classifier>nodep</classifier>
+							<version>${otdre.version}</version>
+							<packaging>jar</packaging>
+						</configuration>
+					</execution>
+					<execution>
 						<id>install-ecotj-as-maven-artifact</id>
 						<phase>install</phase>
 						<goals>
diff --git a/maven/infrastructure/parent-pom-otdre/.project b/maven/infrastructure/parent-pom-otdre/.project
new file mode 100644
index 0000000..2d4f2bf
--- /dev/null
+++ b/maven/infrastructure/parent-pom-otdre/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>objectteams-otdre-parent-pom</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/maven/infrastructure/parent-pom-otdre/.settings/org.eclipse.m2e.core.prefs b/maven/infrastructure/parent-pom-otdre/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/maven/infrastructure/parent-pom-otdre/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/maven/infrastructure/parent-pom-otdre/pom.xml b/maven/infrastructure/parent-pom-otdre/pom.xml
new file mode 100644
index 0000000..6c64ebc
--- /dev/null
+++ b/maven/infrastructure/parent-pom-otdre/pom.xml
@@ -0,0 +1,114 @@
+<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.eclipse.objectteams</groupId>
+		<artifactId>objectteams-parent-pom</artifactId>
+		<version>2.5.0</version>
+  	</parent>
+  
+	<artifactId>objectteams-otdre-parent-pom</artifactId>
+	<packaging>pom</packaging>
+	<name>Object Teams parent pom for OTDRE</name>
+  
+
+	<url>http://download.eclipse.org/objectteams/maven/3/sites/${project.artifactId}</url>
+
+	<description>
+	This is the parent pom for Object Teams projects using Maven3.
+	It specifies the core dependencies and configurations for building and
+	executing Object Teams code using Maven.
+	This variant uses the OTDRE weaving scheme.
+	</description>
+
+	<licenses>
+		<license>
+			<name>Eclipse Public License Version 1.0</name>
+			<comments>
+				This file is part of "Object Teams Development Tooling"-Software.
+
+				Copyright 2016 GK Software AG and others.
+				All rights reserved. This program and the accompanying materials
+				are made available under the terms of the Eclipse Public License v1.0
+				which accompanies this distribution, and is available at
+				http://www.eclipse.org/legal/epl-v10.html
+
+				Please visit http://www.eclipse.org/objectteams for updates and contact.
+
+				Contributors:
+					Stephan Herrmann - Initial API and implementation.
+			</comments>
+		</license>
+	</licenses>
+
+	<organization>
+		<name>Eclipse Object Teams Project</name>
+		<url>http://www.eclipse.org/objectteams</url>
+	</organization>
+	
+	<developers>
+		<developer><name>Stephan Herrmann</name><organization>GK Software AG</organization></developer>
+	</developers>
+    
+	<mailingLists>
+		<mailingList><name>Object Teams Forum</name><archive>http://www.eclipse.org/forums/eclipse.objectteams</archive></mailingList>
+	</mailingLists>
+	
+	<issueManagement>
+		<system>Bugzilla</system>
+		<url>http://bugs.eclipse.org/bugs</url>
+	</issueManagement>
+  
+    
+    <!-- Required property from settings.xml: 								-->
+    <!-- 	settings.localRepository	path to the local Maven repository.	-->
+    <properties>
+    	<!-- Repository path of this module within the Object Teams git: -->
+    	<project-repository-path>maven/infrastructure/parent-pom-otdre</project-repository-path>
+
+		<!-- Select OTDRE: -->
+		<otj.weaving.scheme>otdre</otj.weaving.scheme>
+		<objectteams-otre.version>${otdre.version}</objectteams-otre.version>
+		
+		<!-- Select ASM: -->
+		<asm.version>5.0.1</asm.version>
+		<otj.bytecode.lib.groupId>org.ow2.asm</otj.bytecode.lib.groupId>
+		<otj.bytecode.lib.artifactId>asm-all</otj.bytecode.lib.artifactId>
+		<otj.bytecode.lib.version>${asm.version}</otj.bytecode.lib.version>
+    </properties>
+
+	<scm>
+		<!--  WTF: release will "improve" the connection to using svn+ssh and advertize this for anonymous access !@#!%$ -->
+	    <connection>scm:git:git://git.eclipse.org/gitroot/objectteams/org.eclipse.objectteams.git/${project-repository-path}</connection>
+	    <developerConnection>scm:git:ssh://${username}@git.eclipse.org/gitroot/objectteams/org.eclipse.objectteams.git/${project-repository-path}</developerConnection>
+		<!--  WTF: release will "improve" the connection to using svn+ssh and advertize this for web access !@#!%$ -->
+	    <url>http://git.eclipse.org/c/objectteams/org.eclipse.objectteams.git</url>
+	</scm>
+
+	<!-- for deployment of this pom: -->
+	<distributionManagement>
+		<site>
+			<id>otSiteRepo</id>
+			<name>Object Teams sites repository for Maven 3</name>
+			<!--
+				for unclear reason when deploying dependent sites we need to first install this
+			    parent with the following URL:
+			    	scpexe://objectteams/maven/3/sites/${project.artifactId}
+			    otherwise the variables from the below URL will be pasted verbatim for references
+			    to the parent pom =:-0
+			-->
+			<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/sites/${project.artifactId}</url>
+		</site>
+		<repository>
+			<id>ObjectTeamsRepository</id>
+			<uniqueVersion>false</uniqueVersion>
+			<name>Public Object Teams distribution repository</name>
+			<!--
+				most values are fed from settings.xml
+			-->
+			<url>scpexe://${ot.host}:${ot.maven.repository.basepath}/repository</url>
+			<layout>default</layout>
+		</repository>
+	</distributionManagement>
+
+</project>
\ No newline at end of file
diff --git a/maven/infrastructure/parent-pom-otdre/src/site/apt/index.apt b/maven/infrastructure/parent-pom-otdre/src/site/apt/index.apt
new file mode 100644
index 0000000..337583b
--- /dev/null
+++ b/maven/infrastructure/parent-pom-otdre/src/site/apt/index.apt
@@ -0,0 +1,6 @@
+Object Teams parent pom for OTDRE
+
+ This is the parent pom for Object Teams projects using Maven3.
+ It specifies the core dependencies and configurations for building and executing Object Teams code using Maven.
+
+ This variant uses the dynamic {{{http://help.eclipse.org/topic/org.eclipse.objectteams.otdt.doc/guide/weavingscheme.html}OTDRE weaving scheme}}.
diff --git a/maven/infrastructure/parent-pom-otdre/src/site/apt/usage.apt b/maven/infrastructure/parent-pom-otdre/src/site/apt/usage.apt
new file mode 100644
index 0000000..a74491b
--- /dev/null
+++ b/maven/infrastructure/parent-pom-otdre/src/site/apt/usage.apt
@@ -0,0 +1,72 @@
+	------
+	Using the Object Teams OTDRE Parent POM
+	------
+	Olaf Otto & Stephan Herrmann
+	------
+	2016-06-12
+	------
+
+Using the Object Teams OTDRE Parent POM
+
+ Declaring this module as the parent of your project will add basic capabilities
+ for using OT/J in your sources.
+ 
+* Weaving schemes OTRE vs. OTDRE
+ 
+ This pom supports the dynamic {{{http://help.eclipse.org/topic/org.eclipse.objectteams.otdt.doc/guide/weavingscheme.html}weaving scheme OTDRE}}.
+ For the traditional OTRE please use {{{../objectteams-parent-pom}org.eclipse.objectteams:objectteams-parent-pom}} instead.
+
+* Include the parent pom
+
+ For simple cases two declarations in your pom will suffice:
+
+ [[1]] declare the maven repository for fetching Object Teams related modules
+
++-----
+	<repositories>
+		<repository>
+			<id>ObjectTeamsRepository</id>
+			<name>Object Teams Repository</name>
+			<url>http://download.eclipse.org/objectteams/maven/3/repository</url>
+		</repository>
+	</repositories>
++----- 
+
+ [[1]] declare the parent pom
+
++-----
+	<parent>
+		<groupId>org.eclipse.objectteams</groupId>
+		<artifactId>objectteams-otdre-parent-pom</artifactId>
+		<version>2.5.0</version>
+	</parent>
++-----
+
+ Starting with version 2.1.1 the parent pom also supports using OT/J in tycho builds (projects using OSGi).
+
+* Example
+
+  See the {{{../objectteams-compile-test}objectteams-compile-test}} project for an example of how to use this parent pom.
+  
+* Under the hood
+ 
+** Standard OT/J dependencies documented
+
+  All OT/J projects using the <<<objectteams-otdre-parent-pom>>> implicitly depend on the following artifacts which are developed 
+  independent of maven and simply repackaged using the {{{../objectteams-artifact-deployer}org.eclipse.objectteams:objectteams-artifact-deployer}} module:
+  
+  [org.eclipse.objectteams:objectteams-runtime] the Object Teams runtime (minimal OT/J API) repackaged from the <<<org.eclipse.objectteams.runtime>>> OSGi bundle.
+  
+  [org.eclipse.objectteams:objectteams-otdre] the Object Teams Dynamic Runtime Environment (the bytecode weaver) repackaged from the <<<org.eclipse.objectteams.otredyn>>> OSGi bundle.
+  
+  [org.eclipse.objectteams:objectteams-otdre-agent] the Java agent that hooks the Object Teams runtime into the JVM (repackaged from file <<<otredyn_agent.jar>>>
+  from the <<<org.eclipse.objectteams.otdt>>> project).
+  
+  [org.eclipse.objectteams:objectteams-otj-compiler] a compatible replacement for <<<org.eclipse.tycho:org.eclipse.jdt.core>>> that enables the 
+  <<<org.eclipse.tycho:tycho-compiler-jdt>>> plugin to compile OT/J sources.
+
+  []
+  
+  The following module is indirectly used:
+
+  [org.ow2.asm:asm-all] the original {{{http://asm.ow2.org/}ASM}} byte code library.
\ No newline at end of file
diff --git a/maven/infrastructure/parent-pom-otdre/src/site/site.xml b/maven/infrastructure/parent-pom-otdre/src/site/site.xml
new file mode 100644
index 0000000..7fd1046
--- /dev/null
+++ b/maven/infrastructure/parent-pom-otdre/src/site/site.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schmaLocation="http://maven.apache.org/maven-1.x/plugins/xdoc/maven-navigation.xsd"
+	name="Object Teams OTDRE Parent POM">
+	<bannerLeft>
+		<name>Object Teams</name>
+		<href>http://www.eclipse.org/objectteams/</href>
+	</bannerLeft>
+	<bannerRight>
+		<name>Object Teams</name>
+		<href>http://www.eclipse.org/objectteams/</href>
+		<src>http://www.eclipse.org/objectteams/images/ot_64n.png</src>
+	</bannerRight>
+	<skin>
+		<groupId>org.apache.maven.skins</groupId>
+		<artifactId>maven-default-skin</artifactId>
+		<version>1.0</version>
+	</skin>
+	<publishDate format="dd MMM yyyy" />
+	<version position="left"/>
+	<body>
+		<links>
+			<item name="Object Teams" href="http://www.eclipse.org/objectteams" />
+		</links>
+		<menu name="Overview">
+			<item name="Usage" href="./usage.html" />
+		</menu>
+		<menu ref="reports"/>
+	</body>
+</project>
diff --git a/maven/infrastructure/parent-pom/pom.xml b/maven/infrastructure/parent-pom/pom.xml
index 36a89ca..9c943cf 100644
--- a/maven/infrastructure/parent-pom/pom.xml
+++ b/maven/infrastructure/parent-pom/pom.xml
@@ -4,7 +4,7 @@
 	
 	<groupId>org.eclipse.objectteams</groupId>
 	<artifactId>objectteams-parent-pom</artifactId>
-	<version>2.3.0</version>
+	<version>2.5.0</version>
 	<packaging>pom</packaging>
 	
 	<name>Object Teams parent pom</name>
@@ -23,7 +23,7 @@
 			<comments>
 				This file is part of "Object Teams Development Tooling"-Software.
 
-				Copyright 2010, 2014 GK Software AG and others.
+				Copyright 2010, 2016 GK Software AG and others.
 				All rights reserved. This program and the accompanying materials
 				are made available under the terms of the Eclipse Public License v1.0
 				which accompanies this distribution, and is available at
@@ -72,27 +72,45 @@
 			<name>Object Teams Plugin Repository</name>
 			<url>http://download.eclipse.org/objectteams/maven/3/repository</url>
 		</pluginRepository>
+		<pluginRepository>
+      		<id>tycho-snapshots</id>
+      		<url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
+      	</pluginRepository>
     </pluginRepositories>
     
     
     <!-- Required property from settings.xml: 								-->
     <!-- 	settings.localRepository	path to the local Maven repository.	-->
     <properties>
-    	<!-- Repository path of this module within the Object Teams svn: -->
+    	<!-- Repository path of this module within the Object Teams git: -->
     	<project-repository-path>maven/infrastructure/parent-pom</project-repository-path>
 
 		<!-- Our Version: -->
-		<otj.version>2.3.0</otj.version>
+		<otj.version>2.5.0</otj.version>
+		<otdre.version>1.2.0</otdre.version>
 
 		<!-- Versions of dependencies: -->
 		<bcel.version>5.2</bcel.version>
-		<tycho.version>0.20.0</tycho.version>
+		<tycho.version>0.24.0</tycho.version>
+		<apt.version>1.2.100.v20160418-1457-SNAPSHOT</apt.version> <!-- pulled from tycho-snapshots to be compatible with latest JDT -->
 		
+		<!-- **** Main switch for OTRE vs. OTDRE (here we default to OTRE): **** -->
+		<otj.weaving.scheme>otre</otj.weaving.scheme>
+		<objectteams-otre.version>${otj.version}</objectteams-otre.version>
+		
+		<!-- Bytecode library, to be overridden for OTDRE: -->
+		<otj.bytecode.lib.groupId>org.apache.bcel</otj.bytecode.lib.groupId>
+		<otj.bytecode.lib.artifactId>bcel</otj.bytecode.lib.artifactId>
+		<otj.bytecode.lib.version>${bcel.version}</otj.bytecode.lib.version>
+		
+		<!-- Dependent properties, which follow the OTRE / OTDRE selection: -->
+		<objectteams-otre>objectteams-${otj.weaving.scheme}</objectteams-otre>
+		<objectteams-otre-agent>objectteams-${otj.weaving.scheme}-agent</objectteams-otre-agent>
+
 		<!-- Absolut paths for providing startup arguments to the JVM -->
 		<otj.runtime.location>${settings.localRepository}/org/eclipse/objectteams/objectteams-runtime/${otj.version}/objectteams-runtime-${otj.version}.jar</otj.runtime.location>
-		<otj.otre.location>${settings.localRepository}/org/eclipse/objectteams/objectteams-otre/${otj.version}/objectteams-otre-${otj.version}.jar</otj.otre.location>
-		<otj.agent.location>${settings.localRepository}/org/eclipse/objectteams/objectteams-otre-agent/${otj.version}/objectteams-otre-agent-${otj.version}-nodep.jar</otj.agent.location>
-		<otj.bcel.location>${settings.localRepository}/org/apache/bcel/bcel/${bcel.version}/bcel-${bcel.version}.jar</otj.bcel.location>
+		<otj.otre.location>${settings.localRepository}/org/eclipse/objectteams/${objectteams-otre}/${objectteams-otre.version}/${objectteams-otre}-${objectteams-otre.version}.jar</otj.otre.location>
+		<otj.agent.location>${settings.localRepository}/org/eclipse/objectteams/${objectteams-otre-agent}/${objectteams-otre.version}/${objectteams-otre-agent}-${objectteams-otre.version}-nodep.jar</otj.agent.location>
 
 		<!-- Bootclasspath -->
 		<otj.bootcp.arg>-Xbootclasspath/a:${otj.runtime.location}</otj.bootcp.arg>
@@ -136,12 +154,13 @@
 						Using java 1.7 language level is recommended, default is 1.3, OT/J needs 1.5 minimum
 					-->
 					<artifactId>maven-compiler-plugin</artifactId>
-					<version>3.1</version>
+					<version>3.5.1</version>
 					<configuration>
 						<source>1.7</source>
 						<target>1.7</target>
 						<compilerId>jdt</compilerId>
 						<flavor>otj</flavor>
+						<compilerArgument>-ot.weaving:${otj.weaving.scheme}</compilerArgument>
 					</configuration>
 					<dependencies>
 						<!-- compile time only dependencies: -->
@@ -163,6 +182,11 @@
 							<artifactId>objectteams-otj-compiler</artifactId>
 							<version>${otj.version}</version>
 						</dependency>
+						<dependency>
+							<groupId>org.eclipse.tycho</groupId>
+							<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
+							<version>${apt.version}</version>
+						</dependency>
 					</dependencies>
 				</plugin>
 
@@ -191,6 +215,11 @@
 							<artifactId>objectteams-otj-compiler</artifactId>
 							<version>${otj.version}</version>
 						</dependency>
+						<dependency>
+							<groupId>org.eclipse.tycho</groupId>
+							<artifactId>org.eclipse.jdt.compiler.apt</artifactId>
+							<version>${apt.version}</version>
+						</dependency>
 					</dependencies>
 				</plugin>
 
@@ -209,9 +238,9 @@
 						<dependency>
 							<!-- runtime-only dependency: -->
 							<groupId>org.eclipse.objectteams</groupId>
-							<artifactId>objectteams-otre-agent</artifactId>
+							<artifactId>${objectteams-otre-agent}</artifactId>
 							<classifier>nodep</classifier>
-							<version>${otj.version}</version>
+							<version>${objectteams-otre.version}</version>
 						</dependency>
 					</dependencies>
 				</plugin>
@@ -219,15 +248,8 @@
 				<plugin>
 					<groupId>org.apache.maven.plugins</groupId>
 					<artifactId>maven-site-plugin</artifactId>
-					<version>3.1</version>
+					<version>3.3</version>
 				</plugin>
-				<plugin>
-	        		<groupId>org.apache.maven.plugins</groupId>
-	        		<artifactId>maven-release-plugin</artifactId>
-	        		<configuration>
-	          			<tagBase>svn+ssh://dev.eclipse.org/svnroot/tools/org.eclipse.objectteams/tags/mvn-releases</tagBase>
-	        		</configuration>
-	      		</plugin>
 			</plugins>
 		</pluginManagement>
 		<extensions>
@@ -247,16 +269,18 @@
 			<version>${otj.version}</version>
 			<scope>compile</scope> <!-- At runtime this will be provided via bootclasspath -->
 		</dependency>
+
+		<!-- Hookable: OTRE or OTDRE: -->
 		<dependency>
 			<groupId>org.eclipse.objectteams</groupId>
-			<artifactId>objectteams-otre</artifactId>
-			<version>${otj.version}</version>
+			<artifactId>${objectteams-otre}</artifactId>
+			<version>${objectteams-otre.version}</version>
 			<scope>provided</scope>
 		</dependency>
 		<dependency>
-			<groupId>org.apache.bcel</groupId>
-			<artifactId>bcel</artifactId>
-			<version>${bcel.version}</version>
+			<groupId>${otj.bytecode.lib.groupId}</groupId>
+			<artifactId>${otj.bytecode.lib.artifactId}</artifactId>
+			<version>${otj.bytecode.lib.version}</version>
 			<scope>provided</scope>
 		</dependency>
 	</dependencies>
diff --git a/maven/infrastructure/parent-pom/src/site/apt/index.apt b/maven/infrastructure/parent-pom/src/site/apt/index.apt
new file mode 100644
index 0000000..8932fbc
--- /dev/null
+++ b/maven/infrastructure/parent-pom/src/site/apt/index.apt
@@ -0,0 +1,6 @@
+Object Teams parent pom
+
+ This is the parent pom for Object Teams projects using Maven3.
+ It specifies the core dependencies and configurations for building and executing Object Teams code using Maven.
+
+ This variant uses the traditional {{{http://help.eclipse.org/topic/org.eclipse.objectteams.otdt.doc/guide/weavingscheme.html}OTRE weaving scheme}}.
diff --git a/maven/infrastructure/parent-pom/src/site/apt/usage.apt b/maven/infrastructure/parent-pom/src/site/apt/usage.apt
index f31be18..9878b87 100644
--- a/maven/infrastructure/parent-pom/src/site/apt/usage.apt
+++ b/maven/infrastructure/parent-pom/src/site/apt/usage.apt
@@ -3,7 +3,7 @@
 	------
 	Olaf Otto & Stephan Herrmann
 	------
-	2014-06-15
+	2016-06-12
 	------
 
 Using the Object Teams Parent POM
@@ -11,6 +11,11 @@
  Declaring this module as the parent of your project will add basic capabilities
  for using OT/J in your sources.
  
+* Weaving schemes OTRE vs. OTDRE
+ 
+ This pom supports the traditional {{{http://help.eclipse.org/topic/org.eclipse.objectteams.otdt.doc/guide/weavingscheme.html}weaving scheme OTRE}}.
+ For OTDRE please use {{{../objectteams-otdre-parent-pom}org.eclipse.objectteams:objectteams-otdre-parent-pom}} instead.
+
 * Include the parent pom
 
  For simple cases two declarations in your pom will suffice:
@@ -33,7 +38,7 @@
 	<parent>
 		<groupId>org.eclipse.objectteams</groupId>
 		<artifactId>objectteams-parent-pom</artifactId>
-		<version>2.3.0</version>
+		<version>2.5.0</version>
 	</parent>
 +-----
 
diff --git a/maven/testproject/pom.xml b/maven/testproject/pom.xml
index 22f75b9..cc8a9c1 100644
--- a/maven/testproject/pom.xml
+++ b/maven/testproject/pom.xml
@@ -4,14 +4,14 @@
 
 	<parent>
 		<groupId>org.eclipse.objectteams</groupId>
-		<artifactId>objectteams-parent-pom</artifactId>
-		<version>2.3.0</version>
+		<artifactId>objectteams-otdre-parent-pom</artifactId>
+		<version>2.5.0</version>
 	</parent>
 
 	<packaging>jar</packaging>
         
 	<artifactId>objectteams-compile-test</artifactId>
-	<version>1.0.4</version>
+	<version>1.1.1</version>
 	<name>Object Teams test project</name>
 
 	<!-- simply repeat this declaration from the parent pom, otherwise Maven duplicates the artifactId in the path -->
@@ -27,7 +27,7 @@
 			<comments>
 				This file is part of "Object Teams Development Tooling"-Software
 
-				Copyright 2010, 2014 GK Software AG and others.
+				Copyright 2010, 2015 GK Software AG and others.
 				All rights reserved. This program and the accompanying materials
 				are made available under the terms of the Eclipse Public License v1.0
 				which accompanies this distribution, and is available at
diff --git a/maven/testproject/src/main/java/TestTeam.java b/maven/testproject/src/main/java/TestTeam.java
index 0dd312f..a1b0aec 100644
--- a/maven/testproject/src/main/java/TestTeam.java
+++ b/maven/testproject/src/main/java/TestTeam.java
@@ -1,7 +1,7 @@
 public team class TestTeam {
     protected class R playedBy TheBase {
 		void foo() {
-			System.out.println("foos");
+			TheBase.print("foos\n");
 		}
 		foo <- after bar;
 	}
diff --git a/maven/testproject/src/main/java/TheBase.java b/maven/testproject/src/main/java/TheBase.java
index b336b28..fb1ba8c 100644
--- a/maven/testproject/src/main/java/TheBase.java
+++ b/maven/testproject/src/main/java/TheBase.java
@@ -1,5 +1,10 @@
 public class TheBase {
 	public void bar() {
-		System.out.print("bar");
+		print("bar");
+	}
+	public static String result = "";
+	public static void print(String s) {
+		result += s;
+		System.out.print(s);
 	}
 }
\ No newline at end of file
diff --git a/maven/testproject/src/site/apt/usage.apt b/maven/testproject/src/site/apt/usage.apt
index 6ed5bf0..78011aa 100644
--- a/maven/testproject/src/site/apt/usage.apt
+++ b/maven/testproject/src/site/apt/usage.apt
@@ -3,7 +3,7 @@
 	------
 	Olaf Otto & Stephan Herrmann
 	------
-	2014-06-15
+	2016-06-12
 	------
 
 Using Object Teams with Maven3
@@ -32,11 +32,14 @@
 +-----
 	<parent>
 		<groupId>org.eclipse.objectteams</groupId>
-		<artifactId>objectteams-parent-pom</artifactId>
-		<version>2.3.0</version>
+		<artifactId>objectteams-otdre-parent-pom</artifactId>
+		<version>2.5.0</version>
 	</parent>
 +-----
 
+  This variant will use the new {{{objectteams-otdre-parent-pom}weaving scheme OTDRE}}. 
+  Simply changing the above from <<<objectteams-otdre-parent-pom>>> to <<<objectteams-parent-pom>>> will select the traditional OTRE.
+
 * Effect
  
   The above steps suffice to let you
diff --git a/maven/testproject/src/test/java/TheTest.java b/maven/testproject/src/test/java/TheTest.java
index e8d4722..7976039 100644
--- a/maven/testproject/src/test/java/TheTest.java
+++ b/maven/testproject/src/test/java/TheTest.java
@@ -1,9 +1,11 @@
 import org.junit.Test;
+import static org.junit.Assert.*;
 
 public class TheTest {
 	@Test
 	public void testIt() {
 		new TestTeam().activate();
 		new TheBase().bar();
+		assertEquals("Result:", "barfoos\n", TheBase.result);
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.mvn/META-INF/MANIFEST.MF b/plugins/org.eclipse.objectteams.mvn/META-INF/MANIFEST.MF
index f3ffd91..e491a52 100644
--- a/plugins/org.eclipse.objectteams.mvn/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.objectteams.mvn/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %bundleName
 Bundle-SymbolicName: org.eclipse.objectteams.mvn;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %bundleVendor
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
@@ -10,6 +10,7 @@
  org.eclipse.m2e.jdt;bundle-version="[1.0.0,2.0.0)",
  org.eclipse.m2e.lifecyclemapping.defaults;bundle-version="[1.0.0,2.0.0)",
  org.eclipse.m2e.maven.runtime;bundle-version="[1.0.0,2.0.0)",
+ org.jboss.tools.m2e.jdt.core;bundle-version="1.0.1",
  org.eclipse.objectteams.otequinox;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.objectteams.otdt;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.jdt.core;bundle-version="[3.7.0,4.0.0)",
diff --git a/plugins/org.eclipse.objectteams.mvn/src/org/eclipse/objectteams/mvn/internal/Configurator.java b/plugins/org.eclipse.objectteams.mvn/src/org/eclipse/objectteams/mvn/internal/Configurator.java
index 2aae605..5310ac4 100644
--- a/plugins/org.eclipse.objectteams.mvn/src/org/eclipse/objectteams/mvn/internal/Configurator.java
+++ b/plugins/org.eclipse.objectteams.mvn/src/org/eclipse/objectteams/mvn/internal/Configurator.java
@@ -77,6 +77,7 @@
 			ICommand[] buildSpecs = prjDesc.getBuildSpec();
 			prjDesc.setBuildSpec(replaceOrAddOTBuilder(prjDesc, buildSpecs));
 			project.setDescription(prjDesc, null);
+			org.eclipse.objectteams.otdt.core.ext.OTREContainer.initializeOTJProject(project);
 		}
 
 		private static ICommand[] replaceOrAddOTBuilder(
