Author: scabanovich
Date: 2011-06-24 18:24:15 -0400 (Fri, 24 Jun 2011)
New Revision: 32360
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Configuration.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.duplicates
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.original
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/GenericAnnotation.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier1.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier2.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java
Log:
JBIDE-8695
https://issues.jboss.org/browse/JBIDE-8695
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Configuration.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Configuration.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Configuration.java 2011-06-24
22:24:15 UTC (rev 32360)
@@ -0,0 +1,5 @@
+package org.jboss.generic3;
+
+public class Configuration {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Configuration.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.duplicates
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.duplicates
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.duplicates 2011-06-24
22:24:15 UTC (rev 32360)
@@ -0,0 +1,27 @@
+package org.jboss.generic3;
+
+import javax.enterprise.inject.Any;
+import javax.enterprise.inject.Produces;
+
+/*
+ * Generic configuration points point1 and point2 are not duplicate.
+ * This test checks algorithm comparing qualifiers.
+ * (First, incorrect version considered point1 a duplicate of point2,
+ * if qualifiers of point1 made a subset of qualifiers of point2.)
+ *
+ */
+public class ConfigurationPointProducer {
+
+ @Produces
+ @GenericAnnotation("a")
+ @Qualifier1
+ @Qualifier2
+ Configuration point1;
+
+ @Produces
+ @GenericAnnotation("b")
+ @Qualifier1
+ @Qualifier2
+ Configuration point2;
+
+}
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.java 2011-06-24
22:24:15 UTC (rev 32360)
@@ -0,0 +1,26 @@
+package org.jboss.generic3;
+
+import javax.enterprise.inject.Any;
+import javax.enterprise.inject.Produces;
+
+/*
+ * Generic configuration points point1 and point2 are not duplicate.
+ * This test checks algorithm comparing qualifiers.
+ * (First, incorrect version considered point1 a duplicate of point2,
+ * if qualifiers of point1 made a subset of qualifiers of point2.)
+ *
+ */
+public class ConfigurationPointProducer {
+
+ @Produces
+ @GenericAnnotation("a")
+ @Qualifier1
+ Configuration point1;
+
+ @Produces
+ @GenericAnnotation("b")
+ @Qualifier1
+ @Qualifier2
+ Configuration point2;
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.original
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.original
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/ConfigurationPointProducer.original 2011-06-24
22:24:15 UTC (rev 32360)
@@ -0,0 +1,26 @@
+package org.jboss.generic3;
+
+import javax.enterprise.inject.Any;
+import javax.enterprise.inject.Produces;
+
+/*
+ * Generic configuration points point1 and point2 are not duplicate.
+ * This test checks algorithm comparing qualifiers.
+ * (First, incorrect version considered point1 a duplicate of point2,
+ * if qualifiers of point1 made a subset of qualifiers of point2.)
+ *
+ */
+public class ConfigurationPointProducer {
+
+ @Produces
+ @GenericAnnotation("a")
+ @Qualifier1
+ Configuration point1;
+
+ @Produces
+ @GenericAnnotation("b")
+ @Qualifier1
+ @Qualifier2
+ Configuration point2;
+
+}
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/GenericAnnotation.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/GenericAnnotation.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/GenericAnnotation.java 2011-06-24
22:24:15 UTC (rev 32360)
@@ -0,0 +1,12 @@
+package org.jboss.generic3;
+
+import java.lang.annotation.Retention;
+
+import org.jboss.seam.solder.bean.generic.GenericType;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Retention(RUNTIME)
+(a)GenericType(Configuration.class)
+@interface GenericAnnotation {
+ String value();
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/GenericAnnotation.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier1.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier1.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier1.java 2011-06-24
22:24:15 UTC (rev 32360)
@@ -0,0 +1,21 @@
+package org.jboss.generic3;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Qualifier
+@Target({ TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface Qualifier1 {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier1.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier2.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier2.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier2.java 2011-06-24
22:24:15 UTC (rev 32360)
@@ -0,0 +1,21 @@
+package org.jboss.generic3;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Qualifier
+@Target({ TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface Qualifier2 {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic3/Qualifier2.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java 2011-06-24
22:23:07 UTC (rev 32359)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java 2011-06-24
22:24:15 UTC (rev 32360)
@@ -136,7 +136,35 @@
AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
SeamSolderValidationMessages.WRONG_TYPE_OF_GENERIC_CONFIGURATION_POINT + ".*");
}
+ public void testDuplicateGenericPointConfiguration() throws CoreException {
+ /*
+ * ConfigurationPointProducer has no duplicate generic configuration points,
+ * because one of them has an additional qualifier.
+ */
+ IFile file = project.getFile(new
Path("src/org/jboss/generic3/ConfigurationPointProducer.java"));
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
SeamSolderValidationMessages.AMBIGUOUS_GENERIC_CONFIGURATION_POINT.substring(0, 35) +
".*");
+
+ /*
+ * Replace ConfigurationPointProducer with version where configuration points have same
qualifiers.
+ * It has duplicate generic configuration points.
+ */
+ writeFile(project,
"src/org/jboss/generic3/ConfigurationPointProducer.duplicates",
+ "src/org/jboss/generic3/ConfigurationPointProducer.java");
+
+ AbstractResourceMarkerTest.assertMarkerIsCreated(file,
SeamSolderValidationMessages.AMBIGUOUS_GENERIC_CONFIGURATION_POINT.substring(0, 35) +
".*", 19, 25);
+
+ /*
+ * Set original ConfigurationPointProducer.java back.
+ * ConfigurationPointProducer has no duplicate generic configuration points.
+ */
+ writeFile(project,
"src/org/jboss/generic3/ConfigurationPointProducer.original",
+ "src/org/jboss/generic3/ConfigurationPointProducer.java");
+
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
SeamSolderValidationMessages.AMBIGUOUS_GENERIC_CONFIGURATION_POINT.substring(0, 35) +
".*");
+ }
+
+
static void writeFile(IProject project, String sourcePath, String targetPath) throws
CoreException {
boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
JobUtils.waitForIdle();