Author: akazakov
Date: 2011-06-24 21:03:42 -0400 (Fri, 24 Jun 2011)
New Revision: 32361
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/ACMEQueue.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DispatcherPolicy.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Durable.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DurableMessageLogger.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageDispatcher.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageLogger.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageManager.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageQueue.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageSystemConfiguration.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MyMessageQueues.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Payload.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/QueueManager.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/messages.properties
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DefenitionErrorsValidationTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java
Log:
https://issues.jboss.org/browse/JBIDE-9255
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-06-24
22:24:15 UTC (rev 32360)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -309,6 +309,7 @@
validateResource(file);
}
+ cleanSavedMarkers();
return OK_STATUS;
}
@@ -382,6 +383,7 @@
validateResource(file);
}
+ cleanSavedMarkers();
return OK_STATUS;
}
@@ -574,10 +576,15 @@
if(reference==null) {
reference = CDIUtil.getNamedDeclaration(bean);
}
- StringBuffer sb = new StringBuffer(bean.getSimpleJavaName());
+ Set<String> names = new HashSet<String>();
+ String bName = bean.getSimpleJavaName();
+ names.add(bName);
+ StringBuffer sb = new StringBuffer(bName);
for (IBean iBean : beans) {
- if(bean!=iBean) {
- sb.append(", ").append(iBean.getSimpleJavaName());
+ bName = iBean.getSimpleJavaName();
+ if(bean!=iBean && !names.contains(bName)) {
+ names.add(bName);
+ sb.append(", ").append(bName);
}
}
addError(MessageFormat.format(CDIValidationMessages.DUPLCICATE_EL_NAME,
sb.toString()), CDIPreferences.AMBIGUOUS_EL_NAMES, reference, bean.getResource());
@@ -617,6 +624,15 @@
}
/*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#shouldCheckDuplicateMarkers()
+ */
+ @Override
+ protected boolean shouldCheckDuplicateMarkers() {
+ return true;
+ }
+
+ /*
* Returns set of EL names which are declared in the resource
*/
private Set<String> getELNamesByResource(IPath resourcePath) {
@@ -753,6 +769,7 @@
*/
Set<IParametedType> beanTypes = bean.getLegalTypes();
Set<IParametedType> specializingBeanTypes = specializedBean.getLegalTypes();
+ StringBuffer missingTypes = new StringBuffer();
for (IParametedType specializingType : specializingBeanTypes) {
boolean found = false;
for (IParametedType type : beanTypes) {
@@ -762,11 +779,18 @@
}
}
if(!found) {
- addError(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
CDIPreferences.MISSING_TYPE_IN_SPECIALIZING_BEAN,
- new String[]{beanName, specializingBeanName,
specializingType.getType().getElementName()},
- bean.getSpecializesAnnotationDeclaration(), bean.getResource());
+ if(missingTypes.length()>0) {
+ missingTypes.append(", ");
+ }
+ missingTypes.append(specializingType.getType().getElementName());
}
}
+ if(missingTypes.length()>0) {
+ addError(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
CDIPreferences.MISSING_TYPE_IN_SPECIALIZING_BEAN,
+ new String[]{beanName, specializingBeanName, missingTypes.toString()},
+ bean.getSpecializesAnnotationDeclaration(), bean.getResource());
+ }
+
/*
* 4.3.1. Direct and indirect specialization
* - X specializes Y and Y has a name and X declares a name explicitly, using @Named
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/messages.properties
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/messages.properties 2011-06-24
22:24:15 UTC (rev 32360)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/messages.properties 2011-06-25
01:03:42 UTC (rev 32361)
@@ -112,7 +112,7 @@
ILLEGAL_SPECIALIZING_SESSION_BEAN=Session bean class annotated @Specializes must directly
extend the bean class of another session bean [JSR-299 �3.2.4]
ILLEGAL_SPECIALIZING_PRODUCER_STATIC=Producer method annotated @Specializes cannot be
static [JSR-299 �3.3.3]
ILLEGAL_SPECIALIZING_PRODUCER_OVERRIDE=Producer method annotated @Specializes must
directly override another producer method [JSR-299 �3.3.3]
-MISSING_TYPE_IN_SPECIALIZING_BEAN=Bean {0} specializes {1} but does not have {2} bean
type of {1} [JSR-299 �4.3.1]
+MISSING_TYPE_IN_SPECIALIZING_BEAN=Bean {0} specializes {1} but does not have bean
type(s): {2} of bean {1} [JSR-299 �4.3.1]
CONFLICTING_NAME_IN_SPECIALIZING_BEAN=Bean {0} specializes {1} and {1} has a name and {0}
declares a name explicitly, using @Named [JSR-299 �4.3.1]
INTERCEPTOR_ANNOTATED_SPECIALIZES=Interceptor is annotated @Specializes [JSR-299 �4.3.1]
DECORATOR_ANNOTATED_SPECIALIZES=Decorator is annotated @Specializes [JSR-299 �4.3.1]
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DefenitionErrorsValidationTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DefenitionErrorsValidationTest.java 2011-06-24
22:24:15 UTC (rev 32360)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DefenitionErrorsValidationTest.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -12,6 +12,7 @@
package org.jboss.tools.cdi.core.test.tck.validation;
import java.text.MessageFormat;
+import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.osgi.util.NLS;
@@ -928,8 +929,17 @@
*/
public void testBeanDoesNotHaveSomeTypeOfSpecializedBean() throws Exception {
IFile file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/specialization/MissingTypeBeanBroken.java");
- AbstractResourceMarkerTest.assertMarkerIsCreated(file,
MessageFormat.format(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
"MissingTypeBeanBroken", "Farmer", "Farmer"), 6);
- AbstractResourceMarkerTest.assertMarkerIsCreated(file,
MessageFormat.format(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
"MissingTypeBeanBroken", "Farmer", "Simple"), 6);
+
+ String message =
AbstractResourceMarkerTest.convertMessageToPatern(MessageFormat.format(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
"MissingTypeBeanBroken", "Farmer", "Farmer, Simple"));
+ List<Integer> lines = AbstractResourceMarkerTest.findMarkerLines(file,
AbstractResourceMarkerTest.MARKER_TYPE, message, true);
+ if(!lines.contains(new Integer(6))) {
+ message =
AbstractResourceMarkerTest.convertMessageToPatern(MessageFormat.format(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
"MissingTypeBeanBroken", "Farmer", "Simple, Farmer"));
+ lines = AbstractResourceMarkerTest.findMarkerLines(file,
AbstractResourceMarkerTest.MARKER_TYPE, message, true);
+ assertTrue(lines.contains(new Integer(6)));
+ }
+
+// AbstractResourceMarkerTest.assertMarkerIsCreated(file,
MessageFormat.format(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
"MissingTypeBeanBroken", "Farmer", "Farmer"), 6);
+// AbstractResourceMarkerTest.assertMarkerIsCreated(file,
MessageFormat.format(CDIValidationMessages.MISSING_TYPE_IN_SPECIALIZING_BEAN,
"MissingTypeBeanBroken", "Farmer", "Simple"), 6);
}
/**
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/ACMEQueue.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/ACMEQueue.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/ACMEQueue.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,13 @@
+package org.jboss.generic4;
+
+import java.lang.annotation.Retention;
+
+import org.jboss.seam.solder.bean.generic.GenericType;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Retention(RUNTIME)
+(a)GenericType(MessageSystemConfiguration.class)
+@interface ACMEQueue {
+
+ String value();
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/ACMEQueue.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DispatcherPolicy.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DispatcherPolicy.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DispatcherPolicy.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,7 @@
+package org.jboss.generic4;
+
+public interface DispatcherPolicy {
+
+ void removeDuplicates();
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DispatcherPolicy.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Durable.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Durable.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Durable.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,21 @@
+package org.jboss.generic4;
+
+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 Durable {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Durable.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DurableMessageLogger.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DurableMessageLogger.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DurableMessageLogger.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,23 @@
+package org.jboss.generic4;
+
+import javax.inject.Inject;
+
+public class DurableMessageLogger {
+
+ @Inject
+ @Durable
+ MessageDispatcher dispatcher;
+
+ @Inject
+ @Durable
+ DispatcherPolicy policy;
+
+ /* Tweak the dispatch policy to enable duplicate removal */
+ @Inject
+ void tweakPolicy(@Durable DispatcherPolicy policy) {
+ policy.removeDuplicates();
+ }
+
+ void logMessage(Payload payload) {
+ }
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/DurableMessageLogger.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageDispatcher.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageDispatcher.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageDispatcher.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,9 @@
+package org.jboss.generic4;
+
+import org.jboss.seam.solder.messages.Message;
+
+public interface MessageDispatcher {
+
+ void send(Message message);
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageDispatcher.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageLogger.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageLogger.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageLogger.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,19 @@
+package org.jboss.generic4;
+
+import javax.inject.Inject;
+
+public class MessageLogger {
+
+ @Inject
+ MessageDispatcher dispatcher;
+
+ void logMessage(Payload payload) {
+ /* Add metaddata to the message */
+ dispatcher.send(null);
+ }
+
+ @Inject
+ @Durable
+ MessageDispatcher durableDispatcher;
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageLogger.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageManager.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageManager.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageManager.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,27 @@
+package org.jboss.generic4;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import org.jboss.seam.solder.bean.generic.ApplyScope;
+import org.jboss.seam.solder.bean.generic.Generic;
+import org.jboss.seam.solder.bean.generic.GenericConfiguration;
+
+(a)GenericConfiguration(ACMEQueue.class)
+class MessageManager {
+
+ @Inject
+ @Generic
+ MessageQueue queue;
+
+ @Produces
+ @ApplyScope
+ MessageDispatcher messageDispatcherProducer() {
+ return queue.createMessageDispatcher();
+ }
+
+ @Produces
+ DispatcherPolicy getPolicy() {
+ return queue.getDispatcherPolicy();
+ }
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageManager.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageQueue.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageQueue.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageQueue.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,8 @@
+package org.jboss.generic4;
+
+public interface MessageQueue {
+
+ public MessageDispatcher createMessageDispatcher();
+
+ public DispatcherPolicy getDispatcherPolicy();
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageQueue.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageSystemConfiguration.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageSystemConfiguration.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageSystemConfiguration.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,10 @@
+package org.jboss.generic4;
+
+public class MessageSystemConfiguration {
+
+ MessageSystemConfiguration(Object o) {
+
+ }
+
+ protected boolean durable;
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MessageSystemConfiguration.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MyMessageQueues.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MyMessageQueues.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MyMessageQueues.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,23 @@
+package org.jboss.generic4;
+
+import javax.enterprise.context.ConversationScoped;
+import javax.enterprise.inject.Produces;
+import javax.inject.Named;
+
+public class MyMessageQueues {
+ @Produces
+ @ACMEQueue("defaultQueue")
+ @Named("aaa")
+ MessageSystemConfiguration defaultQueue = new MessageSystemConfiguration(null);
+
+ @Produces
+ @Durable
+ @ConversationScoped
+ @ACMEQueue("durableQueue")
+ @Named("aaa")
+ MessageSystemConfiguration producerDefaultQueue() {
+ MessageSystemConfiguration config = new MessageSystemConfiguration(null);
+// config.setDurable(true);
+ return config;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/MyMessageQueues.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Payload.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Payload.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Payload.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,5 @@
+package org.jboss.generic4;
+
+public class Payload {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/Payload.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/QueueManager.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/QueueManager.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/QueueManager.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -0,0 +1,38 @@
+package org.jboss.generic4;
+
+import javax.annotation.PostConstruct;
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import org.jboss.seam.solder.bean.generic.ApplyScope;
+import org.jboss.seam.solder.bean.generic.Generic;
+import org.jboss.seam.solder.bean.generic.GenericConfiguration;
+import java.io.Serializable;
+
+(a)GenericConfiguration(ACMEQueue.class)
+@ApplyScope
+public class QueueManager implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Inject
+ @Generic
+ MessageSystemConfiguration systemConfig;
+
+ @Inject
+ ACMEQueue config;
+
+// MessageQueueFactory factory;
+
+ @PostConstruct
+ void init() {
+// factory = systemConfig.createMessageQueueFactory();
+ }
+
+ @Produces
+ @ApplyScope
+ public MessageQueue messageQueueProducer() {
+// return factory.createMessageQueue(config.name());
+ return null;
+ }
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/generic4/QueueManager.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:24:15 UTC (rev 32360)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/GenericBeanValidationTest.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -164,6 +164,11 @@
AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
SeamSolderValidationMessages.AMBIGUOUS_GENERIC_CONFIGURATION_POINT.substring(0, 35) +
".*");
}
+ //
https://issues.jboss.org/browse/JBIDE-9255
+ public void testDuplicateNamedBeans() throws CoreException {
+ IFile file = project.getFile(new
Path("src/org/jboss/generic4/MyMessageQueues.java"));
+ AbstractResourceMarkerTest.assertMarkerIsCreated(file,
CDIValidationMessages.DUPLCICATE_EL_NAME.substring(0, 11) + ".*", 10, 17);
+ }
static void writeFile(IProject project, String sourcePath, String targetPath) throws
CoreException {
boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java 2011-06-24
22:24:15 UTC (rev 32360)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java 2011-06-25
01:03:42 UTC (rev 32361)
@@ -11,6 +11,7 @@
package org.jboss.tools.jst.web.kb.internal.validation;
import java.text.MessageFormat;
+import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.resources.IMarker;
@@ -76,6 +77,7 @@
* @see
org.jboss.tools.jst.web.kb.validation.IValidationErrorManager#init(org.eclipse.core.resources.IProject,
org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
org.jboss.tools.jst.web.kb.validation.IProjectValidationContext,
org.eclipse.wst.validation.internal.provisional.core.IValidator,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
public void init(IProject project, ContextValidationHelper validationHelper,
IProjectValidationContext validationContext, IValidator manager, IReporter reporter) {
+ cleanSavedMarkers();
setProject(project);
setCoreHelper(validationHelper);
setValidationManager(manager);
@@ -187,6 +189,51 @@
*/
protected abstract String getPreference(IProject project, String preferenceKey);
+ private Set<MarkerID> markers = new HashSet<MarkerID>();
+
+ private static class MarkerID {
+
+ String preferenceKey;
+ int length;
+ int offset;
+ String path;
+
+ public MarkerID(String preferenceKey, int length, int offset, String path) {
+ super();
+ this.preferenceKey = preferenceKey;
+ this.length = length;
+ this.offset = offset;
+ this.path = path;
+ }
+
+ @Override
+ public int hashCode() {
+ return toString().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof MarkerID && toString().equals(obj.toString());
+ }
+
+ @Override
+ public String toString() {
+ return path + ":" + preferenceKey + ":" + length + ":" +
offset; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ }
+
+ /**
+ * Returns true if the manager should not add a problem markers with the same location
and preference key twice.
+ * @return
+ */
+ protected boolean shouldCheckDuplicateMarkers() {
+ return false;
+ }
+
+ protected void cleanSavedMarkers() {
+ markers.clear();
+ }
+
/*
* (non-Javadoc)
* @see
org.jboss.tools.seam.internal.core.validation.IValidationErrorManager#addError(java.lang.String,
java.lang.String, java.lang.String[], int, int, org.eclipse.core.resources.IResource)
@@ -199,8 +246,18 @@
int severity = IMessage.HIGH_SEVERITY;
if (SeverityPreferences.WARNING.equals(preferenceValue)) {
severity = IMessage.NORMAL_SEVERITY;
- }
- marker = addError(message, severity, messageArguments, lineNumber, length, offset,
target, getDocumentProvider(), getMarkerId(), getMarkerOwner());
+ }
+ if(shouldCheckDuplicateMarkers()) {
+ MarkerID id = new MarkerID(preferenceKey, length, offset,
target.getFullPath().toOSString());
+ if(!markers.contains(id)) {
+ marker = addError(message, severity, messageArguments, lineNumber, length, offset,
target, getDocumentProvider(), getMarkerId(), getMarkerOwner());
+ if(marker!=null) {
+ markers.add(id);
+ }
+ }
+ } else {
+ marker = addError(message, severity, messageArguments, lineNumber, length, offset,
target, getDocumentProvider(), getMarkerId(), getMarkerOwner());
+ }
}
return marker;
}