initial commit in accordance with CQ 3784
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/.classpath
new file mode 100644
index 0000000..3889ea2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/OTRE"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/.project
new file mode 100644
index 0000000..ac8a149
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.objectteams.otdt.test.builder</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f8a917f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Builder Plug-in
+Bundle-SymbolicName: org.eclipse.objectteams.otdt.test.builder;singleton:=true
+Bundle-Version: 1.3.0
+Bundle-ClassPath: otdt-buildertests.jar
+Bundle-Activator: org.eclipse.objectteams.otdt.test.builder.BuilderTestPlugin
+Bundle-Vendor: objectteams.org
+Export-Package: org.eclipse.objectteams.otdt.test.builder
+Require-Bundle: org.junit,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jdt.core.tests.builder,
+ org.eclipse.objectteams.otdt,
+ org.eclipse.objectteams.otdt.compiler.adaptor,
+ org.eclipse.jdt.core.tests.compiler,
+ org.eclipse.jdt.core,
+ org.eclipse.test.performance,
+ org.eclipse.objectteams.otdt.tests
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/build.properties
new file mode 100644
index 0000000..244c7b9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/build.properties
@@ -0,0 +1,8 @@
+source.otdt-buildertests.jar = src/

+output.otdt-buildertests.jar = bin/

+bin.includes = plugin.xml,\

+               otdt-buildertests.jar,\

+               test.xml,\

+               JCL/,\

+               workspace/,\

+               META-INF/

diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/plugin.xml
new file mode 100644
index 0000000..dbc928d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/plugin.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+<plugin>

+

+    
+</plugin>

diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/AllTests.java
new file mode 100644
index 0000000..d1a6577
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/AllTests.java
@@ -0,0 +1,39 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+public class AllTests {

+

+	public static Test suite() {

+		TestSuite suite = new TestSuite(

+				"Test for org.eclipse.objectteams.otdt.test.builder"); //$NON-NLS-1$

+		//$JUnit-BEGIN$

+		suite.addTest(IncrementalTests.suite());

+		suite.addTest(CompilationOrderTests.suite());

+		suite.addTest(OTEquinoxBuilderTests.suite());

+		//$JUnit-END$

+		return suite;

+	}

+

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/BuilderTestPlugin.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/BuilderTestPlugin.java
new file mode 100644
index 0000000..4421945
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/BuilderTestPlugin.java
@@ -0,0 +1,70 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;

+

+import org.eclipse.core.runtime.Plugin;

+import org.osgi.framework.BundleContext;

+

+/**

+ * The activator class controls the plug-in life cycle

+ */

+public class BuilderTestPlugin extends Plugin {

+

+	// The plug-in ID

+	public static final String PLUGIN_ID = "org.eclipse.objectteams.otdt.test.builder"; //$NON-NLS-1$

+

+	// The shared instance

+	private static BuilderTestPlugin plugin;

+	

+	/**

+	 * The constructor

+	 */

+	public BuilderTestPlugin() {

+		plugin = this;

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)

+	 */

+	public void start(BundleContext context) throws Exception {

+		super.start(context);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)

+	 */

+	public void stop(BundleContext context) throws Exception {

+		plugin = null;

+		super.stop(context);

+	}

+

+	/**

+	 * Returns the shared instance

+	 *

+	 * @return the shared instance

+	 */

+	public static BuilderTestPlugin getDefault() {

+		return plugin;

+	}

+

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/CompilationOrderTests.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/CompilationOrderTests.java
new file mode 100644
index 0000000..ab4d1e5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/CompilationOrderTests.java
@@ -0,0 +1,112 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;
+
+import junit.framework.Test;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.compiler.CategorizedProblem;
+import org.eclipse.jdt.core.tests.builder.Problem;
+import org.eclipse.jdt.core.tests.util.Util;
+
+
+public class CompilationOrderTests extends OTBuilderTests {
+
+	public static Test suite() {
+		return buildTestSuite(CompilationOrderTests.class);
+	}
+
+	public CompilationOrderTests(String name) {
+		super(name);
+	}
+	
+	/* In batch-mode this causes a problem, 
+	 * compilation order is different in workbench mode, though
+     * (depends on class names?!).
+	 * Original jacks test is removed.
+	 */
+	@SuppressWarnings("nls")
+	public void test177otjd5f()  throws JavaModelException {
+		System.out.println("***** test177otjd5f() *****");
+		IPath projectPath = env.addProject("Project", "1.5"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "ATeam",
+				"package p;	\n"+ 
+		"public team class ATeam {	protected class R implements IConfined {} public IConfined getR() { return new R(); } }");
+
+		env.addClass(root, "p", "M", 
+			"package p;	\n"+ 
+			"public class M {\n"+
+			"   @SuppressWarnings(\"unused\")\n"+
+			"   void foo() {\n"+
+			"       final ATeam t = new ATeam();\n"+
+			"       IConfined<@t> ic = t.getR();\n"+
+			"   }\n"+
+			"}");
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+	}
+
+	/* (TODO(SH): test doesn't really fit into this class).
+	 * Witness for an NPE in ExplicitConstructorCall.resolve():
+	 * If o.o.Team cannot be found, receiverType could be null!
+	 */
+	public void testMissingOTRE() throws JavaModelException {
+		System.out.println("***** testMissingOTRE() *****");
+		IPath projectPath = env.addProject("Project", "1.5"); 
+		// don't abort when detecting the build path error
+		// (otherwise other errors would be expunged).
+		env.getJavaProject(projectPath).setOption(JavaCore.CORE_JAVA_BUILD_INVALID_CLASSPATH, JavaCore.ERROR);
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		// don't: env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		IPath ateam = env.addClass(root, "p", "ATeam",
+				"package p;	\n"+ 
+		"public team class ATeam {	ATeam() { super(); } }");
+
+		fullBuild(projectPath);
+		
+		expectingProblemsFor(ateam);
+		expectingOnlySpecificProblemsFor(ateam, 
+				new Problem[] {
+					new Problem("", "The type org.objectteams.Team cannot be resolved. It is indirectly referenced from required .class files", ateam, 30, 35, CategorizedProblem.CAT_BUILDPATH, IMarker.SEVERITY_ERROR),
+					new Problem("", "The constructor Team() is undefined", ateam, 48,56, CategorizedProblem.CAT_MEMBER, IMarker.SEVERITY_ERROR)
+				});
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/IncrementalTests.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/IncrementalTests.java
new file mode 100644
index 0000000..db547ae
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/IncrementalTests.java
@@ -0,0 +1,872 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;
+
+import junit.framework.Test;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.compiler.CategorizedProblem;
+import org.eclipse.jdt.core.tests.builder.Problem;
+import org.eclipse.jdt.core.tests.util.Util;
+
+/**
+ * This test class tests incremental compilation of teams and roles.
+ */
+@SuppressWarnings("nls")  
+public class IncrementalTests extends OTBuilderTests {
+    	
+    
+	public IncrementalTests(String name) {
+		super(name);
+	}
+
+	public static Test suite() {
+		return buildTestSuite(IncrementalTests.class);
+	}
+	
+	/*
+	 */
+	public void testRemoveTeamType() throws JavaModelException {
+		System.out.println("***** testRemoveTeamType() *****");
+		IPath projectPath = env.addProject("Project"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+ 
+			"public team class AA {	}");
+			
+
+		IPath pathToAB = env.addClass(root, "p.AA", "R", 
+			"team package p.AA;	\n"+ 
+			"   protected class R {}");
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* Remove team AA */
+		env.removeClass(env.getPackagePath(root, "p"), "AA");
+
+		/* build must detect, that R - although unchanged - becomes invalid. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(pathToAB);
+		expectingSpecificProblemFor(pathToAB, new Problem("", "Enclosing team p.AA not found for role file R (OTJLD 1.2.5(c)).", pathToAB, 13, 17, CategorizedProblem.CAT_TYPE, IMarker.SEVERITY_ERROR)); 
+		
+		/* Restore team AA */
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+ 
+				"public team class AA {}");
+
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	/*
+	 */
+	public void testRemoveRoleType() throws JavaModelException {
+		System.out.println("***** testRemoveRoleType() *****");
+		IPath projectPath = env.addProject("Project"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"   protected class RA {}}");
+
+		IPath pathToAB = env.addClass(root, "p", "AB",
+			"package p;	\n"+
+			"public team class AB extends AA {"+
+			"   protected class RB extends RA {} }");
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* Remove role AA.RA */
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {}");
+
+		/* build must detect, that AB - although unchanged - becomes invalid. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(pathToAB);
+		expectingSpecificProblemFor(pathToAB, new Problem("", "RA cannot be resolved to a type", pathToAB, 75, 77, CategorizedProblem.CAT_TYPE, IMarker.SEVERITY_ERROR)); 
+		
+		/* Restore role AA.RA */
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+
+				"public team class AA {	\n"+
+				"   public class RA {}}");
+
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	public void testRemoveRoleFile() throws JavaModelException {
+		System.out.println("***** testRemoveRoleFile() *****");
+		IPath projectPath = env.addProject("Project"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "Outer",
+			"package p;	\n"+
+			"public team class Outer {}");
+		IPath pathToNested= env.addClass(root, "p/Outer", "Nested",
+			"team package p.Outer;\n"+
+			"protected team class Nested {}");
+
+		IPath pathToOuterSub = env.addClass(root, "p", "OuterSub",
+			"package p;	\n"+
+			"public team class OuterSub extends Outer {\n"+
+			"   Nested aRole;\n"+
+			"}");
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* Remove role Outer.Nested */
+		env.removeFile(pathToNested);
+
+		/* build must detect, that AB - although unchanged - becomes invalid -- but no further errors/exceptions */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(pathToOuterSub);
+		expectingSpecificProblemFor(pathToOuterSub, new Problem("", "Nested cannot be resolved to a type", pathToOuterSub, 58, 64, CategorizedProblem.CAT_TYPE, IMarker.SEVERITY_ERROR)); 
+		
+	}
+	/*
+	 */
+	public void testRemoveRoleMethod() throws JavaModelException {
+		System.out.println("***** testRemoveRoleMethod() *****");
+		IPath projectPath = env.addProject("Project");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"   public class RA { \n"+
+			"       public void foo() {}\n"+
+			"}}");
+
+		env.addClass(root, "p", "AB",
+			"package p;	\n"+
+			"public team class AB extends AA {"+
+			"   protected class RB extends RA {} }");
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* Remove role method AA.RA.foo */
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+
+				"public team class AA {	\n"+
+				"   public class RA {}}");
+
+		/* add a class referencing AB.RA */
+		IPath pathToM = env.addClass(root, "p", "M",
+				"package p;	\n"+
+				"public class M {	\n"+
+				"   void test() {\n"+
+				"   new AB().new RA().foo();\n"+
+				"}}");
+
+		/* build must detect, that the use of AB - although AB is unchanged - becomes invalid. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(pathToM);
+		expectingSpecificProblemFor(pathToM, new Problem("", "The method foo() is undefined for the type RA<@tthis[AB]>", pathToM, 68, 71, CategorizedProblem.CAT_MEMBER, IMarker.SEVERITY_ERROR)); 
+
+		/* Restore method AA.RA.foo */
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+ 
+				"public team class AA {	\n"+
+				"   public class RA { \n"+
+				"       public void foo() {}\n"+
+				"}}");
+
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	
+	/*
+	 */
+	public void testModifyTSuperRole1() throws JavaModelException {
+		System.out.println("***** testModifyTSuperRole1() *****");
+		IPath projectPath = env.addProject("Project"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, ""); 
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src"); 
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"   protected class R {\n" +
+			"       void bar() { }\n"+
+			"}}");
+
+		IPath pathToAB = env.addClass(root, "p", "AB",
+			"package p;	\n"+
+			"public team class AB extends AA {\n"+
+			"   protected class R {\n"+
+			"       void foo() { this.bar(); }\n"+
+			"} }");
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* Remove method AA.R.bar() */
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {\n" +
+			"   protected class R {}\n" +
+			"}");
+
+		/* build must detect, that AB - although unchanged - becomes invalid through a self-call. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(pathToAB);
+		expectingSpecificProblemFor(pathToAB, new Problem("", "The method bar() is undefined for the type AB.R", pathToAB, 94, 97, CategorizedProblem.CAT_MEMBER, IMarker.SEVERITY_ERROR)); 
+
+		/* Restore method AA.R.bar */
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+
+				"public team class AA {	\n"+
+				"   protected class R {\n" +
+				"       void bar() { }\n"+
+				"}}");
+
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	
+	/*
+	 * The body of a tsuper role is modified.
+	 */
+	public void testModifyTSuperRole2() throws Exception {
+		System.out.println("***** testModifyTSuperRole2() *****");
+		IPath projectPath = env.addProject("Project"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, ""); 
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src"); 
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA", 
+			"package p;	\n"+ 
+			"public team class AA {	\n"+ 
+			"   protected class R {\n" +
+			"       String bar() { return \"NOK\"; }\n"+
+			"}}");
+
+		env.addClass(root, "p", "AB",
+			"package p;	\n"+ 
+			"public team class AB extends AA {\n"+
+			"   protected class R {\n"+
+			"       protected String foo() { return this.bar(); }\n"+ 
+			"   }\n"+ 
+			"   public static String test() {\n"+ 
+			"      return new AB().new R().foo();\n"+
+			"   }\n"+
+			"}");
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* Change method R.bar() */
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+ 
+			"public team class AA {\n" + 
+			"   protected class R {\n" + 
+			"       String bar() { return \"OK\"; }\n"+
+			"}}");
+
+		/* build must achieve that AB - although unchanged - behaves differently. */
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+		
+		IJavaProject project = JavaCore.create(env.getProject("Project"));
+		OTLaunchEnvironment launcher = new OTLaunchEnvironment(
+				env.getWorkspaceRootPath(),
+				project.getOutputLocation());
+		Object result = launcher.launch("p.AB", "test");
+		assertEquals("OK", result);
+		// cleanup:
+		launcher = null;
+		result = null;
+		System.gc();
+	}
+	
+	/*
+	 * The body of a tsuper role is modified -- three levels.
+	 */
+	public void testModifyTSuperRole3() throws Exception {
+		System.out.println("***** testModifyTSuperRole3() *****");
+		IPath projectPath = env.addProject("Project");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide 
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"   protected class R {\n" +
+			"       String bar() { \n" +
+			"          return \"NOK\";\n"+
+			"       }\n"+
+			"}}");
+
+		env.addClass(root, "p", "AB", 
+				"package p;	\n"+
+				"public team class AB extends AA {}");
+		
+		env.addClass(root, "p", "AC",
+			"package p;	\n"+
+			"public team class AC extends AB {\n"+
+			"   protected class R {\n"+
+			"       protected String foo() { return this.bar(); }\n"+
+			"   }\n"+
+			"   public static String test() {\n"+
+			"      return new AC().new R().foo();\n"+
+			"   }\n"+
+			"}");
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* Change method R.bar() */
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {\n" +
+			"   protected class R {\n" +
+			"       String bar() { return \"OK\"; }\n"+
+			"}}");
+
+		/* build must achieve that AB - although unchanged - behaves differently. */
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+		
+		IJavaProject project = JavaCore.create(env.getProject("Project"));
+		OTLaunchEnvironment launcher = new OTLaunchEnvironment(
+				env.getWorkspaceRootPath(),
+				project.getOutputLocation());
+		Object result = launcher.launch("p.AC", "test");
+		assertEquals("OK", result);
+// cleanup:
+		launcher = null;
+		result = null;
+		System.gc();
+	}
+
+	/** A playedBy declaration is added to a super role file.
+	 *  Witness for NPE in RoleModel.getBaseclassAttributename. 
+	 */
+	public void testModifySuperRole1() throws JavaModelException {
+		System.out.println("***** testModifySuperRole1() *****");
+		IPath projectPath = env.addProject("Project"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, ""); 
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src"); 
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"}");
+
+		env.addClass(root, "p/AA", "R1",
+			"team package p.AA;\n"+
+			"protected class R1 {\n"+
+			"       void foo() { }\n"+
+			"}");
+
+		env.addClass(root, "p/AA", "R2",
+			"team package p.AA;\n"+
+			"protected class R2 extends R1 {\n"+
+			"       void bar() { this.foo(); }\n"+
+			"}");
+
+		env.addClass(root, "p", "B",
+			"package p;\n"+
+			"public class B {\n"+
+			"       void snafu() {}\n"+
+			"}");
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* add a playedBy declaration */
+		env.addClass(root, "p/AA", "R1",
+			"team package p.AA;\n"+
+			"protected class R1 playedBy B {\n"+
+			"       void foo() { }\n"+
+			"}");
+
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	
+	/** 
+	 * A sibling role is modified causing a binary role to fail generating callins. 
+	 */
+	public void testModifySiblingRole1() throws JavaModelException {
+		System.out.println("***** testModifySiblingRole1() *****");
+		IPath projectPath = env.addProject("Project"); 
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, ""); 
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src"); 
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "B",
+			"package p;\n"+
+			"public class B {\n"+
+			"       void snafu() {}\n"+
+		"}");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"}");
+
+		env.addClass(root, "p/AA", "R1",
+			"team package p.AA;\n"+
+			"protected class R1 playedBy B {\n"+
+			"       protected void foo() { }\n"+
+			"       foo <- after snafu;\n"+
+			"}");
+
+		env.addClass(root, "p/AA", "R2",
+			"team package p.AA;\n"+
+			"protected class R2 {\n"+
+			"       void bar() { new R1(new B()).foo(); }\n"+
+			"}");
+
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* change the method */
+		env.addClass(root, "p/AA", "R2",
+			"team package p.AA;\n"+
+			"protected class R2 {\n"+
+			"       void bar() {  }\n"+
+			"}");
+
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	
+	/*
+	 * The team with a role file is modified
+	 */
+	public void testModifyTeam1() throws Exception {
+		System.out.println("***** testModifyTeam1() *****");
+		IPath projectPath = env.addProject("Project", "1.5");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide
+		env.removePackageFragmentRoot(projectPath, ""); 
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "B", 
+				"package p;	\n"+   
+				"public class B {	\n"+  
+				"    String bar() { return \"NOK\"; }\n"+
+				"}");
+
+		env.addClass(root, "p", "AA", 
+			"package p;	\n"+   
+			"public team class AA {	\n"+  
+			"   public static String test() {\n"+
+			"        new AA();\n"+
+			"        return new B().bar();\n"+
+			"   }\n"+
+			"}");
+
+		env.addClass(root, "p.AA", "R",
+			"team package p.AA;	\n"+
+			"protected class R playedBy B {\n"+
+			"   @SuppressWarnings(\"basecall\")\n"+
+			"   callin String foo() { return \"OK\"; }\n"+
+			"   foo <- replace bar;\n"+  
+			"}"); 
+
+
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		/* add constructor */
+
+		env.addClass(root, "p", "AA", 
+			"package p;	\n"+   
+			"public team class AA {	\n"+  
+			"   public AA() { this.activate(); }\n"+
+			"   public static String test() {\n"+
+			"        new AA();\n"+
+			"        return new B().bar();\n"+
+			"   }\n"+
+			"}");
+
+		/* build must achieve that R - although unchanged - is compiled into AA. */
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+		
+		IJavaProject project = JavaCore.create(env.getProject("Project"));
+		OTLaunchEnvironment launcher = new OTLaunchEnvironment(
+				env.getWorkspaceRootPath(),
+				project.getOutputLocation(),
+				true /* useTransformer */);
+		Object result = launcher.launch("p.AA", "test");
+		assertEquals("OK", result);
+		// cleanup:
+		launcher = null;
+		result = null;
+		System.gc();
+	}
+	
+	public void testAddRoFiToCompiledTeam()
+		throws JavaModelException
+	{
+		System.out.println("***** testAddRoFiToCompiledTeam() *****");
+		IPath projectPath = env.addProject("Project");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide 
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"   protected class R {\n" +
+			"       String bar() { \n" +
+			"          return \"NOK\";\n"+
+			"       }\n"+
+			"}}");
+		
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		env.addClass(root, "p/AA", "ExtRole",
+				"team package p.AA;	\n"+
+				"public class ExtRole {	\n"+
+				"    public String ok() { \n" +
+				"       return \"NOK\";\n"+
+				"    }\n"+
+				"}");
+		
+		/* build must achieve that AA - although unchanged - is recompiled. */
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+
+		// same as above, just modify the contents:
+		IPath packagePath = root.append("p/AA");
+		env.addClass(packagePath, "ExtRole",
+				"team package p.AA;	\n"+
+				"public class ExtRole {	\n"+
+				"    public String ok() { \n" +
+				"       return \"OK\";\n"+
+				"    }\n"+
+				"}");
+		
+		/* build must(?) achieve that AA - although unchanged - is recompiled. */
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	
+	public void testAddRoFiToBrokenTeam()
+		throws JavaModelException
+	{
+		System.out.println("***** testAddRoFiToBrokenTeam() *****");
+		IPath projectPath = env.addProject("Project");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+	
+		// remove old package fragment root so that names don't collide 
+		env.removePackageFragmentRoot(projectPath, "");
+	
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+	
+		// a broken team:
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"   int abstract foo;// syntax error\n"+
+			"}");
+		
+		fullBuild(projectPath);
+		expectingProblemsFor(root);
+	
+		// add a role file:
+		env.addClass(root, "p/AA", "ExtRole",
+				"team package p.AA;	\n"+
+				"public class ExtRole {	\n"+
+				"    public String ok() { \n" +
+				"       return \"NOK\";\n"+
+				"    }\n"+
+				"}");
+		
+		/* build must achieve that errors in AA are detected again. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(root);
+		
+		/* also break role file: */
+		IPath rofi = env.addClass(root, "p/AA", "ExtRole",
+				"team package p.AA;	\n"+
+				"public class ExtRole {	\n"+
+				"    public String ok { // error \n" +
+				"       return \"NOK\";\n"+
+				"    }\n"+
+				"}");
+
+		/* now everything is broken. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(root);
+	
+		// correct the syntax error:
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+
+				"public team class AA {	\n"+
+				"   int foo() { return 0; }\n"+
+				"}");
+
+		/* build must detect that ExtRole still has an error. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(rofi);
+	}
+	
+	public void testBreakTeamWithRoFi()
+		throws JavaModelException
+	{
+		System.out.println("***** testBreakTeamWithRoFi() *****");
+		IPath projectPath = env.addProject("Project");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+	
+		// remove old package fragment root so that names don't collide 
+		env.removePackageFragmentRoot(projectPath, "");
+	
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+	
+		// team and role w/o errors:
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"    public void nop() { } \n" +
+			"}");
+
+		env.addClass(root, "p/AA", "ExtRole",
+				"team package p.AA;	\n"+
+				"public class ExtRole {	\n"+
+				"    public String ok() { \n" +
+				"       return \"OK\";\n"+
+				"    }\n"+
+				"}");
+		
+		fullBuild(projectPath);
+		expectingNoProblems();
+	
+		// introduce an error to the team:
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+
+				"public team class AA {	\n"+
+				"   int abstract nop();\n"+
+				"}");
+
+		/* build must achieve that AA - although unchanged - is recompiled. */
+		incrementalBuild(projectPath);
+		expectingProblemsFor(root);
+	
+	}
+
+	public void testRoFiExtendsInline()
+		throws JavaModelException
+	{
+		System.out.println("***** testRoFiExtendsInline() *****");
+		IPath projectPath = env.addProject("Project");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide 
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p", "AA",
+			"package p;	\n"+
+			"public team class AA {	\n"+
+			"   protected team class R {\n" +
+			"       String bar() { \n" +
+			"          return \"NOK\";\n"+
+			"       }\n"+
+			"}}");
+		// Note: declaring R as a nested team requires to process the predifined roles,
+		//       which caused a StackOverflowError previously.
+		
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		env.addClass(root, "p/AA", "ExtRole",
+				"team package p.AA;	\n"+
+				"public team class ExtRole extends R {\n"+
+				"    public String ok() { \n" +
+				"       return bar();\n"+
+				"    }\n"+
+				"}");
+		
+		// still OK.
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+
+		// same as above, just modify the contents:
+		env.addClass(root, "p", "AA",
+				"package p;	\n"+
+				"public team class AA {	\n"+
+				"   protected team class R {\n" +
+				"       String bar() { \n" +
+				"          return \"OK\";\n"+
+				"       }\n"+
+				"}}");
+		
+		// no reason why this should find problems.
+		incrementalBuild(projectPath);
+		expectingNoProblems();
+	}
+	// see http://trac.objectteams.org/ot/ticket/89
+	public void testRemoveBoundBaseMethod() 	
+			throws JavaModelException
+	{
+		System.out.println("***** testRemoveBoundBaseMethod() *****");
+		IPath projectPath = env.addProject("Project", "1.5");
+		env.addExternalJars(projectPath, Util.getJavaClassLibs());
+		env.addExternalJar(projectPath, OTRE_JAR_PATH);
+
+		// remove old package fragment root so that names don't collide 
+		env.removePackageFragmentRoot(projectPath, "");
+
+		IPath root = env.addPackageFragmentRoot(projectPath, "src");
+		env.setOutputFolder(projectPath, "bin");
+
+		env.addClass(root, "p0", "Base",
+			"package p0;	\n"+
+			"public class Base {	\n"+
+			"   public void foo() {}\n"+
+			"}");
+		IPath pathToT1= env.addClass(root, "p", "T1",
+				"package p;	\n"+
+				"import base p0.Base;\n"+
+				"public team class T1 {	\n"+
+				"   protected class R playedBy Base {\n" +
+				"       void bar() { } \n" +
+				"       bar <- after foo;\n"+
+				"   }\n"+
+				"}");
+		
+		fullBuild(projectPath);
+		expectingNoProblems();
+
+		// remove foo():
+		env.addClass(root, "p0", "Base",
+				"package p0;	\n"+
+				"public class Base {	\n"+
+				"}");
+
+		env.addClass(root, "p", "T2",
+				"package p;	\n"+
+				"public team class T2 extends T1 {}");
+		
+		// must detect, that callin binding in T1 is now invalid
+		incrementalBuild(projectPath);
+		expectingProblemsFor(pathToT1);
+		expectingSpecificProblemFor(pathToT1, new Problem("", "No method foo found in type p0.Base to resolve method designator (OTJLD 4.1(c)).", pathToT1, 137, 140, CategorizedProblem.CAT_MEMBER, IMarker.SEVERITY_ERROR)); 
+
+		// restore:
+		env.addClass(root, "p0", "Base",
+				"package p0;	\n"+
+				"public class Base {	\n"+
+				"   public void foo() {}\n"+
+				"}");
+		fullBuild(projectPath);
+		expectingNoProblems();
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTBuilderTests.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTBuilderTests.java
new file mode 100644
index 0000000..f1bb882
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTBuilderTests.java
@@ -0,0 +1,74 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.tests.builder.BuilderTests;
+import org.eclipse.jdt.core.tests.builder.Problem;
+import org.eclipse.objectteams.otdt.internal.compiler.adaptor.BuildManager;
+import org.eclipse.objectteams.otdt.core.ext.OTDTPlugin;
+
+public class OTBuilderTests extends BuilderTests {
+
+	public static final String OT_RUNTIME_PATH;
+	public static final String OTRE_JAR_PATH;
+	static {
+		OT_RUNTIME_PATH = JavaCore.getClasspathVariable(OTDTPlugin.OTDT_INSTALLDIR).toOSString();
+		OTRE_JAR_PATH = OT_RUNTIME_PATH 
+						+ File.separator
+						+ "lib" //$NON-NLS-1$
+						+ File.separator
+						+ "otre.jar"; //$NON-NLS-1$
+	}
+
+	public OTBuilderTests(String name) {
+		super(name);
+	}
+
+	/** Sets up this test.
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		super.setUp();
+		
+		env = new OTTestingEnvironment();
+		env.openEmptyWorkspace();
+		env.resetWorkspace();
+	
+		BuildManager.DEBUG = 2;
+	}
+
+	/** Verifies that the given element has problems.
+	 * Old implementation from BuilderTests
+	 */
+	protected void expectingProblemsFor(IPath expected) {
+		if (DEBUG)
+			printProblemsFor(expected);
+	
+		/* get the leaf problems for this type */
+		Problem[] problems = env.getProblemsFor(expected);
+		assertTrue("missing expected problem with " + expected.toString(), problems.length > 0); //$NON-NLS-1$
+	}
+
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
new file mode 100644
index 0000000..6d8f3b9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
@@ -0,0 +1,380 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import junit.framework.Test;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.compiler.CategorizedProblem;
+import org.eclipse.jdt.core.tests.builder.Problem;
+import org.eclipse.jdt.internal.core.JavaCorePreferenceInitializer;
+import org.eclipse.jdt.internal.core.JavaModelManager;
+import org.eclipse.objectteams.otdt.tests.FileBasedTest;
+
+@SuppressWarnings({ "nls", "restriction" })
+public class OTEquinoxBuilderTests extends OTBuilderTests {
+
+	MyFileBasedTest fileManager= new MyFileBasedTest("delegate");
+	class MyFileBasedTest extends FileBasedTest {
+		public MyFileBasedTest(String name) {
+			super(name);
+		}
+		@Override
+		protected String getPluginID() {
+			return "org.eclipse.objectteams.otdt.test.builder"; 
+		}
+		@Override // make available locally:
+		protected IJavaProject setUpJavaProject(String projectName) throws CoreException, IOException 
+		{
+			return super.setUpJavaProject(projectName);
+		}
+		protected void replaceWorkspaceFile(String src, IJavaProject project, String dest)
+			throws IOException, CoreException 
+		{
+			File srcFile = new File(getPluginDirectoryPath()+File.separator+"workspace"+File.separator+src);
+			IFile destFile= project.getProject().getFile(dest);
+			destFile.setContents(new FileInputStream(srcFile), true, false, null);
+		}
+	};
+	
+//	static {
+//		TESTS_NAMES = new String[] { "testBaseImportTrac304"};
+//	}
+	public OTEquinoxBuilderTests(String name) {
+		super(name);
+	}
+
+	public static Test suite() {
+		if (true) {
+			return buildTestSuite(OTEquinoxBuilderTests.class);
+		}
+		return new OTEquinoxBuilderTests("testBaseImportTwoAspectBindings");
+	}
+	
+	@Override
+	protected void setUp() throws Exception {
+		super.setUp();
+		env.setAutoBuilding(false);
+		
+		DEBUG = true;
+
+	}
+	
+	IProject reopenProject(String projectName) throws CoreException {
+		final IProject project = fileManager.getWorkspaceRoot().getProject(projectName);
+		IWorkspaceRunnable populate = new IWorkspaceRunnable() {
+			public void run(IProgressMonitor monitor) throws CoreException {
+				//project.create(null);
+				project.open(null);
+			}
+		};
+		fileManager.getWorkspace().run(populate, null);
+		env.addProject(project);
+		return project;
+	}
+
+	public void testForcedExports() throws CoreException, IOException {
+		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
+		env.addProject(trac18b.getProject());
+		IJavaProject trac18a= fileManager.setUpJavaProject("Trac18a"); 
+		env.addProject(trac18a.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingOnlySpecificProblemsFor(trac18a.getPath(), new Problem[] {
+			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 42, 70),   // import
+			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 199, 211), // playedBy
+		});
+		// after success now break it:
+		fileManager.replaceWorkspaceFile("Trac18a2/plugin.xml", trac18a, "plugin.xml");
+		incrementalBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectAccessRestriction(trac18a, "src/trac18a/Team18.java", 42, 70);
+	}
+
+	public void testForcedExportsMissing() throws CoreException, IOException {
+		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
+		env.addProject(trac18b.getProject());
+		IJavaProject trac18a= fileManager.setUpJavaProject("Trac18a2"); 
+		env.addProject(trac18a.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectAccessRestriction(trac18a, "src/trac18a/Team18.java", 42, 70);
+		// fix the error
+		fileManager.replaceWorkspaceFile("Trac18a/plugin.xml", trac18a, "plugin.xml");
+		incrementalBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingOnlySpecificProblemsFor(trac18a.getPath(), new Problem[] {
+			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 42, 70),
+			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 163, 175),
+		});
+	}
+	
+	/* project Trac18a3 contains a base-ctor call and a callout binding,
+	 * both referring to the force-exported base class.*/
+	public void testForcedExportsGeneratedMethodRefs() throws CoreException, IOException {
+		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
+		env.addProject(trac18b.getProject());
+		IJavaProject trac18a= fileManager.setUpJavaProject("Trac18a3"); 
+		env.addProject(trac18a.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingOnlySpecificProblemsFor(trac18a.getPath(), new Problem[] {
+			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 42, 70),
+			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 163, 175),
+			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 201, 205) // location of the base-ctor call.
+		});
+	}
+	/* trying to produce a broken and bogus error message a la Trac #154 (no success yet). */
+	public void testForcedExportTrac154() throws CoreException, IOException {
+		IJavaProject trac154b1= fileManager.setUpJavaProject("Trac154b1"); 
+		env.addProject(trac154b1.getProject());
+		IJavaProject trac154b2= fileManager.setUpJavaProject("Trac154b2"); 
+		env.addProject(trac154b2.getProject());
+		IJavaProject trac154a= fileManager.setUpJavaProject("Trac154a"); 
+		env.addProject(trac154a.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac154b1.getPath());
+		expectingNoProblemsFor(trac154b2.getPath());
+		expectingOnlySpecificProblemsFor(trac154a.getPath(), new Problem[] {
+			getDecapsulationProblem(trac154a, "trac154b1.actions.SampleAction", "aspect/MyTeam.java", 29, 59),
+			getDecapsulationProblem(trac154a, "trac154b1.actions.SampleAction", "aspect/MyTeam.java", 118, 130)
+		});
+	}
+
+	public void testBaseImportNoAspectBinding () throws CoreException, IOException {
+		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
+		env.addProject(trac18b.getProject());
+		IJavaProject aspectPlugin= fileManager.setUpJavaProject("MissingAspectBinding"); 
+		aspectPlugin.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingOnlySpecificProblemsFor(aspectPlugin.getPath(), new Problem[] {
+			new Problem("", "Illegal base import: no aspect binding declared for team MissingAspectBindingTeam (OT/Equinox).",
+						aspectPlugin.getPath().append(new Path("src/MissingAspectBindingTeam.java")),
+						12, 34,
+						CategorizedProblem.CAT_CODE_STYLE, IMarker.SEVERITY_ERROR)
+		});
+		// now fix it:
+		fileManager.replaceWorkspaceFile("MissingAspectBinding/plugin-corrected.xml", aspectPlugin, "plugin.xml");
+		incrementalBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingNoProblemsFor(aspectPlugin.getPath());
+	}
+	
+	/* Two aspect bindings refer to the same team, which has base imports referring to two different base bundles. */
+	public void testBaseImportTwoAspectBindings () throws CoreException, IOException {
+		IJavaProject trac213b1= fileManager.setUpJavaProject("Trac213b1"); 
+		env.addProject(trac213b1.getProject());
+		IJavaProject trac213b2= fileManager.setUpJavaProject("Trac213b2"); 
+		env.addProject(trac213b2.getProject());
+		fullBuild();
+		
+		// initially only an empty team
+		IJavaProject aspectPlugin= fileManager.setUpJavaProject("Trac213a"); 
+		aspectPlugin.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin.getProject());
+		fullBuild();
+		
+		// now add content to the team, binding to Trac213b1:
+		fileManager.replaceWorkspaceFile("Trac213a/aux/TheTeam_step1.java", aspectPlugin, "src/trac213a/TheTeam.java");
+		
+		incrementalBuild();
+		expectingNoProblemsFor(trac213b1.getPath());
+		expectingNoProblemsFor(trac213b2.getPath());
+		expectingNoProblemsFor(aspectPlugin.getPath());
+
+		// now add content to the team, binding to Trac213b2:
+		fileManager.replaceWorkspaceFile("Trac213a/aux/plugin_step2.xml", aspectPlugin, "plugin.xml");
+		fileManager.replaceWorkspaceFile("Trac213a/aux/TheTeam_step2.java", aspectPlugin, "src/trac213a/TheTeam.java");
+		
+		incrementalBuild();
+		expectingNoProblemsFor(trac213b1.getPath());
+		expectingNoProblemsFor(trac213b2.getPath());
+		expectingNoProblemsFor(aspectPlugin.getPath());
+	}
+	
+	public void testWrongBaseImport1() throws CoreException, IOException {
+		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
+		env.addProject(trac18b.getProject());
+		IJavaProject aspectPlugin= fileManager.setUpJavaProject("WrongBaseImport1"); 
+		aspectPlugin.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingOnlySpecificProblemsFor(aspectPlugin.getPath(), new Problem[] {
+			new Problem("", "Illegal base import: this package is not provided by the declared base plug-in(s) Trac18b (OT/Equinox).",
+						aspectPlugin.getPath().append(new Path("src/WrongBaseImportTeam1.java")),
+						12, 55,
+						CategorizedProblem.CAT_CODE_STYLE, IMarker.SEVERITY_ERROR)
+		});		
+	}
+
+	public void testWrongBaseImport2() throws CoreException, IOException {
+		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
+		env.addProject(trac18b.getProject());
+		IJavaProject aspectPlugin= fileManager.setUpJavaProject("WrongBaseImport2"); 
+		aspectPlugin.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingOnlySpecificProblemsFor(aspectPlugin.getPath(), new Problem[] {
+			new Problem("", "Illegal base import: this package is not provided by the declared base plug-in org.eclipse.objectteams.otequinox but by plug-in Trac18b (OT/Equinox).",
+						aspectPlugin.getPath().append(new Path("src/WrongBaseImportTeam2.java")),
+						12, 34,
+						CategorizedProblem.CAT_TYPE, IMarker.SEVERITY_ERROR)
+		});		
+	}
+
+	public void testBaseImportTrac132 () throws CoreException, IOException {
+		IJavaProject trac132b= fileManager.setUpJavaProject("Trac132b"); 
+		env.addProject(trac132b.getProject());
+		IJavaProject aspectPlugin1= fileManager.setUpJavaProject("Trac132a1"); 
+		aspectPlugin1.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin1.getProject());
+		IJavaProject aspectPlugin2= fileManager.setUpJavaProject("Trac132a2"); 
+		aspectPlugin2.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin2.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac132b.getPath());
+		expectingNoProblemsFor(aspectPlugin1.getPath());
+		expectingNoProblemsFor(aspectPlugin2.getPath());
+	}
+
+	public void testBaseImportTrac304 () throws CoreException, IOException {
+		IJavaProject trac304b= fileManager.setUpJavaProject("Trac304b"); 
+		env.addProject(trac304b.getProject());
+		// the fragment:
+		IJavaProject trac304f= fileManager.setUpJavaProject("Trac304f"); 
+		env.addProject(trac304f.getProject());
+		IJavaProject trac304ot= fileManager.setUpJavaProject("Trac304ot"); 
+		trac304ot.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(trac304ot.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac304b.getPath());
+		expectingNoProblemsFor(trac304ot.getPath());
+	}
+
+	public void testIllegalUseOfForcedExport() throws CoreException, IOException {
+		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
+		env.addProject(trac18b.getProject());
+		IJavaProject aspectPlugin= fileManager.setUpJavaProject("IllegalUseOfForcedExport"); 
+		aspectPlugin.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac18b.getPath());
+		expectingOnlySpecificProblemsFor(aspectPlugin.getPath(), 
+				new Problem[] {
+					getIllegalUseOfForcedExportProblem(aspectPlugin, "trac18b.actions.SampleAction", 88, 100),
+					getIllegalUseOfForcedExportProblem(aspectPlugin, "trac18b.actions.SampleAction", 7, 35)});
+	}
+
+	public void testAccumulatedBases1() throws CoreException, IOException {
+		IJavaProject project= fileManager.setUpJavaProject("AccumulatedBases"); 
+		project.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(project.getProject());
+		fullBuild();
+		expectingNoProblemsFor(project.getPath());
+		fileManager.replaceWorkspaceFile("AccumulatedBases/versions/Team1.java.1", project, "src/accumulatedbases/Team1.java");
+		incrementalBuild();
+		expectingNoProblemsFor(project.getPath());
+	}
+	
+	// NOTE: run this as the last test here, because I haven't figured out how to
+	//       clean up after the simulated workbench restart.
+	public void testBaseImportTrac132_2 () throws CoreException, IOException {
+		IJavaProject trac132b= fileManager.setUpJavaProject("Trac132b"); 
+		env.addProject(trac132b.getProject());
+		IJavaProject aspectPlugin1= fileManager.setUpJavaProject("Trac132a1"); 
+		aspectPlugin1.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin1.getProject());
+		IJavaProject aspectPlugin2= fileManager.setUpJavaProject("Trac132a2"); 
+		aspectPlugin2.setOption("org.eclipse.objectteams.otdt.compiler.problem.binding_conventions", "error");
+		env.addProject(aspectPlugin2.getProject());
+		fullBuild();
+		expectingNoProblemsFor(trac132b.getPath());
+		expectingNoProblemsFor(aspectPlugin1.getPath());
+		expectingNoProblemsFor(aspectPlugin2.getPath());
+		
+		// not needed.
+//		JavaModelManager.getJavaModelManager().removePerProjectInfo((JavaProject) trac132b);
+//		JavaModelManager.getJavaModelManager().removePerProjectInfo((JavaProject) aspectPlugin1);
+//		JavaModelManager.getJavaModelManager().removePerProjectInfo((JavaProject) aspectPlugin2);
+
+		// doesn't work see :
+		//ResourcesPlugin.getPlugin().getBundle().stop();
+		//ResourcesPlugin.getPlugin().getBundle().start();
+		
+		// simulate shutdown (from AbstractJavaModelTests.simulateExitRestart:
+		env.getWorkspace().save(true, null);
+		JavaModelManager.getJavaModelManager().shutdown();
+		JavaModelManager.doNotUse(); // reset the MANAGER singleton
+		JavaModelManager.getJavaModelManager().startup();
+		new JavaCorePreferenceInitializer().initializeDefaultPreferences();
+		
+
+		env.openEmptyWorkspace();
+		env.setAutoBuilding(true);
+		
+		trac132b= JavaCore.create(reopenProject("Trac132b"));
+		aspectPlugin1= JavaCore.create(reopenProject("Trac132a1"));
+		aspectPlugin2= JavaCore.create(reopenProject("Trac132a2"));
+		env.addClass(new Path("/Trac132a2/src"), "Dummy", "public class Dummy {}"); // trigger minimal build
+		incrementalBuild();
+		expectingNoProblemsFor(trac132b.getPath());
+		expectingNoProblemsFor(aspectPlugin1.getPath());
+		expectingNoProblemsFor(aspectPlugin2.getPath());
+	}
+
+	// ---------------- HELPERS: ---------------------------
+	private Problem getDecapsulationProblem(IJavaProject project, String baseclassName, String teamPath, int start, int end) {
+		return new Problem("", "Decapsulating base class "+baseclassName+" by means of a forced export. Note, that additionally a corresponing declaration is needed in config.ini (OTJLD 2.1.2(c) + OT/Equinox).",
+				project.getPath().append(new Path("src/"+teamPath)), 
+				start, end,
+				CategorizedProblem.CAT_RESTRICTION, IMarker.SEVERITY_WARNING);
+	}
+	private Problem getIllegalUseOfForcedExportProblem(IJavaProject project, String className, int start, int end) {
+		return new Problem("", "The forced-exported type "+className+" cannot be accessed other than as a role's base class (OT/Equinox).",
+				project.getPath().append(new Path("src/IllegalUseOfForcedExportTeam.java")), 
+				start, end,
+				CategorizedProblem.CAT_TYPE, IMarker.SEVERITY_ERROR);
+	}
+	private void expectAccessRestriction(IJavaProject project, String fileName, int start, int end) {
+		expectingSpecificProblemFor(project.getPath(), 
+			new Problem("", "Access restriction: The type SampleAction is not accessible due to restriction on required project Trac18b",
+						project.getPath().append(new Path(fileName)), 
+						start, end, 
+						CategorizedProblem.CAT_RESTRICTION, IMarker.SEVERITY_ERROR)
+		);
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTLaunchEnvironment.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTLaunchEnvironment.java
new file mode 100644
index 0000000..ad2861a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTLaunchEnvironment.java
@@ -0,0 +1,118 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.objectteams.otdt.core.ext.OTREContainer;
+import org.eclipse.objectteams.otre.jplis.ObjectTeamsTransformer;
+
+/**
+ * Utility class for launching a program in a controlled environment.
+ * Disposing the application's object and the OTLaunchEnvironment
+ * should enable the JVM to also dispose all classes loaded in the process.
+ * 
+ * @author stephan
+ * @version $Id: OTLaunchEnvironment.java 14220 2006-09-04 22:13:40Z stephan $
+ */
+public class OTLaunchEnvironment extends URLClassLoader 
+{
+	ObjectTeamsTransformer transformer = null;
+	/** Where to look for class files. */
+	IPath bindir;
+	/**
+	 * Setup a launch environment for the given paths. 
+	 * @param workspaceRoot path to the workspace root
+	 * @param bindir        absolute workspace path to the output location holding class files.
+	 * @throws MalformedURLException if the OTRE_JAR_PATH is not a valid path.
+	 */
+	OTLaunchEnvironment(IPath workspaceRoot, IPath bindir) throws MalformedURLException {
+		super(new URL[]{getOTREURL()});
+		this.bindir = workspaceRoot.append(bindir);
+	}
+	/**
+	 * Same as above but supports the use of OTRE transformers, if `useTransformer == true'  
+	 */
+	OTLaunchEnvironment(IPath workspaceRoot, IPath bindir, boolean useTransformer) 
+			throws MalformedURLException 
+	{
+		this(workspaceRoot, bindir);
+		if (useTransformer)
+			this.transformer = new ObjectTeamsTransformer();
+	}
+	
+	static URL getOTREURL() throws MalformedURLException {
+		IClasspathEntry[] entries = new OTREContainer().getClasspathEntries();
+		return new URL("file:"+entries[0].getPath()); //$NON-NLS-1$
+	}
+	@Override
+	protected Class<?> findClass(String name) throws ClassNotFoundException {
+		String fileName = name.replace('.', File.separatorChar)+".class"; //$NON-NLS-1$
+		File file = new File(bindir.append(fileName).toOSString());
+		if (file.exists()) {
+			try {
+				return defineClassFromFile(name, file);
+			} catch (Exception e) {
+				// we have a file but it was invalid, don't continue
+				throw new ClassNotFoundException(name);
+			}
+		}
+		// this will use the URL pointing to the OTRE:
+		return super.findClass(name);
+	}
+	
+	/* We found an existing file, load its bytes and define the class. */
+	private Class<?> defineClassFromFile(String name, File file) 
+		throws Exception 
+	{
+		FileInputStream fis = new FileInputStream(file);
+		byte[] bytes = new byte[(int) file.length()];
+		fis.read(bytes);
+		if (transformer != null) 
+			bytes = transformer.transform(this, name, null, null, bytes);
+		return defineClass(name, bytes, 0, bytes.length);
+	}
+	
+	/**
+	 * Load class `className' and invoke its method `methodName'.
+	 * The method must be static and without arguments.
+	 *  
+	 * @param className
+	 * @param methodName
+	 * @return the methods return (possibly boxed).
+	 * 
+	 * @throws Exception too many to list explicitly ;-)
+	 */
+	public Object launch(String className, String methodName) 
+			throws Exception 
+	{
+		Class clazz = this.loadClass(className);
+		Method method = clazz.getMethod(methodName, new Class[0]);		
+		return method.invoke(null, new Object[0]);
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTTestingEnvironment.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTTestingEnvironment.java
new file mode 100644
index 0000000..fdb86e4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTTestingEnvironment.java
@@ -0,0 +1,42 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.test.builder;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.tests.builder.TestingEnvironment;
+
+public class OTTestingEnvironment extends TestingEnvironment {
+
+	@Override // in order to set OT nature: // FIXME: request jdt.method to become protected or use a role for overriding
+	protected void addBuilderSpecs(String projectName) {
+		try {
+			IProject project = getProject(projectName);
+			IProjectDescription description = project.getDescription();
+			description.setNatureIds(new String[] { JavaCore.NATURE_ID, JavaCore.OTJ_NATURE_ID });
+			project.setDescription(description, null);
+		} catch (CoreException e) {
+			handleCoreException(e);
+		}
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/test.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/test.xml
new file mode 100644
index 0000000..ce5ba19
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/test.xml
@@ -0,0 +1,65 @@
+<project name="testsuite" default="run" basedir=".">

+

+	<property name="otdt-tests-workspace" value="${test.eclipseDir}/otdt-tests-workspace"/>

+

+	<!-- library.xml need these properties-->

+	<property name="eclipse-home" value="${test.eclipseDir}"/>

+	<property name="test.target" value="performance"/>	

+	

+	<!-- sets the properties eclipseTest-home, and library-file -->

+	<property name="plugin-name" value="org.eclipse.objectteams.otdt.test.builder"/>

+

+	<property name="library-file" value="${test.eclipseDir}/plugins/${org.eclipse.test}/library.xml"/>

+

+	<!-- This target holds all initialization code that needs to be done for -->

+	<!-- all tests that are to be run. Initialization for individual tests -->

+	<!-- should be done within the body of the suite target. -->

+	<target name="init">

+		<tstamp/>

+		<delete>

+			<fileset dir="${test.eclipseDir}" includes="org.eclipse.objectteams.otdt.test.builder.AllTests.xml,${plugin-name}.${file-id}.xml"/>

+		</delete>

+

+	</target>

+

+	<!-- This target defines the tests that need to be run. -->

+	<target name="suite">

+

+		<!-- OTDT Non UI tests -->

+		<property name="otdt-builder-folder" 

+              value="${otdt-tests-workspace}/otdt-builder-folder"/>

+		<delete dir="${otdt-nonUI-folder}" quiet="true"/>

+

+		<ant target="core-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-builder-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" value="org.eclipse.objectteams.otdt.test.builder.AllTests"/>

+		</ant>

+

+	</target>

+

+	<target name="checkOS">

+		<condition property="os.isWindows">

+			<os family="windows"/>

+		</condition>

+	</target>

+

+	<!-- This target holds code to cleanup the testing environment after -->

+	<!-- after all of the tests have been run. You can use this target to -->

+	<!-- delete temporary files that have been created. -->

+	<target name="cleanup">

+

+	</target>

+

+	<!-- This target runs the test suite. Any actions that need to happen -->

+	<!-- after all the tests have been run should go here. -->

+	<target name="run" depends="init,suite,cleanup">

+<!--

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="org.eclipse.objectteams.otdt.test.builder.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.${file-id}.xml"/>

+		</ant>

+-->

+	</target>

+

+</project>

diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.classpath
new file mode 100644
index 0000000..cee6929
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.project
new file mode 100644
index 0000000..1df9d7c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>AccumulatedBases</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..9e5f077
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Sun Aug 03 18:01:18 CEST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a45de4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: AccumulatedBases Plug-in
+Bundle-SymbolicName: AccumulatedBases;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.debug.ui,
+ org.eclipse.objectteams.otequinox,
+ org.eclipse.jdt.debug.ui,
+ org.eclipse.jdt.junit
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/build.properties
new file mode 100644
index 0000000..e9863e2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/plugin.xml
new file mode 100644
index 0000000..8edcf89
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/plugin.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="org.eclipse.debug.ui">
+         </basePlugin>
+         <team
+               class="accumulatedbases.Team1"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="org.eclipse.jdt.debug.ui">
+         </basePlugin>
+         <team
+               class="accumulatedbases.Team2"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif"
+               superclass="accumulatedbases.Team1">
+         </team>
+      </aspectBinding>
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="org.eclipse.jdt.junit">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="accumulatedbases.Team3"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif"
+               superclass="accumulatedbases.Team2">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team1.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team1.java
new file mode 100644
index 0000000..e657aaa
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team1.java
@@ -0,0 +1,10 @@
+package accumulatedbases;
+
+import base org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
+
+public team class Team1 {
+	protected class R1 playedBy AbstractLaunchConfigurationTabGroup {
+		
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team2.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team2.java
new file mode 100644
index 0000000..f50ef08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team2.java
@@ -0,0 +1,8 @@
+package accumulatedbases;
+
+import base org.eclipse.jdt.internal.debug.ui.launcher.LocalJavaApplicationTabGroup;
+
+@SuppressWarnings("restriction")
+public team class Team2 extends Team1 {
+	protected class R2 extends R1 playedBy LocalJavaApplicationTabGroup {}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team3.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team3.java
new file mode 100644
index 0000000..fb98912
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/src/accumulatedbases/Team3.java
@@ -0,0 +1,9 @@
+package accumulatedbases;
+
+import base org.eclipse.jdt.internal.junit.launcher.JUnitTabGroup;
+
+
+@SuppressWarnings("restriction")
+public team class Team3 extends Team2 {
+	protected class R3 extends R1 playedBy JUnitTabGroup {}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/versions/Team1.java.1 b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/versions/Team1.java.1
new file mode 100644
index 0000000..e1c4851
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/AccumulatedBases/versions/Team1.java.1
@@ -0,0 +1,11 @@
+package accumulatedbases;
+
+import base org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
+
+public team class Team1 
+{
+	protected class R1 playedBy AbstractLaunchConfigurationTabGroup {
+		
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/.project
new file mode 100644
index 0000000..27f1f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>IllegalUseOfForcedExport</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..ae01de6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test Illegal Use Of ForcedExport Plug-in
+Bundle-SymbolicName: IllegalUseOfForcedExport; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.objectteams.otequinox,
+ Trac18b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/build.properties
new file mode 100644
index 0000000..2b0d95b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/plugin.xml
new file mode 100644
index 0000000..641f08d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac18b">
+               <forcedExports>
+                  trac18b.actions
+               </forcedExports>
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="IllegalUseOfForcedExportTeam"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/src/IllegalUseOfForcedExportTeam.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/src/IllegalUseOfForcedExportTeam.java
new file mode 100644
index 0000000..8955968
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/IllegalUseOfForcedExport/src/IllegalUseOfForcedExportTeam.java
@@ -0,0 +1,5 @@
+import trac18b.actions.SampleAction;
+
+public team class IllegalUseOfForcedExportTeam {
+	SampleAction action;
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/.project
new file mode 100644
index 0000000..ea12513
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>MissingAspectBinding</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..7d974ed
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: TestNoAspectBinding Plug-in
+Bundle-SymbolicName: MissingAspectBinding; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.objectteams.otequinox,
+ Trac18b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/build.properties
new file mode 100644
index 0000000..2b0d95b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/plugin-corrected.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/plugin-corrected.xml
new file mode 100644
index 0000000..04dafdf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/plugin-corrected.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac18b">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="MissingAspectBindingTeam"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/plugin.xml
new file mode 100644
index 0000000..40a3556
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/plugin.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/src/MissingAspectBindingTeam.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/src/MissingAspectBindingTeam.java
new file mode 100644
index 0000000..81224ad
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/MissingAspectBinding/src/MissingAspectBindingTeam.java
@@ -0,0 +1,5 @@
+import base trac18b.api.PublicBase;
+
+public team class MissingAspectBindingTeam {
+	protected class R playedBy PublicBase {}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.project
new file mode 100644
index 0000000..377bf83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac132a1</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..509e627
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,3 @@
+#Sat Nov 10 00:41:15 CET 2007
+eclipse.preferences.version=1
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..9f1180c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac132 Aspect 1 Plug-in
+Bundle-SymbolicName: Trac132a1; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.objectteams.otequinox,
+ Trac132b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/plugin.xml
new file mode 100644
index 0000000..76e750f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac132b">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac132a1.Team132_1"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/src/trac132a1/Team132_1.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/src/trac132a1/Team132_1.java
new file mode 100644
index 0000000..f71ad09
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a1/src/trac132a1/Team132_1.java
@@ -0,0 +1,14 @@
+package trac132a1;
+
+import base trac132b.actions.SampleAction;
+import base trac132b.api.PublicBase;
+
+@SuppressWarnings("restriction")
+public team class Team132_1 {
+	protected class Action playedBy SampleAction {
+ 
+	}
+	protected class RoleOfPublic playedBy PublicBase {
+		
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.project
new file mode 100644
index 0000000..8ba3fce
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac132a2</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..509e627
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,3 @@
+#Sat Nov 10 00:41:15 CET 2007
+eclipse.preferences.version=1
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1bc8e3a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac132 Aspect 2 Plug-in
+Bundle-SymbolicName: Trac132a2; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.objectteams.otequinox,
+ Trac132b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/plugin.xml
new file mode 100644
index 0000000..51021b1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac132b">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac132a2.Team132_2"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/src/trac132a2/Team132_2.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/src/trac132a2/Team132_2.java
new file mode 100644
index 0000000..611735d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132a2/src/trac132a2/Team132_2.java
@@ -0,0 +1,14 @@
+package trac132a2;
+
+import base trac132b.actions.SampleAction;
+import base trac132b.api.PublicBase;
+
+@SuppressWarnings("restriction")
+public team class Team132_2 {
+	protected class Action playedBy SampleAction {
+ 
+	}
+	protected class RoleOfPublic playedBy PublicBase {
+		
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/.classpath
new file mode 100644
index 0000000..751c8f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/.project
new file mode 100644
index 0000000..ea3db2a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac132b</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..ac53ef5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac132 Base Plug-in
+Bundle-SymbolicName: Trac132b; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui
+Export-Package: trac132b.api,
+ trac132b.actions;x-internal:=true
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/plugin.xml
new file mode 100644
index 0000000..5910717
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/plugin.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.actionSets">
+      <actionSet
+            label="Sample Action Set"
+            visible="true"
+            id="Trac132b.actionSet">
+         <menu
+               label="Sample &amp;Menu"
+               id="sampleMenu">
+            <separator
+                  name="sampleGroup">
+            </separator>
+         </menu>
+         <action
+               label="&amp;Sample Action"
+               icon="icons/sample.gif"
+               class="trac132b.actions.SampleAction"
+               tooltip="Hello, Eclipse world"
+               menubarPath="sampleMenu/sampleGroup"
+               toolbarPath="sampleGroup"
+               id="trac132b.actions.SampleAction">
+         </action>
+      </actionSet>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/src/trac132b/actions/SampleAction.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/src/trac132b/actions/SampleAction.java
new file mode 100644
index 0000000..0c1a7ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/src/trac132b/actions/SampleAction.java
@@ -0,0 +1,64 @@
+package trac132b.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate.
+ * The action proxy will be created by the workbench and
+ * shown in the UI. When the user tries to use the action,
+ * this delegate will be created and execution will be 
+ * delegated to it.
+ * @see IWorkbenchWindowActionDelegate
+ */
+public class SampleAction implements IWorkbenchWindowActionDelegate {
+	private IWorkbenchWindow window;
+	/**
+	 * The constructor.
+	 */
+	public SampleAction() {
+	}
+
+	/**
+	 * The action has been activated. The argument of the
+	 * method represents the 'real' action sitting
+	 * in the workbench UI.
+	 * @see IWorkbenchWindowActionDelegate#run
+	 */
+	public void run(IAction action) {
+		MessageDialog.openInformation(
+			window.getShell(),
+			"Trac132b Plug-in",
+			"Hello, Eclipse world");
+	}
+
+	/**
+	 * Selection in the workbench has been changed. We 
+	 * can change the state of the 'real' action here
+	 * if we want, but this can only happen after 
+	 * the delegate has been created.
+	 * @see IWorkbenchWindowActionDelegate#selectionChanged
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+	}
+
+	/**
+	 * We can use this method to dispose of any system
+	 * resources we previously allocated.
+	 * @see IWorkbenchWindowActionDelegate#dispose
+	 */
+	public void dispose() {
+	}
+
+	/**
+	 * We will cache window object in order to
+	 * be able to provide parent shell for the message dialog.
+	 * @see IWorkbenchWindowActionDelegate#init
+	 */
+	public void init(IWorkbenchWindow window) {
+		this.window = window;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/src/trac132b/api/PublicBase.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/src/trac132b/api/PublicBase.java
new file mode 100644
index 0000000..b193459
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac132b/src/trac132b/api/PublicBase.java
@@ -0,0 +1,5 @@
+package trac132b.api;
+
+public class PublicBase {
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.classpath
new file mode 100644
index 0000000..c24f8de
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.project
new file mode 100644
index 0000000..3d731b8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac154a</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..d742631
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Mon Oct 27 18:58:23 CET 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..bf7729a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac154 aspect Plug-in
+Bundle-SymbolicName: Trac154a;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: Trac154b1;bundle-version="1.0.0",
+ org.eclipse.objectteams.otequinox,
+ org.eclipse.ui
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/build.properties
new file mode 100644
index 0000000..e9863e2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/plugin.xml
new file mode 100644
index 0000000..d73e081
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac154b1">
+            <forcedExports>
+               trac154b1.actions
+            </forcedExports>
+         </basePlugin>
+         <team
+               class="aspect.MyTeam"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/src/aspect/MyTeam.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/src/aspect/MyTeam.java
new file mode 100644
index 0000000..7bf9efe
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154a/src/aspect/MyTeam.java
@@ -0,0 +1,9 @@
+package aspect;
+
+import base trac154b1.actions.SampleAction;
+
+public team class MyTeam {
+
+	protected class R playedBy SampleAction {}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.project
new file mode 100644
index 0000000..a59d0d8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac154b1</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..98b75e0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Mon Oct 27 18:55:23 CET 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1296dad
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac154 base Plug-in 1
+Bundle-SymbolicName: Trac154b1; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: trac154b1.actions
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/icons/sample.gif b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/icons/sample.gif
new file mode 100644
index 0000000..34fb3c9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/icons/sample.gif
Binary files differ
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/plugin.xml
new file mode 100644
index 0000000..b45bc2d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/plugin.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.actionSets">
+      <actionSet
+            label="Sample Action Set"
+            visible="true"
+            id="Trac154b1.actionSet">
+         <menu
+               label="Sample &amp;Menu"
+               id="sampleMenu">
+            <separator
+                  name="sampleGroup">
+            </separator>
+         </menu>
+         <action
+               label="&amp;Sample Action"
+               icon="icons/sample.gif"
+               class="trac154b1.actions.SampleAction"
+               tooltip="Hello, Eclipse world"
+               menubarPath="sampleMenu/sampleGroup"
+               toolbarPath="sampleGroup"
+               id="trac154b1.actions.SampleAction">
+         </action>
+      </actionSet>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/src/trac154b1/actions/SampleAction.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/src/trac154b1/actions/SampleAction.java
new file mode 100644
index 0000000..fd6ec4f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b1/src/trac154b1/actions/SampleAction.java
@@ -0,0 +1,64 @@
+package trac154b1.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate.
+ * The action proxy will be created by the workbench and
+ * shown in the UI. When the user tries to use the action,
+ * this delegate will be created and execution will be 
+ * delegated to it.
+ * @see IWorkbenchWindowActionDelegate
+ */
+public class SampleAction implements IWorkbenchWindowActionDelegate {
+	private IWorkbenchWindow window;
+	/**
+	 * The constructor.
+	 */
+	public SampleAction() {
+	}
+
+	/**
+	 * The action has been activated. The argument of the
+	 * method represents the 'real' action sitting
+	 * in the workbench UI.
+	 * @see IWorkbenchWindowActionDelegate#run
+	 */
+	public void run(IAction action) {
+		MessageDialog.openInformation(
+			window.getShell(),
+			"Trac154 base Plug-in 1",
+			"Hello, Eclipse world");
+	}
+
+	/**
+	 * Selection in the workbench has been changed. We 
+	 * can change the state of the 'real' action here
+	 * if we want, but this can only happen after 
+	 * the delegate has been created.
+	 * @see IWorkbenchWindowActionDelegate#selectionChanged
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+	}
+
+	/**
+	 * We can use this method to dispose of any system
+	 * resources we previously allocated.
+	 * @see IWorkbenchWindowActionDelegate#dispose
+	 */
+	public void dispose() {
+	}
+
+	/**
+	 * We will cache window object in order to
+	 * be able to provide parent shell for the message dialog.
+	 * @see IWorkbenchWindowActionDelegate#init
+	 */
+	public void init(IWorkbenchWindow window) {
+		this.window = window;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.project
new file mode 100644
index 0000000..b02f3cf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac154b2</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..b727278
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Mon Oct 27 18:56:07 CET 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..bf7740a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac154 base Plug-in 2
+Bundle-SymbolicName: Trac154b2
+Bundle-Version: 1.0.0
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: Trac154b1;bundle-version="1.0.0",
+ org.eclipse.ui
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/src/internal/SubClass.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/src/internal/SubClass.java
new file mode 100644
index 0000000..a3c4597
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac154b2/src/internal/SubClass.java
@@ -0,0 +1,7 @@
+package internal;
+
+import trac154b1.actions.SampleAction;
+
+public class SubClass extends SampleAction {
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.project
new file mode 100644
index 0000000..722dc22
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac18a</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..509e627
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,3 @@
+#Sat Nov 10 00:41:15 CET 2007
+eclipse.preferences.version=1
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5d5f795
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac18a Plug-in
+Bundle-SymbolicName: Trac18a; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.objectteams.otequinox,
+ Trac18b
+Bundle-ActivationPolicy: lazy
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/plugin.xml
new file mode 100644
index 0000000..3329dbe
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/plugin.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.actionSets">
+      <actionSet
+            label="Sample Action Set"
+            visible="true"
+            id="Trac18a.actionSet">
+         <menu
+               label="Sample &amp;Menu"
+               id="sampleMenu">
+            <separator
+                  name="sampleGroup">
+            </separator>
+         </menu>
+         <action
+               label="&amp;Sample Action"
+               icon="icons/sample.gif"
+               class="trac18a.actions.SampleAction"
+               tooltip="Hello, Eclipse world"
+               menubarPath="sampleMenu/sampleGroup"
+               toolbarPath="sampleGroup"
+               id="trac18a.actions.SampleAction">
+         </action>
+      </actionSet>
+   </extension>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac18b">
+               <forcedExports>
+                  trac18b.actions,
+trac18b.otherclasses
+               </forcedExports>
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac18a.Team18"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/src/trac18a/Team18.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/src/trac18a/Team18.java
new file mode 100644
index 0000000..d428053
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/src/trac18a/Team18.java
@@ -0,0 +1,20 @@
+/**
+ * 
+ */
+package trac18a;
+
+import base trac18b.actions.SampleAction;
+import base trac18b.api.PublicBase;
+
+/**
+ * @author stephan
+ *
+ */
+public team class Team18 {
+	protected class Action playedBy SampleAction {
+ 
+	}
+	protected class RoleOfPublic playedBy PublicBase {
+		
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/src/trac18a/actions/SampleAction.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/src/trac18a/actions/SampleAction.java
new file mode 100644
index 0000000..e60be67
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a/src/trac18a/actions/SampleAction.java
@@ -0,0 +1,64 @@
+package trac18a.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate.
+ * The action proxy will be created by the workbench and
+ * shown in the UI. When the user tries to use the action,
+ * this delegate will be created and execution will be 
+ * delegated to it.
+ * @see IWorkbenchWindowActionDelegate
+ */
+public class SampleAction implements IWorkbenchWindowActionDelegate {
+	private IWorkbenchWindow window;
+	/**
+	 * The constructor.
+	 */
+	public SampleAction() {
+	}
+
+	/**
+	 * The action has been activated. The argument of the
+	 * method represents the 'real' action sitting
+	 * in the workbench UI.
+	 * @see IWorkbenchWindowActionDelegate#run
+	 */
+	public void run(IAction action) {
+		MessageDialog.openInformation(
+			window.getShell(),
+			"Trac18a Plug-in",
+			"Hello, Aspect world");
+	}
+
+	/**
+	 * Selection in the workbench has been changed. We 
+	 * can change the state of the 'real' action here
+	 * if we want, but this can only happen after 
+	 * the delegate has been created.
+	 * @see IWorkbenchWindowActionDelegate#selectionChanged
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+	}
+
+	/**
+	 * We can use this method to dispose of any system
+	 * resources we previously allocated.
+	 * @see IWorkbenchWindowActionDelegate#dispose
+	 */
+	public void dispose() {
+	}
+
+	/**
+	 * We will cache window object in order to
+	 * be able to provide parent shell for the message dialog.
+	 * @see IWorkbenchWindowActionDelegate#init
+	 */
+	public void init(IWorkbenchWindow window) {
+		this.window = window;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.project
new file mode 100644
index 0000000..722dc22
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac18a</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..509e627
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,3 @@
+#Sat Nov 10 00:41:15 CET 2007
+eclipse.preferences.version=1
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..537183c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac18a Plug-in
+Bundle-SymbolicName: Trac18a; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.objectteams.otequinox,
+ Trac18b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/plugin.xml
new file mode 100644
index 0000000..06c2c53
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/plugin.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.actionSets">
+      <actionSet
+            label="Sample Action Set"
+            visible="true"
+            id="Trac18a.actionSet">
+         <menu
+               label="Sample &amp;Menu"
+               id="sampleMenu">
+            <separator
+                  name="sampleGroup">
+            </separator>
+         </menu>
+         <action
+               label="&amp;Sample Action"
+               icon="icons/sample.gif"
+               class="trac18a.actions.SampleAction"
+               tooltip="Hello, Eclipse world"
+               menubarPath="sampleMenu/sampleGroup"
+               toolbarPath="sampleGroup"
+               id="trac18a.actions.SampleAction">
+         </action>
+      </actionSet>
+   </extension>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac18b">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac18a.Team18"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/src/trac18a/Team18.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/src/trac18a/Team18.java
new file mode 100644
index 0000000..c0c4dd9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/src/trac18a/Team18.java
@@ -0,0 +1,16 @@
+/**
+ * 
+ */
+package trac18a;
+
+import base trac18b.actions.SampleAction;
+
+/**
+ * @author stephan
+ *
+ */
+public team class Team18 {
+	protected class Action playedBy SampleAction {
+ 
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/src/trac18a/actions/SampleAction.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/src/trac18a/actions/SampleAction.java
new file mode 100644
index 0000000..e60be67
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/src/trac18a/actions/SampleAction.java
@@ -0,0 +1,64 @@
+package trac18a.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate.
+ * The action proxy will be created by the workbench and
+ * shown in the UI. When the user tries to use the action,
+ * this delegate will be created and execution will be 
+ * delegated to it.
+ * @see IWorkbenchWindowActionDelegate
+ */
+public class SampleAction implements IWorkbenchWindowActionDelegate {
+	private IWorkbenchWindow window;
+	/**
+	 * The constructor.
+	 */
+	public SampleAction() {
+	}
+
+	/**
+	 * The action has been activated. The argument of the
+	 * method represents the 'real' action sitting
+	 * in the workbench UI.
+	 * @see IWorkbenchWindowActionDelegate#run
+	 */
+	public void run(IAction action) {
+		MessageDialog.openInformation(
+			window.getShell(),
+			"Trac18a Plug-in",
+			"Hello, Aspect world");
+	}
+
+	/**
+	 * Selection in the workbench has been changed. We 
+	 * can change the state of the 'real' action here
+	 * if we want, but this can only happen after 
+	 * the delegate has been created.
+	 * @see IWorkbenchWindowActionDelegate#selectionChanged
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+	}
+
+	/**
+	 * We can use this method to dispose of any system
+	 * resources we previously allocated.
+	 * @see IWorkbenchWindowActionDelegate#dispose
+	 */
+	public void dispose() {
+	}
+
+	/**
+	 * We will cache window object in order to
+	 * be able to provide parent shell for the message dialog.
+	 * @see IWorkbenchWindowActionDelegate#init
+	 */
+	public void init(IWorkbenchWindow window) {
+		this.window = window;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.project
new file mode 100644
index 0000000..722dc22
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac18a</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..509e627
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,3 @@
+#Sat Nov 10 00:41:15 CET 2007
+eclipse.preferences.version=1
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..537183c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac18a Plug-in
+Bundle-SymbolicName: Trac18a; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.objectteams.otequinox,
+ Trac18b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/plugin.xml
new file mode 100644
index 0000000..d3d801c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/plugin.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.actionSets">
+      <actionSet
+            label="Sample Action Set"
+            visible="true"
+            id="Trac18a.actionSet">
+         <menu
+               label="Sample &amp;Menu"
+               id="sampleMenu">
+            <separator
+                  name="sampleGroup">
+            </separator>
+         </menu>
+         <action
+               label="&amp;Sample Action"
+               icon="icons/sample.gif"
+               class="trac18a.actions.SampleAction"
+               tooltip="Hello, Eclipse world"
+               menubarPath="sampleMenu/sampleGroup"
+               toolbarPath="sampleGroup"
+               id="trac18a.actions.SampleAction">
+         </action>
+      </actionSet>
+   </extension>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac18b">
+               <forcedExports>
+                  trac18b.actions
+               </forcedExports>
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac18a.Team18"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/src/trac18a/Team18.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/src/trac18a/Team18.java
new file mode 100644
index 0000000..9372d10
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/src/trac18a/Team18.java
@@ -0,0 +1,19 @@
+/**
+ * 
+ */
+package trac18a;
+
+import base trac18b.actions.SampleAction;
+
+/**
+ * @author stephan
+ *
+ */
+public team class Team18 {
+	protected class Action playedBy SampleAction {
+		public Action() {
+			base();
+		}
+		void dispose() -> void dispose();
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/src/trac18a/actions/SampleAction.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/src/trac18a/actions/SampleAction.java
new file mode 100644
index 0000000..e60be67
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/src/trac18a/actions/SampleAction.java
@@ -0,0 +1,64 @@
+package trac18a.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate.
+ * The action proxy will be created by the workbench and
+ * shown in the UI. When the user tries to use the action,
+ * this delegate will be created and execution will be 
+ * delegated to it.
+ * @see IWorkbenchWindowActionDelegate
+ */
+public class SampleAction implements IWorkbenchWindowActionDelegate {
+	private IWorkbenchWindow window;
+	/**
+	 * The constructor.
+	 */
+	public SampleAction() {
+	}
+
+	/**
+	 * The action has been activated. The argument of the
+	 * method represents the 'real' action sitting
+	 * in the workbench UI.
+	 * @see IWorkbenchWindowActionDelegate#run
+	 */
+	public void run(IAction action) {
+		MessageDialog.openInformation(
+			window.getShell(),
+			"Trac18a Plug-in",
+			"Hello, Aspect world");
+	}
+
+	/**
+	 * Selection in the workbench has been changed. We 
+	 * can change the state of the 'real' action here
+	 * if we want, but this can only happen after 
+	 * the delegate has been created.
+	 * @see IWorkbenchWindowActionDelegate#selectionChanged
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+	}
+
+	/**
+	 * We can use this method to dispose of any system
+	 * resources we previously allocated.
+	 * @see IWorkbenchWindowActionDelegate#dispose
+	 */
+	public void dispose() {
+	}
+
+	/**
+	 * We will cache window object in order to
+	 * be able to provide parent shell for the message dialog.
+	 * @see IWorkbenchWindowActionDelegate#init
+	 */
+	public void init(IWorkbenchWindow window) {
+		this.window = window;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/.classpath
new file mode 100644
index 0000000..751c8f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/.project
new file mode 100644
index 0000000..172a67f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac18b</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..09fa9e0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac18b Plug-in
+Bundle-SymbolicName: Trac18b; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.ui
+Export-Package: trac18b.api
+Bundle-ActivationPolicy: lazy
+
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/plugin.xml
new file mode 100644
index 0000000..e42d5e0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/plugin.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.actionSets">
+      <actionSet
+            label="Sample Action Set"
+            visible="true"
+            id="Trac18b.actionSet">
+         <menu
+               label="Sample &amp;Menu"
+               id="sampleMenu">
+            <separator
+                  name="sampleGroup">
+            </separator>
+         </menu>
+         <action
+               label="&amp;Sample Action"
+               icon="icons/sample.gif"
+               class="trac18b.actions.SampleAction"
+               tooltip="Hello, Eclipse world"
+               menubarPath="sampleMenu/sampleGroup"
+               toolbarPath="sampleGroup"
+               id="trac18b.actions.SampleAction">
+         </action>
+      </actionSet>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/actions/SampleAction.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/actions/SampleAction.java
new file mode 100644
index 0000000..0ef856e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/actions/SampleAction.java
@@ -0,0 +1,64 @@
+package trac18b.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate.
+ * The action proxy will be created by the workbench and
+ * shown in the UI. When the user tries to use the action,
+ * this delegate will be created and execution will be 
+ * delegated to it.
+ * @see IWorkbenchWindowActionDelegate
+ */
+public class SampleAction implements IWorkbenchWindowActionDelegate {
+	private IWorkbenchWindow window;
+	/**
+	 * The constructor.
+	 */
+	public SampleAction() {
+	}
+
+	/**
+	 * The action has been activated. The argument of the
+	 * method represents the 'real' action sitting
+	 * in the workbench UI.
+	 * @see IWorkbenchWindowActionDelegate#run
+	 */
+	public void run(IAction action) {
+		MessageDialog.openInformation(
+			window.getShell(),
+			"Trac18b Plug-in",
+			"Hello, Eclipse world");
+	}
+
+	/**
+	 * Selection in the workbench has been changed. We 
+	 * can change the state of the 'real' action here
+	 * if we want, but this can only happen after 
+	 * the delegate has been created.
+	 * @see IWorkbenchWindowActionDelegate#selectionChanged
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+	}
+
+	/**
+	 * We can use this method to dispose of any system
+	 * resources we previously allocated.
+	 * @see IWorkbenchWindowActionDelegate#dispose
+	 */
+	public void dispose() {
+	}
+
+	/**
+	 * We will cache window object in order to
+	 * be able to provide parent shell for the message dialog.
+	 * @see IWorkbenchWindowActionDelegate#init
+	 */
+	public void init(IWorkbenchWindow window) {
+		this.window = window;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/api/PublicBase.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/api/PublicBase.java
new file mode 100644
index 0000000..4a93991
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/api/PublicBase.java
@@ -0,0 +1,5 @@
+package trac18b.api;
+
+public class PublicBase {
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/otherclasses/OtherClass.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/otherclasses/OtherClass.java
new file mode 100644
index 0000000..d62824c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18b/src/trac18b/otherclasses/OtherClass.java
@@ -0,0 +1,5 @@
+package trac18b.otherclasses;
+
+public class OtherClass {
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.classpath
new file mode 100644
index 0000000..c24f8de
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.project
new file mode 100644
index 0000000..3943bd2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac213a</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..a205a2b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Sat Mar 14 19:00:03 CET 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..58fb008
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac213a Plug-in
+Bundle-SymbolicName: Trac213a;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: trac213a.Activator
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.objectteams.otequinox,
+ Trac213b1;bundle-version="1.0.0",
+ Trac213b2;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/TheTeam_step1.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/TheTeam_step1.java
new file mode 100644
index 0000000..2a6ba99
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/TheTeam_step1.java
@@ -0,0 +1,11 @@
+package trac213a;
+
+import base trac213b1.Activator1;
+
+public team class TheTeam {
+
+	protected class R1 playedBy Activator1 {
+	
+	}
+	
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/TheTeam_step2.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/TheTeam_step2.java
new file mode 100644
index 0000000..56de0bd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/TheTeam_step2.java
@@ -0,0 +1,15 @@
+package trac213a;
+
+import base trac213b1.Activator1;
+import base trac213b2.Activator2;
+
+public team class TheTeam {
+
+	protected class R1 playedBy Activator1 {
+	
+	}
+	protected class R2 playedBy Activator2 {
+	
+	}
+	
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/plugin_step2.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/plugin_step2.xml
new file mode 100644
index 0000000..d25bc85
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/aux/plugin_step2.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac213b1">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac213a.TheTeam"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac213b2">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac213a.TheTeam"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/build.properties
new file mode 100644
index 0000000..e9863e2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/plugin.xml
new file mode 100644
index 0000000..d54d890
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac213b1">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="trac213a.TheTeam"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/src/trac213a/Activator.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/src/trac213a/Activator.java
new file mode 100644
index 0000000..fb3d3d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/src/trac213a/Activator.java
@@ -0,0 +1,50 @@
+package trac213a;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends Plugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "Trac213a";
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/src/trac213a/TheTeam.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/src/trac213a/TheTeam.java
new file mode 100644
index 0000000..371cb03
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213a/src/trac213a/TheTeam.java
@@ -0,0 +1,6 @@
+package trac213a;
+
+public team class TheTeam {
+
+	
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.project
new file mode 100644
index 0000000..67d9e39
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac213b1</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..b74a520
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Sat Mar 14 18:51:55 CET 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..56fb5a2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac213b1 Plug-in
+Bundle-SymbolicName: Trac213b1
+Bundle-Version: 1.0.0
+Bundle-Activator: trac213b1.Activator1
+Require-Bundle: org.eclipse.core.runtime
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: trac213b1
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/src/trac213b1/Activator1.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/src/trac213b1/Activator1.java
new file mode 100644
index 0000000..6f3d21e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b1/src/trac213b1/Activator1.java
@@ -0,0 +1,50 @@
+package trac213b1;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator1 extends Plugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "Trac213b1";
+
+	// The shared instance
+	private static Activator1 plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator1() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator1 getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.project
new file mode 100644
index 0000000..5e4bac1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac213b2</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..dfe2608
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Sat Mar 14 18:52:23 CET 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..44661c9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac213b2 Plug-in
+Bundle-SymbolicName: Trac213b2
+Bundle-Version: 1.0.0
+Bundle-Activator: trac213b2.Activator2
+Require-Bundle: org.eclipse.core.runtime
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: trac213b2
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/src/trac213b2/Activator2.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/src/trac213b2/Activator2.java
new file mode 100644
index 0000000..bd58e81
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac213b2/src/trac213b2/Activator2.java
@@ -0,0 +1,50 @@
+package trac213b2;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator2 extends Plugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "Trac213b2";
+
+	// The shared instance
+	private static Activator2 plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator2() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator2 getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.project
new file mode 100644
index 0000000..e9fa5c0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac304b</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..d6adcef
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+#Sun Sep 06 00:10:18 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.objectteams.otdt.compiler.option.pure_java=enabled
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..24047b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac304b
+Bundle-SymbolicName: Trac304b
+Bundle-Version: 1.0.0
+Bundle-Activator: trac304b.Activator
+Require-Bundle: org.eclipse.core.runtime
+Bundle-ActivationPolicy: lazy
+Eclipse-ExtensibleAPI: true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: trac304b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/src/trac304b/Activator.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/src/trac304b/Activator.java
new file mode 100644
index 0000000..66cc2b1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304b/src/trac304b/Activator.java
@@ -0,0 +1,50 @@
+package trac304b;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends Plugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "Trac304b";
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.project
new file mode 100644
index 0000000..115fe03
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac304f</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..6bc01aa
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+#Sun Sep 06 00:11:24 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.objectteams.otdt.compiler.option.pure_java=enabled
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e18fd32
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac304f
+Bundle-SymbolicName: Trac304f
+Bundle-Version: 1.0.0
+Fragment-Host: Trac304b
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: fragment304
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/src/fragment304/FragClass.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/src/fragment304/FragClass.java
new file mode 100644
index 0000000..8319a3f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304f/src/fragment304/FragClass.java
@@ -0,0 +1,5 @@
+package fragment304;
+
+public class FragClass {
+	void fragMethod() {}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.classpath
new file mode 100644
index 0000000..c24f8de
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.project
new file mode 100644
index 0000000..e3f5dee
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Trac304ot</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.settings/org.eclipse.jdt.core.prefs b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..781d9a4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,10 @@
+#Sun Sep 06 00:13:00 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.objectteams.otdt.compiler.option.pure_java=enabled
+org.eclipse.objectteams.otdt.compiler.problem.binding_conventions=error
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4fd6b95
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Trac304ot
+Bundle-SymbolicName: Trac304ot;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: trac304ot.Activator
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.objectteams.otequinox,
+ Trac304b;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: trac304b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/build.properties
new file mode 100644
index 0000000..e9863e2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/plugin.xml
new file mode 100644
index 0000000..cb28f5e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac304b">
+            <requiredFragment
+                  id="Trac304f">
+            </requiredFragment>
+         </basePlugin>
+         <team
+               class="trac304ot.Team304ot"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/src/trac304ot/Activator.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/src/trac304ot/Activator.java
new file mode 100644
index 0000000..c1856e6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/src/trac304ot/Activator.java
@@ -0,0 +1,50 @@
+package trac304ot;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends Plugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "Trac304ot";
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/src/trac304ot/Team304ot.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/src/trac304ot/Team304ot.java
new file mode 100644
index 0000000..18e6c97
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac304ot/src/trac304ot/Team304ot.java
@@ -0,0 +1,16 @@
+/**
+ * 
+ */
+package trac304ot;
+
+import base fragment304.FragClass;
+
+/**
+ * @author stephan
+ *
+ */
+public team class Team304ot {
+	protected class Role playedBy FragClass {
+		
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/.project
new file mode 100644
index 0000000..266b92c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>WrongBaseImport1</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c5d233c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test wrong base import Plug-in
+Bundle-SymbolicName: WrongBaseImport1; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.objectteams.otequinox,
+ Trac18b,
+ org.eclipse.core.runtime
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/plugin.xml
new file mode 100644
index 0000000..13fbd6b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="Trac18b">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="WrongBaseImportTeam1"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/src/WrongBaseImportTeam1.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/src/WrongBaseImportTeam1.java
new file mode 100644
index 0000000..6ce2441
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport1/src/WrongBaseImportTeam1.java
@@ -0,0 +1,5 @@
+import base org.eclipse.objectteams.otequinox.TransformerPlugin;
+
+public team class WrongBaseImportTeam1 {
+	public class WrongRole playedBy TransformerPlugin {}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/.classpath b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/.classpath
new file mode 100644
index 0000000..b70b156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/.project
new file mode 100644
index 0000000..11fe442
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>WrongBaseImport2</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6b8c992
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test wrong base import Plug-in
+Bundle-SymbolicName: WrongBaseImport2; singleton:=true
+Bundle-Version: 1.0.0
+Require-Bundle: org.eclipse.objectteams.otequinox,
+ Trac18b
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/build.properties b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/build.properties
new file mode 100644
index 0000000..0d3d3a7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/plugin.xml
new file mode 100644
index 0000000..ed5ab4e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding
+            icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
+         <basePlugin
+               icon="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.gif"
+               id="org.eclipse.objectteams.otequinox">
+         </basePlugin>
+         <team
+               activation="ALL_THREADS"
+               class="WrongBaseImportTeam2"
+               icon="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
+         </team>
+      </aspectBinding>
+   </extension>
+
+</plugin>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/src/WrongBaseImportTeam2.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/src/WrongBaseImportTeam2.java
new file mode 100644
index 0000000..3953407
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/WrongBaseImport2/src/WrongBaseImportTeam2.java
@@ -0,0 +1,5 @@
+import base trac18b.api.PublicBase;
+
+public team class WrongBaseImportTeam2 {
+	protected class WrongRole playedBy PublicBase {}
+}
\ No newline at end of file