JBoss Tools SVN: r30451 - trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 20:03:52 -0400 (Fri, 08 Apr 2011)
New Revision: 30451
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
Log:
JBIDE-8697
https://issues.jboss.org/browse/JBIDE-8697
Modified: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java 2011-04-09 00:02:10 UTC (rev 30450)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java 2011-04-09 00:03:52 UTC (rev 30451)
@@ -35,7 +35,7 @@
*/
public class BuiltInBeanInjectionTest extends TCKTest {
- public void testUserTransactionBean() {
+ public void testBuiltInBeans() {
// javax.transaction.UserTransaction
IInjectionPointField field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/UserTransactionInjectedBean.java", "userTransaction");
assertNotNull(field);
15 years
JBoss Tools SVN: r30450 - branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 20:02:10 -0400 (Fri, 08 Apr 2011)
New Revision: 30450
Modified:
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
Log:
JBIDE-8697
https://issues.jboss.org/browse/JBIDE-8697
Modified: branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
===================================================================
--- branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java 2011-04-08 23:54:20 UTC (rev 30449)
+++ branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java 2011-04-09 00:02:10 UTC (rev 30450)
@@ -35,7 +35,7 @@
*/
public class BuiltInBeanInjectionTest extends TCKTest {
- public void testUserTransactionBean() {
+ public void testBuiltInBeans() {
// javax.transaction.UserTransaction
IInjectionPointField field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/UserTransactionInjectedBean.java", "userTransaction");
assertNotNull(field);
15 years
JBoss Tools SVN: r30449 - in branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test: tck and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 19:54:20 -0400 (Fri, 08 Apr 2011)
New Revision: 30449
Added:
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
Modified:
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
Log:
JBIDE-8697
https://issues.jboss.org/browse/JBIDE-8697
Modified: branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
===================================================================
--- branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-04-08 23:51:33 UTC (rev 30448)
+++ branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-04-08 23:54:20 UTC (rev 30449)
@@ -20,6 +20,7 @@
import org.jboss.tools.cdi.core.test.tck.AssignabilityOfRawAndParameterizedTypesTest;
import org.jboss.tools.cdi.core.test.tck.BeanDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.BeanSpecializationTest;
+import org.jboss.tools.cdi.core.test.tck.BuiltInBeanInjectionTest;
import org.jboss.tools.cdi.core.test.tck.DecoratorDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.DefaultNamedTest;
import org.jboss.tools.cdi.core.test.tck.DynamicLookupTest;
@@ -82,6 +83,7 @@
suite.addTestSuite(InterceptorDefinitionTest.class);
suite.addTestSuite(DecoratorDefinitionTest.class);
suite.addTestSuite(ObserverMethodResolutionTest.class);
+ suite.addTestSuite(BuiltInBeanInjectionTest.class);
suite.addTestSuite(BeansXmlCATest.class);
suite.addTestSuite(SelectedAlternativeTest.class);
Added: branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
===================================================================
--- branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java (rev 0)
+++ branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java 2011-04-08 23:54:20 UTC (rev 30449)
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IClassFile;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.compiler.IProblem;
+import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.IInjectionPointField;
+import org.jboss.tools.cdi.core.IInjectionPointParameter;
+import org.jboss.tools.cdi.core.IObserverMethod;
+import org.jboss.tools.cdi.core.IParameter;
+import org.jboss.tools.cdi.core.IQualifier;
+import org.jboss.tools.cdi.internal.core.impl.BuiltInBean;
+import org.jboss.tools.common.model.util.EclipseJavaUtil;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
+
+/**
+ * @author Viacheslav Kabanovich
+ */
+public class BuiltInBeanInjectionTest extends TCKTest {
+
+ public void testUserTransactionBean() {
+ // javax.transaction.UserTransaction
+ IInjectionPointField field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/UserTransactionInjectedBean.java", "userTransaction");
+ assertNotNull(field);
+
+ IProject p = cdiProject.getNature().getProject();
+ IJavaProject jp = EclipseResourceUtil.getJavaProject(p);
+
+ Set<IBean> beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ IBean b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ IType t = b.getBeanClass();
+ assertEquals("javax.transaction.UserTransaction", t.getFullyQualifiedName());
+
+
+ // javax.validation.ValidatorFactory
+ field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/DefaultValidatorFactoryInjectedBean.java", "defaultValidatorFactory");
+ assertNotNull(field);
+
+ beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ t = b.getBeanClass();
+ assertEquals("javax.validation.ValidatorFactory", t.getFullyQualifiedName());
+
+ // javax.validation.Validator
+ field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/DefaultValidatorInjectedBean.java", "defaultValidator");
+ assertNotNull(field);
+
+ beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ t = b.getBeanClass();
+ assertEquals("javax.validation.Validator", t.getFullyQualifiedName());
+
+ // java.security.Principal
+ field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/PrincipalInjectedBean.java", "principal");
+ assertNotNull(field);
+
+ beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ t = b.getBeanClass();
+ assertEquals("java.security.Principal", t.getFullyQualifiedName());
+
+
+ }
+
+}
\ No newline at end of file
Property changes on: branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
15 years
JBoss Tools SVN: r30448 - branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 19:51:33 -0400 (Fri, 08 Apr 2011)
New Revision: 30448
Added:
branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java
Modified:
branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
Log:
JBIDE-8697
https://issues.jboss.org/browse/JBIDE-8697
Added: branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java
===================================================================
--- branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java (rev 0)
+++ branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java 2011-04-08 23:51:33 UTC (rev 30448)
@@ -0,0 +1,166 @@
+package org.jboss.tools.cdi.internal.core.impl;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.jdt.core.IType;
+import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.IAnnotationDeclaration;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.IParametedType;
+import org.jboss.tools.cdi.core.IQualifier;
+import org.jboss.tools.cdi.core.IQualifierDeclaration;
+import org.jboss.tools.cdi.core.IScope;
+import org.jboss.tools.cdi.core.IScopeDeclaration;
+import org.jboss.tools.cdi.core.IStereotypeDeclaration;
+import org.jboss.tools.cdi.core.ITypeDeclaration;
+import org.jboss.tools.common.text.ITextSourceReference;
+
+/**
+ * 3.6. Additional built-in beans.
+
+ * scope @ Dependent,
+ * no bean EL name
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class BuiltInBean extends CDIElement implements IBean {
+ protected IParametedType type;
+ protected Set<IQualifier> qualifiers = null;
+
+ public BuiltInBean(IParametedType type) {
+ this.type = type;
+ }
+
+ public IScope getScope() {
+ return getCDIProject().getScope(CDIConstants.DEPENDENT_ANNOTATION_TYPE_NAME);
+ }
+
+ public Set<IScopeDeclaration> getScopeDeclarations() {
+ return new HashSet<IScopeDeclaration>();
+ }
+
+ public Set<IStereotypeDeclaration> getStereotypeDeclarations() {
+ return new HashSet<IStereotypeDeclaration>();
+ }
+
+ public List<IAnnotationDeclaration> getAnnotations() {
+ return new ArrayList<IAnnotationDeclaration>();
+ }
+
+ public IAnnotationDeclaration getAnnotation(String annotationTypeName) {
+ return null;
+ }
+
+ public ITextSourceReference getAnnotationPosition(String annotationTypeName) {
+ return null;
+ }
+
+ public boolean isAnnotationPresent(String annotationTypeName) {
+ return false;
+ }
+
+ public IType getBeanClass() {
+ return type.getType();
+ }
+
+ public String getName() {
+ return null;
+ }
+
+ public ITextSourceReference getNameLocation() {
+ return null;
+ }
+
+ public Set<IParametedType> getLegalTypes() {
+ return getAllTypes();
+ }
+
+ public Set<IParametedType> getAllTypes() {
+ Set<IParametedType> result = new HashSet<IParametedType>();
+ result.add(type);
+ return result;
+ }
+
+ public Set<ITypeDeclaration> getAllTypeDeclarations() {
+ return new HashSet<ITypeDeclaration>();
+ }
+
+ public Set<ITypeDeclaration> getRestrictedTypeDeclaratios() {
+ return new HashSet<ITypeDeclaration>();
+ }
+
+ public Set<IQualifierDeclaration> getQualifierDeclarations() {
+ return new HashSet<IQualifierDeclaration>();
+ }
+
+ public Set<IQualifierDeclaration> getQualifierDeclarations(boolean includeInherited) {
+ return new HashSet<IQualifierDeclaration>();
+ }
+
+ public Set<IQualifier> getQualifiers() {
+ if(qualifiers == null) {
+ computeQualifiers();
+ }
+ return qualifiers;
+ }
+
+ protected void computeQualifiers() {
+ qualifiers = new HashSet<IQualifier>();
+ }
+
+ public boolean isAlternative() {
+ return false;
+ }
+
+ public boolean isSelectedAlternative() {
+ return false;
+ }
+
+ public IAnnotationDeclaration getAlternativeDeclaration() {
+ return null;
+ }
+
+ public Set<IInjectionPoint> getInjectionPoints() {
+ return new HashSet<IInjectionPoint>();
+ }
+
+ public IBean getSpecializedBean() {
+ return null;
+ }
+
+ public IAnnotationDeclaration getSpecializesAnnotationDeclaration() {
+ return null;
+ }
+
+ public boolean isSpecializing() {
+ return false;
+ }
+
+ public boolean isDependent() {
+ return true;
+ }
+
+ public boolean isEnabled() {
+ return true;
+ }
+
+ public boolean isNullable() {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.cdi.core.IBean#getSimpleJavaName()
+ */
+ public String getSimpleJavaName() {
+ if(type!=null) {
+ return type.getSimpleName();
+ }
+ return "";
+ }
+}
\ No newline at end of file
Property changes on: branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
===================================================================
--- branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-04-08 23:50:59 UTC (rev 30447)
+++ branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-04-08 23:51:33 UTC (rev 30448)
@@ -328,6 +328,21 @@
}
}
+ if(isBuiltIn(type.getType())) {
+ Set<IBean> rslt = null;
+ if(isParameter) {
+ rslt = getBeans(attemptToResolveAmbiguousDependency, type, qs2.toArray(new IType[0]));
+ } else {
+ rslt = getBeans(attemptToResolveAmbiguousDependency, type, qs.toArray(new IQualifierDeclaration[0]));
+ }
+ if(rslt != null && !rslt.isEmpty()) return rslt;
+ BuiltInBean builtInBean = new BuiltInBean(type);
+ builtInBean.setParent(this);
+ builtInBean.setSourcePath(injectionPoint.getSourcePath());
+ result.add(builtInBean);
+ return result;
+ }
+
Set<IBean> beans = new HashSet<IBean>();
synchronized(allBeans) {
beans.addAll(allBeans);
@@ -378,6 +393,17 @@
return getResolvedBeans(result, attemptToResolveAmbiguousDependency);
}
+ static Set<String> BUILT_IN = new HashSet<String>();
+ static {
+ BUILT_IN.add(CDIConstants.USER_TRANSACTION_TYPE_NAME);
+ BUILT_IN.add(CDIConstants.PRINCIPAL_TYPE_NAME);
+ BUILT_IN.add(CDIConstants.VALIDATION_FACTORY_TYPE_NAME);
+ BUILT_IN.add(CDIConstants.VALIDATOR_TYPE_NAME);
+ }
+ static boolean isBuiltIn(IType type) {
+ return type != null && BUILT_IN.contains(type.getFullyQualifiedName());
+ }
+
public static boolean containsType(Set<IParametedType> types, IParametedType type) {
if(type == null) {
return false;
15 years
JBoss Tools SVN: r30447 - branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 19:50:59 -0400 (Fri, 08 Apr 2011)
New Revision: 30447
Modified:
branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java
Log:
JBIDE-8697
https://issues.jboss.org/browse/JBIDE-8697
Modified: branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java
===================================================================
--- branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java 2011-04-08 23:43:06 UTC (rev 30446)
+++ branches/jbosstools-3.2.x/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java 2011-04-08 23:50:59 UTC (rev 30447)
@@ -83,6 +83,11 @@
public String EVENT_TYPE_NAME = "javax.enterprise.event.Event";
+ public String USER_TRANSACTION_TYPE_NAME = "javax.transaction.UserTransaction";
+ public String PRINCIPAL_TYPE_NAME = "java.security.Principal";
+ public String VALIDATION_FACTORY_TYPE_NAME = "javax.validation.ValidatorFactory";
+ public String VALIDATOR_TYPE_NAME = "javax.validation.Validator";
+
public String ANNOTATION_LITERAL_TYPE_NAME = "javax.enterprise.util.AnnotationLiteral";
public String WELD_BEAN_MANAGER_TYPE_NAME = "org.jboss.weld.manager.BeanManagerImpl";
15 years
JBoss Tools SVN: r30446 - in trunk/cdi: plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 19:43:06 -0400 (Fri, 08 Apr 2011)
New Revision: 30446
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
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/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
Log:
JBIDE-8697
https://issues.jboss.org/browse/JBIDE-8697
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-04-08 21:31:55 UTC (rev 30445)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIConstants.java 2011-04-08 23:43:06 UTC (rev 30446)
@@ -83,6 +83,11 @@
public String EVENT_TYPE_NAME = "javax.enterprise.event.Event";
+ public String USER_TRANSACTION_TYPE_NAME = "javax.transaction.UserTransaction";
+ public String PRINCIPAL_TYPE_NAME = "java.security.Principal";
+ public String VALIDATION_FACTORY_TYPE_NAME = "javax.validation.ValidatorFactory";
+ public String VALIDATOR_TYPE_NAME = "javax.validation.Validator";
+
public String ANNOTATION_LITERAL_TYPE_NAME = "javax.enterprise.util.AnnotationLiteral";
public String WELD_BEAN_MANAGER_TYPE_NAME = "org.jboss.weld.manager.BeanManagerImpl";
Added: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java 2011-04-08 23:43:06 UTC (rev 30446)
@@ -0,0 +1,166 @@
+package org.jboss.tools.cdi.internal.core.impl;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.jdt.core.IType;
+import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.IAnnotationDeclaration;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.IParametedType;
+import org.jboss.tools.cdi.core.IQualifier;
+import org.jboss.tools.cdi.core.IQualifierDeclaration;
+import org.jboss.tools.cdi.core.IScope;
+import org.jboss.tools.cdi.core.IScopeDeclaration;
+import org.jboss.tools.cdi.core.IStereotypeDeclaration;
+import org.jboss.tools.cdi.core.ITypeDeclaration;
+import org.jboss.tools.common.text.ITextSourceReference;
+
+/**
+ * 3.6. Additional built-in beans.
+
+ * scope @ Dependent,
+ * no bean EL name
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class BuiltInBean extends CDIElement implements IBean {
+ protected IParametedType type;
+ protected Set<IQualifier> qualifiers = null;
+
+ public BuiltInBean(IParametedType type) {
+ this.type = type;
+ }
+
+ public IScope getScope() {
+ return getCDIProject().getScope(CDIConstants.DEPENDENT_ANNOTATION_TYPE_NAME);
+ }
+
+ public Set<IScopeDeclaration> getScopeDeclarations() {
+ return new HashSet<IScopeDeclaration>();
+ }
+
+ public Set<IStereotypeDeclaration> getStereotypeDeclarations() {
+ return new HashSet<IStereotypeDeclaration>();
+ }
+
+ public List<IAnnotationDeclaration> getAnnotations() {
+ return new ArrayList<IAnnotationDeclaration>();
+ }
+
+ public IAnnotationDeclaration getAnnotation(String annotationTypeName) {
+ return null;
+ }
+
+ public ITextSourceReference getAnnotationPosition(String annotationTypeName) {
+ return null;
+ }
+
+ public boolean isAnnotationPresent(String annotationTypeName) {
+ return false;
+ }
+
+ public IType getBeanClass() {
+ return type.getType();
+ }
+
+ public String getName() {
+ return null;
+ }
+
+ public ITextSourceReference getNameLocation() {
+ return null;
+ }
+
+ public Set<IParametedType> getLegalTypes() {
+ return getAllTypes();
+ }
+
+ public Set<IParametedType> getAllTypes() {
+ Set<IParametedType> result = new HashSet<IParametedType>();
+ result.add(type);
+ return result;
+ }
+
+ public Set<ITypeDeclaration> getAllTypeDeclarations() {
+ return new HashSet<ITypeDeclaration>();
+ }
+
+ public Set<ITypeDeclaration> getRestrictedTypeDeclaratios() {
+ return new HashSet<ITypeDeclaration>();
+ }
+
+ public Set<IQualifierDeclaration> getQualifierDeclarations() {
+ return new HashSet<IQualifierDeclaration>();
+ }
+
+ public Set<IQualifierDeclaration> getQualifierDeclarations(boolean includeInherited) {
+ return new HashSet<IQualifierDeclaration>();
+ }
+
+ public Set<IQualifier> getQualifiers() {
+ if(qualifiers == null) {
+ computeQualifiers();
+ }
+ return qualifiers;
+ }
+
+ protected void computeQualifiers() {
+ qualifiers = new HashSet<IQualifier>();
+ }
+
+ public boolean isAlternative() {
+ return false;
+ }
+
+ public boolean isSelectedAlternative() {
+ return false;
+ }
+
+ public IAnnotationDeclaration getAlternativeDeclaration() {
+ return null;
+ }
+
+ public Set<IInjectionPoint> getInjectionPoints() {
+ return new HashSet<IInjectionPoint>();
+ }
+
+ public IBean getSpecializedBean() {
+ return null;
+ }
+
+ public IAnnotationDeclaration getSpecializesAnnotationDeclaration() {
+ return null;
+ }
+
+ public boolean isSpecializing() {
+ return false;
+ }
+
+ public boolean isDependent() {
+ return true;
+ }
+
+ public boolean isEnabled() {
+ return true;
+ }
+
+ public boolean isNullable() {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.cdi.core.IBean#getSimpleJavaName()
+ */
+ public String getSimpleJavaName() {
+ if(type!=null) {
+ return type.getSimpleName();
+ }
+ return "";
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BuiltInBean.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
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-04-08 21:31:55 UTC (rev 30445)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-04-08 23:43:06 UTC (rev 30446)
@@ -330,6 +330,21 @@
}
}
}
+
+ if(isBuiltIn(type.getType())) {
+ Set<IBean> rslt = null;
+ if(isParameter) {
+ rslt = getBeans(attemptToResolveAmbiguousDependency, type, qs2.toArray(new IType[0]));
+ } else {
+ rslt = getBeans(attemptToResolveAmbiguousDependency, type, qs.toArray(new IQualifierDeclaration[0]));
+ }
+ if(rslt != null && !rslt.isEmpty()) return rslt;
+ BuiltInBean builtInBean = new BuiltInBean(type);
+ builtInBean.setParent(this);
+ builtInBean.setSourcePath(injectionPoint.getSourcePath());
+ result.add(builtInBean);
+ return result;
+ }
Set<IBean> beans = new HashSet<IBean>();
synchronized(allBeans) {
@@ -381,6 +396,17 @@
return getResolvedBeans(result, attemptToResolveAmbiguousDependency);
}
+ static Set<String> BUILT_IN = new HashSet<String>();
+ static {
+ BUILT_IN.add(CDIConstants.USER_TRANSACTION_TYPE_NAME);
+ BUILT_IN.add(CDIConstants.PRINCIPAL_TYPE_NAME);
+ BUILT_IN.add(CDIConstants.VALIDATION_FACTORY_TYPE_NAME);
+ BUILT_IN.add(CDIConstants.VALIDATOR_TYPE_NAME);
+ }
+ static boolean isBuiltIn(IType type) {
+ return type != null && BUILT_IN.contains(type.getFullyQualifiedName());
+ }
+
public static boolean containsType(Set<IParametedType> types, IParametedType type) {
if(type == null) {
return false;
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-04-08 21:31:55 UTC (rev 30445)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-04-08 23:43:06 UTC (rev 30446)
@@ -21,6 +21,7 @@
import org.jboss.tools.cdi.core.test.tck.AssignabilityOfRawAndParameterizedTypesTest;
import org.jboss.tools.cdi.core.test.tck.BeanDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.BeanSpecializationTest;
+import org.jboss.tools.cdi.core.test.tck.BuiltInBeanInjectionTest;
import org.jboss.tools.cdi.core.test.tck.DecoratorDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.DefaultNamedTest;
import org.jboss.tools.cdi.core.test.tck.DynamicLookupTest;
@@ -83,6 +84,7 @@
suite.addTestSuite(InterceptorDefinitionTest.class);
suite.addTestSuite(DecoratorDefinitionTest.class);
suite.addTestSuite(ObserverMethodResolutionTest.class);
+ suite.addTestSuite(BuiltInBeanInjectionTest.class);
suite.addTestSuite(BeansXmlCATest.class);
suite.addTestSuite(SelectedAlternativeTest.class);
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java 2011-04-08 23:43:06 UTC (rev 30446)
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IClassFile;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.compiler.IProblem;
+import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.IInjectionPointField;
+import org.jboss.tools.cdi.core.IInjectionPointParameter;
+import org.jboss.tools.cdi.core.IObserverMethod;
+import org.jboss.tools.cdi.core.IParameter;
+import org.jboss.tools.cdi.core.IQualifier;
+import org.jboss.tools.cdi.internal.core.impl.BuiltInBean;
+import org.jboss.tools.common.model.util.EclipseJavaUtil;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
+
+/**
+ * @author Viacheslav Kabanovich
+ */
+public class BuiltInBeanInjectionTest extends TCKTest {
+
+ public void testUserTransactionBean() {
+ // javax.transaction.UserTransaction
+ IInjectionPointField field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/UserTransactionInjectedBean.java", "userTransaction");
+ assertNotNull(field);
+
+ IProject p = cdiProject.getNature().getProject();
+ IJavaProject jp = EclipseResourceUtil.getJavaProject(p);
+
+ Set<IBean> beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ IBean b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ IType t = b.getBeanClass();
+ assertEquals("javax.transaction.UserTransaction", t.getFullyQualifiedName());
+
+
+ // javax.validation.ValidatorFactory
+ field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/DefaultValidatorFactoryInjectedBean.java", "defaultValidatorFactory");
+ assertNotNull(field);
+
+ beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ t = b.getBeanClass();
+ assertEquals("javax.validation.ValidatorFactory", t.getFullyQualifiedName());
+
+ // javax.validation.Validator
+ field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/DefaultValidatorInjectedBean.java", "defaultValidator");
+ assertNotNull(field);
+
+ beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ t = b.getBeanClass();
+ assertEquals("javax.validation.Validator", t.getFullyQualifiedName());
+
+ // java.security.Principal
+ field = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/builtin/PrincipalInjectedBean.java", "principal");
+ assertNotNull(field);
+
+ beans = field.getCDIProject().getBeans(false, field);
+ assertFalse(beans.isEmpty());
+
+ b = beans.iterator().next();
+ assertTrue(b instanceof BuiltInBean);
+ t = b.getBeanClass();
+ assertEquals("java.security.Principal", t.getFullyQualifiedName());
+
+
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/BuiltInBeanInjectionTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
15 years
JBoss Tools SVN: r30445 - trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2011-04-08 17:31:55 -0400 (Fri, 08 Apr 2011)
New Revision: 30445
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSF2CompositeOpenOnTest.java
trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/OpenOnsTest.java
Log:
https://issues.jboss.org/browse/JBIDE-5475
Modified: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSF2CompositeOpenOnTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSF2CompositeOpenOnTest.java 2011-04-08 21:16:26 UTC (rev 30444)
+++ trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSF2CompositeOpenOnTest.java 2011-04-08 21:31:55 UTC (rev 30445)
@@ -24,6 +24,7 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.common.text.ext.hyperlink.HyperlinkDetector;
+import org.jboss.tools.jsf.text.ext.hyperlink.JsfJSPTagNameHyperlinkDetector;
import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.WorkbenchUtils;
@@ -61,7 +62,8 @@
assertNotNull("Tag:"+tagName+" not found",reg);
- IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, reg, true);
+ IHyperlink[] links = new JsfJSPTagNameHyperlinkDetector().detectHyperlinks(viewer, reg, false);
+ //IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, reg, true);
assertNotNull("Hyperlinks for tag:"+tagName+" are not found",links);
Modified: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/OpenOnsTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/OpenOnsTest.java 2011-04-08 21:16:26 UTC (rev 30444)
+++ trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/OpenOnsTest.java 2011-04-08 21:31:55 UTC (rev 30445)
@@ -19,6 +19,7 @@
import org.jboss.tools.common.model.ui.editor.EditorPartWrapper;
import org.jboss.tools.common.model.ui.editors.multipage.DefaultMultipageEditor;
import org.jboss.tools.common.text.ext.hyperlink.HyperlinkDetector;
+import org.jboss.tools.jsf.text.ext.hyperlink.JsfJSPTagNameHyperlinkDetector;
import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.WorkbenchUtils;
@@ -459,7 +460,8 @@
IRegion reg = new FindReplaceDocumentAdapter(jspMultyPageEditor.getSourceEditor().getTextViewer().getDocument()).find(0,
"message", true, true, false, false);
- IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, reg, false);
+ IHyperlink[] links = new JsfJSPTagNameHyperlinkDetector().detectHyperlinks(viewer, reg, false);
+ //IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, reg, false);
assertNotNull(links);
assertTrue(links.length!=0);
//assertNotNull(links[0].getHyperlinkText());
15 years
JBoss Tools SVN: r30444 - trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2011-04-08 17:16:26 -0400 (Fri, 08 Apr 2011)
New Revision: 30444
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlink.java
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java
Log:
https://issues.jboss.org/browse/JBIDE-5475
Modified: trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlink.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlink.java 2011-04-08 19:48:17 UTC (rev 30443)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlink.java 2011-04-08 21:16:26 UTC (rev 30444)
@@ -18,17 +18,15 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.util.FindObjectHelper;
import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
-import org.jboss.tools.jst.text.ext.hyperlink.jsp.JSPRootHyperlinkPartitioner;
import org.jboss.tools.common.text.ext.util.StructuredModelWrapper;
import org.jboss.tools.common.text.ext.util.Utils;
import org.jboss.tools.jsf.text.ext.JSFTextExtMessages;
+import org.jboss.tools.jst.text.ext.hyperlink.jsp.JSPRootHyperlinkPartitioner;
import org.jboss.tools.jst.web.kb.KbProjectFactory;
import org.jboss.tools.jst.web.kb.internal.taglib.AbstractComponent;
import org.jboss.tools.jst.web.kb.taglib.IComponent;
@@ -43,7 +41,11 @@
* @author Jeremy
*/
public class JsfJSPTagNameHyperlink extends AbstractHyperlink {
-
+ private IRegion fLastRegion = null;
+
+ public JsfJSPTagNameHyperlink(IRegion region){
+ fLastRegion = region;
+ }
/**
* @see com.ibm.sse.editor.AbstractHyperlink#doHyperlink(org.eclipse.jface.text.IRegion)
*/
@@ -184,40 +186,13 @@
}
}
- IRegion fLastRegion = null;
/**
* @see com.ibm.sse.editor.AbstractHyperlink#doGetHyperlinkRegion(int)
*/
protected IRegion doGetHyperlinkRegion(int offset) {
- fLastRegion = getRegion(offset);
return fLastRegion;
}
- protected IRegion getRegion (int offset) {
- StructuredModelWrapper smw = new StructuredModelWrapper();
- smw.init(getDocument());
- try {
- Document xmlDocument = smw.getDocument();
- if (xmlDocument == null) return null;
-
- Node n = Utils.findNodeForOffset(xmlDocument, offset);
-
- if (n == null || !(n instanceof IDOMElement)) return null;
-
- IDOMElement elem = (IDOMElement)n;
- String tagName = elem.getTagName();
- int start = elem.getStartOffset();
- final int nameStart = start + (elem.isEndTag() ? "</" : "<").length(); //$NON-NLS-1$ //$NON-NLS-2$
- final int nameEnd = nameStart + tagName.length();
-
- if (nameStart > offset || nameEnd <= offset) return null;
-
- return new Region(nameStart,nameEnd - nameStart);
- } finally {
- smw.dispose();
- }
- }
-
/*
* (non-Javadoc)
*
Modified: trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java 2011-04-08 19:48:17 UTC (rev 30443)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java 2011-04-08 21:16:26 UTC (rev 30444)
@@ -13,13 +13,15 @@
import java.util.ArrayList;
import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Region;
import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.jboss.tools.common.core.resources.XModelObjectEditorInput;
+import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.text.ext.util.StructuredModelWrapper;
import org.jboss.tools.common.text.ext.util.Utils;
import org.jboss.tools.jst.jsp.jspeditor.JSPTextEditor;
@@ -58,42 +60,26 @@
if (xmlDocument == null)
return null;
- IDOMNode node = (IDOMNode)Utils.findNodeForOffset((Node)xmlDocument, region.getOffset());
- if(node != null){
+ Node n = Utils.findNodeForOffset(xmlDocument, region.getOffset());
+
+ IRegion reg = getRegion(n, region.getOffset());
+
+ if(reg != null){
KbQuery query = new KbQuery();
query.setType(KbQuery.Type.TAG_NAME);
+ query.setOffset(reg.getOffset());
+ query.setValue(n.getNodeName());
+ query.setMask(false);
- IStructuredDocumentRegion sRegion = node.getStartStructuredDocumentRegion();
+ ELContext context = PageContextFactory.createPageContext(file);
- if(sRegion == null)
- return null;
-
- if(region.getOffset() > (sRegion.getStartOffset()+sRegion.getLength()))
- sRegion = node.getEndStructuredDocumentRegion();
-
- final IStructuredDocumentRegion reg = sRegion;
-
- if(reg != null){
- query.setOffset(sRegion.getStartOffset());
- query.setValue(node.getNodeName());
- query.setMask(false);
-
- IPageContext context = (IPageContext)PageContextFactory.createPageContext(file);
-
- IComponent[] components = PageProcessor.getInstance().getComponents(query, context);
+ if(context instanceof IPageContext){
+ IComponent[] components = PageProcessor.getInstance().getComponents(query, (IPageContext)context);
ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
for(IComponent component : components){
if(component instanceof TLDTag || component instanceof FaceletTag){
- TLDTagHyperlink link = new TLDTagHyperlink((AbstractComponent)component, new IRegion(){
- public int getLength() {
- return reg.getLength();
- }
-
- public int getOffset() {
- return reg.getStartOffset();
- }
- });
+ TLDTagHyperlink link = new TLDTagHyperlink((AbstractComponent)component, reg);
link.setDocument(textViewer.getDocument());
hyperlinks.add(link);
}
@@ -102,10 +88,9 @@
if(hyperlinks.size() > 0)
return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[hyperlinks.size()]);
}
-
}
- return null;
+ return parse(textViewer.getDocument(), xmlDocument, region);
}
private void sortHyperlinks(ArrayList<IHyperlink> hyperlinks){
@@ -123,5 +108,35 @@
}
}
}
+
+ private IHyperlink[] parse(IDocument document, Document xmlDocument, IRegion superRegion) {
+ Node n = Utils.findNodeForOffset(xmlDocument, superRegion.getOffset());
+ IRegion r = getRegion(n, superRegion.getOffset());
+ if (r == null) return null;
+
+ JsfJSPTagNameHyperlink link = new JsfJSPTagNameHyperlink(r);
+ link.setDocument(document);
+ return new IHyperlink[]{link};
+ }
+
+ private IRegion getRegion(Node n, int offset) {
+ if (n == null || !(n instanceof IDOMElement)) return null;
+
+ IDOMElement elem = (IDOMElement)n;
+
+ String tagName = elem.getTagName();
+
+ int start = elem.getStartOffset();
+ int nameStart = start + "<".length(); //$NON-NLS-1$
+ int nameEnd = nameStart + tagName.length();
+ if(offset > nameEnd){
+ start = elem.getEndStartOffset();
+ nameStart = start + "</".length(); //$NON-NLS-1$
+ nameEnd = nameStart + tagName.length();
+ }
+
+ return new Region(nameStart,nameEnd - nameStart);
+ }
+
}
15 years
JBoss Tools SVN: r30443 - in trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test: projects/CDISolderTest/src/org/jboss/exact and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 15:48:17 -0400 (Fri, 08 Apr 2011)
New Revision: 30443
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/FishFactory.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/IFish.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Salmon.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Shark.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/ExactTest.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/CDISeamSolderCoreAllTests.java
Log:
JBIDE-8198
https://issues.jboss.org/browse/JBIDE-8198
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/FishFactory.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/FishFactory.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/FishFactory.java 2011-04-08 19:48:17 UTC (rev 30443)
@@ -0,0 +1,21 @@
+package org.jboss.exact;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import org.jboss.seam.solder.core.Exact;
+
+public class FishFactory {
+ @Inject
+ @Exact(Salmon.class)
+ IFish peacefulFish;
+
+ @Inject
+ @Exact(Shark.class)
+ IFish dangerousFish;
+
+ @Produces
+ public IFish getTastyFish((a)Exact(Salmon.class) IFish fish) {
+ return fish;
+ }
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/FishFactory.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/IFish.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/IFish.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/IFish.java 2011-04-08 19:48:17 UTC (rev 30443)
@@ -0,0 +1,5 @@
+package org.jboss.exact;
+
+public interface IFish {
+
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/IFish.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Salmon.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Salmon.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Salmon.java 2011-04-08 19:48:17 UTC (rev 30443)
@@ -0,0 +1,5 @@
+package org.jboss.exact;
+
+public class Salmon implements IFish {
+
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Salmon.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Shark.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Shark.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Shark.java 2011-04-08 19:48:17 UTC (rev 30443)
@@ -0,0 +1,5 @@
+package org.jboss.exact;
+
+public class Shark implements IFish {
+
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/exact/Shark.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/CDISeamSolderCoreAllTests.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/CDISeamSolderCoreAllTests.java 2011-04-08 19:08:29 UTC (rev 30442)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/CDISeamSolderCoreAllTests.java 2011-04-08 19:48:17 UTC (rev 30443)
@@ -27,6 +27,7 @@
suiteAll.addTestSuite(BeanNamingTest.class);
suiteAll.addTestSuite(VetoTest.class);
+ suiteAll.addTestSuite(ExactTest.class);
return suiteAll;
}
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/ExactTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/ExactTest.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/ExactTest.java 2011-04-08 19:48:17 UTC (rev 30443)
@@ -0,0 +1,132 @@
+package org.jboss.tools.cdi.seam.solder.core.test;
+
+
+import java.io.IOException;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IMember;
+import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.IAnnotationDeclaration;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.ICDIProject;
+import org.jboss.tools.cdi.core.IClassBean;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.IProducerMethod;
+import org.jboss.tools.cdi.internal.core.impl.definition.TypeDefinition;
+import org.jboss.tools.test.util.JobUtils;
+import org.jboss.tools.test.util.ResourcesUtils;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class ExactTest extends TestCase {
+ protected static String PLUGIN_ID = "org.jboss.tools.cdi.seam.solder.core.test";
+ IProject project = null;
+
+ public ExactTest() {}
+
+ public void setUp() throws Exception {
+ project = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDISolderTest");
+ JobUtils.waitForIdle();
+ project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+ }
+
+ public void testVeto() throws CoreException, IOException {
+ ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+
+ Set<IBean> bs = cdi.getBeans(new Path("/CDISolderTest/src/org/jboss/exact/FishFactory.java"));
+ assertEquals(2, bs.size());
+ IClassBean cls = null;
+ IProducerMethod mtd = null;
+ for (IBean b: bs) {
+ if(b instanceof IClassBean) {
+ cls = (IClassBean)b;
+ } else if(b instanceof IProducerMethod) {
+ mtd = (IProducerMethod)b;
+ }
+ }
+ assertNotNull(cls);
+ assertNotNull(mtd);
+ Set<IInjectionPoint> points = cls.getInjectionPoints();
+ int count = 0;
+ for (IInjectionPoint p: points) {
+ Set<IBean> injected = cdi.getBeans(false, p);
+ IMember member = p.getSourceMember();
+ if(member.getElementName().equals("peacefulFish")) {
+ assertEquals(1, injected.size());
+ IBean ib = injected.iterator().next();
+ assertEquals("org.jboss.exact.Salmon", ib.getBeanClass().getFullyQualifiedName());
+ count++;
+ } else if(member.getElementName().equals("dangerousFish")) {
+ assertEquals(1, injected.size());
+ IBean ib = injected.iterator().next();
+ assertEquals("org.jboss.exact.Shark", ib.getBeanClass().getFullyQualifiedName());
+ count++;
+ } else if(member.getElementName().equals("getTastyFish")) {
+ assertEquals(1, injected.size());
+ IBean ib = injected.iterator().next();
+ assertEquals("org.jboss.exact.Salmon", ib.getBeanClass().getFullyQualifiedName());
+ count++;
+ } else {
+ }
+ }
+ assertEquals(3, count);
+ }
+
+ public void testRequires() throws CoreException, IOException {
+ ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+
+ //1. class annotated @Requires that references single non-available class
+ TypeDefinition d = cdi.getNature().getDefinitions().getTypeDefinition("org.jboss.requires.Bear");
+ assertNotNull(d); //Though there exists Java type Bear
+ IAnnotationDeclaration a = d.getAnnotation(CDIConstants.NAMED_QUALIFIER_TYPE_NAME);
+ assertNotNull(a);
+ Object name = a.getMemberValue(null);
+ assertEquals("bear", name); //...and it is annotated with @Named("bear")
+ Set<IBean> bs = cdi.getBeans("bear", false);
+ assertTrue(bs.isEmpty()); //...CDI model does not have a bean named "bear"
+ bs = cdi.getBeans(d.getResource().getFullPath());
+ assertTrue(bs.isEmpty()); //...and does not loaded any beans form its resource
+
+ //2. class annotated @Requires that references array of classes some of which are not available
+ d = cdi.getNature().getDefinitions().getTypeDefinition("org.jboss.requires.Bee");
+ assertNotNull(d); //Though there exists Java type Bee
+ a = d.getAnnotation(CDIConstants.NAMED_QUALIFIER_TYPE_NAME);
+ assertNotNull(a);
+ name = a.getMemberValue(null);
+ assertEquals("bee", name); //...and it is annotated with @Named("bee")
+ bs = cdi.getBeans("bee", false);
+ assertTrue(bs.isEmpty()); //...CDI model does not have a bean named "bee"
+ bs = cdi.getBeans(d.getResource().getFullPath());
+ assertTrue(bs.isEmpty()); //...and does not loaded any beans form its resource
+
+ //3. class annotated @Requires that references single available class
+ bs = cdi.getBeans("fly", false);
+ assertEquals(1, bs.size()); //...CDI model has a bean named "fly"
+
+ //4. class annotated @Requires that references array of available classes
+ bs = cdi.getBeans("dragonfly", false);
+ assertEquals(1, bs.size()); //...CDI model has a bean named "dragonfly"
+
+ }
+
+ public void tearDown() throws Exception {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ JobUtils.waitForIdle();
+ project.delete(true, true, null);
+ JobUtils.waitForIdle();
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ JobUtils.waitForIdle();
+ }
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/ExactTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
15 years
JBoss Tools SVN: r30442 - in trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core: scanner and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-04-08 15:08:29 -0400 (Fri, 08 Apr 2011)
New Revision: 30442
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/CDIBuilderDelegate.java
Log:
JBIDE-8199
https://issues.jboss.org/browse/JBIDE-8199
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java 2011-04-08 19:02:43 UTC (rev 30441)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java 2011-04-08 19:08:29 UTC (rev 30442)
@@ -24,6 +24,7 @@
*
*/
public class PackageDefinition extends AbstractMemberDefinition {
+ IType binaryType = null;
protected String qualifiedName;
public PackageDefinition() {}
@@ -32,6 +33,12 @@
return qualifiedName;
}
+ public void setBinaryType(IType pkg, IRootDefinitionContext context) {
+ binaryType = pkg;
+ setAnnotatable(pkg, pkg, context);
+ qualifiedName = pkg.getPackageFragment().getElementName();
+ }
+
public void setPackage(IPackageDeclaration pkg, IRootDefinitionContext context) {
qualifiedName = pkg.getElementName();
IType contextType = null;
@@ -55,6 +62,9 @@
}
public String resolveType(String typeName) {
+ if(binaryType != null) {
+ return typeName;
+ }
String result = typeName;
IPackageDeclaration pkg = (IPackageDeclaration)member;
IType contextType = null;
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/CDIBuilderDelegate.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/CDIBuilderDelegate.java 2011-04-08 19:02:43 UTC (rev 30441)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/CDIBuilderDelegate.java 2011-04-08 19:08:29 UTC (rev 30442)
@@ -47,7 +47,16 @@
Map<IPath, Set<IType>> is = fileSet.getInterfaces();
for (IPath f: is.keySet()) {
- //TODO
+ Set<IType> ts = is.get(f);
+ for (IType type: ts) {
+ // Jars present package-info as binary interface
+ // whereas sources present it as compilation unit with package declaration.
+ if(type.getElementName().equals("package-info")) {
+ PackageDefinition def = new PackageDefinition();
+ def.setBinaryType(type, context);
+ context.addPackage(f, def.getQualifiedName(), def);
+ }
+ }
}
Map<IPath, Set<IType>> cs = fileSet.getClasses();
15 years