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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to