[319417] ClassCastExceptions during refactorying and Fixes for All Dependency Tests
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/EarLibDirContainerTests.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/EarLibDirContainerTests.java index 82b3eae..3cc9efa 100644 --- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/EarLibDirContainerTests.java +++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/EarLibDirContainerTests.java
@@ -37,7 +37,8 @@ public void testEarLibDirDependency() throws Exception { ResourcesPlugin.getWorkspace().getRoot().getProjects(); IProject earProject = ProjectUtil.createEARProject(EAR_PROJECT_NAME, J2EEVersionConstants.JEE_5_0_ID, false); - IProject utilProject = ProjectUtil.createUtilityProject(UTIL_PROJECT_NAME, EAR_PROJECT_NAME); + IProject utilProject = ProjectUtil.createUtilityProject(UTIL_PROJECT_NAME, null); + DependencyCreationUtil.createEARDependency(earProject, utilProject, false); IProject libProject = ProjectUtil.createUtilityProject(LIB_PROJECT_NAME, null); DependencyCreationUtil.createEARDependency(earProject, libProject, true); updateEARLibrariesContainer(utilProject);
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyCreationUtil.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyCreationUtil.java index e9a66d5..9425996 100644 --- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyCreationUtil.java +++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyCreationUtil.java
@@ -14,6 +14,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.jar.Manifest; import org.eclipse.core.commands.ExecutionException; @@ -57,6 +58,10 @@ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, depList); if (inLibDir) { dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, J2EEConstants.EAR_DEFAULT_LIB_DIR); //$NON-NLS-1$ + } else { + dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, J2EEConstants.EAR_ROOT_DIR); //$NON-NLS-1$ + Map modDeployPathMap = (Map) dm.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH_MAP); + modDeployPathMap.put(childComp, J2EEConstants.EAR_ROOT_DIR); } dm.getDefaultOperation().execute(null, null); ProjectUtil.waitForClasspathUpdate();
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyVerificationUtil.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyVerificationUtil.java index ef01f06..d6b7159 100644 --- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyVerificationUtil.java +++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/j2ee/dependency/tests/util/DependencyVerificationUtil.java
@@ -31,6 +31,8 @@ import org.eclipse.jst.j2ee.componentcore.util.EARArtifactEdit; import org.eclipse.jst.j2ee.internal.J2EEConstants; import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater; +import org.eclipse.jst.j2ee.project.EarUtilities; +import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.internal.builder.IDependencyGraph; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; @@ -230,7 +232,13 @@ // .project dep verifyProjectReference(earProject, childProject, true); // .component dep - verifyComponentReference(earProject, childProject, ROOT, true); + + IPath runtimePath = ROOT; + if(EarUtilities.isJEEComponent(ComponentCore.createComponent(earProject)) && JavaEEProjectUtilities.isUtilityProject(childProject)){ + runtimePath = new Path("/lib"); + } + + verifyComponentReference(earProject, childProject, runtimePath, true); // application.xml ref String moduleURI = null; if (moduleRef) { @@ -273,8 +281,9 @@ verifyManifestReference(source, target.getName() + ".jar", true); //$NON-NLS-1$ // verify classpath ref (will be via "EAR Libraries") verifyClasspathReference(source, target, true); - // DependencyGraphManager - verifyDependency(source, target, true); + // DependencyGraphManager only tracks references defined by the .settings/org.eclipse.wst.common.component file + // References defined via manifests will not be mapped in the IDependencyGraph + //verifyDependency(source, target, true); } public static void verifyModuleDependencyChanged(final IProject source, final IProject oldTarget, final IProject newTarget) throws CoreException, IOException {