Author: scabanovich
Date: 2011-06-15 19:11:28 -0400 (Wed, 15 Jun 2011)
New Revision: 32129
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.classpath
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.project
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.settings/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.settings/org.eclipse.jdt.core.prefs
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/bin/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/bin/test/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/bin/test/BeanB.class
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.1
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.original
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/cdi-api.jar
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/cdi-simple.jar
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/javax.inject.jar
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/src/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/src/test/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/src/test/BeanB.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/RemoveJarFromClasspathTest.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
Log:
JBIDE-9147
https://issues.jboss.org/browse/JBIDE-9147
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.classpath
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.classpath
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.classpath 2011-06-15
23:11:28 UTC (rev 32129)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="lib" path="lib/cdi-api.jar"/>
+ <classpathentry kind="lib" path="lib/javax.inject.jar"/>
+ <classpathentry kind="lib" path="lib/cdi-simple.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.classpath
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.project
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.project
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.project 2011-06-15
23:11:28 UTC (rev 32129)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>RemoveJarTest</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.jboss.tools.jst.web.kb.kbbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.jboss.tools.cdi.core.cdibuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.jboss.tools.jst.web.kb.kbnature</nature>
+ <nature>org.jboss.tools.cdi.core.cdinature</nature>
+ </natures>
+</projectDescription>
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.project
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.settings/org.eclipse.jdt.core.prefs
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.settings/org.eclipse.jdt.core.prefs
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.settings/org.eclipse.jdt.core.prefs 2011-06-15
23:11:28 UTC (rev 32129)
@@ -0,0 +1,12 @@
+#Wed Jun 15 14:58:40 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/bin/test/BeanB.class
===================================================================
(Binary files differ)
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/bin/test/BeanB.class
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.1
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.1
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.1 2011-06-15
23:11:28 UTC (rev 32129)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="lib" path="lib/cdi-api.jar"/>
+ <classpathentry kind="lib" path="lib/javax.inject.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.original
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.original
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/classpath.original 2011-06-15
23:11:28 UTC (rev 32129)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="lib" path="lib/cdi-api.jar"/>
+ <classpathentry kind="lib" path="lib/javax.inject.jar"/>
+ <classpathentry kind="lib" path="lib/cdi-simple.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/cdi-api.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/cdi-api.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/cdi-simple.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/cdi-simple.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/javax.inject.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/lib/javax.inject.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/src/test/BeanB.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/src/test/BeanB.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/src/test/BeanB.java 2011-06-15
23:11:28 UTC (rev 32129)
@@ -0,0 +1,5 @@
+package test;
+
+public class BeanB {
+ String s = "#{}";
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/RemoveJarTest/src/test/BeanB.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-06-15
22:09:03 UTC (rev 32128)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-06-15
23:11:28 UTC (rev 32129)
@@ -99,6 +99,7 @@
suite.addTestSuite(CoreValidationTest.class);
suite.addTestSuite(ELValidationTest.class);
+ suiteAll.addTestSuite(RemoveJarFromClasspathTest.class);
suiteAll.addTestSuite(ExtensionFactoryTest.class);
suiteAll.addTestSuite(ExtensionManagerTest.class);
suiteAll.addTestSuite(WeldJarTest.class);
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/RemoveJarFromClasspathTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/RemoveJarFromClasspathTest.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/RemoveJarFromClasspathTest.java 2011-06-15
23:11:28 UTC (rev 32129)
@@ -0,0 +1,123 @@
+package org.jboss.tools.cdi.core.test;
+
+import java.io.IOException;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.ICDIProject;
+import org.jboss.tools.cdi.internal.core.impl.definition.TypeDefinition;
+import org.jboss.tools.common.model.XModel;
+import org.jboss.tools.common.model.filesystems.FileSystemsHelper;
+import org.jboss.tools.common.model.filesystems.impl.Libs;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
+import org.jboss.tools.test.util.JobUtils;
+import org.jboss.tools.test.util.ResourcesUtils;
+
+/**
+ *
+ * @author V.Kabanovich
+ *
+ */
+public class RemoveJarFromClasspathTest extends TestCase {
+ protected static String PLUGIN_ID = "org.jboss.tools.cdi.core.test";
+ IProject project = null;
+
+ public RemoveJarFromClasspathTest() {}
+
+ public void setUp() throws Exception {
+ project = ResourcesUtils.importProject(PLUGIN_ID,
"/projects/RemoveJarTest");
+ JobUtils.waitForIdle();
+ project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+ }
+
+ /**
+ * Project RemoveJarTest has cdi-simple.jar added to classpath.
+ * Class test.BeanA from that jar is loaded into CDI model of RemoveJarTest project.
+ *
+ * When cdi-simple.jar is excluded from classpath, incremental build should clean from
context objects loaded
+ * from cdi-simple.jar.
+ *
+ * When cdi-simple.jar is restored in classpath, incremental build should again load it
into CDI model.
+ *
+ * Since this is an integration test, it also checks Libs object - cache for classpath
used to update CDI model,
+ * in that way we may separate failure caused by underlying common model and failure in
CDI builder.
+ *
+ * @throws CoreException
+ * @throws IOException
+ */
+ public void testRemoveJarFromClasspath() throws CoreException, IOException {
+ XModel model = EclipseResourceUtil.createObjectForResource(project).getModel();
+ Libs libs = FileSystemsHelper.getLibs(model);
+ assertTrue("cdi-simple.jar should be included into XModel.", contains(libs,
"/cdi-simple.jar"));
+
+ ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+ TypeDefinition def =
cdi.getNature().getDefinitions().getTypeDefinition("test.BeanA");
+ assertNotNull("Class test.BeanA should be loaded into CDI model.", def);
+
+ replaceFile(project, "/classpath.1", "/.classpath");
+ assertFalse("cdi-simple.jar should be excluded from XModel.", contains(libs,
"/cdi-simple.jar"));
+ def = cdi.getNature().getDefinitions().getTypeDefinition("test.BeanA");
+ assertNull("Class test.BeanA should be cleaned from CDI model.", def);
+
+ replaceFile(project, "/classpath.original", "/.classpath");
+ assertTrue("cdi-simple.jar should be included into XModel.", contains(libs,
"/cdi-simple.jar"));
+ def = cdi.getNature().getDefinitions().getTypeDefinition("test.BeanA");
+ assertNotNull("Class test.BeanA should be reloaded into CDI model.", def);
+ }
+
+ private boolean contains(Libs libs, String path) {
+ List<String> paths = libs.getPaths();
+ for (String p: paths) {
+ if(p.endsWith(path)) return true;
+ }
+ return false;
+ }
+
+ /**
+ * Util method.
+ *
+ * @param project
+ * @param sourcePath
+ * @param targetPath
+ * @throws CoreException
+ */
+ public static void replaceFile(IProject project, String sourcePath, String targetPath)
throws CoreException {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ JobUtils.waitForIdle();
+ try {
+ IFile target = project.getFile(new Path(targetPath));
+ IFile source = project.getFile(new Path(sourcePath));
+ assertTrue(source.exists());
+ if(!target.exists()) {
+ target.create(source.getContents(), true, new NullProgressMonitor());
+ } else {
+ target.setContents(source.getContents(), true, false, new NullProgressMonitor());
+ }
+ JobUtils.waitForIdle();
+ project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new
NullProgressMonitor());
+ JobUtils.waitForIdle();
+ } finally {
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ JobUtils.waitForIdle();
+ }
+ }
+
+ public void tearDown() throws Exception {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ JobUtils.waitForIdle();
+ project.delete(true, true, null);
+ JobUtils.waitForIdle();
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ JobUtils.waitForIdle();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/RemoveJarFromClasspathTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain