Skip to content

Commit

Permalink
make 3.6
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@2430 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
Victor Yarmolovich committed Apr 16, 2009
1 parent d2ed0e1 commit 29d8ce7
Show file tree
Hide file tree
Showing 8 changed files with 112 additions and 100 deletions.
20 changes: 0 additions & 20 deletions impl/pom.xml
Expand Up @@ -85,26 +85,6 @@
<artifactId>dom4j</artifactId>
</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>
Expand Down
68 changes: 31 additions & 37 deletions impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java
Expand Up @@ -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)
Expand Down Expand Up @@ -148,53 +147,48 @@ public static void checkRootDeclaredNamespaces(Element root, Map<String, Set<Str
{
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>();

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);
}
Set<String> packagesSet = new HashSet<String>();

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);
}
}
}

private static void validateXmlWithXsd(URL xmlUrl, URL schemaUrl)
{
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)
{
String message = "IOException while validate " + xmlUrl + " with " + schemaUrl;
throw new DefinitionException(message, e);
}
catch (IOException e)
catch(IOException e)
{
String message = "IOException while validate " + xmlUrl + " with " + schemaUrl;
throw new DefinitionException(message, e);
Expand Down
2 changes: 1 addition & 1 deletion impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
Expand Up @@ -60,8 +60,8 @@ public void parse()
{
parseForArrays(document);
parseForAnnotationTypes(document);
parseForBeans(document);
parseForDeploy(document);
parseForBeans(document);
}
}
}
Expand Down
@@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -169,12 +180,48 @@ private void registerWebServiceRefBean(Element webServiceRefElement, AnnotatedCl

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)
Expand Down
@@ -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
@TestDeploymentType
public class Order
{
public int val;

public String[] strArray;
private boolean active;

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;
}
}
Expand Up @@ -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;
Expand Down Expand Up @@ -52,20 +53,24 @@ public void testParse()
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);
}
}
}
Expand Down
@@ -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">
Expand All @@ -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>
Expand Down
24 changes: 0 additions & 24 deletions version-matrix/pom.xml
Expand Up @@ -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>
Expand Down

0 comments on commit 29d8ce7

Please sign in to comment.