[573659] Add test case
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug573659/bug573659.qvto b/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug573659/bug573659.qvto
new file mode 100644
index 0000000..cb2d2fd
--- /dev/null
+++ b/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug573659/bug573659.qvto
@@ -0,0 +1,5 @@
+import models.bug573659_referenced.bug573659_referenced;
+
+transformation bug573659();
+
+main() {}
\ No newline at end of file
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug573659_referenced/bug573659_referenced.qvto b/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug573659_referenced/bug573659_referenced.qvto
new file mode 100644
index 0000000..504c596
--- /dev/null
+++ b/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug573659_referenced/bug573659_referenced.qvto
@@ -0,0 +1 @@
+library bug573659_referenced();
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/PluginDependencyProjectData.java b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/PluginDependencyProjectData.java
new file mode 100644
index 0000000..ec48bba
--- /dev/null
+++ b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/PluginDependencyProjectData.java
@@ -0,0 +1,79 @@
+package org.eclipse.m2m.tests.qvt.oml.transform;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.m2m.tests.qvt.oml.TestProject;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginImport;
+import org.eclipse.pde.core.project.IBundleProjectDescription;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModel;
+import org.eclipse.pde.internal.core.plugin.WorkspacePluginModelBase;
+import org.eclipse.pde.internal.core.project.PDEProject;
+import org.eclipse.pde.internal.core.util.CoreUtility;
+import org.junit.Assert;
+
+@SuppressWarnings("restriction")
+public class PluginDependencyProjectData extends ReferencedProjectData {
+	
+	public PluginDependencyProjectData(String myName, String referencedName) {
+		super(myName, referencedName, false);
+	}
+	
+	private WorkspacePluginModelBase myPluginModel;
+	private WorkspacePluginModelBase referencedPluginModel;
+	
+	@Override
+	public void prepare(TestProject project) throws Exception {		
+		super.prepare(project);
+		
+		IProject myProject = project.getProject();
+		CoreUtility.addNatureToProject(myProject, IBundleProjectDescription.PLUGIN_NATURE, new NullProgressMonitor());
+				
+		IFile myPluginXml = PDEProject.getPluginXml(myProject);
+		IFile myManifest = PDEProject.getManifest(myProject);					
+		myPluginModel = new WorkspaceBundlePluginModel(myManifest, myPluginXml);
+		IPluginBase myPluginBase = myPluginModel.getPluginBase();
+		myPluginBase.setId(myProject.getName());
+		
+		IProject[] referencedProjects = myProject.getReferencedProjects();
+		
+		IProjectDescription desc = myProject.getDescription();
+		desc.setReferencedProjects(new IProject[] {});
+		myProject.setDescription(desc, null);
+		Assert.assertEquals(myProject.getReferencedProjects().length, 0);
+		
+		for (IProject referencedProject : referencedProjects) {
+							
+			CoreUtility.addNatureToProject(referencedProject, IBundleProjectDescription.PLUGIN_NATURE, new NullProgressMonitor());
+			
+			IFile referencedPluginXml = PDEProject.getPluginXml(referencedProject);
+			IFile referencedManifest = PDEProject.getManifest(referencedProject);					
+			referencedPluginModel = new WorkspaceBundlePluginModel(referencedManifest, referencedPluginXml);
+			IPluginBase referencedPluginBase = referencedPluginModel.getPluginBase();
+			referencedPluginBase.setId(referencedProject.getName());
+			referencedPluginModel.save();
+			
+			IPluginImport pluginImport = myPluginModel.createImport(referencedPluginBase.getId());
+			IPluginBase pluginBase = myPluginModel.getPluginBase();
+			pluginBase.add(pluginImport);
+		}
+				
+		myPluginModel.save();
+	}
+		
+	@Override
+	public void dispose(TestProject project) throws Exception {
+		myPluginModel.dispose();
+		referencedPluginModel.dispose();
+		
+		IFile myPluginXml = PDEProject.getPluginXml(project.getProject());
+		IFile myManifest = PDEProject.getManifest(project.getProject());		
+		
+		myPluginXml.delete(true, null);
+		myManifest.delete(true, null);
+		
+		super.dispose(project);
+	}
+}
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java
index 5a8c722..c0a2c48 100644
--- a/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java
+++ b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java
@@ -595,7 +595,8 @@
         			public void prepare(BlackboxRegistry blackboxRegistry) {

         				blackboxRegistry.registerModule(AnnotatedJavaLibrary.class, "org.bar.Foo", "Bug566216_Lib");

         			}

-        		}

+        		},

+        		new PluginDependencyProjectData("bug573659", "bug573659_referenced") //$NON-NLS-1$ //$NON-NLS-2$

         	};

     }

 

diff --git a/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/javaless/JavalessQvtTest.java b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/javaless/JavalessQvtTest.java
index 945dc9e..e86c41a 100644
--- a/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/javaless/JavalessQvtTest.java
+++ b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/javaless/JavalessQvtTest.java
@@ -152,8 +152,8 @@
             // EObjects for incremental update are loaded from original 'in.ecore' so they don't match with those from 'in.ecore.javaless' 
             "bug463572", //$NON-NLS-1$ 
                   	
-            // use of Eclipse project references requires patching across multiple projects
-          	"bug433937", //$NON-NLS-1$
+            // use of Eclipse project references or plug-in dependencies requires patching across multiple projects
+          	"bug433937", "bug573659" //$NON-NLS-1$ //$NON-NLS-2$
           	
     }));