Author: scabanovich
Date: 2011-09-02 19:39:37 -0400 (Fri, 02 Sep 2011)
New Revision: 34504
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/A.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.changed
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/C.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolvedTypesCacheTest.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
Log:
JBIDE-9645
https://issues.jboss.org/browse/JBIDE-9645
Cache of resolved types should be cleaned before build. Automatic test added that would
fail if cache is not cleaned.
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/A.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/A.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/A.java 2011-09-02
23:39:37 UTC (rev 34504)
@@ -0,0 +1,7 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.cache;
+
+import javax.inject.Inject;
+
+public class A {
+ @Inject B.D a;
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/A.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.changed
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.changed
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.changed 2011-09-02
23:39:37 UTC (rev 34504)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.cache;
+
+public class B extends C {
+ public static class D {}
+}
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.java 2011-09-02
23:39:37 UTC (rev 34504)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.cache;
+
+public class B extends C {
+// public static class D {}
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/B.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/C.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/C.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/C.java 2011-09-02
23:39:37 UTC (rev 34504)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.cache;
+
+public class C {
+ public static class D {}
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/cache/C.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-09-02
22:34:19 UTC (rev 34503)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-09-02
23:39:37 UTC (rev 34504)
@@ -38,6 +38,7 @@
import org.jboss.tools.cdi.core.test.tck.ProducerMethodDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.QualifierDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.QualifierWithMembersTest;
+import org.jboss.tools.cdi.core.test.tck.ResolvedTypesCacheTest;
import org.jboss.tools.cdi.core.test.tck.ScopeDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.SelectedAlternativeTest;
import org.jboss.tools.cdi.core.test.tck.StereotypeDefinitionTest;
@@ -104,6 +105,7 @@
suite.addTestSuite(DynamicLookupTest.class);
suite.addTestSuite(AmbiguousDependencyTest.class);
suite.addTestSuite(UnsatisfiedDependencyTest.class);
+ suite.addTestSuite(ResolvedTypesCacheTest.class);
// Validation tests
suite.addTestSuite(DefenitionErrorsValidationTest.class);
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolvedTypesCacheTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolvedTypesCacheTest.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolvedTypesCacheTest.java 2011-09-02
23:39:37 UTC (rev 34504)
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.core.test.tck;
+
+import java.io.IOException;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+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.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.IInjectionPointField;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
+import org.jboss.tools.common.util.EclipseJavaUtil;
+import org.jboss.tools.test.util.ResourcesUtils;
+
+/**
+ *
+ * EXECUTE: Create beans in cdi project
+ *
+ * public class A {
+ * @Inject B.D a;
+ * }
+ *
+ * public class B extends C {
+ * }
+ *
+ * public class C {
+ * public static class D {}
+ * }
+ * ASSERT: Injection point is resolved to C.D.
+ * EXECUTE: copy declaration of class D into class B and wait for the incremental build.
+ * FAILURE: Injection point is still resolved to C.D
+ * ASSERT: Injection point is resolved to B.D
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class ResolvedTypesCacheTest extends TCKTest {
+ static String PATH_A =
"JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/cache/A.java";
+ static String PATH_B =
"JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/cache/B.java";
+ static String PATH_B_CHANGED =
"JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/cache/B.changed";
+ static String PATH_C =
"JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/cache/C.java";
+
+ public void testCache() throws CoreException, IOException {
+ IJavaProject javaProject = EclipseResourceUtil.getJavaProject(tckProject);
+ IType t = EclipseJavaUtil.findType(javaProject,
"org.jboss.jsr299.tck.tests.jbt.resolution.cache.A");
+ assertEquals("org.jboss.jsr299.tck.tests.jbt.resolution.cache.C.D",
EclipseJavaUtil.resolveType(t, "B.D"));
+
+ IInjectionPointField injectionPoint = getInjectionPointField(PATH_A, "a");
+ assertNotNull(injectionPoint);
+ Set<IBean> bs = cdiProject.getBeans(true, injectionPoint);
+ assertEquals(1, bs.size());
+ IBean b = bs.iterator().next();
+ assertEquals("org.jboss.jsr299.tck.tests.jbt.resolution.cache.C$D",
b.getBeanClass().getFullyQualifiedName());
+
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ IFile bFile = tckProject.getFile(new Path(PATH_B));
+ IFile changedFile = tckProject.getFile(new Path(PATH_B_CHANGED));
+ bFile.setContents(changedFile.getContents(), IFile.FORCE, new NullProgressMonitor());
+ tckProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+
+ t = EclipseJavaUtil.findType(javaProject,
"org.jboss.jsr299.tck.tests.jbt.resolution.cache.A");
+ assertEquals("org.jboss.jsr299.tck.tests.jbt.resolution.cache.B.D",
EclipseJavaUtil.resolveType(t, "B.D"));
+
+ injectionPoint = getInjectionPointField(PATH_A, "a");
+ bs = cdiProject.getBeans(true, injectionPoint);
+ assertEquals(1, bs.size());
+ b = bs.iterator().next();
+ assertEquals("org.jboss.jsr299.tck.tests.jbt.resolution.cache.B$D",
b.getBeanClass().getFullyQualifiedName());
+ }
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolvedTypesCacheTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain