Author: jsdelfino
Date: Mon Oct  1 21:05:32 2007
New Revision: 581132

URL: http://svn.apache.org/viewvc?rev=581132&view=rev
Log:
Added an extension point to allow extensions to plug-in extension schemas.

Added:
    
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
   (with props)
    
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
   (with props)
    
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java
   (with props)
    
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
   (with props)
    
incubator/tuscany/java/sca/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint
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/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java
    
incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java
    
incubator/tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
    
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -27,12 +27,10 @@
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
-import javax.xml.validation.Schema;
 
 import org.apache.tuscany.sca.assembly.ComponentType;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.ValidatingXMLStreamReader;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import 
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -44,7 +42,6 @@
  */
 public class ComponentTypeDocumentProcessor extends BaseAssemblyProcessor 
implements URLArtifactProcessor<ComponentType> {
     private XMLInputFactory inputFactory;
-    private Schema schema;
     
     /**
      * Constructs a new componentType processor.
@@ -52,10 +49,9 @@
      * @param policyFactory
      * @param registry
      */
-    public ComponentTypeDocumentProcessor(StAXArtifactProcessor staxProcessor, 
XMLInputFactory inputFactory, Schema schema) {
+    public ComponentTypeDocumentProcessor(StAXArtifactProcessor staxProcessor, 
XMLInputFactory inputFactory) {
         super(null, null, staxProcessor);
         this.inputFactory = inputFactory;
-        this.schema = schema;
     }
     
     public ComponentType read(URL contributionURL, URI uri, URL url) throws 
ContributionReadException {
@@ -65,7 +61,6 @@
             // Create a stream reader
             urlStream = url.openStream();
             XMLStreamReader reader = 
inputFactory.createXMLStreamReader(url.toString(), urlStream);
-            reader = new ValidatingXMLStreamReader(reader, schema);
             reader.nextTag();
             
             // Reader the componentType model 

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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -27,12 +27,10 @@
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
-import javax.xml.validation.Schema;
 
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.ValidatingXMLStreamReader;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import 
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -44,7 +42,6 @@
  */
 public class CompositeDocumentProcessor extends BaseAssemblyProcessor 
implements URLArtifactProcessor<Composite> {
     private XMLInputFactory inputFactory;
-    private Schema schema;
 
     /**
      * Construct a new composite processor
@@ -52,10 +49,9 @@
      * @param policyFactory
      * @param staxProcessor
      */
-    public CompositeDocumentProcessor(StAXArtifactProcessor staxProcessor, 
XMLInputFactory inputFactory, Schema schema) {
+    public CompositeDocumentProcessor(StAXArtifactProcessor staxProcessor, 
XMLInputFactory inputFactory) {
         super(null, null, staxProcessor);
         this.inputFactory = inputFactory;
-        this.schema = schema;
     }
 
     public Composite read(URL contributionURL, URI uri, URL url) throws 
ContributionReadException {
@@ -65,7 +61,6 @@
             // Create a stream reader
             urlStream = url.openStream();
             XMLStreamReader reader = 
inputFactory.createXMLStreamReader(url.toString(), urlStream);
-            reader = new ValidatingXMLStreamReader(reader, schema);
             reader.nextTag();
             
             // Read the composite model

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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -32,7 +32,6 @@
 import org.apache.tuscany.sca.assembly.ConstrainingType;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.ValidatingXMLStreamReader;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import 
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -52,10 +51,9 @@
      * @param policyFactory
      * @param staxProcessor
      */
-    public ConstrainingTypeDocumentProcessor(StAXArtifactProcessor 
staxProcessor, XMLInputFactory inputFactory, Schema schema) {
+    public ConstrainingTypeDocumentProcessor(StAXArtifactProcessor 
staxProcessor, XMLInputFactory inputFactory) {
         super(null, null, staxProcessor);
         this.inputFactory = inputFactory;
-        this.schema = schema;
     }
 
     public ConstrainingType read(URL contributionURL, URI uri, URL url) throws 
ContributionReadException {
@@ -65,7 +63,6 @@
             // Create a stream reader
             urlStream = url.openStream();
             XMLStreamReader reader = 
inputFactory.createXMLStreamReader(url.toString(), urlStream);
-            reader = new ValidatingXMLStreamReader(reader, schema);
             reader.nextTag();
             
             // Read the constrainingType model 

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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -93,10 +93,10 @@
         XMLInputFactory inputFactory = XMLInputFactory.newInstance(); 
         
         // Create document processors
-        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(new 
CompositeDocumentProcessor(staxProcessor, inputFactory));
+        documentProcessors.addArtifactProcessor(new 
ComponentTypeDocumentProcessor(staxProcessor, inputFactory));
+        documentProcessors.addArtifactProcessor(new 
ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory));
+        scaDefnDocProcessor = new 
SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, inputFactory, 
policyFactory);
         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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -40,9 +40,12 @@
 import org.apache.tuscany.sca.contribution.impl.ContributionFactoryImpl;
 import 
org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.processor.DefaultURLArtifactProcessorExtensionPoint;
+import 
org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory;
+import 
org.apache.tuscany.sca.contribution.processor.DefaultValidationSchemaExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
 import 
org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor;
 import 
org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
+import 
org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
@@ -79,9 +82,9 @@
         staxProcessors.addArtifactProcessor(new 
ConstrainingTypeProcessor(factory, policyFactory, staxProcessor));
         
         inputFactory = XMLInputFactory.newInstance();
-        documentProcessors.addArtifactProcessor(new 
CompositeDocumentProcessor(staxProcessor, inputFactory, null));
-        documentProcessors.addArtifactProcessor(new 
ComponentTypeDocumentProcessor(staxProcessor, inputFactory, null));
-        documentProcessors.addArtifactProcessor(new 
ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory, null));
+        documentProcessors.addArtifactProcessor(new 
CompositeDocumentProcessor(staxProcessor, inputFactory));
+        documentProcessors.addArtifactProcessor(new 
ComponentTypeDocumentProcessor(staxProcessor, inputFactory));
+        documentProcessors.addArtifactProcessor(new 
ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory));
         
         resolver = new TestModelResolver();
     }
@@ -138,19 +141,10 @@
         
     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);
+        ValidationSchemaExtensionPoint schemas = new 
DefaultValidationSchemaExtensionPoint();
+        
schemas.addSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd").toString());
+        XMLInputFactory validatingInputFactory = new 
DefaultValidatingXMLInputFactory(inputFactory, schemas);
+        CompositeDocumentProcessor compositeDocumentProcessor = new 
CompositeDocumentProcessor(staxProcessor, validatingInputFactory);
         
         URL url = getClass().getResource("JavaScriptReference.composite");
         URI uri = URI.create("JavaScriptReference.composite");
@@ -183,19 +177,10 @@
         
     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);
+        ValidationSchemaExtensionPoint schemas = new 
DefaultValidationSchemaExtensionPoint();
+        
schemas.addSchema(getClass().getClassLoader().getResource("tuscany-sca.xsd").toString());
+        XMLInputFactory validatingInputFactory = new 
DefaultValidatingXMLInputFactory(inputFactory, schemas);
+        CompositeDocumentProcessor compositeDocumentProcessor = new 
CompositeDocumentProcessor(staxProcessor, validatingInputFactory);
         
         URL url = getClass().getResource("RMIBindingTest.composite");
         URI uri = URI.create("RMIBindingTest.composite");

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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -87,10 +87,10 @@
         
         // Create document processors
         XMLInputFactory inputFactory = XMLInputFactory.newInstance(); 
-        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(new 
CompositeDocumentProcessor(staxProcessor, inputFactory));
+        documentProcessors.addArtifactProcessor(new 
ComponentTypeDocumentProcessor(staxProcessor, inputFactory));
+        documentProcessors.addArtifactProcessor(new 
ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory));
+        scaDefnDocProcessor = new 
SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, inputFactory, 
policyFactory);
         documentProcessors.addArtifactProcessor(scaDefnDocProcessor);
     }
 

Added: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java?rev=581132&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
 Mon Oct  1 21:05:32 2007
@@ -0,0 +1,197 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.contribution.processor;
+
+import java.io.InputStream;
+import java.io.Reader;
+import java.net.URL;
+import java.util.List;
+
+import javax.xml.XMLConstants;
+import javax.xml.stream.EventFilter;
+import javax.xml.stream.StreamFilter;
+import javax.xml.stream.XMLEventReader;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLReporter;
+import javax.xml.stream.XMLResolver;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.util.XMLEventAllocator;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+
+/**
+ * Default implementation of an XMLInputFactory that creates validating
+ * XMLStreamReaders.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultValidatingXMLInputFactory extends 
ValidatingXMLInputFactory {
+    
+    private XMLInputFactory inputFactory;
+    private ValidationSchemaExtensionPoint schemas;
+    private boolean initialized;
+    private Schema aggregatedSchema;
+
+    /**
+     * Constructs a new XMLInputFactory.
+     * 
+     * @param inputFactory
+     * @param schemas
+     */
+    public DefaultValidatingXMLInputFactory(XMLInputFactory inputFactory, 
ValidationSchemaExtensionPoint schemas) {
+        this.inputFactory = inputFactory;
+        this.schemas = schemas;
+    }
+    
+    private void initialize() {
+        if (initialized) {
+            return;
+        }
+        initialized = true;
+        
+        // Load the XSDs registered in the validation schema extension point
+        try {
+            List<String> uris = schemas.getSchemas();
+            int n = uris.size();
+            Source[] sources = new Source[n];
+            for (int i =0; i < n; i++) {
+                String uri = uris.get(i);
+                sources[i] = new StreamSource(new URL(uri).openStream(), uri);
+            }
+            
+            // Create an aggregated validation schemas from all the XSDs
+            SchemaFactory schemaFactory = 
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+            aggregatedSchema= schemaFactory.newSchema(sources);
+            
+        } catch (Error e) {
+            //FIXME Log this, some old JDKs don't support XMLSchema validation
+            //e.printStackTrace();
+        } catch (Exception e) {
+            //FIXME Log this, some old JDKs don't support XMLSchema validation
+            //e.printStackTrace();
+        }
+    }
+
+    public XMLEventReader createFilteredReader(XMLEventReader arg0, 
EventFilter arg1) throws XMLStreamException {
+        return inputFactory.createFilteredReader(arg0, arg1);
+    }
+
+    public XMLStreamReader createFilteredReader(XMLStreamReader arg0, 
StreamFilter arg1) throws XMLStreamException {
+        return inputFactory.createFilteredReader(arg0, arg1);
+    }
+
+    public XMLEventReader createXMLEventReader(InputStream arg0, String arg1) 
throws XMLStreamException {
+        return inputFactory.createXMLEventReader(arg0, arg1);
+    }
+
+    public XMLEventReader createXMLEventReader(InputStream arg0) throws 
XMLStreamException {
+        return inputFactory.createXMLEventReader(arg0);
+    }
+
+    public XMLEventReader createXMLEventReader(Reader arg0) throws 
XMLStreamException {
+        return inputFactory.createXMLEventReader(arg0);
+    }
+
+    public XMLEventReader createXMLEventReader(Source arg0) throws 
XMLStreamException {
+        return inputFactory.createXMLEventReader(arg0);
+    }
+
+    public XMLEventReader createXMLEventReader(String arg0, InputStream arg1) 
throws XMLStreamException {
+        return inputFactory.createXMLEventReader(arg0, arg1);
+    }
+
+    public XMLEventReader createXMLEventReader(String arg0, Reader arg1) 
throws XMLStreamException {
+        return inputFactory.createXMLEventReader(arg0, arg1);
+    }
+
+    public XMLEventReader createXMLEventReader(XMLStreamReader arg0) throws 
XMLStreamException {
+        return inputFactory.createXMLEventReader(arg0);
+    }
+
+    public XMLStreamReader createXMLStreamReader(InputStream arg0, String 
arg1) throws XMLStreamException {
+        initialize();
+        return new 
ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0, arg1), 
aggregatedSchema);
+    }
+
+    public XMLStreamReader createXMLStreamReader(InputStream arg0) throws 
XMLStreamException {
+        initialize();
+        return new 
ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0), 
aggregatedSchema);
+    }
+
+    public XMLStreamReader createXMLStreamReader(Reader arg0) throws 
XMLStreamException {
+        initialize();
+        return new 
ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0), 
aggregatedSchema);
+    }
+
+    public XMLStreamReader createXMLStreamReader(Source arg0) throws 
XMLStreamException {
+        initialize();
+        return new 
ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0), 
aggregatedSchema);
+    }
+
+    public XMLStreamReader createXMLStreamReader(String arg0, InputStream 
arg1) throws XMLStreamException {
+        initialize();
+        return new 
ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0, arg1), 
aggregatedSchema);
+    }
+
+    public XMLStreamReader createXMLStreamReader(String arg0, Reader arg1) 
throws XMLStreamException {
+        initialize();
+        return new 
ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0, arg1), 
aggregatedSchema);
+    }
+
+    public XMLEventAllocator getEventAllocator() {
+        return inputFactory.getEventAllocator();
+    }
+
+    public Object getProperty(String arg0) throws IllegalArgumentException {
+        return inputFactory.getProperty(arg0);
+    }
+
+    public XMLReporter getXMLReporter() {
+        return inputFactory.getXMLReporter();
+    }
+
+    public XMLResolver getXMLResolver() {
+        return inputFactory.getXMLResolver();
+    }
+
+    public boolean isPropertySupported(String arg0) {
+        return inputFactory.isPropertySupported(arg0);
+    }
+
+    public void setEventAllocator(XMLEventAllocator arg0) {
+        inputFactory.setEventAllocator(arg0);
+    }
+
+    public void setProperty(String arg0, Object arg1) throws 
IllegalArgumentException {
+        inputFactory.setProperty(arg0, arg1);
+    }
+
+    public void setXMLReporter(XMLReporter arg0) {
+        inputFactory.setXMLReporter(arg0);
+    }
+
+    public void setXMLResolver(XMLResolver arg0) {
+        inputFactory.setXMLResolver(arg0);
+    }
+
+}

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java?rev=581132&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
 Mon Oct  1 21:05:32 2007
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.contribution.processor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * DefaultValidationSchemaExtensionPoint
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultValidationSchemaExtensionPoint implements 
ValidationSchemaExtensionPoint {
+    
+    private List<String> schemas = new ArrayList<String>();
+    
+    public void addSchema(String uri) {
+        schemas.add(uri);
+    }
+    
+    public void removeSchema(String uri) {
+        schemas.remove(uri);
+    }
+    
+    public List<String> getSchemas() {
+        return schemas;
+    }
+
+}

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java?rev=581132&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java
 Mon Oct  1 21:05:32 2007
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.contribution.processor;
+
+import javax.xml.stream.XMLInputFactory;
+
+/**
+ * Marker base class for validating XMLInputFactories.
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class ValidatingXMLInputFactory extends XMLInputFactory {
+
+}

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -43,7 +43,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class ValidatingXMLStreamReader extends StreamReaderDelegate implements 
XMLStreamReader {
+class ValidatingXMLStreamReader extends StreamReaderDelegate implements 
XMLStreamReader {
     private static final Logger logger = 
Logger.getLogger(ValidatingXMLStreamReader.class.getName());
     
     private int level;

Added: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java?rev=581132&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
 Mon Oct  1 21:05:32 2007
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.contribution.processor;
+
+import java.util.List;
+
+
+/**
+ * An extension point for XML schemas used for validation.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ValidationSchemaExtensionPoint {
+    
+    /**
+     * Add a schema.
+     * 
+     * @param uri the URI of the schema
+     */
+    void addSchema(String uri);
+    
+    /**
+     * Remove a schema.
+     * 
+     * @param uri the URI of the schema
+     */
+    void removeSchema(String uri);
+    
+    /**
+     * Returns the list of schemas registered in the extension point.
+     * @return the list of schemas
+     */
+    List<String> getSchemas();
+    
+}

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint?rev=581132&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint
 (added)
+++ 
incubator/tuscany/java/sca/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint
 Mon Oct  1 21:05:32 2007
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License. 
+
+org.apache.tuscany.sca.contribution.processor.DefaultValidationSchemaExtensionPoint

Modified: 
incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java?rev=581132&r1=581131&r2=581132&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java
 Mon Oct  1 21:05:32 2007
@@ -27,12 +27,10 @@
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
-import javax.xml.validation.Schema;
 
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import 
org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.ValidatingXMLStreamReader;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import 
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -60,7 +58,6 @@
     private SCADefinitionsBuilder definitionsBuilder;
     private ModelResolver domainModelResolver;
     private XMLInputFactory inputFactory;
-    private Schema schema;
 
     /**
      * Construct a new SCADefinitions processor
@@ -71,11 +68,9 @@
     public SCADefinitionsDocumentProcessor(StAXArtifactProcessorExtensionPoint 
staxProcessors,
                                            StAXArtifactProcessor<Object> 
staxProcessor,
                                            XMLInputFactory inputFactory,
-                                           PolicyFactory policyFactory,
-                                           Schema schema) {
+                                           PolicyFactory policyFactory) {
         this.extensionProcessor = (StAXArtifactProcessor<Object>)staxProcessor;
         this.inputFactory = inputFactory;
-        this.schema = schema;
         definitionsBuilder = new SCADefinitionsBuilderImpl();
         this.domainModelResolver = new SCADefinitionsResolver();
         
@@ -98,7 +93,6 @@
         try {
             urlStream = url.openStream();
             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/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java?rev=581132&r1=581131&r2=581132&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
 Mon Oct  1 21:05:32 2007
@@ -88,8 +88,7 @@
         scaDefnDocProcessor = new 
SCADefinitionsDocumentProcessor(staxProcessors, 
                                                                   
staxProcessor, 
                                                                   
inputFactory, 
-                                                                  
policyFactory,
-                                                                  null);
+                                                                  
policyFactory);
         
         URL url = getClass().getResource("test_definitions.xml");
         URI uri = URI.create("test_definitions.xml");

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=581132&r1=581131&r2=581132&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
 Mon Oct  1 21:05:32 2007
@@ -22,11 +22,8 @@
 import java.io.IOException;
 import java.util.List;
 
-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 org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
@@ -43,6 +40,7 @@
 import org.apache.tuscany.sca.context.RequestContextFactory;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import 
org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory;
 import 
org.apache.tuscany.sca.contribution.processor.ExtensiblePackageProcessor;
 import 
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
 import 
org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor;
@@ -50,6 +48,7 @@
 import 
org.apache.tuscany.sca.contribution.processor.PackageProcessorExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
+import 
org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import 
org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.service.ContributionListenerExtensionPoint;
@@ -166,15 +165,23 @@
                                                                 
InterfaceContractMapper mapper)
         throws ActivationException {
 
-        XMLInputFactory xmlFactory = 
registry.getExtensionPoint(XMLInputFactory.class);
+        // Create a new XML input factory
+        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
 
+        // Create a validation XML schema extension point
+        ValidationSchemaExtensionPoint schemas = 
registry.getExtensionPoint(ValidationSchemaExtensionPoint.class);
+        
schemas.addSchema(ReallySmallRuntimeBuilder.class.getClassLoader().getResource("tuscany-sca.xsd").toString());
+        
+        // Create a validating XML input factory
+        XMLInputFactory validatingInputFactory = new 
DefaultValidatingXMLInputFactory(inputFactory, schemas);
+        
         // Create STAX artifact processor extension point
         StAXArtifactProcessorExtensionPoint staxProcessors =
             
registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
 
         // Create and register STAX processors for SCA assembly XML
         ExtensibleStAXArtifactProcessor staxProcessor =
-            new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory, 
XMLOutputFactory.newInstance());
+            new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, 
XMLOutputFactory.newInstance());
         staxProcessors.addArtifactProcessor(new 
CompositeProcessor(contributionFactory, assemblyFactory, policyFactory,
                                                                    mapper, 
staxProcessor));
         staxProcessors.addArtifactProcessor(new 
ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
@@ -189,30 +196,16 @@
         URLArtifactProcessorExtensionPoint documentProcessors =
             
registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
 
-        // Load the Assembly XSD, used for validation
-        Schema schema = null;
-        try {
-            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, some old JDKs don't support XMLSchema validation
-            //e.printStackTrace();
-        } catch (Exception e) {
-            //FIXME Log this, some old JDKs don't support XMLSchema validation
-            //e.printStackTrace();
-        }
-        
         // Create and register document processors for SCA assembly XML
-        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));
+        documentProcessors.addArtifactProcessor(new 
CompositeDocumentProcessor(staxProcessor, validatingInputFactory));
+        documentProcessors.addArtifactProcessor(new 
ComponentTypeDocumentProcessor(staxProcessor, validatingInputFactory));
+        documentProcessors.addArtifactProcessor(new 
ConstrainingTypeDocumentProcessor(staxProcessor, validatingInputFactory));
 
         // 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, null);
+            new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, 
inputFactory, policyFactory);
         documentProcessors.addArtifactProcessor(definitionsDocumentProcessor);
         ModelResolver domainModelResolver = 
definitionsDocumentProcessor.getDomainModelResolver();
 
@@ -234,7 +227,7 @@
         // Create a contribution repository
         ContributionRepository repository;
         try {
-            repository = new ContributionRepositoryImpl("target", xmlFactory);
+            repository = new ContributionRepositoryImpl("target", 
inputFactory);
         } catch (IOException e) {
             throw new ActivationException(e);
         }
@@ -245,7 +238,7 @@
         ContributionService contributionService =
             new ContributionServiceImpl(repository, packageProcessor, 
documentProcessor, staxProcessor,
                                         contributionListener, 
domainModelResolver, modelResolvers, modelFactories,
-                                        assemblyFactory, contributionFactory, 
xmlFactory);
+                                        assemblyFactory, contributionFactory, 
inputFactory);
         return contributionService;
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to