[webbeans-commits] Webbeans SVN: r2398 - ri/trunk/impl/src/main/java/org/jboss/webbeans/xml and 6 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Mon Apr 13 10:01:23 EDT 2009


Author: vitold
Date: 2009-04-13 10:01:22 -0400 (Mon, 13 Apr 2009)
New Revision: 2398

Added:
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/schema/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/schema/StandardSchemaLocationTest.java
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/beans.xml
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/schema.xsd
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/version-matrix/pom.xml
   tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/metadata/schema.xsd
Log:
make 9.3 and its tests

Modified: ri/trunk/impl/pom.xml
===================================================================
--- ri/trunk/impl/pom.xml	2009-04-12 11:56:40 UTC (rev 2397)
+++ ri/trunk/impl/pom.xml	2009-04-13 14:01:22 UTC (rev 2398)
@@ -86,6 +86,26 @@
       </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-12 11:56:40 UTC (rev 2397)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java	2009-04-13 14:01:22 UTC (rev 2398)
@@ -17,9 +17,15 @@
 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)
@@ -101,7 +107,7 @@
       throw new DefinitionException("There are multiple packages containing a Java type with the same name '" + className + "'");
    }
 
-   public static void checkRootAttributes(Element root, Map<String, Set<String>> packagesMap, XmlEnvironment environment)
+   public static void checkRootAttributes(Element root, Map<String, Set<String>> packagesMap, XmlEnvironment environment, URL xmlUrl)
    {
       Iterator<?> rootAttrIterator = root.attributeIterator();
       while (rootAttrIterator.hasNext())
@@ -124,9 +130,10 @@
             }
             if (attribute.getName().equalsIgnoreCase(XmlConstants.SCHEMA_LOCATION) && attrVal.startsWith(XmlConstants.HTTP_PREFIX) && urn.trim().length() > 0)
             {
-               URL schemaFile = environment.loadFileByUrn(urn, XmlConstants.SCHEMA_FILE_NAME);
-               if (schemaFile == null)
+               URL schemaUrl = environment.loadFileByUrn(urn, XmlConstants.SCHEMA_FILE_NAME);
+               if (schemaUrl == null)
                   throw new DefinitionException("Could not find '" + XmlConstants.SCHEMA_FILE_NAME + "' file according to specified URN '" + urn + "'");
+               validateXmlWithXsd(xmlUrl, schemaUrl);
             }
          }
 
@@ -134,7 +141,7 @@
       }
    }
 
-   public static void checkRootDeclaredNamespaces(Element root, Map<String, Set<String>> packagesMap, XmlEnvironment environment)
+   public static void checkRootDeclaredNamespaces(Element root, Map<String, Set<String>> packagesMap, XmlEnvironment environment, URL xmlUrl)
    {
       Iterator<?> namespacesIterator = root.declaredNamespaces().iterator();
       while (namespacesIterator.hasNext())
@@ -148,7 +155,9 @@
             {
                Set<String> packagesSet = new HashSet<String>();
 
-               environment.loadFileByUrn(uri, XmlConstants.SCHEMA_FILE_NAME);
+               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)
@@ -166,6 +175,31 @@
          }                  
       }
    }
+   
+   private static void validateXmlWithXsd(URL xmlUrl, URL schemaUrl)
+   {      
+      try
+      {
+         VerifierFactory factory = new TheFactoryImpl();
+         Verifier verifier = factory.newVerifier(schemaUrl.openStream());
+         verifier.verify(xmlUrl.toExternalForm());
+      }
+      catch (VerifierConfigurationException e)
+      {
+         String message = "VerifierConfigurationException while create verifier for " + 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)
+      {
+         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-12 11:56:40 UTC (rev 2397)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java	2009-04-13 14:01:22 UTC (rev 2398)
@@ -35,6 +35,7 @@
 import org.jboss.webbeans.xml.checker.bean.ext.SimpleBeanElementChecker;
 import org.jboss.webbeans.xml.checker.beanchildren.ext.NotSimpleBeanChildrenChecker;
 import org.jboss.webbeans.xml.checker.beanchildren.ext.SimpleBeanChildrenChecker;
+import org.xml.sax.EntityResolver;
 
 public class XmlParser
 {
@@ -186,7 +187,7 @@
          }
          SAXReader reader = new SAXReader();
          Document document = reader.read(xmlStream);
-         fullFillPackagesMap(document);
+         fullFillPackagesMap(document, url);
          return document;
       }
       catch (IOException e)
@@ -441,10 +442,10 @@
       }                  
    }
    
-   private void fullFillPackagesMap(Document document)
+   private void fullFillPackagesMap(Document document, URL xmlUrl)
    {
       Element root = document.getRootElement();      
-      ParseXmlHelper.checkRootAttributes(root, packagesMap, environment);
-      ParseXmlHelper.checkRootDeclaredNamespaces(root, packagesMap, environment);
+      ParseXmlHelper.checkRootAttributes(root, packagesMap, environment, xmlUrl);
+      ParseXmlHelper.checkRootDeclaredNamespaces(root, packagesMap, environment, xmlUrl);
    }
 }

Modified: ri/trunk/version-matrix/pom.xml
===================================================================
--- ri/trunk/version-matrix/pom.xml	2009-04-12 11:56:40 UTC (rev 2397)
+++ ri/trunk/version-matrix/pom.xml	2009-04-13 14:01:22 UTC (rev 2398)
@@ -115,6 +115,30 @@
             <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>

Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/schema/StandardSchemaLocationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/schema/StandardSchemaLocationTest.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/schema/StandardSchemaLocationTest.java	2009-04-13 14:01:22 UTC (rev 2398)
@@ -0,0 +1,32 @@
+package org.jboss.jsr299.tck.tests.xml.schema;
+
+import javax.inject.DefinitionException;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.hibernate.tck.annotations.SpecAssertions;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.ExpectedDeploymentException;
+import org.jboss.testharness.impl.packaging.Resource;
+import org.jboss.testharness.impl.packaging.Resources;
+import org.jboss.testharness.impl.packaging.jsr299.BeansXml;
+import org.testng.annotations.Test;
+
+ at Artifact
+ at Resources({
+   @Resource(source="schema.xsd", destination="WEB-INF/classes/org/jboss/jsr299/tck/tests/xml/schema/schema.xsd")
+})
+ at BeansXml("beans.xml")
+ at ExpectedDeploymentException(DefinitionException.class)
+public class StandardSchemaLocationTest
+{
+   @Test
+   @SpecAssertions({
+      @SpecAssertion(section="9.3", id="a"),
+      @SpecAssertion(section="9.3", id="b"),
+      @SpecAssertion(section="9.3", id="c")
+   })
+   public void testStandardSchemaLocation()
+   {
+      assert true;
+   }
+}

Modified: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/metadata/schema.xsd
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/metadata/schema.xsd	2009-04-12 11:56:40 UTC (rev 2397)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/metadata/schema.xsd	2009-04-13 14:01:22 UTC (rev 2398)
@@ -1,10 +1,10 @@
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
- <xs:element name="Beans">
-  <xs:complexType>
-   <xs:sequence>
-     <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
-   </xs:sequence>
-   <xs:anyAttribute/>
-  </xs:complexType>
- </xs:element>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:java:ee">
+	<xs:element name="Beans">
+		<xs:complexType>
+			<xs:sequence minOccurs="0" maxOccurs="unbounded">
+				<xs:any namespace="##any" processContents="skip"  />
+			</xs:sequence>
+			<xs:anyAttribute namespace="##any" processContents="skip" />
+		</xs:complexType>
+	</xs:element>
 </xs:schema>
\ No newline at end of file

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/beans.xml	2009-04-13 14:01:22 UTC (rev 2398)
@@ -0,0 +1,8 @@
+<Beans xmlns="urn:java:ee"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="urn:java:org.jboss.jsr299.tck.tests.xml.metadata http://mydomain.com/myapp/schema-1.2.xsd">
+	<Deploy>
+		<Standard />
+		<Production />
+	</Deploy>
+</Beans>
\ No newline at end of file

Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/schema.xsd
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/schema.xsd	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/xml/schema/schema.xsd	2009-04-13 14:01:22 UTC (rev 2398)
@@ -0,0 +1,10 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:java:ee">
+	<xs:element name="Beanses">
+		<xs:complexType>
+			<xs:sequence minOccurs="0" maxOccurs="unbounded">
+				<xs:any namespace="##any" processContents="skip"  />
+			</xs:sequence>
+			<xs:anyAttribute namespace="##any" processContents="skip" />
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
\ No newline at end of file




More information about the weld-commits mailing list