Author: scabanovich
Date: 2012-08-29 12:12:44 -0400 (Wed, 29 Aug 2012)
New Revision: 43299
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/DefinitionContext.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
Log:
JBIDE-12479
https://issues.jboss.org/browse/JBIDE-12479
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java 2012-08-29
15:11:08 UTC (rev 43298)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java 2012-08-29
16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
package org.jboss.tools.cdi.core;
import java.util.Collection;
-import java.util.Set;
import org.jboss.tools.common.java.IAnnotationDeclaration;
import org.jboss.tools.common.java.IParametedType;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java 2012-08-29
15:11:08 UTC (rev 43298)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java 2012-08-29
16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
package org.jboss.tools.cdi.core;
import java.util.Collection;
-import java.util.Set;
/**
* Represents an element which can have interceptor bindings.
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java 2012-08-29
15:11:08 UTC (rev 43298)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java 2012-08-29
16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
package org.jboss.tools.cdi.core;
import java.util.Collection;
-import java.util.Set;
import org.jboss.tools.common.java.IParametedType;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.java 2012-08-29
15:11:08 UTC (rev 43298)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.java 2012-08-29
16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
package org.jboss.tools.cdi.core;
import java.util.Collection;
-import java.util.Set;
import org.jboss.tools.common.java.IAnnotated;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2012-08-29
15:11:08 UTC (rev 43298)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2012-08-29
16:12:44 UTC (rev 43299)
@@ -583,9 +583,10 @@
}
IType jType = type.getType();
if(jType == null) return false;
+ String typeName = jType.getFullyQualifiedName();
for (IParametedType t: types) {
IType jType1 = t.getType();
- if(jType1 == null ||
!jType.getFullyQualifiedName().equals(jType1.getFullyQualifiedName())) continue;
+ if(jType1 == null || !jType.getElementName().equals(jType1.getElementName()) ||
!typeName.equals(jType1.getFullyQualifiedName())) continue;
if(((ParametedType)t).getArrayIndex() != ((ParametedType)type).getArrayIndex())
continue;
if(((ParametedType)t).isAssignableTo((ParametedType)type, false)) {
return true;
@@ -595,38 +596,38 @@
}
public static boolean areMatchingQualifiers(Collection<IQualifierDeclaration>
beanQualifiers, Collection<IQualifierDeclaration> injectionQualifiers) throws
CoreException {
- if(beanQualifiers.isEmpty()) {
- if(injectionQualifiers.isEmpty()) {
- return true;
- }
+ if(beanQualifiers.isEmpty() && injectionQualifiers.isEmpty()) {
+ return true;
}
- Set<String> injectionKeys = new HashSet<String>();
+ Set<String> keys = new HashSet<String>();
for (IQualifierDeclaration d: injectionQualifiers) {
- injectionKeys.add(getAnnotationDeclarationKey(d));
+ keys.add(getAnnotationDeclarationKey(d));
}
- if(injectionKeys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
+ if(keys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
return true;
}
- if(injectionKeys.isEmpty()) {
- injectionKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+ if(keys.isEmpty()) {
+ keys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
}
- Set<String> beanKeys = new HashSet<String>();
if(beanQualifiers.isEmpty()) {
- beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
- } else for (IQualifierDeclaration d: beanQualifiers) {
- beanKeys.add(getAnnotationDeclarationKey(d));
+ keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+ } else {
+ int beanKeySize = 0;
+ String beanKey = null;
+ for (IQualifierDeclaration d: beanQualifiers) {
+ beanKeySize++;
+ beanKey = getAnnotationDeclarationKey(d);
+ keys.remove(beanKey);
+ }
+ if(beanKeySize == 1 &&
beanKey.startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
+ keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+ }
}
- if(beanKeys.size() == 1 &&
beanKeys.iterator().next().startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
- beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
- }
- for(String k: injectionKeys) {
- if(!beanKeys.contains(k)) return false;
- }
- return true;
+ return keys.isEmpty();
}
/**
@@ -637,38 +638,38 @@
* @throws CoreException
*/
public static boolean areMatchingQualifiers(Collection<IQualifierDeclaration>
beanQualifiers, IType... injectionQualifiers) throws CoreException {
- if(!beanQualifiers.isEmpty() || injectionQualifiers.length != 0) {
+ if(beanQualifiers.isEmpty() && injectionQualifiers.length == 0) {
+ return true;
+ }
- Set<String> injectionKeys = new HashSet<String>();
- for (IType d: injectionQualifiers) {
- injectionKeys.add(d.getFullyQualifiedName().replace('$', '.'));
- }
+ Set<String> keys = new HashSet<String>();
+ for (IType d: injectionQualifiers) {
+ keys.add(d.getFullyQualifiedName().replace('$', '.'));
+ }
- if(!injectionKeys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
- if(injectionKeys.isEmpty()) {
- injectionKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
- }
-
- Set<String> beanKeys = new HashSet<String>();
- if(beanQualifiers.isEmpty()) {
- beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
- } else {
- for (IAnnotationDeclaration d: beanQualifiers) {
- beanKeys.add(d.getTypeName().replace('$', '.'));
- }
- }
- if(beanKeys.size() == 1 &&
beanKeys.iterator().next().startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
- beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
- }
-
- for(String k: injectionKeys) {
- if(!beanKeys.contains(k)) {
- return false;
- }
- }
+ if(keys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
+ return true;
+ }
+
+ if(keys.isEmpty()) {
+ keys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+ }
+ if(beanQualifiers.isEmpty()) {
+ keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+ } else {
+ int beanKeySize = 0;
+ String beanKey = null;
+ for (IAnnotationDeclaration d: beanQualifiers) {
+ beanKeySize++;
+ beanKey = d.getTypeName().replace('$', '.');
+ keys.remove(beanKey);
}
+ if(beanKeySize == 1 &&
beanKey.startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
+ keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+ }
}
- return true;
+
+ return keys.isEmpty();
}
public static boolean areMatchingEventQualifiers(Collection<IQualifierDeclaration>
eventQualifiers, Collection<IQualifierDeclaration> paramQualifiers) throws
CoreException {
@@ -705,8 +706,8 @@
Collection<IMethod> nb = ignoredMembers == null ? new ArrayList<IMethod>()
: ignoredMembers;
IType type = d.getType();
StringBuffer result = new StringBuffer();
- result.append(type.getFullyQualifiedName());
- if(CDIConstants.NAMED_QUALIFIER_TYPE_NAME.equals(type.getFullyQualifiedName())) {
+ result.append(d.getTypeName());
+ if(CDIConstants.NAMED_QUALIFIER_TYPE_NAME.equals(d.getTypeName())) {
//Declared name is excluded from comparison; names should be compared by invoking
getName() method.
return result.toString();
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/DefinitionContext.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/DefinitionContext.java 2012-08-29
15:11:08 UTC (rev 43298)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/DefinitionContext.java 2012-08-29
16:12:44 UTC (rev 43299)
@@ -426,7 +426,7 @@
result = null;
}
if(result == null || usedAnnotations.containsKey(fullyQualifiedName)
- || (result.getType().getResource() != null &&
result.getType().getResource().getProject() != project.getProject())
+ || (result.getType().getJavaProject() != null &&
result.getType().getJavaProject().getProject() != project.getProject())
) {
//3. Look in annotations loaded by used projects
Set<CDICoreNature> ns = project.getCDIProjects(false);
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 2012-08-29
15:11:08 UTC (rev 43298)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2012-08-29
16:12:44 UTC (rev 43299)
@@ -12,8 +12,10 @@
import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -730,15 +732,12 @@
if(beans.size()>1 && beans.contains(bean)) {
// We need to sort bean element names to make sure we report the same problem message
for the same bean name for every validation process.
IBean[] sortedBeans = beans.toArray(new IBean[beans.size()]);
- for (int i = sortedBeans.length - 1; i >= 0; i--) {
- for (int j = 0; j < i; j++) {
- if (sortedBeans[j].getElementName().compareTo(sortedBeans[j + 1].getElementName())
> 0) {
- IBean t = sortedBeans[j];
- sortedBeans[j] = sortedBeans[j+1];
- sortedBeans[j+1] = t;
- }
+ Arrays.sort(sortedBeans, new Comparator<IBean>() {
+ @Override
+ public int compare(IBean o1, IBean o2) {
+ return o1.getElementName().compareTo(o2.getElementName());
}
- }
+ });
ITextSourceReference reference = bean.getNameLocation(true);
Set<String> names = new HashSet<String>();
String bName = bean.getElementName();
@@ -1593,7 +1592,7 @@
if(superType!=null) {
for (IInjectionPoint injection :
cdiProject.getInjections(superType.getFullyQualifiedName())) {
if(!injection.getClassBean().getBeanClass().isBinary() &&
injection.getClassBean()!=bean) {
- relatedResources.add(injection.getResource().getFullPath());
+ relatedResources.add(injection.getSourcePath());
//injection.getResource().getFullPath();
}
}
}