[297653] the major implementation of converting j2ee deployment to the new flat virtual component APIs
diff --git a/tests/org.eclipse.jst.j2ee.tests/.classpath b/tests/org.eclipse.jst.j2ee.tests/.classpath index b757e3d..a13b1ce 100644 --- a/tests/org.eclipse.jst.j2ee.tests/.classpath +++ b/tests/org.eclipse.jst.j2ee.tests/.classpath
@@ -5,6 +5,7 @@ <classpathentry kind="src" path="savestrategy-tests"/> <classpathentry kind="src" path="j2ee-tests"/> <classpathentry kind="src" path="j2ee-verifiers"/> + <classpathentry kind="src" path="exportmodel-tests"/> <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="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="output" path="bin"/>
diff --git a/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java b/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java index 3593f59..d0e8219 100644 --- a/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java +++ b/tests/org.eclipse.jst.j2ee.tests/defect-tests/org/eclipse/jst/j2ee/defect/tests/DefectVerificationTests.java
@@ -416,7 +416,7 @@ IVirtualComponent earComponent = ComponentCore.createComponent(J2EEProjectUtilities.getProject("149995")); IVirtualResource [] members = earComponent.getRootFolder().members(); - Assert.assertEquals(1, members.length); + Assert.assertEquals(5, members.length); setUp(); @@ -427,7 +427,7 @@ earComponent = ComponentCore.createComponent(J2EEProjectUtilities.getProject("149995")); members = earComponent.getRootFolder().members(); - Assert.assertEquals(1, members.length); + Assert.assertEquals(5, members.length); } /**
diff --git a/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/ExportModelTest.java b/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/ExportModelTest.java new file mode 100644 index 0000000..55685e3 --- /dev/null +++ b/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/ExportModelTest.java
@@ -0,0 +1,212 @@ +package org.eclipse.wtp.j2ee.headless.tests.exportmodel; + +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import junit.framework.TestCase; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.emf.common.util.EList; +import org.eclipse.wst.common.componentcore.ComponentCore; +import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties; +import org.eclipse.wst.common.componentcore.internal.ComponentResource; +import org.eclipse.wst.common.componentcore.internal.StructureEdit; +import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent; +import org.eclipse.wst.common.componentcore.internal.flat.FilterResourceParticipant; +import org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent; +import org.eclipse.wst.common.componentcore.internal.flat.IFlatFolder; +import org.eclipse.wst.common.componentcore.internal.flat.IFlatResource; +import org.eclipse.wst.common.componentcore.internal.flat.IFlatVirtualComponent; +import org.eclipse.wst.common.componentcore.internal.flat.IFlattenParticipant; +import org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.FlatComponentTaskModel; +import org.eclipse.wst.common.componentcore.internal.operation.CreateReferenceComponentsDataModelProvider; +import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; +import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; +import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory; +import org.eclipse.wst.common.frameworks.datamodel.IDataModel; +import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider; +import org.eclipse.wst.common.tests.OperationTestCase; +import org.eclipse.wtp.j2ee.headless.tests.ear.operations.EARProjectCreationOperationTest; +import org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.JavaEEFacetConstants; + +public class ExportModelTest extends TestCase { + public void testSimpleExportModel() throws Exception{ + IDataModel dm = EARProjectCreationOperationTest.getEARDataModel("aEAR", null, null, null, JavaEEFacetConstants.EAR_5, true); + OperationTestCase.runAndVerify(dm); + IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("aEAR"); + assertTrue(p.exists()); + runVerify(p); + assertEquals(2, countRecurse(p)); + p.getFolder("garbage").create(true, true, null); + runVerify(p); + assertEquals(2, countRecurse(p)); + IFile f = p.getFile(new Path("garbage/file.txt")); + f.create(new ByteArrayInputStream("hello".getBytes()), true, null); + runVerify(p); + assertEquals(2, countRecurse(p)); + IFile f2 = p.getFile(new Path("EarContent/file.txt")); + f2.create(new ByteArrayInputStream("hello2".getBytes()), true, null); + runVerify(p); + assertEquals(3, countRecurse(p)); + addMapping(p, new Path("/garbage"), new Path("some/output")); + assertEquals(6, countRecurse(p)); // (added some, some/output, and some/output/file.txt) + p.delete(true, null); + } + + public void testConsumesExportModel() throws Exception{ + IDataModel dm = EARProjectCreationOperationTest.getEARDataModel("bEAR", null, null, null, JavaEEFacetConstants.EAR_5, true); + OperationTestCase.runAndVerify(dm); + IProject ear = ResourcesPlugin.getWorkspace().getRoot().getProject("bEAR"); + assertTrue(ear.exists()); + runVerify(ear); + assertEquals(2, countRecurse(ear)); + IVirtualComponent earComponent = ComponentCore.createComponent(ear); + IProject pojp = ResourcesPlugin.getWorkspace().getRoot().getProject("pojp"); + pojp.create(null); + assertTrue(pojp.exists()); + pojp.open(null); + IFile pojpTxt = pojp.getFile(new Path("pojp.txt")); + pojpTxt.create(new ByteArrayInputStream("pojp".getBytes()), true, null); + assertTrue(pojpTxt.exists()); + assertEquals(2, countRecurse(ear)); + TestExportVirtualComponent pojpComponent = new TestExportVirtualComponent(pojpTxt); + addReference(earComponent, pojpComponent, "path/to", ""); + assertEquals(5, countRecurse(ear)); // META-INF, META-INF/application.xml, path, path/to, path/to/pojp.txt + ear.delete(true, null); + pojp.delete(true, null); + } + + protected void addReference(IVirtualComponent parent, IVirtualComponent child, + String path, String archiveName) throws CoreException { + IDataModelProvider provider = new CreateReferenceComponentsDataModelProvider(); + IDataModel dm = DataModelFactory.createDataModel(provider); + + dm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, parent); + dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, Arrays.asList(child)); + + //[Bug 238264] the uri map needs to be manually set correctly + Map<IVirtualComponent, String> uriMap = new HashMap<IVirtualComponent, String>(); + uriMap.put(child, archiveName); + dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP, uriMap); + dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, path); + + IStatus stat = dm.validateProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST); + if (!stat.isOK()) + throw new CoreException(stat); + try { + dm.getDefaultOperation().execute(new NullProgressMonitor(), null); + } catch (ExecutionException e) { + } + } + + public void testSuffixFilterExportModel() throws Exception{ + IDataModel dm = EARProjectCreationOperationTest.getEARDataModel("aEAR", null, null, null, JavaEEFacetConstants.EAR_5, true); + OperationTestCase.runAndVerify(dm); + IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("aEAR"); + assertTrue(p.exists()); + runVerify(p); + assertEquals(2, countRecurse(p)); + IFile f = p.getFile(new Path("EarContent/file.txt")); + f.create(new ByteArrayInputStream("hello".getBytes()), true, null); + IFile f2 = p.getFile(new Path("EarContent/file.java")); + f2.create(new ByteArrayInputStream("hello2".getBytes()), true, null); + runVerify(p); + assertEquals(4, countRecurse(p)); + assertEquals(4, countRecurse(p, FilterResourceParticipant.createSuffixFilterParticipant(new String[]{}))); + assertEquals(3, countRecurse(p, FilterResourceParticipant.createSuffixFilterParticipant(new String[]{".txt"}))); + assertEquals(3, countRecurse(p, FilterResourceParticipant.createSuffixFilterParticipant(new String[]{".java"}))); + assertEquals(2, countRecurse(p, FilterResourceParticipant.createSuffixFilterParticipant(new String[]{".java", ".txt"}))); + assertEquals(1, countRecurse(p, FilterResourceParticipant.createSuffixFilterParticipant(new String[]{".java", ".txt", ".xml"}))); + } + + protected static void runVerify(IProject p) throws Exception { + IVirtualComponent component = ComponentCore.createComponent(p); + assertTrue(component.exists()); + IFlatVirtualComponent model = new FlatVirtualComponent(component); + IFlatResource[] resources = model.fetchResources(); + ComponentResource[] mappings = getMappings(p); + verifyMappingsAndOutput(p, resources, mappings); + } + + protected static int countRecurse(IProject p) throws Exception { + IVirtualComponent component = ComponentCore.createComponent(p); + assertTrue(component.exists()); + IFlatVirtualComponent model = new FlatVirtualComponent(component); + IFlatResource[] resources = model.fetchResources(); + return countRecurse(resources); + } + + protected static int countRecurse(IProject p, IFlattenParticipant participant) throws Exception { + IVirtualComponent component = ComponentCore.createComponent(p); + assertTrue(component.exists()); + FlatComponentTaskModel tm = new FlatComponentTaskModel(); + tm.put(IFlatVirtualComponent.PARTICIPANT_LIST, participant); + IFlatVirtualComponent model = new FlatVirtualComponent(component, tm); + IFlatResource[] resources = model.fetchResources(); + return countRecurse(resources); + } + + + + protected static int countRecurse(IFlatResource[] resources) { + int count = 0; + for( int i = 0; i < resources.length; i++ ) { + if( resources[i] != null ) { + count++; + if( resources[i] instanceof IFlatFolder) + count += countRecurse(((IFlatFolder)resources[i]).members()); + } + } + return count; + } + + protected static void verifyMappingsAndOutput(IProject p, IFlatResource[] resources, ComponentResource[] mappings) { + for( int i = 0; i < resources.length; i++ ) { + IPath deployPath = resources[i].getModuleRelativePath().append(resources[i].getName()); + IResource workspaceResource = (IResource)resources[i].getAdapter(IResource.class); + IPath workspacePath = workspaceResource.getFullPath(); + assertNotNull(workspaceResource); + boolean found = false; + for( int j = 0; j < mappings.length && !found; j++ ) { + IPath tmp = new Path(p.getName()).makeAbsolute().append(mappings[j].getSourcePath()).append(deployPath); + found |= (tmp.equals(workspacePath)); + } + assertTrue(found); + if( resources[i] instanceof IFlatFolder) + verifyMappingsAndOutput(p, ((IFlatFolder)resources[i]).members(), mappings); + } + } + + protected static ComponentResource[] getMappings(IProject project) { + StructureEdit structureEdit = null; + structureEdit = StructureEdit.getStructureEditForRead(project); + WorkbenchComponent component = structureEdit.getComponent(); + EList list = component.getResources(); + List<ComponentResource> newList = new ArrayList<ComponentResource>(); + for(Iterator i = list.iterator(); i.hasNext();) { + newList.add((ComponentResource)i.next()); + } + return (ComponentResource[]) newList.toArray(new ComponentResource[newList + .size()]); + } + + protected static void addMapping(IProject project, IPath src, IPath runtime) throws CoreException { + IVirtualComponent vc = ComponentCore.createComponent(project); + IVirtualFolder vf = vc.getRootFolder(); + vf.getFolder(runtime).createLink(src, 0, null); + } +}
diff --git a/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/TestExportReferenceResolver.java b/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/TestExportReferenceResolver.java new file mode 100644 index 0000000..8b1de0e --- /dev/null +++ b/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/TestExportReferenceResolver.java
@@ -0,0 +1,66 @@ +package org.eclipse.wtp.j2ee.headless.tests.exportmodel; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.emf.common.util.URI; +import org.eclipse.wst.common.componentcore.ComponentCore; +import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage; +import org.eclipse.wst.common.componentcore.internal.DependencyType; +import org.eclipse.wst.common.componentcore.internal.ReferencedComponent; +import org.eclipse.wst.common.componentcore.internal.impl.PlatformURLModuleConnection; +import org.eclipse.wst.common.componentcore.resolvers.IReferenceResolver; +import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; +import org.eclipse.wst.common.componentcore.resources.IVirtualReference; + +public class TestExportReferenceResolver implements IReferenceResolver { + private static final String FIRST_SEGMENT = "org.eclipse.wtp.j2ee.exportTestResolver"; + public static final String PROTOCOL = PlatformURLModuleConnection.MODULE_PROTOCOL + +IPath.SEPARATOR + FIRST_SEGMENT + IPath.SEPARATOR; + + public boolean canResolve(IVirtualReference reference) { + if( reference.getReferencedComponent() + instanceof TestExportVirtualComponent ) + return true; + return false; + } + + public ReferencedComponent resolve(IVirtualReference reference) { + TestExportVirtualComponent vc = (TestExportVirtualComponent)reference.getReferencedComponent(); + ReferencedComponent rc = ComponentcorePackage.eINSTANCE.getComponentcoreFactory().createReferencedComponent(); + rc.setArchiveName(reference.getArchiveName()); + rc.setRuntimePath(reference.getRuntimePath()); + rc.setHandle(URI.createURI(PROTOCOL + vc.getFullPath().toString())); + rc.setDependencyType(DependencyType.CONSUMES_LITERAL); + return rc; + } + + public boolean canResolve(IVirtualComponent context, + ReferencedComponent referencedComponent) { + URI uri = referencedComponent.getHandle(); + if( uri.segmentCount() >= 1 && FIRST_SEGMENT.equals(uri.segment(0))) + return true; + return false; + } + + public IVirtualReference resolve(IVirtualComponent context, + ReferencedComponent referencedComponent) { + URI uri = referencedComponent.getHandle(); + if( uri.segmentCount() >= 1 && FIRST_SEGMENT.equals(uri.segment(0))) { + String path = uri.toString().substring(PROTOCOL.length()); + IPath filePath = new Path(path); + IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(filePath.segment(0)); + IFile f = proj.getFile(filePath.removeFirstSegments(1)); + IVirtualReference ref = ComponentCore.createReference(context, + new TestExportVirtualComponent(f)); + ref.setArchiveName(referencedComponent.getArchiveName()); + ref.setRuntimePath(referencedComponent.getRuntimePath()); + ref.setDependencyType(referencedComponent.getDependencyType().getValue()); + return ref; + } + return null; + } + +}
diff --git a/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/TestExportVirtualComponent.java b/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/TestExportVirtualComponent.java new file mode 100644 index 0000000..c277522 --- /dev/null +++ b/tests/org.eclipse.jst.j2ee.tests/exportmodel-tests/org/eclipse/wtp/j2ee/headless/tests/exportmodel/TestExportVirtualComponent.java
@@ -0,0 +1,45 @@ +package org.eclipse.wtp.j2ee.headless.tests.exportmodel; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent; +import org.eclipse.wst.common.componentcore.internal.resources.VirtualFile; +import org.eclipse.wst.common.componentcore.internal.resources.VirtualFolder; +import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; +import org.eclipse.wst.common.componentcore.resources.IVirtualResource; + +public class TestExportVirtualComponent extends VirtualComponent { + private IFile file; + public TestExportVirtualComponent(IFile file) { + super(file.getProject(), new Path("")); + this.file = file; + } + + public boolean exists() { + return true; + } + + public IPath getFullPath() { + return file.getFullPath(); + } + public IVirtualFolder getRootFolder() { + return new TestExportVirtualFolder(file.getProject()); + } + + public class TestExportVirtualFolder extends VirtualFolder { + public TestExportVirtualFolder(IProject aComponentProject) { + super(aComponentProject, new Path("/")); + } + + public IVirtualResource[] members(int memberFlags) throws CoreException { + return new IVirtualResource[] { + new VirtualFile(file.getProject(), new Path("inside"), file) + }; + } + + } + +}
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/classpath/tests/ClasspathDependencyEARTests.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/classpath/tests/ClasspathDependencyEARTests.java index d1f336e..277673d 100644 --- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/classpath/tests/ClasspathDependencyEARTests.java +++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/classpath/tests/ClasspathDependencyEARTests.java
@@ -42,8 +42,8 @@ import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.server.core.IModule; import org.eclipse.wst.server.core.model.IModuleFile; +import org.eclipse.wst.server.core.model.IModuleFolder; import org.eclipse.wst.server.core.model.IModuleResource; -import org.eclipse.wst.server.core.util.ModuleFolder; import org.eclipse.wst.server.core.util.ProjectModule; import junit.framework.Test; @@ -262,7 +262,7 @@ String name = moduleMembers[i].getName(); if (name.equals("META-INF")) { foundMetaInf = true; - IModuleResource manifestResource= ((ModuleFolder)moduleMembers[i]).members()[0]; + IModuleResource manifestResource= ((IModuleFolder)moduleMembers[i]).members()[0]; assertTrue(manifestResource.getModuleRelativePath().toString().equals("META-INF")); assertTrue("Expected MANIFEST.MF, got " + manifestResource.getName(), manifestResource.getName().equals("MANIFEST.MF")); java.io.File manifestFile = (java.io.File) manifestResource.getAdapter(java.io.File.class); @@ -321,10 +321,10 @@ foundTest = false; for (int i=0; i< moduleMembers.length; i++) { if (moduleMembers[i].getName().equals("WEB-INF")) { - IModuleResource[] webinfMembers = ((ModuleFolder)moduleMembers[i]).members(); + IModuleResource[] webinfMembers = ((IModuleFolder)moduleMembers[i]).members(); for (int j = 0; j < webinfMembers.length; j++) { if (webinfMembers[j].getName().equals("classes")) { - IModuleResource[] classesMembers = ((ModuleFolder)webinfMembers[j]).members(); + IModuleResource[] classesMembers = ((IModuleFolder)webinfMembers[j]).members(); if (classesMembers.length > 0) { IModuleResource test = classesMembers[0]; if (test.getName().equals("test") && test.getModuleRelativePath().equals(new Path("WEB-INF/classes")) && test instanceof IModuleFile) {
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/flexible/project/fvtests/WebDeployTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/flexible/project/fvtests/WebDeployTest.java index b4f7078..2b5ffac 100644 --- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/flexible/project/fvtests/WebDeployTest.java +++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/flexible/project/fvtests/WebDeployTest.java
@@ -12,6 +12,8 @@ import java.io.IOException; import java.net.URL; +import java.util.Arrays; +import java.util.List; import junit.framework.Test; import junit.framework.TestCase; @@ -28,8 +30,8 @@ import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.server.core.IModule; +import org.eclipse.wst.server.core.model.IModuleFolder; import org.eclipse.wst.server.core.model.IModuleResource; -import org.eclipse.wst.server.core.util.ModuleFolder; import org.eclipse.wtp.j2ee.headless.tests.plugin.HeadlessTestsPlugin; public class WebDeployTest extends TestCase { @@ -55,25 +57,26 @@ for (int i=0; i<members.length; i++) { String name = members[i].getName(); if (name.equals("META-INF")) { - IModuleResource manifest = ((ModuleFolder)members[i]).members()[0]; + IModuleResource manifest = ((IModuleFolder)members[i]).members()[0]; assertTrue(manifest.getModuleRelativePath().toString().equals("META-INF")); assertTrue(manifest.getName().equals("MANIFEST.MF")); } else if (name.equals("WEB-INF")) { - IModuleResource[] webInf = ((ModuleFolder)members[i]).members(); + IModuleResource[] webInf = ((IModuleFolder)members[i]).members(); assertTrue(webInf.length==3); for (int j=0; j<webInf.length; j++) { IModuleResource webResource = webInf[j]; assertTrue(webResource.getModuleRelativePath().toString().equals("WEB-INF")); if (webResource.getName().equals("lib")){ - IModuleResource[] webresMembers = ((ModuleFolder)webResource).members(); - {//finds only smokeEJB.jar here... - assertTrue(webresMembers.length==2); - //Check that the names match the 3 names we expect - for (int k = 0; k < webresMembers.length; k++){ - String localName = webresMembers[k].getName(); - assertTrue (localName.equals("SmokeEJB.jar") || localName.equals("AutoWorldEJB512.jar")); - } + IModuleResource[] webresMembers = ((IModuleFolder)webResource).members(); + { + //finds only smokeEJB.jar here... + assertTrue(webresMembers.length==0); +// //Check that the names match the 3 names we expect +// for (int k = 0; k < webresMembers.length; k++){ +// String localName = webresMembers[k].getName(); +// assertTrue (localName.equals("SmokeEJB.jar") || localName.equals("AutoWorldEJB512.jar")); +// } } } } @@ -84,10 +87,20 @@ // on the manifest but web lib projects IModule[] childModules = deployable.getChildModules(); - // TODO temporary remove assert, possible linux issue, investigate - //assertTrue(childModules.length==3); + assertEquals(6, childModules.length); + List childURIs = Arrays.asList(new String[] { + "WEB-INF/lib/SmokeEJB.jar", + "WEB-INF/lib/TestWebLibProject.jar", + "WEB-INF/lib/AutoWorldEJB512.jar", + "TestDeployUtil.jar", + "MyCoEJB.jar", + "customerEjb.jar" + }); + for (int l = 0; l < childModules.length; l++){ - assertTrue(childModules[l].getName().equals("TestWebLibProject")); + String uri = deployable.getURI(childModules[l]); + if( !childURIs.contains(uri)) + fail("URI " + uri + " is not an expected child module uri result"); } } catch (CoreException e) {
diff --git a/tests/org.eclipse.jst.j2ee.tests/plugin.xml b/tests/org.eclipse.jst.j2ee.tests/plugin.xml index 896de1a..5da2b7a 100644 --- a/tests/org.eclipse.jst.j2ee.tests/plugin.xml +++ b/tests/org.eclipse.jst.j2ee.tests/plugin.xml
@@ -36,6 +36,13 @@ class="org.eclipse.jst.j2ee.bindingshelper.tests.BarBindingsHelper" id="org.eclipse.jst.j2ee.bindingshelper.tests.barBindingsHelper"/> </extension> + <extension + point="org.eclipse.wst.common.modulecore.referenceResolver"> + <resolver + class="org.eclipse.wtp.j2ee.headless.tests.exportmodel.TestExportReferenceResolver" + id="org.eclipse.jst.j2ee.tests.resolver1"> + </resolver> + </extension> </plugin>