325733 and 354346 with an additional small modification for other test cases which were not previously run
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
index 9b79bd5..81b81c2 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
@@ -16,6 +16,7 @@
*/
package org.eclipse.wtp.j2ee.headless.tests.ear.operations;
+import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Arrays;
@@ -51,6 +52,8 @@
import org.eclipse.jst.j2ee.internal.project.facet.EARFacetProjectCreationDataModelProvider;
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
+import org.eclipse.jst.j2ee.project.facet.IJavaUtilityProjectCreationDataModelProperties;
+import org.eclipse.jst.j2ee.project.facet.JavaUtilityProjectCreationDataModelProvider;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.datamodel.properties.IAddReferenceDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
@@ -60,6 +63,8 @@
import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
@@ -453,6 +458,86 @@
}
}
+ public void testEAR50_NestedUtil_WithVariableReference() throws Exception{
+ IDataModel dm = getEARDataModel("zEAR", "zContent", null, null, JavaEEFacetConstants.EAR_5, false);
+ OperationTestCase.runAndVerify(dm);
+ IProject earProj = ResourcesPlugin.getWorkspace().getRoot().getProject("zEAR");
+
+ IDataModel dm2 = getUtilityProjectCreationDataModel("nestedUtil", "zEAR");
+ OperationTestCase.runAndVerify(dm2);
+ IProject utilProj = ResourcesPlugin.getWorkspace().getRoot().getProject("nestedUtil");
+
+ IVirtualComponent vc = ComponentCore.createComponent(utilProj);
+ addArchiveComponent(vc);
+
+ IModule module = ServerUtil.getModule(utilProj);
+ assertNotNull(module);
+ ModuleDelegate md = (ModuleDelegate)module.loadAdapter(ModuleDelegate.class, new NullProgressMonitor());
+ IModuleResource[] resources = md.members();
+
+ // ensure a 'lib' is found
+ IModuleResource lib = null;
+ for( int i = 0; i < resources.length; i++ ) {
+ if( resources[i].getName().equals("lib")) {
+ lib = resources[i];
+ break;
+ }
+ }
+ assertNotNull(lib);
+ assertTrue(lib instanceof IModuleFolder);
+ IModuleResource[] libs = ((IModuleFolder)lib).members();
+ assertNotNull(libs);
+ assertTrue(libs.length == 1);
+ assertTrue(libs[0] instanceof IModuleFile);
+ IModuleFile junitjar = (IModuleFile)libs[0];
+ assertEquals("junit.jar", junitjar.getName());
+ }
+
+ /**
+ * Creates and returns a utility project DM provider with the given name and of the given version.
+ * If earName is not null then util project will be added to the EAR with earName
+ *
+ * @param projName name of the project to create
+ * @param earName name of the ear to add the project too, if NULL then don't add to an EAR
+ * @param version version of Application Client to use
+ * @return a Utility Project Data Model with the appropriate properties set
+ */
+ public static IDataModel getUtilityProjectCreationDataModel(String projName, String earName){
+ IDataModel dm = DataModelFactory.createDataModel(new JavaUtilityProjectCreationDataModelProvider());
+ dm.setProperty(IJavaUtilityProjectCreationDataModelProperties.PROJECT_NAME, projName);
+ dm.setProperty(IJavaUtilityProjectCreationDataModelProperties.SOURCE_FOLDER, "src");
+ if(earName != null) {
+ dm.setProperty(IJavaUtilityProjectCreationDataModelProperties.EAR_PROJECT_NAME, earName);
+ }
+ return dm;
+ }
+
+ public void testEAR_HardDeploymentMapping() throws Exception {
+ IDataModel dm = getEARDataModel("hardEAR", "ourContent", null, null, JavaEEFacetConstants.EAR_5, false);
+ OperationTestCase.runAndVerify(dm);
+ IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("hardEAR");
+ IFolder f = p.getFolder("test");
+ f.create(true, true, new NullProgressMonitor());
+ IFile file = f.getFile("silly.txt");
+ file.create(new ByteArrayInputStream("Silly String".getBytes()), true, new NullProgressMonitor());
+
+ IVirtualComponent earComp = ComponentCore.createComponent(p);
+ IVirtualFolder rootFolder = earComp.getRootFolder();
+ IVirtualFile vfile = rootFolder.getFile(new Path("out/notsilly.txt"));
+ vfile.createLink(new Path("test/silly.txt"), 0, new NullProgressMonitor());
+
+ IModule module = ServerUtil.getModule(p);
+ assertNotNull(module);
+ ModuleDelegate md = (ModuleDelegate)module.loadAdapter(ModuleDelegate.class, new NullProgressMonitor());
+ IModuleResource[] resources = md.members();
+ assertTrue(resources.length == 1);
+ assertTrue(resources[0].getName().equals("out"));
+ IModuleFolder mf = (IModuleFolder)resources[0];
+ IModuleResource[] children = mf.members();
+ assertTrue(children.length == 1);
+ assertTrue(children[0].getName().equals("notsilly.txt"));
+ }
+
public void testEARWithJarInLibFolder() throws Exception {
IDataModel dm = getEARDataModel("qEAR", "ourContent", null, null, JavaEEFacetConstants.EAR_5, false);
OperationTestCase.runAndVerify(dm);