Author: vitold
Date: 2009-04-17 04:43:16 -0400 (Fri, 17 Apr 2009)
New Revision: 2454
Added:
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/schema/
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/schema/SchemaValidationTest.java
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/beans.xml
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/namespace
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/not-valid-beans.xml
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/notvalid/
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/notvalid/schema.xsd
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/schema.xsd
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/valid/
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/valid/schema.xsd
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.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
Log:
add RI unit test showing that multiple schemas can be validated
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
21:23:42 UTC (rev 2453)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java 2009-04-17
08:43:16 UTC (rev 2454)
@@ -123,9 +123,16 @@
{
urn = attrVal;
URL namespaceFile = environment.loadFileByUrn(urn,
XmlConstants.NAMESPACE_FILE_NAME);
- if (namespaceFile == null)
- throw new DefinitionException("Could not find '" +
XmlConstants.NAMESPACE_FILE_NAME + "' file according to specified URN '"
+ urn + "'");
- packagesSet.addAll(parseNamespaceFile(namespaceFile));
+
+ if (namespaceFile != null)
+ {
+ packagesSet.addAll(parseNamespaceFile(namespaceFile));
+ }
+ else
+ {
+ String packageName = urn.replaceFirst(XmlConstants.URN_PREFIX,
"");
+ packagesSet.add(packageName);
+ }
}
if (attribute.getName().equalsIgnoreCase(XmlConstants.SCHEMA_LOCATION)
&& attrVal.startsWith(XmlConstants.HTTP_PREFIX) && urn.trim().length()
> 0)
{
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
21:23:42 UTC (rev 2453)
+++
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java 2009-04-17
08:43:16 UTC (rev 2454)
@@ -1,18 +1,13 @@
package org.jboss.webbeans.test.unit.xml.parser;
-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;
-
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.testharness.impl.packaging.Classes;
import org.jboss.testharness.impl.packaging.Resource;
import org.jboss.testharness.impl.packaging.Resources;
-import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.ejb.EjbDescriptorCache;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.AnnotatedItem;
@@ -21,7 +16,6 @@
import org.jboss.webbeans.test.unit.xml.beans.Order;
import org.jboss.webbeans.xml.XmlEnvironment;
import org.jboss.webbeans.xml.XmlParser;
-import org.testng.annotations.Test;
@Artifact
@Resources({
@@ -53,50 +47,21 @@
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);
-
- Set<Bean<Order>> beansSet1 =
parserEnv.getManager().resolveByType(Order.class);
- 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("after parsing: " + deploymentType);
- }
+// 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("after parsing: " + deploymentType);
+// }
}
-}
-
- /*
-<Beans xmlns="urn:java:ee"
xmlns:myapp="urn:java:org.jboss.webbeans.test.unit.xml.beans"
- xmlns:test="urn:java:org.jboss.webbeans.test.unit.xml.parser"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:java:ee
http://java.sun.com/jee/ee/schema-1.0.xsd
- urn:java:com.mydomain.myapp
http://mydomain.com/myapp/schema-1.2.xsd">
- <Deploy>
- <Standard />
- <Production />
- <test:AnotherDeploymentType />
- </Deploy>
- <myapp:Order>
- <ConversationScoped />
- <myapp:PaymentProcessor>
- <myapp:Asynchronous />
- </myapp:PaymentProcessor>
- <myapp:User />
- </myapp:Order>
- <myapp:Login>
- <ConversationScoped />
- <BindingType />
- </myapp:Login>
-</Beans>
- */
+}
\ No newline at end of file
Added:
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/schema/SchemaValidationTest.java
===================================================================
---
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/schema/SchemaValidationTest.java
(rev 0)
+++
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/schema/SchemaValidationTest.java 2009-04-17
08:43:16 UTC (rev 2454)
@@ -0,0 +1,44 @@
+package org.jboss.webbeans.test.unit.xml.parser.schema;
+
+import javax.inject.DefinitionException;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.Classes;
+import org.jboss.testharness.impl.packaging.Resource;
+import org.jboss.testharness.impl.packaging.Resources;
+import org.jboss.webbeans.ejb.EjbDescriptorCache;
+import org.jboss.webbeans.mock.MockXmlEnvironment;
+import org.jboss.webbeans.test.AbstractWebBeansTest;
+import org.jboss.webbeans.test.unit.xml.beans.Order;
+import org.jboss.webbeans.xml.XmlEnvironment;
+import org.jboss.webbeans.xml.XmlParser;
+import org.testng.annotations.Test;
+
+@Artifact
+@Resources({
+
@Resource(source="/org/jboss/webbeans/test/unit/xml/parser/schema/beans.xml",
destination="WEB-INF/classes/org/jboss/webbeans/test/unit/xml/parser/schema/beans.xml"
),
+
@Resource(source="/org/jboss/webbeans/test/unit/xml/parser/schema/not-valid-beans.xml",
destination="WEB-INF/classes/org/jboss/webbeans/test/unit/xml/parser/schema/not-valid-beans.xml"
)
+})
+(a)Classes({Order.class})
+public class SchemaValidationTest extends AbstractWebBeansTest
+{
+ @Test
+ public void testTwoValidSchemas()
+ {
+ XmlEnvironment parserEnv = new
MockXmlEnvironment(getResources("beans.xml"), new EjbDescriptorCache());
+ XmlParser parser = new XmlParser(parserEnv);
+ parser.parse();
+
+ assert parserEnv.getManager().resolveByType(Order.class).size() == 1;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ public void testOneSchemaNotValid()
+ {
+ XmlEnvironment parserEnv = new
MockXmlEnvironment(getResources("not-valid-beans.xml"), new
EjbDescriptorCache());
+ XmlParser parser = new XmlParser(parserEnv);
+ parser.parse();
+
+ assert false;
+ }
+}
\ No newline at end of file
Added:
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/beans.xml
===================================================================
---
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/beans.xml
(rev 0)
+++
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/beans.xml 2009-04-17
08:43:16 UTC (rev 2454)
@@ -0,0 +1,20 @@
+<Beans xmlns="urn:java:ee"
+ xmlns:myapp="urn:java:org.jboss.webbeans.test.unit.xml.parser.schema"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:java:org.jboss.webbeans.test.unit.xml.parser.schema.valid
http://mydomain.com/myapp/schema-1.2.xsd">
+
+ <Deploy>
+ <Standard />
+ <Production />
+ <myapp:TestDeploymentType />
+ </Deploy>
+
+ <myapp:Order>
+ <Array>
+ <String />
+ </Array>
+ <myapp:getVal />
+ <myapp:val />
+ <Integer />
+ </myapp:Order>
+</Beans>
\ No newline at end of file
Added:
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/namespace
===================================================================
---
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/namespace
(rev 0)
+++
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/namespace 2009-04-17
08:43:16 UTC (rev 2454)
@@ -0,0 +1,2 @@
+org.jboss.webbeans.test.unit.xml.beans
+org.jboss.webbeans.test.unit.xml.beans.annotationtype
\ No newline at end of file
Added:
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/not-valid-beans.xml
===================================================================
---
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/not-valid-beans.xml
(rev 0)
+++
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/not-valid-beans.xml 2009-04-17
08:43:16 UTC (rev 2454)
@@ -0,0 +1,20 @@
+<Beans xmlns="urn:java:ee"
+ xmlns:myapp="urn:java:org.jboss.webbeans.test.unit.xml.parser.schema"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:java:org.jboss.webbeans.test.unit.xml.parser.schema.notvalid
http://mydomain.com/myapp/schema-1.2.xsd">
+
+ <Deploy>
+ <Standard />
+ <Production />
+ <myapp:TestDeploymentType />
+ </Deploy>
+
+ <myapp:Order>
+ <Array>
+ <String />
+ </Array>
+ <myapp:getVal />
+ <myapp:val />
+ <Integer />
+ </myapp:Order>
+</Beans>
\ No newline at end of file
Added:
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/notvalid/schema.xsd
===================================================================
---
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/notvalid/schema.xsd
(rev 0)
+++
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/notvalid/schema.xsd 2009-04-17
08:43:16 UTC (rev 2454)
@@ -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
Added:
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/schema.xsd
===================================================================
---
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/schema.xsd
(rev 0)
+++
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/schema.xsd 2009-04-17
08:43:16 UTC (rev 2454)
@@ -0,0 +1,10 @@
+<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:
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/valid/schema.xsd
===================================================================
---
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/valid/schema.xsd
(rev 0)
+++
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/schema/valid/schema.xsd 2009-04-17
08:43:16 UTC (rev 2454)
@@ -0,0 +1,10 @@
+<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
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
21:23:42 UTC (rev 2453)
+++
ri/trunk/tests/src/test/resources/org/jboss/webbeans/test/unit/xml/parser/user-defined-beans.xml 2009-04-17
08:43:16 UTC (rev 2454)
@@ -2,8 +2,7 @@
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">
+ xsi:schemaLocation="urn:java:org.jboss.webbeans.test.unit.xml.parser
http://mydomain.com/myapp/schema-1.2.xsd">
<Deploy>
<Standard />
<Production />