You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/09/16 21:55:53 UTC

svn commit: r576163 - in /incubator/tuscany/java/sca/modules: assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ assembly-xml/src/test/resources/org/apache/tuscany/sca/assembl...

Author: jsdelfino
Date: Sun Sep 16 12:55:51 2007
New Revision: 576163

URL: http://svn.apache.org/viewvc?rev=576163&view=rev
Log:
Fix for TUSCANY-1276, added XMLSchemas for Tuscany bindings and implementation types, fixed a few XSD bugs causing schema ambiguities, fixed ValidatingXMLStreamReader to handle getElementText() correctly, fixed some composite files to make them comply with the SCA schemas, and added test methods to test XMLSchema validation. XMLSchema validation problems are logged as warnings, indicating the file, line and column of the problem. This should greatly improve the error reporting when loading .composite, .componentType and .constrainingType files.

Added:
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/JavaScriptReference.composite
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/JavaScriptReference.composite
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/RMIBindingTest.composite
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-implementation-bpel.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/sca-implementation-bpel.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-implementation-spring.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/sca-implementation-spring.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-atom.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-atom.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-dwr.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-dwr.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-http.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-http.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-jsonrpc.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-jsonrpc.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-notification.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-notification.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rmi.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rmi.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rss.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-binding-rss.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-node.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-node.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-notification.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-notification.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-osgi.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-osgi.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-resource.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-resource.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-script.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-script.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-xquery.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-implementation-xquery.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-include.xsd
      - copied unchanged from r576162, incubator/tuscany/branches/sca-java-1.0/modules/assembly-xsd/src/main/resources/tuscany-sca-include.xsd
Modified:
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-core.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-definitions.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-policy.xsd
    incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca.xsd
    incubator/tuscany/java/sca/modules/binding-http/src/test/resources/resource.composite
    incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/RMIBindingTest.composite
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
    incubator/tuscany/java/sca/modules/sca-definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsDocumentProcessor.java
    incubator/tuscany/java/sca/modules/sca-definitions/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java Sun Sep 16 12:55:51 2007
@@ -64,7 +64,7 @@
             
             // Create a stream reader
             urlStream = url.openStream();
-            XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream);
+            XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream);
             reader = new ValidatingXMLStreamReader(reader, schema);
             reader.nextTag();
             

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java Sun Sep 16 12:55:51 2007
@@ -64,7 +64,7 @@
             
             // Create a stream reader
             urlStream = url.openStream();
-            XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream);
+            XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream);
             reader = new ValidatingXMLStreamReader(reader, schema);
             reader.nextTag();
             

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java Sun Sep 16 12:55:51 2007
@@ -64,7 +64,7 @@
             
             // Create a stream reader
             urlStream = url.openStream();
-            XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream);
+            XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream);
             reader = new ValidatingXMLStreamReader(reader, schema);
             reader.nextTag();
             

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java Sun Sep 16 12:55:51 2007
@@ -22,12 +22,9 @@
 import java.net.URI;
 import java.net.URL;
 
-import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLOutputFactory;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
 
 import junit.framework.TestCase;
 
@@ -93,15 +90,13 @@
         staxProcessors.addArtifactProcessor(new PolicySetProcessor(policyFactory, staxProcessor));
         staxProcessors.addArtifactProcessor(new MockPolicyProcessor());
         
-        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd")); 
         XMLInputFactory inputFactory = XMLInputFactory.newInstance(); 
         
         // Create document processors
-        documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory, schema));
-        documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory, schema));
-        documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, schema));
-        scaDefnDocProcessor = new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, inputFactory, policyFactory, schema);
+        documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory, null));
+        documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory, null));
+        documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, null));
+        scaDefnDocProcessor = new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, inputFactory, policyFactory, null);
         documentProcessors.addArtifactProcessor(scaDefnDocProcessor);
         
         URL url = getClass().getResource("CalculatorComponent.constrainingType");

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java Sun Sep 16 12:55:51 2007
@@ -23,7 +23,6 @@
 import java.net.URL;
 
 import javax.xml.XMLConstants;
-import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLOutputFactory;
@@ -49,9 +48,7 @@
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.xml.sax.InputSource;
-import org.xml.sax.Parser;
 import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
 
 /**
  * Test reading SCA XML assembly documents.
@@ -61,7 +58,9 @@
 public class ReadDocumentTestCase extends TestCase {
 
     private ExtensibleURLArtifactProcessor documentProcessor;
-    private TestModelResolver resolver; 
+    private TestModelResolver resolver;
+    private XMLInputFactory inputFactory;
+    private ExtensibleStAXArtifactProcessor staxProcessor; 
 
     @Override
     public void setUp() throws Exception {
@@ -74,20 +73,16 @@
         
         // Create Stax processors
         DefaultStAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(new DefaultModelFactoryExtensionPoint());
-        ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
+        staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
         staxProcessors.addArtifactProcessor(new CompositeProcessor(new ContributionFactoryImpl(), factory, policyFactory, mapper, staxProcessor));
         staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(factory, policyFactory, staxProcessor));
         staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(factory, policyFactory, staxProcessor));
         
-        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd")); 
+        inputFactory = XMLInputFactory.newInstance();
+        documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory, null));
+        documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory, null));
+        documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, null));
         
-        // Create document processors
-        XMLInputFactory inputFactory = XMLInputFactory.newInstance(); 
-        documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory, schema));
-        documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory, schema));
-        documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, schema));
-
         resolver = new TestModelResolver();
     }
 
@@ -95,9 +90,18 @@
     public void tearDown() throws Exception {
     }
     
-    public void xtestValidate() throws Exception {
+    public void testValidateAssembly() throws Exception {
         
-        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+        SchemaFactory schemaFactory;
+        try {
+            schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+        } catch (Error e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        } catch (Exception e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        }
         Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd"));
         ValidatorHandler handler = schema.newValidatorHandler();
         
@@ -107,9 +111,98 @@
         reader.setFeature("http://xml.org/sax/features/namespaces", true);
         reader.setContentHandler(handler);
         reader.parse(new InputSource(url.openStream()));
-        
     }
 
+    public void testValidateImplementation() throws Exception {
+        
+        SchemaFactory schemaFactory;
+        try {
+            schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+        } catch (Error e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        } catch (Exception e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        }
+        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd"));
+        ValidatorHandler handler = schema.newValidatorHandler();
+        
+        SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+        URL url = getClass().getResource("JavaScriptReference.composite");
+        XMLReader reader = parserFactory.newSAXParser().getXMLReader();
+        reader.setFeature("http://xml.org/sax/features/namespaces", true);
+        reader.setContentHandler(handler);
+        reader.parse(new InputSource(url.openStream()));
+    }
+        
+    public void testReadImplementation() throws Exception {
+        
+        SchemaFactory schemaFactory;
+        try {
+            schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+        } catch (Error e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        } catch (Exception e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        }
+        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd"));
+        
+        CompositeDocumentProcessor compositeDocumentProcessor = new CompositeDocumentProcessor(staxProcessor, inputFactory, schema);
+        
+        URL url = getClass().getResource("JavaScriptReference.composite");
+        URI uri = URI.create("JavaScriptReference.composite");
+        Composite composite = (Composite)compositeDocumentProcessor.read(null, uri, url);
+        assertNotNull(composite);
+    }
+        
+    public void testValidateBinding() throws Exception {
+        
+        SchemaFactory schemaFactory;
+        try {
+            schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+        } catch (Error e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        } catch (Exception e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        }
+        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd"));
+        ValidatorHandler handler = schema.newValidatorHandler();
+        
+        SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+        URL url = getClass().getResource("RMIBindingTest.composite");
+        XMLReader reader = parserFactory.newSAXParser().getXMLReader();
+        reader.setFeature("http://xml.org/sax/features/namespaces", true);
+        reader.setContentHandler(handler);
+        reader.parse(new InputSource(url.openStream()));
+    }
+        
+    public void testReadBinding() throws Exception {
+        
+        SchemaFactory schemaFactory;
+        try {
+            schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+        } catch (Error e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        } catch (Exception e) {
+            // Some old JDKs don't support XMLSchema validation
+            return;
+        }
+        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd"));
+        
+        CompositeDocumentProcessor compositeDocumentProcessor = new CompositeDocumentProcessor(staxProcessor, inputFactory, schema);
+        
+        URL url = getClass().getResource("RMIBindingTest.composite");
+        URI uri = URI.create("RMIBindingTest.composite");
+        Composite composite = (Composite)compositeDocumentProcessor.read(null, uri, url);
+        assertNotNull(composite);
+    }
+        
     public void testResolveConstrainingType() throws Exception {
         
         URL url = getClass().getResource("CalculatorComponent.constrainingType");

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java Sun Sep 16 12:55:51 2007
@@ -22,11 +22,8 @@
 import java.net.URI;
 import java.net.URL;
 
-import javax.xml.XMLConstants;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLOutputFactory;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
 
 import junit.framework.TestCase;
 
@@ -88,15 +85,12 @@
         staxProcessors.addArtifactProcessor(new PolicySetProcessor(policyFactory, staxProcessor));
         staxProcessors.addArtifactProcessor(new MockPolicyProcessor());
         
-        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd")); 
-        
         // Create document processors
         XMLInputFactory inputFactory = XMLInputFactory.newInstance(); 
-        documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory, schema));
-        documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory, schema));
-        documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, schema));
-        scaDefnDocProcessor = new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, inputFactory, policyFactory, schema);
+        documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory, null));
+        documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory, null));
+        documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, null));
+        scaDefnDocProcessor = new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, inputFactory, policyFactory, null);
         documentProcessors.addArtifactProcessor(scaDefnDocProcessor);
     }
 

Modified: incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-core.xsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-core.xsd?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-core.xsd (original)
+++ incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-core.xsd Sun Sep 16 12:55:51 2007
@@ -8,14 +8,19 @@
     <element name="componentType" type="sca:ComponentType"/>
     <complexType name="ComponentType">
     	<sequence>
-    		<element ref="sca:implementation" minOccurs="0" maxOccurs="1"/>
+             <choice minOccurs="0" maxOccurs="1">
+	             <element ref="sca:implementation"/>
+	             <any namespace="##other" processContents="lax"/>
+             </choice>
         	<choice minOccurs="0" maxOccurs="unbounded">
             	<element name="service" type="sca:ComponentService" />
             	<element name="reference" type="sca:ComponentReference"/>
             	<element name="property" type="sca:Property"/>
         	</choice>
+        	<!-- 
         	<any namespace="##other" processContents="lax" minOccurs="0" 
         		maxOccurs="unbounded"/>
+        	-->
         </sequence>
         <attribute name="constrainingType" type="QName" use="optional"/>
         <anyAttribute namespace="##any" processContents="lax"/>
@@ -37,7 +42,7 @@
              	maxOccurs="unbounded"/>
         </sequence>
         <attribute name="name" type="NCName" use="required"/>
-        <attribute name="targetNamespace" type="anyURI" use="required"/>
+        <attribute name="targetNamespace" type="anyURI" use="optional"/>
         <attribute name="local" type="boolean" use="optional" default="false"/>
         <attribute name="autowire" type="boolean" use="optional" default="false"/>
         <attribute name="constrainingType" type="QName" use="optional"/>
@@ -53,8 +58,7 @@
     			maxOccurs="unbounded" />
     		<choice minOccurs="0" maxOccurs="unbounded">
     			<element ref="sca:binding" />
-    			<any namespace="##other" processContents="lax"
-    				minOccurs="0" maxOccurs="unbounded" />
+    			<any namespace="##other" processContents="lax"/>
     		</choice>
     		<element ref="sca:callback" minOccurs="0" maxOccurs="1" />
     		<!--
@@ -179,14 +183,19 @@
       
     <complexType name="Component">
         <sequence>
-             <element ref="sca:implementation" minOccurs="0" maxOccurs="1"/>
+             <choice minOccurs="0" maxOccurs="1">
+	             <element ref="sca:implementation"/>
+	             <any namespace="##other" processContents="lax"/>
+             </choice>
              <choice minOccurs="0" maxOccurs="unbounded">
              	<element name="service" type="sca:ComponentService"/>
                 <element name="reference" type="sca:ComponentReference"/>
                 <element name="property" type="sca:PropertyValue" />
              </choice>
+             <!-- 
              <any namespace="##other" processContents="lax" minOccurs="0" 
              	maxOccurs="unbounded"/>
+             -->
         </sequence>
         <attribute name="name" type="NCName" use="required"/>
         <attribute name="autowire" type="boolean" use="optional" default="false"/>
@@ -201,11 +210,10 @@
         	 <element ref="sca:interface" minOccurs="0" maxOccurs="1"/>
         	 <element name="operation" type="sca:Operation" minOccurs="0" 
   					maxOccurs="unbounded" />
-             <choice minOccurs="0" maxOccurs="unbounded">
-                <element ref="sca:binding"/>
-             	<any namespace="##other" processContents="lax" 
-             		minOccurs="0" maxOccurs="unbounded"/>
-             </choice>
+    		<choice minOccurs="0" maxOccurs="unbounded">
+    			<element ref="sca:binding" />
+    			<any namespace="##other" processContents="lax"/>
+    		</choice>
              <element ref="sca:callback" minOccurs="0" maxOccurs="1"/>
              <!--
              <any namespace="##other" processContents="lax" minOccurs="0" 

Modified: incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-definitions.xsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-definitions.xsd?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-definitions.xsd (original)
+++ incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-definitions.xsd Sun Sep 16 12:55:51 2007
@@ -18,6 +18,7 @@
              <element ref="sca:implementationType"/>
              <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
           </choice>
+          <attribute name="targetNamespace" type="anyURI" use="optional"/>
        </complexType>
     </element>
    

Modified: incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-policy.xsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-policy.xsd?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-policy.xsd (original)
+++ incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/sca-policy.xsd Sun Sep 16 12:55:51 2007
@@ -16,7 +16,7 @@
 				minOccurs="0" maxOccurs="unbounded"/>
 		</sequence>
         <attribute name="name" type="QName" use="required"/>
-		<attribute name="constrains" type="sca:listOfQNames" use="required"/>
+		<attribute name="constrains" type="sca:listOfQNames" use="optional"/>
 		<attribute name="requires" type="sca:listOfQNames" use="optional"/>
 		<anyAttribute namespace="##any" processContents="lax"/>    
 	</complexType>

Modified: incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca.xsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca.xsd?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca.xsd (original)
+++ incubator/tuscany/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca.xsd Sun Sep 16 12:55:51 2007
@@ -20,9 +20,8 @@
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0">
     
-    <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca.xsd"/>
+    <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="tuscany-sca-include.xsd"/>
 
-	<!-- 
     <include schemaLocation="tuscany-sca-binding-atom.xsd"/>
     <include schemaLocation="tuscany-sca-binding-dwr.xsd"/>
     <include schemaLocation="tuscany-sca-binding-http.xsd"/>
@@ -30,14 +29,16 @@
     <include schemaLocation="tuscany-sca-binding-notification.xsd"/>
     <include schemaLocation="tuscany-sca-binding-rmi.xsd"/>
     <include schemaLocation="tuscany-sca-binding-rss.xsd"/>
+    
+    <!--
     <include schemaLocation="tuscany-sca-implementation-das.xsd"/>
     <include schemaLocation="tuscany-sca-implementation-data.xsd"/>
+    -->
     <include schemaLocation="tuscany-sca-implementation-node.xsd"/>
     <include schemaLocation="tuscany-sca-implementation-notification.xsd"/>
     <include schemaLocation="tuscany-sca-implementation-osgi.xsd"/>
     <include schemaLocation="tuscany-sca-implementation-resource.xsd"/>
     <include schemaLocation="tuscany-sca-implementation-script.xsd"/>
     <include schemaLocation="tuscany-sca-implementation-xquery.xsd"/>
-    -->
     
 </schema>

Modified: incubator/tuscany/java/sca/modules/binding-http/src/test/resources/resource.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-http/src/test/resources/resource.composite?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-http/src/test/resources/resource.composite (original)
+++ incubator/tuscany/java/sca/modules/binding-http/src/test/resources/resource.composite Sun Sep 16 12:55:51 2007
@@ -32,10 +32,10 @@
     -->
 
     <component name="ResourceServiceComponent2">
+        <tuscany:implementation.resource location="content"/>
     	<service name="Resource">
     		<tuscany:binding.http uri="http://localhost:8085/webcontent"/>
     	</service>
-        <tuscany:implementation.resource location="content"/>
     </component>
 
 </composite>

Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/RMIBindingTest.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/RMIBindingTest.composite?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/RMIBindingTest.composite (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/RMIBindingTest.composite Sun Sep 16 12:55:51 2007
@@ -24,7 +24,6 @@
 	<service name="HelloWorldRmiService" promote="HelloWorldServiceComponent">
         <interface.java interface="helloworld.HelloWorldService"/>
         <tuscany:binding.rmi host="localhost" port="8099" serviceName="HelloWorldRemoteService"   />
-        <reference target="HelloWorldServiceComponent">HelloWorldServiceComponent</reference>
     </service>
       
     <component name="HelloWorldServiceComponent">

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java Sun Sep 16 12:55:51 2007
@@ -46,7 +46,7 @@
 public class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStreamReader {
     private static final Logger logger = Logger.getLogger(ValidatingXMLStreamReader.class.getName());
     
-    private int level = 0;
+    private int level;
     private ValidatorHandler handler;
     
     public ValidatingXMLStreamReader(XMLStreamReader reader, Schema schema) throws XMLStreamException {
@@ -67,16 +67,20 @@
         // running from an XML document with XSD validation errors, as long as we can
         // get the metadata we need from the document
         handler.setErrorHandler(new ErrorHandler() {
+            private String getMessage(SAXParseException e) {
+                return "XMLSchema validation problem in: " + e.getSystemId() + ", line: " + e.getLineNumber() + ", column: " + e.getColumnNumber() + "\n" + e.getMessage();
+            }
+            
             public void error(SAXParseException exception) throws SAXException {
-                //logger.warning(exception.getMessage());
+                logger.warning(getMessage(exception));
             }
             
             public void fatalError(SAXParseException exception) throws SAXException {
-                //logger.warning(exception.getMessage());
+                logger.warning(getMessage(exception));
             }
             
             public void warning(SAXParseException exception) throws SAXException {
-                //logger.warning(exception.getMessage());
+                logger.warning(getMessage(exception));
             }
         });
     }
@@ -102,6 +106,9 @@
                     handler.processingInstruction(super.getPITarget(), super.getPIData());
                     break;
                 case XMLStreamConstants.CHARACTERS:
+                case XMLStreamConstants.CDATA:
+                case XMLStreamConstants.SPACE:
+                case XMLStreamConstants.ENTITY_REFERENCE:
                     handler.characters(super.getTextCharacters(), super.getTextStart(), super.getTextLength());
                     break;
                 case XMLStreamConstants.END_ELEMENT:
@@ -140,6 +147,9 @@
                         handler.processingInstruction(super.getPITarget(), super.getPIData());
                         break;
                     case XMLStreamConstants.CHARACTERS:
+                    case XMLStreamConstants.CDATA:
+                    case XMLStreamConstants.SPACE:
+                    case XMLStreamConstants.ENTITY_REFERENCE:
                         handler.characters(super.getTextCharacters(), super.getTextStart(), super.getTextLength());
                         break;
                     case XMLStreamConstants.END_ELEMENT:
@@ -156,8 +166,43 @@
             super.next();
         }
     }
+    
+    @Override
+    public String getElementText() throws XMLStreamException {
+        if (handler == null) {
+            return super.getElementText();
+        }
+
+        if (getEventType() != XMLStreamConstants.START_ELEMENT) {
+            return super.getElementText();
+        }
+        StringBuffer text = new StringBuffer();
 
+        for (;;) {
+            int event = next();
+            switch (event) {
+                case XMLStreamConstants.END_ELEMENT:
+                    return text.toString();
+                    
+                case XMLStreamConstants.COMMENT:
+                case XMLStreamConstants.PROCESSING_INSTRUCTION:
+                    continue;
+                    
+                case CHARACTERS:
+                case CDATA:
+                case SPACE:
+                case ENTITY_REFERENCE:
+                    text.append(getText());
+                    break;
+                    
+                default:
+                    break;
+            }
+        }
+    }
+    
     private void handleStartElement() throws SAXException {
+
         // send startPrefixMapping events immediately before startElement event
         int nsCount = super.getNamespaceCount();
         for (int i = 0; i < nsCount; i++) {
@@ -182,6 +227,7 @@
     }
 
     private void handleEndElement() throws SAXException {
+
         // fire endElement
         QName qname = super.getName();
         handler.endElement(qname.getNamespaceURI(), qname.getLocalPart(), qname.toString());

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Sun Sep 16 12:55:51 2007
@@ -195,9 +195,11 @@
             SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
             schema = schemaFactory.newSchema(ReallySmallRuntimeBuilder.class.getClassLoader().getResource("tuscany-sca.xsd"));
         } catch (Error e) {
-            //FIXME Log this
+            //FIXME Log this, some old JDKs don't support XMLSchema validation
+            //e.printStackTrace();
         } catch (Exception e) {
-            //FIXME Log this
+            //FIXME Log this, some old JDKs don't support XMLSchema validation
+            //e.printStackTrace();
         }
         
         // Create and register document processors for SCA assembly XML
@@ -207,8 +209,10 @@
         documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, schema));
 
         // Create and register document processor for definitions.xml
+        //TODO No XMLSchema validation for definitions.xml for now
+        // as the XSD for it is not quite right yet
         SCADefinitionsDocumentProcessor definitionsDocumentProcessor =
-            new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, xmlFactory, policyFactory, schema);
+            new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, xmlFactory, policyFactory, null);
         documentProcessors.addArtifactProcessor(definitionsDocumentProcessor);
         ModelResolver domainModelResolver = definitionsDocumentProcessor.getDomainModelResolver();
 

Modified: incubator/tuscany/java/sca/modules/sca-definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsDocumentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/sca-definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsDocumentProcessor.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/sca-definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsDocumentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/sca-definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsDocumentProcessor.java Sun Sep 16 12:55:51 2007
@@ -92,7 +92,7 @@
         InputStream urlStream = null;
         try {
             urlStream = url.openStream();
-            XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream);
+            XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream);
             reader = new ValidatingXMLStreamReader(reader, schema);
             reader.nextTag();
             SCADefinitions scaDefns = (SCADefinitions)extensionProcessor.read(reader);

Modified: incubator/tuscany/java/sca/modules/sca-definitions/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/sca-definitions/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java?rev=576163&r1=576162&r2=576163&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/sca-definitions/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/sca-definitions/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java Sun Sep 16 12:55:51 2007
@@ -24,12 +24,9 @@
 import java.util.Hashtable;
 import java.util.Map;
 
-import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLOutputFactory;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
 
 import junit.framework.TestCase;
 
@@ -87,14 +84,11 @@
         ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
         staxProcessors.addArtifactProcessor(new MockPolicyProcessor());
         
-        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-        Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd")); 
-        
         scaDefnDocProcessor = new SCADefinitionsDocumentProcessor(staxProcessors, 
                                                                   staxProcessor, 
                                                                   inputFactory, 
                                                                   policyFactory,
-                                                                  schema);
+                                                                  null);
         
         URL url = getClass().getResource("test_definitions.xml");
         URI uri = URI.create("test_definitions.xml");



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org