[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 {