[webbeans-commits] Webbeans SVN: r2430 - in ri/trunk: impl/src/main/java/org/jboss/webbeans/xml and 5 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Thu Apr 16 08:12:33 EDT 2009
Author: vitold
Date: 2009-04-16 08:12:33 -0400 (Thu, 16 Apr 2009)
New Revision: 2430
Modified:
ri/trunk/impl/pom.xml
ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/registrator/bean/ext/ResourceElementRegistrator.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/beans/Order.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/user-defined-beans.xml
ri/trunk/version-matrix/pom.xml
Log:
make 3.6
Modified: ri/trunk/impl/pom.xml
===================================================================
--- ri/trunk/impl/pom.xml 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/impl/pom.xml 2009-04-16 12:12:33 UTC (rev 2430)
@@ -86,26 +86,6 @@
</dependency>
<dependency>
- <groupId>msv</groupId>
- <artifactId>isorelax</artifactId>
- </dependency>
-
- <dependency>
- <groupId>msv</groupId>
- <artifactId>msv</artifactId>
- </dependency>
-
- <dependency>
- <groupId>msv</groupId>
- <artifactId>relaxngDatatype</artifactId>
- </dependency>
-
- <dependency>
- <groupId>msv</groupId>
- <artifactId>xsdlib</artifactId>
- </dependency>
-
- <dependency>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
<optional>true</optional>
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java 2009-04-16 12:12:33 UTC (rev 2430)
@@ -12,20 +12,19 @@
import java.util.Set;
import javax.inject.DefinitionException;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
import org.dom4j.Attribute;
import org.dom4j.Element;
import org.dom4j.Namespace;
import org.dom4j.QName;
-import org.iso_relax.verifier.Verifier;
-import org.iso_relax.verifier.VerifierConfigurationException;
-import org.iso_relax.verifier.VerifierFactory;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.resources.spi.ResourceLoadingException;
import org.xml.sax.SAXException;
-import com.sun.msv.verifier.jarv.TheFactoryImpl;
-
public class ParseXmlHelper
{
public static boolean isJavaEeNamespace(Element element)
@@ -148,31 +147,29 @@
{
Namespace namespace = (Namespace) namespacesIterator.next();
String prefix = namespace.getPrefix();
+ String uri = namespace.getURI();
- for(String uri : namespace.getURI().split(" "))
+ if (uri.startsWith(XmlConstants.URN_PREFIX))
{
- if (uri.startsWith(XmlConstants.URN_PREFIX))
- {
- Set<String> packagesSet = new HashSet<String>();
+ Set<String> packagesSet = new HashSet<String>();
- URL schemaUrl = environment.loadFileByUrn(uri, XmlConstants.SCHEMA_FILE_NAME);
- if(schemaUrl != null)
- validateXmlWithXsd(xmlUrl, schemaUrl);
-
- URL namespaceFile = environment.loadFileByUrn(uri, XmlConstants.NAMESPACE_FILE_NAME);
- if (namespaceFile != null)
- {
- packagesSet.addAll(parseNamespaceFile(namespaceFile));
- }
- else
- {
- String packageName = uri.replaceFirst(XmlConstants.URN_PREFIX, "");
- packagesSet.add(packageName);
- }
-
- addElementToPackagesMap(packagesMap, prefix, packagesSet);
+ URL schemaUrl = environment.loadFileByUrn(uri, XmlConstants.SCHEMA_FILE_NAME);
+ if(schemaUrl != null)
+ validateXmlWithXsd(xmlUrl, schemaUrl);
+
+ URL namespaceFile = environment.loadFileByUrn(uri, XmlConstants.NAMESPACE_FILE_NAME);
+ if (namespaceFile != null)
+ {
+ packagesSet.addAll(parseNamespaceFile(namespaceFile));
}
- }
+ else
+ {
+ String packageName = uri.replaceFirst(XmlConstants.URN_PREFIX, "");
+ packagesSet.add(packageName);
+ }
+
+ addElementToPackagesMap(packagesMap, prefix, packagesSet);
+ }
}
}
@@ -180,25 +177,22 @@
{
try
{
- VerifierFactory factory = new TheFactoryImpl();
- Verifier verifier = factory.newVerifier(schemaUrl.openStream());
- verifier.verify(xmlUrl.toExternalForm());
+ final StreamSource stream = new StreamSource(xmlUrl.toExternalForm());
+ final SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
+ final Schema schema = schemaFactory.newSchema(schemaUrl);
+ final Validator validator = schema.newValidator();
+ validator.validate(stream);
}
- catch (VerifierConfigurationException e)
+ catch(SAXException e)
{
- String message = "VerifierConfigurationException while create verifier for " + schemaUrl;
+ String message = "SAXException while validate " + xmlUrl + " with " + schemaUrl;
throw new DefinitionException(message, e);
}
- catch (SAXException e)
+ catch(IOException e)
{
String message = "IOException while validate " + xmlUrl + " with " + schemaUrl;
throw new DefinitionException(message, e);
}
- catch (IOException e)
- {
- String message = "IOException while validate " + xmlUrl + " with " + schemaUrl;
- throw new DefinitionException(message, e);
- }
}
public static List<Element> findElementsInEeNamespace(Element elementParent, String elementName)
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java 2009-04-16 12:12:33 UTC (rev 2430)
@@ -60,8 +60,8 @@
{
parseForArrays(document);
parseForAnnotationTypes(document);
+ parseForDeploy(document);
parseForBeans(document);
- parseForDeploy(document);
}
}
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/registrator/bean/ext/ResourceElementRegistrator.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/registrator/bean/ext/ResourceElementRegistrator.java 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/registrator/bean/ext/ResourceElementRegistrator.java 2009-04-16 12:12:33 UTC (rev 2430)
@@ -1,10 +1,20 @@
package org.jboss.webbeans.xml.registrator.bean.ext;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.inject.Current;
+import javax.inject.DeploymentType;
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceUnit;
+import javax.xml.ws.WebServiceRef;
+
import org.dom4j.Element;
import org.jboss.webbeans.bean.RIBean;
import org.jboss.webbeans.bean.ee.AbstractJavaEEResourceBean;
@@ -17,6 +27,7 @@
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.persistence.spi.JpaServices;
import org.jboss.webbeans.resources.spi.ResourceServices;
+import org.jboss.webbeans.util.reflection.AnnotationImpl;
import org.jboss.webbeans.ws.spi.WebServices;
import org.jboss.webbeans.xml.ParseXmlHelper;
import org.jboss.webbeans.xml.XmlConstants;
@@ -169,12 +180,48 @@
private Class<? extends Annotation> obtainDeploymentType(Element beanElement)
{
+ Iterator<?> elIterator = beanElement.elementIterator();
+ while (elIterator.hasNext())
+ {
+ Element childElement = (Element) elIterator.next();
+ AnnotatedClass<?> childClass = ParseXmlHelper.loadElementClass(childElement, Object.class, environment, packagesMap);
+ if(childClass.getRawType().isAnnotation() && childClass.isAnnotationPresent(DeploymentType.class))
+ return ParseXmlHelper.loadAnnotationClass(childElement, Annotation.class, environment, packagesMap);
+ }
+
return null;
}
private Set<Annotation> obtainBindings(Element beanElement)
{
- return null;
+ Set<Annotation> result = new HashSet<Annotation>();
+
+ Iterator<?> elIterator = beanElement.elementIterator();
+ while (elIterator.hasNext())
+ {
+ Element childElement = (Element) elIterator.next();
+ AnnotatedClass<?> childClass = ParseXmlHelper.loadElementClass(childElement, Object.class, environment, packagesMap);
+ if(childClass.getRawType().isAnnotation() && !childClass.isAnnotationPresent(DeploymentType.class) &&
+ !childClass.getRawType().equals(Resource.class) && !childClass.getRawType().equals(PersistenceContext.class) &&
+ !childClass.getRawType().equals(PersistenceUnit.class) && !childClass.getRawType().equals(EJB.class) &&
+ !childClass.getRawType().equals(WebServiceRef.class))
+ {
+ Class<?> annotationClass = childClass.getRawType();
+ Method[] annotationMethods = annotationClass.getDeclaredMethods();
+ AnnotationImpl annotation = new AnnotationImpl(annotationClass, annotationMethods);
+ result.add(annotation);
+ }
+ }
+
+ if(result.size() == 0)
+ {
+ Class<?> annotationClass = Current.class;
+ Method[] annotationMethods = annotationClass.getDeclaredMethods();
+ AnnotationImpl annotation = new AnnotationImpl(annotationClass, annotationMethods);
+ result.add(annotation);
+ }
+
+ return result;
}
private String obtainElementValue(Element elementParent, String elementName)
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/beans/Order.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/beans/Order.java 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/beans/Order.java 2009-04-16 12:12:33 UTC (rev 2430)
@@ -1,25 +1,34 @@
package org.jboss.webbeans.test.unit.xml.beans;
+import javax.context.Dependent;
+import javax.inject.Current;
+import javax.inject.Initializer;
+import javax.inject.manager.Manager;
+
import org.jboss.webbeans.test.unit.xml.beans.annotationtype.TestBindingType;
+import org.jboss.webbeans.test.unit.xml.beans.annotationtype.TestDeploymentType;
import org.jboss.webbeans.test.unit.xml.beans.annotationtype.TestInterceptorBindingType;
import org.jboss.webbeans.test.unit.xml.beans.annotationtype.TestStereotype;
@TestBindingType
@TestInterceptorBindingType
@TestStereotype
+ at TestDeploymentType
public class Order
{
- public int val;
+ private boolean active;
- public String[] strArray;
-
- public Order(int val)
+ @Initializer
+ public Order(@Current Manager manager)
{
- this.val = val;
+ if (manager.getContext(Dependent.class).isActive())
+ {
+ active = true;
+ }
}
- public int getVal()
+ public boolean isActive()
{
- return val;
+ return active;
}
}
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java 2009-04-16 12:12:33 UTC (rev 2430)
@@ -3,6 +3,7 @@
import java.lang.annotation.Annotation;
import java.net.URL;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import javax.inject.manager.Bean;
@@ -52,20 +53,24 @@
assert parserEnv.getClasses().size() == 1;
}
-// @Test
+ @Test
public void testDd()
{
XmlEnvironment parserEnv = new MockXmlEnvironment(getResources("user-defined-beans.xml"), new EjbDescriptorCache());
XmlParser parser = new XmlParser(parserEnv);
+
+ List<Class<? extends Annotation>> dTypes1 = parserEnv.getManager().getEnabledDeploymentTypes();
+
parser.parse();
ManagerImpl manager = parserEnv.getManager();
Set<Bean<Order>> beansSet = manager.resolveByType(Order.class);
+ List<Class<? extends Annotation>> dTypes = manager.getEnabledDeploymentTypes();
for(Bean<Order> bean : beansSet)
{
Class<? extends Annotation> deploymentType = bean.getDeploymentType();
- System.out.println(bean.getClass());
+ System.out.println("after parsing: " + deploymentType);
}
}
}
Modified: ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/user-defined-beans.xml
===================================================================
--- ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/user-defined-beans.xml 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/user-defined-beans.xml 2009-04-16 12:12:33 UTC (rev 2430)
@@ -1,5 +1,6 @@
<Beans xmlns="urn:java:ee"
xmlns:myapp="urn:java:org.jboss.webbeans.test.unit.xml.parser"
+ xmlns:manager="urn:java:javax.inject.manager"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:java:ee
urn:java:org.jboss.webbeans.test.unit.xml.parser http://mydomain.com/myapp/schema-1.2.xsd">
@@ -25,19 +26,19 @@
</myapp:TestStereotype>
<myapp:Order>
- <RequestScoped />
<myapp:TestBindingType />
<myapp:TestInterceptorBindingType />
<myapp:TestStereotype />
- <myapp:TestDeploymentType />
- <myapp:val />
- <Array>
- <String />
- </Array>
- <Integer />
- <myapp:getVal />
+ <myapp:TestDeploymentType />
+ <myapp:isActive />
+ <manager:Manager />
</myapp:Order>
<myapp:PaymentService>
+ <RequestScoped />
+ <myapp:TestBindingType />
+ <myapp:TestInterceptorBindingType />
+ <myapp:TestStereotype />
+ <myapp:TestDeploymentType />
<Resource>
<name>java:app/service/PaymentService</name>
</Resource>
Modified: ri/trunk/version-matrix/pom.xml
===================================================================
--- ri/trunk/version-matrix/pom.xml 2009-04-16 11:21:41 UTC (rev 2429)
+++ ri/trunk/version-matrix/pom.xml 2009-04-16 12:12:33 UTC (rev 2430)
@@ -116,30 +116,6 @@
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
-
- <dependency>
- <groupId>msv</groupId>
- <artifactId>msv</artifactId>
- <version>20050913</version>
- </dependency>
-
- <dependency>
- <groupId>msv</groupId>
- <artifactId>isorelax</artifactId>
- <version>20050913</version>
- </dependency>
-
- <dependency>
- <groupId>msv</groupId>
- <artifactId>relaxngDatatype</artifactId>
- <version>20050913</version>
- </dependency>
-
- <dependency>
- <groupId>msv</groupId>
- <artifactId>xsdlib</artifactId>
- <version>20050913</version>
- </dependency>
<dependency>
<groupId>jaxen</groupId>
More information about the weld-commits
mailing list