Author: scabanovich
Date: 2011-08-29 20:22:01 -0400 (Mon, 29 Aug 2011)
New Revision: 34374
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.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/AnnotationHelper.java
Log:
JBIDE-9428
https://issues.jboss.org/browse/JBIDE-9428
Added resolution of Provider<X> injections.
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java 2011-08-30
00:21:16 UTC (rev 34373)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java 2011-08-30
00:22:01 UTC (rev 34374)
@@ -36,8 +36,6 @@
public String SCOPE_ANNOTATION_TYPE_NAME = "javax.inject.Scope";
public String NORMAL_SCOPE_ANNOTATION_TYPE_NAME =
"javax.enterprise.context.NormalScope";
- public String PROVIDER_ANNOTATION_TYPE_NAME = "javax.inject.Provider";
-
public String INJECT_ANNOTATION_TYPE_NAME = "javax.inject.Inject";
public String ALTERNATIVE_ANNOTATION_TYPE_NAME =
"javax.enterprise.inject.Alternative";
@@ -81,6 +79,7 @@
public String INTERCEPTOR_SIMPLE_NAME = "Interceptor";
public String INTERCEPTOR_TYPE_NAME =
"javax.enterprise.inject.spi.Interceptor";
+ public String PROVIDER_TYPE_NAME = "javax.inject.Provider";
public String INSTANCE_TYPE_NAME = "javax.enterprise.inject.Instance";
public String PRE_DESTROY_TYPE_NAME = "javax.annotation.PreDestroy";
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 2011-08-30
00:21:16 UTC (rev 34373)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-08-30
00:22:01 UTC (rev 34374)
@@ -310,8 +310,10 @@
if(type == null) {
return result;
}
+
+ IType jType = type.getType();
- if(type.getType() != null &&
CDIConstants.EVENT_TYPE_NAME.equals(type.getType().getFullyQualifiedName())) {
+ if(jType != null &&
CDIConstants.EVENT_TYPE_NAME.equals(jType.getFullyQualifiedName())) {
List<? extends IParametedType> ps = type.getParameters();
if(ps.size() == 1) {
EventBean eventBean = new EventBean(type, injectionPoint);
@@ -322,7 +324,8 @@
}
}
- if(type.getType() != null &&
CDIConstants.INSTANCE_TYPE_NAME.equals(type.getType().getFullyQualifiedName())) {
+ if(jType != null &&
(CDIConstants.INSTANCE_TYPE_NAME.equals(jType.getFullyQualifiedName())
+ || CDIConstants.PROVIDER_TYPE_NAME.equals(jType.getFullyQualifiedName()))) {
List<? extends IParametedType> ps = type.getParameters();
if(ps.size() == 1) {
type = ps.get(0);
@@ -361,8 +364,8 @@
if(isNew) {
//TODO improve
IType bType = b.getBeanClass();
- if(bType != null && type.getType() != null
- &&
bType.getFullyQualifiedName().equals(type.getType().getFullyQualifiedName())) {
+ if(bType != null && jType != null
+ && bType.getFullyQualifiedName().equals(jType.getFullyQualifiedName())) {
result.add(b);
}
continue;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AnnotationHelper.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AnnotationHelper.java 2011-08-30
00:21:16 UTC (rev 34373)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AnnotationHelper.java 2011-08-30
00:22:01 UTC (rev 34374)
@@ -57,7 +57,6 @@
CDI_ANNOTATION_TYPES.add(PRODUCES_ANNOTATION_TYPE_NAME);
CDI_ANNOTATION_TYPES.add(SCOPE_ANNOTATION_TYPE_NAME);
CDI_ANNOTATION_TYPES.add(NORMAL_SCOPE_ANNOTATION_TYPE_NAME);
- CDI_ANNOTATION_TYPES.add(PROVIDER_ANNOTATION_TYPE_NAME);
CDI_ANNOTATION_TYPES.add(INJECT_ANNOTATION_TYPE_NAME);
CDI_ANNOTATION_TYPES.add(ALTERNATIVE_ANNOTATION_TYPE_NAME);
CDI_ANNOTATION_TYPES.add(INTERCEPTOR_BINDING_ANNOTATION_TYPE_NAME);