JBoss Tools SVN: r34797 - trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2011-09-15 20:58:45 -0400 (Thu, 15 Sep 2011)
New Revision: 34797
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JsfJbide2362Test.java
Log:
fix for possible NPE in JSF VPE tests
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JsfJbide2362Test.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JsfJbide2362Test.java 2011-09-16 00:56:45 UTC (rev 34796)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JsfJbide2362Test.java 2011-09-16 00:58:45 UTC (rev 34797)
@@ -77,7 +77,6 @@
*/
public void testSimpleSourceSelection() throws Throwable {
- // wait
TestUtil.waitForJobs();
// set exception
setException(null);
@@ -90,7 +89,7 @@
// open and get editor
JSPMultiPageEditor part = openEditor(input);
-
+ TestUtil.getVpeController(part);
checkSourceSelection(part);
// check exception
14 years, 7 months
JBoss Tools SVN: r34796 - in trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject: producer and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2011-09-15 20:56:45 -0400 (Thu, 15 Sep 2011)
New Revision: 34796
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/producer/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/producer/ProducerWInjections.java
Log:
https://issues.jboss.org/browse/JBIDE-9723 Injection points declared in producer methods should be validated as injection points of the producer but not as injections of the class bean
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/producer/ProducerWInjections.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/producer/ProducerWInjections.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/producer/ProducerWInjections.java 2011-09-16 00:56:45 UTC (rev 34796)
@@ -0,0 +1,17 @@
+package org.jboss.jsr299.tck.tests.jbt.validation.inject.producer;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.inject.Produces;
+import javax.enterprise.inject.spi.InjectionPoint;
+
+@ApplicationScoped
+public class ProducerWInjections {
+
+ @Produces
+ public Test produce(InjectionPoint ip) {
+ return null;
+ }
+
+ public static class Test {
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/producer/ProducerWInjections.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
14 years, 7 months
JBoss Tools SVN: r34795 - in trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl: definition and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-09-15 20:31:26 -0400 (Thu, 15 Sep 2011)
New Revision: 34795
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/NewBean.java
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/definition/AbstractTypeDefinition.java
Log:
JBIDE-9722
https://issues.jboss.org/browse/JBIDE-9722
New bean creation implemented.
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-09-15 22:48:06 UTC (rev 34794)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-09-16 00:31:26 UTC (rev 34795)
@@ -58,12 +58,15 @@
import org.jboss.tools.cdi.core.IQualifierDeclaration;
import org.jboss.tools.cdi.core.IScope;
import org.jboss.tools.cdi.core.IStereotype;
+import org.jboss.tools.cdi.core.IStereotypeDeclaration;
import org.jboss.tools.cdi.core.extension.feature.IAmbiguousBeanResolverFeature;
import org.jboss.tools.cdi.core.extension.feature.IBuildParticipantFeature;
import org.jboss.tools.cdi.internal.core.event.CDIProjectChangeEvent;
import org.jboss.tools.cdi.internal.core.impl.definition.AnnotationDefinition;
import org.jboss.tools.cdi.internal.core.impl.definition.BeansXMLDefinition;
import org.jboss.tools.cdi.internal.core.impl.definition.DefinitionContext;
+import org.jboss.tools.cdi.internal.core.impl.definition.FieldDefinition;
+import org.jboss.tools.cdi.internal.core.impl.definition.MethodDefinition;
import org.jboss.tools.cdi.internal.core.impl.definition.TypeDefinition;
import org.jboss.tools.cdi.internal.core.scanner.ImplementationCollector;
import org.jboss.tools.common.java.IAnnotationDeclaration;
@@ -338,13 +341,14 @@
}
}
- boolean isNew = false;
-
Set<IQualifierDeclaration> qs = injectionPoint.getQualifierDeclarations();
for (IQualifierDeclaration d: qs) {
if(CDIConstants.NEW_QUALIFIER_TYPE_NAME.equals(d.getTypeName())) {
- isNew = true;
- break;
+ IBean b = createNewBean(type, d);
+ if(b != null) {
+ result.add(b);
+ }
+ return result;
}
}
@@ -367,15 +371,6 @@
CDICorePlugin.getDefault().logError(e);
}
}
- if(isNew) {
- //TODO improve
- IType bType = b.getBeanClass();
- if(bType != null && jType != null
- && bType.getFullyQualifiedName().equals(jType.getFullyQualifiedName())) {
- result.add(b);
- }
- continue;
- }
Set<IParametedType> types = b.getLegalTypes();
if(containsType(types, type)) {
try {
@@ -399,6 +394,88 @@
return getResolvedBeans(result, attemptToResolveAmbiguousDependency);
}
+ /**
+ * Returns null if type is not managed bean.
+ *
+ * @param type
+ * @param newDeclaration
+ * @return
+ */
+ public IBean createNewBean(IParametedType type, IAnnotationDeclaration newDeclaration) {
+ IType t = type.getType();
+ if(t == null || !t.exists()) {
+ return null;
+ }
+ try {
+ if(newDeclaration.getJavaAnnotation() == null) {
+ return null;
+ }
+ IJavaElement dType = newDeclaration.getJavaAnnotation().getAncestor(IJavaElement.TYPE);
+ if(!(dType instanceof IType)) {
+ return null;
+ }
+ Object value = newDeclaration.getMemberValue(null);
+ if(value != null && value.toString().length() > 0) {
+ ParametedType p = getNature().getTypeFactory().getParametedType((IType)dType, "Q" + value.toString() + ";");
+ if(p != null && p.getType() != null && p.getType().getTypeParameters().length > 0) {
+ String s = type.getSignature();
+ if(s.indexOf("<") >= 0 && s.lastIndexOf('>') > 0) {
+ String cls = value.toString() + s.substring(s.indexOf('<'), s.lastIndexOf('>') + 1);
+ ParametedType p1 = getNature().getTypeFactory().getParametedType((IType)dType, "Q" + cls + ";");
+ if(p1 != null) {
+ p = p1;
+ }
+ }
+ }
+ if(p == null) {
+ return null;
+ }
+ p.getAllTypes();
+ type = p;
+ t = p.getType();
+ }
+ if(t.isInterface()) {
+ return null;
+ }
+ TypeDefinition def = new TypeDefinition();
+ def.setType(type.getType(), getNature().getDefinitions(), 0);
+ def.setParametedType(type);
+ if(!def.hasBeanConstructor()) {
+ return null;
+ }
+ Iterator<MethodDefinition> ms = def.getMethods().iterator();
+ while(ms.hasNext()) {
+ MethodDefinition m = ms.next();
+ if(m.isObserver() || m.isDisposer() || m.isAnnotationPresent(CDIConstants.PRODUCES_ANNOTATION_TYPE_NAME)) {
+ ms.remove();
+ }
+ }
+ Iterator<FieldDefinition> fs = def.getFields().iterator();
+ while(fs.hasNext()) {
+ FieldDefinition f = fs.next();
+ if(f.isAnnotationPresent(CDIConstants.PRODUCES_ANNOTATION_TYPE_NAME)) {
+ fs.remove();
+ }
+ }
+ IAnnotationDeclaration[] as = def.getAnnotations().toArray(new IAnnotationDeclaration[0]);
+ for (IAnnotationDeclaration a: as) {
+ if(a instanceof IQualifierDeclaration || a instanceof IStereotypeDeclaration) {
+ def.removeAnnotation(a);
+ }
+ }
+ def.addAnnotation(((AnnotationDeclaration)newDeclaration).getDeclaration(), getNature().getDefinitions());
+
+ ClassBean cb = new NewBean();
+ cb.setParent(this);
+ cb.setDefinition(def);
+
+ return cb;
+ } catch (CoreException e) {
+ CDICorePlugin.getDefault().logError(e);
+ }
+ return null;
+ }
+
public static boolean containsType(Set<IParametedType> types, IParametedType type) {
if(type == null) {
return false;
Added: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/NewBean.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/NewBean.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/NewBean.java 2011-09-16 00:31:26 UTC (rev 34795)
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.internal.core.impl;
+
+import org.jboss.tools.cdi.core.CDIConstants;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class NewBean extends ClassBean {
+
+ protected void computeScope() {
+ scope = getCDIProject().getScope(CDIConstants.DEPENDENT_ANNOTATION_TYPE_NAME);
+ }
+
+ public boolean isEnabled() {
+ return true;
+ }
+
+}
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/NewBean.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractTypeDefinition.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractTypeDefinition.java 2011-09-15 22:48:06 UTC (rev 34794)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractTypeDefinition.java 2011-09-16 00:31:26 UTC (rev 34795)
@@ -87,6 +87,10 @@
return parametedType;
}
+ public void setParametedType(IParametedType t) {
+ parametedType = (ParametedType)t;
+ }
+
public Set<IParametedType> getInheritedTypes() {
return parametedType == null ? new HashSet<IParametedType>() : parametedType.getInheritedTypes();
}
14 years, 7 months
JBoss Tools SVN: r34794 - trunk/build/aggregate/site.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2011-09-15 18:48:06 -0400 (Thu, 15 Sep 2011)
New Revision: 34794
Modified:
trunk/build/aggregate/site/site.xml
Log:
dedupe. oops
Modified: trunk/build/aggregate/site/site.xml
===================================================================
--- trunk/build/aggregate/site/site.xml 2011-09-15 22:47:03 UTC (rev 34793)
+++ trunk/build/aggregate/site/site.xml 2011-09-15 22:48:06 UTC (rev 34794)
@@ -176,7 +176,6 @@
<feature url="features/org.jboss.tools.jst.feature_0.0.0.jar" id="org.jboss.tools.jst.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.jsf.feature_0.0.0.jar" id="org.jboss.tools.jsf.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.vpe.feature_0.0.0.jar" id="org.jboss.tools.vpe.feature" version="0.0.0"></feature>
- <feature url="features/org.jboss.tools.jsf.feature_0.0.0.jar" id="org.jboss.tools.jsf.feature" version="0.0.0"></feature>
<!-- categories - see also ../../../common/aggregateRepos.*.properties -->
<category-def name="SDKTools" label="JBoss Tools SDK">
14 years, 7 months
JBoss Tools SVN: r34793 - trunk/build/aggregate/site.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2011-09-15 18:47:03 -0400 (Thu, 15 Sep 2011)
New Revision: 34793
Modified:
trunk/build/aggregate/site/site.xml
Log:
add jsf feature too
Modified: trunk/build/aggregate/site/site.xml
===================================================================
--- trunk/build/aggregate/site/site.xml 2011-09-15 22:43:50 UTC (rev 34792)
+++ trunk/build/aggregate/site/site.xml 2011-09-15 22:47:03 UTC (rev 34793)
@@ -174,6 +174,7 @@
<feature url="features/org.mozilla.xulrunner.feature_0.0.0.jar" id="org.mozilla.xulrunner.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.common.feature_0.0.0.jar" id="org.jboss.tools.common.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.jst.feature_0.0.0.jar" id="org.jboss.tools.jst.feature" version="0.0.0"></feature>
+ <feature url="features/org.jboss.tools.jsf.feature_0.0.0.jar" id="org.jboss.tools.jsf.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.vpe.feature_0.0.0.jar" id="org.jboss.tools.vpe.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.jsf.feature_0.0.0.jar" id="org.jboss.tools.jsf.feature" version="0.0.0"></feature>
14 years, 7 months
JBoss Tools SVN: r34792 - trunk/build/aggregate/site.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2011-09-15 18:43:50 -0400 (Thu, 15 Sep 2011)
New Revision: 34792
Modified:
trunk/build/aggregate/site/site.xml
Log:
https://issues.jboss.org/browse/JBIDE-9397 (Split RichFaces feature into separate Common, JSF, VPE, ... features)
added jsf feature as well
Modified: trunk/build/aggregate/site/site.xml
===================================================================
--- trunk/build/aggregate/site/site.xml 2011-09-15 22:41:23 UTC (rev 34791)
+++ trunk/build/aggregate/site/site.xml 2011-09-15 22:43:50 UTC (rev 34792)
@@ -170,11 +170,12 @@
</feature>
<!-- include but do not categorize -->
- <feature url="features/org.jboss.tools.xulrunner.feature_0.0.0.jar" id="org.jboss.tools.xulrunner.feature" version="0.0.0"></feature>
+ <feature url="features/org.jboss.tools.xulrunner.feature_0.0.0.jar" id="org.jboss.tools.xulrunner.feature" version="0.0.0"></feature>
<feature url="features/org.mozilla.xulrunner.feature_0.0.0.jar" id="org.mozilla.xulrunner.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.common.feature_0.0.0.jar" id="org.jboss.tools.common.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.jst.feature_0.0.0.jar" id="org.jboss.tools.jst.feature" version="0.0.0"></feature>
<feature url="features/org.jboss.tools.vpe.feature_0.0.0.jar" id="org.jboss.tools.vpe.feature" version="0.0.0"></feature>
+ <feature url="features/org.jboss.tools.jsf.feature_0.0.0.jar" id="org.jboss.tools.jsf.feature" version="0.0.0"></feature>
<!-- categories - see also ../../../common/aggregateRepos.*.properties -->
<category-def name="SDKTools" label="JBoss Tools SDK">
14 years, 7 months
JBoss Tools SVN: r34790 - trunk/build/aggregate/site.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2011-09-15 18:35:34 -0400 (Thu, 15 Sep 2011)
New Revision: 34790
Modified:
trunk/build/aggregate/site/site.xml
Log:
JBIDE-9397 add o.j.t.common.feature and o.j.t.jst.feature and o.j.t.vpe.feature to site so they'll be resolvable when installing
Modified: trunk/build/aggregate/site/site.xml
===================================================================
--- trunk/build/aggregate/site/site.xml 2011-09-15 21:52:12 UTC (rev 34789)
+++ trunk/build/aggregate/site/site.xml 2011-09-15 22:35:34 UTC (rev 34790)
@@ -172,6 +172,9 @@
<!-- include but do not categorize -->
<feature url="features/org.jboss.tools.xulrunner.feature_0.0.0.jar" id="org.jboss.tools.xulrunner.feature" version="0.0.0"></feature>
<feature url="features/org.mozilla.xulrunner.feature_0.0.0.jar" id="org.mozilla.xulrunner.feature" version="0.0.0"></feature>
+ <feature url="features/org.jboss.tools.common.feature_0.0.0.jar" id="org.jboss.tools.common.feature" version="0.0.0"></feature>
+ <feature url="features/org.jboss.tools.jst.feature_0.0.0.jar" id="org.jboss.tools.jst.feature" version="0.0.0"></feature>
+ <feature url="features/org.jboss.tools.vpe.feature_0.0.0.jar" id="org.jboss.tools.vpe.feature" version="0.0.0"></feature>
<!-- categories - see also ../../../common/aggregateRepos.*.properties -->
<category-def name="SDKTools" label="JBoss Tools SDK">
14 years, 7 months
JBoss Tools SVN: r34789 - trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-09-15 17:52:12 -0400 (Thu, 15 Sep 2011)
New Revision: 34789
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/FileSet.java
Log:
Anonymous types and non-static inner types should not be loaded as CDI beans.
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/FileSet.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/FileSet.java 2011-09-15 21:19:44 UTC (rev 34788)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/scanner/FileSet.java 2011-09-15 21:52:12 UTC (rev 34789)
@@ -38,6 +38,12 @@
allpaths.add(path);
if(!checkType(type, path)) {
//do nothing, bug JDT
+ } else if(type.isAnonymous()) {
+ //is not bean
+ } else if(type.getDeclaringType() != null && !Flags.isStatic(type.getFlags())) {
+ //is not bean
+ } else if(type.getFullyQualifiedName().indexOf('$') > 0 && !Flags.isStatic(type.getFlags())) {
+ //is not bean
} else if(type.isAnnotation()) {
add(annotations, path, type);
} else if(type.isInterface()) {
14 years, 7 months
JBoss Tools SVN: r34788 - in trunk: cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2011-09-15 17:19:44 -0400 (Thu, 15 Sep 2011)
New Revision: 34788
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundleCdiElResolverTest.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
Log:
JBIDE-9480
CdiElResolver incorrectly resolves resource message bundle properties as Java Elements
JUnit test is added.
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java 2011-09-15 21:17:40 UTC (rev 34787)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/CDISeamCoreAllTests.java 2011-09-15 21:19:44 UTC (rev 34788)
@@ -16,6 +16,7 @@
import org.eclipse.jdt.internal.core.JavaModelManager;
import org.eclipse.wst.validation.ValidationFramework;
import org.jboss.tools.cdi.seam.core.test.international.BundleModelTest;
+import org.jboss.tools.cdi.seam.core.test.international.SeamResourceBundleCdiElResolverTest;
import org.jboss.tools.cdi.seam.core.test.international.SeamResourceBundlesTest;
import org.jboss.tools.cdi.seam.core.test.jms.SeamJmsValidationTest;
import org.jboss.tools.cdi.seam.core.test.persistence.SeamPersistenceTest;
@@ -43,12 +44,13 @@
suite.addTestSuite(SeamResourceBundlesTest.class);
suite.addTestSuite(BundleModelTest.class);
suite.addTestSuite(SeamJmsValidationTest.class);
+ suite.addTestSuite(SeamResourceBundleCdiElResolverTest.class);
suiteAll.addTest(new SeamCoreTestSetup(suite));
suite = new TestSuite("Seam Persistence Project Tests");
suite.addTestSuite(SeamPersistenceTest.class);
suiteAll.addTest(new SeamPersistenceTestSetup(suite));
-
+
suiteAll.addTestSuite(ValidationExceptionTest.class); // This test should be added last!
return suiteAll;
Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundleCdiElResolverTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundleCdiElResolverTest.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundleCdiElResolverTest.java 2011-09-15 21:19:44 UTC (rev 34788)
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.seam.core.test.international;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.jboss.tools.cdi.internal.core.el.CdiElResolver;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTest;
+import org.jboss.tools.common.el.core.ELReference;
+import org.jboss.tools.common.el.core.model.ELInvocationExpression;
+import org.jboss.tools.common.el.core.resolver.ELContext;
+import org.jboss.tools.common.el.core.resolver.ELResolution;
+import org.jboss.tools.common.el.core.resolver.ELResolver;
+import org.jboss.tools.common.el.core.resolver.ELSegment;
+import org.jboss.tools.common.text.TextProposal;
+import org.jboss.tools.jst.text.ext.hyperlink.ELHyperlinkDetector;
+import org.jboss.tools.jst.web.kb.PageContextFactory;
+
+/**
+ * The JUnit test cases for JBIDE-9480 issue
+ *
+ * @author Victor Rubezhny
+ */
+public class SeamResourceBundleCdiElResolverTest extends SeamCoreTest {
+ private static final String PAGE_NAME = "WebContent/seam-international.xhtml";
+
+ public void testSeamResourceBundleCdiElResolver() throws Exception {
+ IFile page = getTestProject().getFile(PAGE_NAME);
+ assertTrue("Test page not found: " + PAGE_NAME, (page != null && page.exists()));
+ ELContext context = PageContextFactory.createPageContext(page);
+
+ ELResolver[] elResolvers = context.getElResolvers();
+ ELResolver cdiElResolver = null;
+ if (elResolvers != null) {
+ for (ELResolver r : elResolvers) {
+ if (r instanceof CdiElResolver) {
+ cdiElResolver = r;
+ break;
+ }
+ }
+ }
+ assertNotNull("CDI EL resolver is not set up on the project", cdiElResolver);
+
+ List<TextProposal> proposals = cdiElResolver.getProposals(context, "value=\"#{", 1);
+ assertTrue("CDI EL resolver must return at least one proposal!",
+ (proposals != null && proposals.size() > 0));
+
+ // For all the following cases no proposals is to be returned
+ proposals = cdiElResolver.getProposals(context, "value=\"#{bundles", 1);
+ assertFalse("CDI EL resolver must not to resolve resource bundles/properties but it does!",
+ (proposals != null && proposals.size() > 0));
+
+ proposals = cdiElResolver.getProposals(context, "value=\"#{bundles.messages", 1);
+ assertFalse("CDI EL resolver must not to resolve resource bundles/properties but it does!",
+ (proposals != null && proposals.size() > 0));
+
+ proposals = cdiElResolver.getProposals(context, "value=\"#{bundles.messages.home_header", 1);
+ assertFalse("CDI EL resolver must not to resolve resource bundles/properties but it does!",
+ (proposals != null && proposals.size() > 0));
+ }
+
+ public void testSeamResourceBundleCdiElResolverResolution() throws Exception {
+ IFile page = getTestProject().getFile(PAGE_NAME);
+ assertTrue("Test page not found: " + PAGE_NAME, (page != null && page.exists()));
+ ELContext context = PageContextFactory.createPageContext(page);
+
+ doSeamResourceBundleCdiElResolverResolutionTest(context, 381);
+ doSeamResourceBundleCdiElResolverResolutionTest(context, 389);
+ doSeamResourceBundleCdiElResolverResolutionTest(context, 398);
+ }
+
+ private void doSeamResourceBundleCdiElResolverResolutionTest(ELContext context, int offset) {
+ ELReference reference = context.getELReference(offset);
+ if(reference != null){
+ ELInvocationExpression expression = ELHyperlinkDetector.findInvocationExpressionByOffset(reference, offset);
+ if(expression != null){
+ ELResolver[] resolvers = context.getElResolvers();
+ ELResolver cdiElResolver = null;
+ if (resolvers != null) {
+ for (ELResolver r : resolvers) {
+ if (r instanceof CdiElResolver) {
+ cdiElResolver = r;
+ break;
+ }
+ }
+ }
+ assertNotNull("CDI EL resolver is not set up on the project", cdiElResolver);
+
+ ELResolution resolution = cdiElResolver.resolve(context, expression, offset);
+ if(resolution != null){
+ ELSegment segment = resolution.findSegmentByOffset(offset-reference.getStartPosition());
+ assertFalse("CDI EL resolver must not to resolve resource bundles/properties but it does!",
+ segment != null && segment.isResolved());
+ }
+ }
+ }
+ }
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundleCdiElResolverTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2011-09-15 21:17:40 UTC (rev 34787)
+++ trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2011-09-15 21:19:44 UTC (rev 34788)
@@ -70,7 +70,14 @@
return (IHyperlink[])links.toArray(new IHyperlink[links.size()]);
}
- private ELInvocationExpression findInvocationExpressionByOffset(ELReference reference, int offset){
+ /**
+ * Returns EL Invocation Expression of EL reference by offset
+ *
+ * @param reference
+ * @param offset
+ * @return
+ */
+ public static ELInvocationExpression findInvocationExpressionByOffset(ELReference reference, int offset){
ELExpression[] expressions = reference.getEl();
for(ELExpression expression : expressions){
if(reference.getStartPosition()+expression.getStartPosition() <= offset && reference.getStartPosition()+expression.getEndPosition() > offset){
@@ -82,7 +89,7 @@
return null;
}
- private ELInvocationExpression findInvocationExpressionByOffset(ELReference reference, ELExpression expression, int offset){
+ private static ELInvocationExpression findInvocationExpressionByOffset(ELReference reference, ELExpression expression, int offset){
List<ELInvocationExpression> invocations = expression.getInvocations();
for(ELInvocationExpression invocation : invocations){
if(reference.getStartPosition()+invocation.getStartPosition() <= offset && reference.getStartPosition()+invocation.getEndPosition() > offset)
14 years, 7 months