Modified: 
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -77,7 +77,7 @@
               modelFactories.getFactory(PolicyFactory.class), 
extensionProcessor, monitor);
     }
     
-    public ConstrainingType read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public ConstrainingType read(XMLStreamReader reader) throws 
ContributionReadException {
         ConstrainingType constrainingType = null;
         AbstractService abstractService = null;
         AbstractReference abstractReference = null;
@@ -85,100 +85,107 @@
         AbstractContract abstractContract = null;
         QName name = null;
         
-        // Read the constrainingType document
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-
-                case START_ELEMENT:
-                    name = reader.getName();
-                    
-                    // Read a <constrainingType>
-                    if (Constants.CONSTRAINING_TYPE_QNAME.equals(name)) {
-                        constrainingType = 
assemblyFactory.createConstrainingType();
-                        constrainingType.setName(new QName(getString(reader, 
TARGET_NAMESPACE), getString(reader, NAME)));
-                        policyProcessor.readPolicies(constrainingType, reader);
-
-                    } else if (Constants.SERVICE_QNAME.equals(name)) {
-                        
-                        // Read a <service>
-                        abstractService = 
assemblyFactory.createAbstractService();
-                        abstractContract = abstractService;
-                        abstractService.setName(getString(reader, 
Constants.NAME));
-                        constrainingType.getServices().add(abstractService);
-                        policyProcessor.readPolicies(abstractService, reader);
-
-                    } else if (Constants.REFERENCE_QNAME.equals(name)) {
-                        
-                        // Read a <reference>
-                        abstractReference = 
assemblyFactory.createAbstractReference();
-                        abstractContract = abstractReference;
-                        abstractReference.setName(getString(reader, 
Constants.NAME));
-                        readMultiplicity(abstractReference, reader);
-                        
constrainingType.getReferences().add(abstractReference);
-                        policyProcessor.readPolicies(abstractReference, 
reader);
-
-                    } else if (Constants.PROPERTY_QNAME.equals(name)) {
-                        
-                        // Read a <property>
-                        abstractProperty = 
assemblyFactory.createAbstractProperty();
-                        readAbstractProperty(abstractProperty, reader);
-                        
-                        // Read the property value
-                        Document value = 
readPropertyValue(abstractProperty.getXSDElement(), 
abstractProperty.getXSDType(), reader);
-                        abstractProperty.setValue(value);
-                        
-                        constrainingType.getProperties().add(abstractProperty);
-                        policyProcessor.readPolicies(abstractProperty, reader);
-                        
-                    } else if (OPERATION_QNAME.equals(name)) {
-
-                        // Read an <operation>
-                        Operation operation = new OperationImpl();
-                        operation.setName(getString(reader, NAME));
-                        operation.setUnresolved(true);
-                        policyProcessor.readPolicies(abstractContract, 
operation, reader);
+        try {
+            // Read the constrainingType document
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+    
+                    case START_ELEMENT:
+                        name = reader.getName();
                         
-                    } else {
-
-                        // Read an extension element
-                        Object extension = extensionProcessor.read(reader);
-                        if (extension instanceof InterfaceContract) {
+                        // Read a <constrainingType>
+                        if (Constants.CONSTRAINING_TYPE_QNAME.equals(name)) {
+                            constrainingType = 
assemblyFactory.createConstrainingType();
+                            constrainingType.setName(new 
QName(getString(reader, TARGET_NAMESPACE), getString(reader, NAME)));
+                            policyProcessor.readPolicies(constrainingType, 
reader);
+    
+                        } else if (Constants.SERVICE_QNAME.equals(name)) {
+                            
+                            // Read a <service>
+                            abstractService = 
assemblyFactory.createAbstractService();
+                            abstractContract = abstractService;
+                            abstractService.setName(getString(reader, 
Constants.NAME));
+                            
constrainingType.getServices().add(abstractService);
+                            policyProcessor.readPolicies(abstractService, 
reader);
+    
+                        } else if (Constants.REFERENCE_QNAME.equals(name)) {
+                            
+                            // Read a <reference>
+                            abstractReference = 
assemblyFactory.createAbstractReference();
+                            abstractContract = abstractReference;
+                            abstractReference.setName(getString(reader, 
Constants.NAME));
+                            readMultiplicity(abstractReference, reader);
+                            
constrainingType.getReferences().add(abstractReference);
+                            policyProcessor.readPolicies(abstractReference, 
reader);
+    
+                        } else if (Constants.PROPERTY_QNAME.equals(name)) {
+                            
+                            // Read a <property>
+                            abstractProperty = 
assemblyFactory.createAbstractProperty();
+                            readAbstractProperty(abstractProperty, reader);
+                            
+                            // Read the property value
+                            Document value = 
readPropertyValue(abstractProperty.getXSDElement(), 
abstractProperty.getXSDType(), reader);
+                            abstractProperty.setValue(value);
+                            
+                            
constrainingType.getProperties().add(abstractProperty);
+                            policyProcessor.readPolicies(abstractProperty, 
reader);
+                            
+                        } else if (OPERATION_QNAME.equals(name)) {
+    
+                            // Read an <operation>
+                            Operation operation = new OperationImpl();
+                            operation.setName(getString(reader, NAME));
+                            operation.setUnresolved(true);
+                            policyProcessor.readPolicies(abstractContract, 
operation, reader);
                             
-                            // <service><interface> and <reference><interface>
-                            
abstractContract.setInterfaceContract((InterfaceContract)extension);
                         } else {
-
-                            // Add the extension element to the current element
-                            if (abstractContract != null) {
-                                
abstractContract.getExtensions().add(extension);
+    
+                            // Read an extension element
+                            Object extension = extensionProcessor.read(reader);
+                            if (extension instanceof InterfaceContract) {
+                                
+                                // <service><interface> and 
<reference><interface>
+                                
abstractContract.setInterfaceContract((InterfaceContract)extension);
                             } else {
-                                
constrainingType.getExtensions().add(extension);
+    
+                                // Add the extension element to the current 
element
+                                if (abstractContract != null) {
+                                    
abstractContract.getExtensions().add(extension);
+                                } else {
+                                    
constrainingType.getExtensions().add(extension);
+                                }
+                                
                             }
-                            
                         }
-                    }
-                    break;
-
-                case END_ELEMENT:
-                    name = reader.getName();
-
-                    // Clear current state when reading reaching end element
-                    if (SERVICE_QNAME.equals(name)) {
-                        abstractService = null;
-                        abstractContract = null;
-                    } else if (REFERENCE_QNAME.equals(name)) {
-                        abstractReference = null;
-                        abstractContract = null;
-                    } else if (PROPERTY_QNAME.equals(name)) {
-                        abstractProperty = null;
-                    }
-                    break;
-            }
-            if (reader.hasNext()) {
-                reader.next();
+                        break;
+    
+                    case END_ELEMENT:
+                        name = reader.getName();
+    
+                        // Clear current state when reading reaching end 
element
+                        if (SERVICE_QNAME.equals(name)) {
+                            abstractService = null;
+                            abstractContract = null;
+                        } else if (REFERENCE_QNAME.equals(name)) {
+                            abstractReference = null;
+                            abstractContract = null;
+                        } else if (PROPERTY_QNAME.equals(name)) {
+                            abstractProperty = null;
+                        }
+                        break;
+                }
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
+        
         return constrainingType;
     }
     

Modified: 
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/resources/assembly-xml-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/resources/assembly-xml-validation-messages.properties?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/resources/assembly-xml-validation-messages.properties
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/resources/assembly-xml-validation-messages.properties
 Thu Oct 30 06:10:19 2008
@@ -26,4 +26,4 @@
 PolicyServiceValidationException = PolicyValidation exceptions when processing 
service/reference {0} in {1}. Error is {2}
 ContributionReadException = ContributionReadException occured due to : {0}
 ContributionWriteException = ContributionWriteException occured due to : {0}
-
+XMLStreamException = XMLStreamException occured due to : {0}

Added: 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca-contributions.xsd
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca-contributions.xsd?rev=709156&view=auto
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca-contributions.xsd
 (added)
+++ 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca-contributions.xsd
 Thu Oct 30 06:10:19 2008
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema";
+        targetNamespace="http://www.osoa.org/xmlns/sca/1.0";
+        xmlns:sca="http://www.osoa.org/xmlns/sca/1.0";
+        elementFormDefault="qualified">
+       
+    <include schemaLocation="sca-core.xsd"/>
+       
+    <element name="contribution" type="sca:ContributionType"/>        
+    <complexType name="ContributionType">
+         <sequence>
+             <element name="deployable" type="sca:DeployableType" 
minOccurs="1" maxOccurs="unbounded"/>
+             <element name="import" type="sca:ImportType" minOccurs="0" 
maxOccurs="unbounded"/>
+             <element name="export" type="sca:ExportType" minOccurs="0" 
maxOccurs="unbounded"/>
+             <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
+        </sequence>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>        
+
+    <complexType name="DeployableType">
+         <sequence>
+             <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="composite" type="QName" use="required"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>        
+
+    <complexType name="ImportType">
+         <sequence>
+             <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="namespace" type="string" use="required"/>
+        <attribute name="location" type="anyURI" use="required"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>        
+
+    <complexType name="ExportType">
+         <sequence>
+             <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
+        </sequence>
+        <attribute name="namespace" type="string" use="required"/>
+        <anyAttribute namespace="##other" processContents="lax"/>
+    </complexType>           
+</schema> 
\ No newline at end of file

Propchange: 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca-contributions.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca-contributions.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca-contributions.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca.xsd
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca.xsd?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca.xsd 
(original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/assembly-xsd/src/main/resources/sca.xsd 
Thu Oct 30 06:10:19 2008
@@ -16,6 +16,8 @@
     <include schemaLocation="sca-binding-jms.xsd"/>
     <include schemaLocation="sca-binding-sca.xsd"/>
     
+    <include schemaLocation="sca-contributions.xsd"/>
+    
     <include schemaLocation="sca-definitions.xsd"/>
     <include schemaLocation="sca-policy.xsd"/>
     

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -74,6 +74,20 @@
                monitor.problem(problem);
         }
      }
+     
+     /**
+      * Report a exception.
+      * 
+      * @param problems
+      * @param message
+      * @param model
+      */
+     private void error(String message, Object model, Exception ex) {
+         if (monitor != null) {
+             Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-java-validation-messages", Severity.ERROR, model, message, ex);
+             monitor.problem(problem);
+         }
+     }
 
     public QName getArtifactType() {
         return EXPORT_JAVA;
@@ -86,38 +100,44 @@
     /**
      * Process <export package=""/>
      */
-    public JavaExport read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public JavaExport read(XMLStreamReader reader) throws 
ContributionReadException {
         JavaExport javaExport = this.factory.createJavaExport();
         QName element = null;
         
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    element = reader.getName();
-                    
-                    // Read <export.java>
-                    if (EXPORT_JAVA.equals(element)) {
-                        String packageName = reader.getAttributeValue(null, 
PACKAGE);
-                        if (packageName == null) {
-                               error("AttributePackageMissing", reader);
-                            //throw new ContributionReadException("Attribute 
'package' is missing");
-                        } else                        
-                            javaExport.setPackage(packageName);
-                    }
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    if (EXPORT_JAVA.equals(reader.getName())) {
-                        return javaExport;
-                    }
-                    break;        
-            }
-            
-            //Read the next element
-            if (reader.hasNext()) {
-                reader.next();
+        try {
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+                    case START_ELEMENT:
+                        element = reader.getName();
+                        
+                        // Read <export.java>
+                        if (EXPORT_JAVA.equals(element)) {
+                            String packageName = 
reader.getAttributeValue(null, PACKAGE);
+                            if (packageName == null) {
+                               error("AttributePackageMissing", reader);
+                                //throw new 
ContributionReadException("Attribute 'package' is missing");
+                            } else                        
+                                javaExport.setPackage(packageName);
+                        }
+                        break;
+                    case XMLStreamConstants.END_ELEMENT:
+                        if (EXPORT_JAVA.equals(reader.getName())) {
+                            return javaExport;
+                        }
+                        break;        
+                }
+                
+                //Read the next element
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
         
         return javaExport;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -75,6 +75,20 @@
                monitor.problem(problem);
         }
      }
+     
+     /**
+      * Report a exception.
+      * 
+      * @param problems
+      * @param message
+      * @param model
+      */
+     private void error(String message, Object model, Exception ex) {
+         if (monitor != null) {
+             Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-java-validation-messages", Severity.ERROR, model, message, ex);
+             monitor.problem(problem);
+         }
+     }
     
     public QName getArtifactType() {
         return IMPORT_JAVA;
@@ -87,41 +101,47 @@
     /**
      * Process <import.java package="" location=""/>
      */
-    public JavaImport read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public JavaImport read(XMLStreamReader reader) throws 
ContributionReadException {
         JavaImport javaImport = this.factory.createJavaImport();
         QName element = null;
         
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    element = reader.getName();
-
-                    // Read <import.java>
-                    if (IMPORT_JAVA.equals(element)) {
-                        String packageName = reader.getAttributeValue(null, 
PACKAGE);
-                        if (packageName == null) {
-                               error("AttributePackageMissing", reader);
-                            //throw new ContributionReadException("Attribute 
'package' is missing");
-                        } else
-                               javaImport.setPackage(packageName);
-                        
-                        String location = reader.getAttributeValue(null, 
LOCATION);                        
-                        javaImport.setLocation(location);
-                    }
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    if (IMPORT_JAVA.equals(reader.getName())) {
-                        return javaImport;
-                    }
-                    break;        
-            }
-            
-            // Read the next element
-            if (reader.hasNext()) {
-                reader.next();
+        try {
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+                    case START_ELEMENT:
+                        element = reader.getName();
+    
+                        // Read <import.java>
+                        if (IMPORT_JAVA.equals(element)) {
+                            String packageName = 
reader.getAttributeValue(null, PACKAGE);
+                            if (packageName == null) {
+                               error("AttributePackageMissing", reader);
+                                //throw new 
ContributionReadException("Attribute 'package' is missing");
+                            } else
+                               javaImport.setPackage(packageName);
+                            
+                            String location = reader.getAttributeValue(null, 
LOCATION);                        
+                            javaImport.setLocation(location);
+                        }
+                        break;
+                    case XMLStreamConstants.END_ELEMENT:
+                        if (IMPORT_JAVA.equals(reader.getName())) {
+                            return javaImport;
+                        }
+                        break;        
+                }
+                
+                // Read the next element
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
         
         return javaImport;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/resources/contribution-java-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/resources/contribution-java-validation-messages.properties?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/resources/contribution-java-validation-messages.properties
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-java/src/main/resources/contribution-java-validation-messages.properties
 Thu Oct 30 06:10:19 2008
@@ -19,4 +19,5 @@
 #
 #
 AttributePackageMissing = Attribute 'package' is missing
+XMLStreamException = XMLStreamException occured due to : {0}
 

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -72,6 +72,20 @@
                monitor.problem(problem);
         }
      }
+     
+     /**
+      * Report a exception.
+      * 
+      * @param problems
+      * @param message
+      * @param model
+      */
+     private void error(String message, Object model, Exception ex) {
+         if (monitor != null) {
+             Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-namespace-validation-messages", Severity.ERROR, model, message, 
ex);
+             monitor.problem(problem);
+         }
+     }
 
     public QName getArtifactType() {
         return EXPORT;
@@ -84,39 +98,45 @@
     /**
      * Process <export namespace=""/>
      */
-    public NamespaceExport read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public NamespaceExport read(XMLStreamReader reader) throws 
ContributionReadException {
         NamespaceExport namespaceExport = this.factory.createNamespaceExport();
         QName element = null;
         
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    element = reader.getName();
-                    
-                    // Read <export>
-                    if (EXPORT.equals(element)) {
-                        String ns = reader.getAttributeValue(null, NAMESPACE);
-                        if (ns == null) {
-                               error("AttributeNameSpaceMissing", reader);
-                            //throw new ContributionReadException("Attribute 
'namespace' is missing");
-                        } else
-                            namespaceExport.setNamespace(ns);
-                    } 
-                    
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    if (EXPORT.equals(reader.getName())) {
-                        return namespaceExport;
-                    }
-                    break;        
-            }
-            
-            // Read the next element
-            if (reader.hasNext()) {
-                reader.next();
+        try {
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+                    case START_ELEMENT:
+                        element = reader.getName();
+                        
+                        // Read <export>
+                        if (EXPORT.equals(element)) {
+                            String ns = reader.getAttributeValue(null, 
NAMESPACE);
+                            if (ns == null) {
+                               error("AttributeNameSpaceMissing", reader);
+                                //throw new 
ContributionReadException("Attribute 'namespace' is missing");
+                            } else
+                                namespaceExport.setNamespace(ns);
+                        } 
+                        
+                        break;
+                    case XMLStreamConstants.END_ELEMENT:
+                        if (EXPORT.equals(reader.getName())) {
+                            return namespaceExport;
+                        }
+                        break;        
+                }
+                
+                // Read the next element
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
         
         return namespaceExport;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -75,6 +75,20 @@
         }
      }
     
+     /**
+      * Report a exception.
+      * 
+      * @param problems
+      * @param message
+      * @param model
+      */
+     private void error(String message, Object model, Exception ex) {
+         if (monitor != null) {
+             Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-namespace-validation-messages", Severity.ERROR, model, message, 
ex);
+             monitor.problem(problem);
+         }
+     }
+    
     public QName getArtifactType() {
         return IMPORT;
     }
@@ -86,43 +100,49 @@
     /**
      * Process <import namespace="" location=""/>
      */
-    public NamespaceImport read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public NamespaceImport read(XMLStreamReader reader) throws 
ContributionReadException {
         NamespaceImport namespaceImport = this.factory.createNamespaceImport();
         QName element;
         
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    element = reader.getName();
-
-                    // Read <import>
-                    if (IMPORT.equals(element)) {
-                        String ns = reader.getAttributeValue(null, NAMESPACE);
-                        if (ns == null) {
-                               error("AttributeNameSpaceMissing", reader);
-                            //throw new ContributionReadException("Attribute 
'namespace' is missing");
-                        } else 
-                            namespaceImport.setNamespace(ns);
-
-                        String location = reader.getAttributeValue(null, 
LOCATION);
-                        if (location != null) {
-                            namespaceImport.setLocation(location);
+        try {
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+                    case START_ELEMENT:
+                        element = reader.getName();
+    
+                        // Read <import>
+                        if (IMPORT.equals(element)) {
+                            String ns = reader.getAttributeValue(null, 
NAMESPACE);
+                            if (ns == null) {
+                               error("AttributeNameSpaceMissing", reader);
+                                //throw new 
ContributionReadException("Attribute 'namespace' is missing");
+                            } else 
+                                namespaceImport.setNamespace(ns);
+    
+                            String location = reader.getAttributeValue(null, 
LOCATION);
+                            if (location != null) {
+                                namespaceImport.setLocation(location);
+                            }
                         }
-                    }
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    if (IMPORT.equals(reader.getName())) {
-                        return namespaceImport;
-                    }
-                    break;        
-            }
-            
-            // Read the next element
-            if (reader.hasNext()) {
-                reader.next();
+                        break;
+                    case XMLStreamConstants.END_ELEMENT:
+                        if (IMPORT.equals(reader.getName())) {
+                            return namespaceImport;
+                        }
+                        break;        
+                }
+                
+                // Read the next element
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
         
         return namespaceImport;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/resources/contribution-namespace-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/resources/contribution-namespace-validation-messages.properties?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/resources/contribution-namespace-validation-messages.properties
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-namespace/src/main/resources/contribution-namespace-validation-messages.properties
 Thu Oct 30 06:10:19 2008
@@ -19,4 +19,5 @@
 #
 #
 AttributeNameSpaceMissing = Attribute 'namespace' is missing
+XMLStreamException = XMLStreamException occured due to : {0}
 

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -68,10 +68,24 @@
      */
      private void error(String message, Object model, Object... 
messageParameters) {
         if (monitor != null) {
-               Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-resource-validation-messages", Severity.ERROR, model, message, 
(Object[])messageParameters);
-               monitor.problem(problem);
+            Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-resource-validation-messages", Severity.ERROR, model, message, 
(Object[])messageParameters);
+            monitor.problem(problem);
         }
      }
+     
+     /**
+      * Report a exception.
+      * 
+      * @param problems
+      * @param message
+      * @param model
+      */
+     private void error(String message, Object model, Exception ex) {
+         if (monitor != null) {
+             Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-resource-validation-messages", Severity.ERROR, model, message, 
ex);
+             monitor.problem(problem);
+         }
+     }
 
     public QName getArtifactType() {
         return EXPORT_RESOURCE;
@@ -84,39 +98,45 @@
     /**
      * Process <export.resource uri=""/>
      */
-    public ResourceExport read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public ResourceExport read(XMLStreamReader reader) throws 
ContributionReadException {
        ResourceExport resourceExport = this.factory.createResourceExport();
         QName element = null;
         
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    element = reader.getName();
-                    
-                    // Read <export.resource>
-                    if (EXPORT_RESOURCE.equals(element)) {
-                        String uri = reader.getAttributeValue(null, URI);
-                        if (uri == null) {
-                               error("AttributeURIMissing", reader);
-                            //throw new ContributionReadException("Attribute 
'uri' is missing");
-                        } else
-                            resourceExport.setURI(uri);
-                    } 
-                    
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    if (EXPORT_RESOURCE.equals(reader.getName())) {
-                        return resourceExport;
-                    }
-                    break;        
-            }
-            
-            // Read the next element
-            if (reader.hasNext()) {
-                reader.next();
+        try {
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+                    case START_ELEMENT:
+                        element = reader.getName();
+                        
+                        // Read <export.resource>
+                        if (EXPORT_RESOURCE.equals(element)) {
+                            String uri = reader.getAttributeValue(null, URI);
+                            if (uri == null) {
+                               error("AttributeURIMissing", reader);
+                                //throw new 
ContributionReadException("Attribute 'uri' is missing");
+                            } else
+                                resourceExport.setURI(uri);
+                        } 
+                        
+                        break;
+                    case XMLStreamConstants.END_ELEMENT:
+                        if (EXPORT_RESOURCE.equals(reader.getName())) {
+                            return resourceExport;
+                        }
+                        break;        
+                }
+                
+                // Read the next element
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
         
         return resourceExport;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -74,6 +74,20 @@
                monitor.problem(problem);
         }
      }
+     
+     /**
+      * Report a exception.
+      * 
+      * @param problems
+      * @param message
+      * @param model
+      */
+     private void error(String message, Object model, Exception ex) {
+         if (monitor != null) {
+             Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-resource-validation-messages", Severity.ERROR, model, message, 
ex);
+             monitor.problem(problem);
+         }
+     }
     
     public QName getArtifactType() {
         return IMPORT_RESOURCE;
@@ -86,43 +100,49 @@
     /**
      * Process <import.resource uri="" location=""/>
      */
-    public ResourceImport read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public ResourceImport read(XMLStreamReader reader) throws 
ContributionReadException {
        ResourceImport resourceImport = this.factory.createResourceImport();
         QName element;
         
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    element = reader.getName();
-
-                    // Read <import>
-                    if (IMPORT_RESOURCE.equals(element)) {
-                        String uri = reader.getAttributeValue(null, URI);
-                        if (uri == null) {
-                               error("AttributeURIMissing", reader);
-                            //throw new ContributionReadException("Attribute 
'uri' is missing");
-                        } else
-                            resourceImport.setURI(uri);
-
-                        String location = reader.getAttributeValue(null, 
LOCATION);
-                        if (location != null) {
-                            resourceImport.setLocation(location);
+        try {
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+                    case START_ELEMENT:
+                        element = reader.getName();
+    
+                        // Read <import>
+                        if (IMPORT_RESOURCE.equals(element)) {
+                            String uri = reader.getAttributeValue(null, URI);
+                            if (uri == null) {
+                               error("AttributeURIMissing", reader);
+                                //throw new 
ContributionReadException("Attribute 'uri' is missing");
+                            } else
+                                resourceImport.setURI(uri);
+    
+                            String location = reader.getAttributeValue(null, 
LOCATION);
+                            if (location != null) {
+                                resourceImport.setLocation(location);
+                            }
                         }
-                    }
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    if (IMPORT_RESOURCE.equals(reader.getName())) {
-                        return resourceImport;
-                    }
-                    break;        
-            }
-            
-            // Read the next element
-            if (reader.hasNext()) {
-                reader.next();
+                        break;
+                    case XMLStreamConstants.END_ELEMENT:
+                        if (IMPORT_RESOURCE.equals(reader.getName())) {
+                            return resourceImport;
+                        }
+                        break;        
+                }
+                
+                // Read the next element
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
         
         return resourceImport;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/resources/contribution-resource-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/resources/contribution-resource-validation-messages.properties?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/resources/contribution-resource-validation-messages.properties
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-resource/src/main/resources/contribution-resource-validation-messages.properties
 Thu Oct 30 06:10:19 2008
@@ -19,4 +19,5 @@
 #
 #
 AttributeURIMissing = Attribute 'uri' is missing
+XMLStreamException = XMLStreamException occured due to : {0}
 

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -33,6 +33,7 @@
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import 
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -61,7 +62,7 @@
     public ContributionMetadataDocumentProcessor(ModelFactoryExtensionPoint 
modelFactories, 
                                                                                
         StAXArtifactProcessor staxProcessor,
                                                                                
         Monitor monitor) {
-        this.inputFactory = modelFactories.getFactory(XMLInputFactory.class);
+        this.inputFactory = 
modelFactories.getFactory(ValidatingXMLInputFactory.class);
         this.staxProcessor = staxProcessor;
         this.monitor = monitor;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
 Thu Oct 30 06:10:19 2008
@@ -88,6 +88,20 @@
         }
      }
      
+     /**
+      * Report a exception.
+      * 
+      * @param problems
+      * @param message
+      * @param model
+      */
+     private void error(String message, Object model, Exception ex) {
+         if (monitor != null) {
+             Problem problem = new ProblemImpl(this.getClass().getName(), 
"contribution-xml-validation-messages", Severity.ERROR, model, message, ex);
+             monitor.problem(problem);
+         }
+     }
+     
     public ContributionMetadataProcessor(ModelFactoryExtensionPoint 
modelFactories, 
                                                                         
StAXArtifactProcessor<Object> extensionProcessor,
                                                                         
Monitor monitor) {
@@ -106,63 +120,69 @@
         return ContributionMetadata.class;
     }
 
-    public ContributionMetadata read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
+    public ContributionMetadata read(XMLStreamReader reader) throws 
ContributionReadException {
         ContributionMetadata contribution = null;
         QName name = null;
         
-        while (reader.hasNext()) {
-            int event = reader.getEventType();
-            switch (event) {
-                case START_ELEMENT:
-                    name = reader.getName();
-                    
-                    if (CONTRIBUTION_QNAME.equals(name)) {
-
-                        // Read <contribution>
-                        contribution = 
this.contributionFactory.createContributionMetadata();
-                        contribution.setUnresolved(true);
+        try {
+            while (reader.hasNext()) {
+                int event = reader.getEventType();
+                switch (event) {
+                    case START_ELEMENT:
+                        name = reader.getName();
                         
-                    } else if (DEPLOYABLE_QNAME.equals(name)) {                
        
-                        
-                        // Read <deployable>
-                        QName compositeName = getQName(reader, "composite");
-                        if (compositeName == null) {
-                               error("AttributeCompositeMissing", reader);
-                            //throw new ContributionReadException("Attribute 
'composite' is missing");
+                        if (CONTRIBUTION_QNAME.equals(name)) {
+    
+                            // Read <contribution>
+                            contribution = 
this.contributionFactory.createContributionMetadata();
+                            contribution.setUnresolved(true);
+                            
+                        } else if (DEPLOYABLE_QNAME.equals(name)) {            
            
+                            
+                            // Read <deployable>
+                            QName compositeName = getQName(reader, 
"composite");
+                            if (compositeName == null) {
+                               error("AttributeCompositeMissing", reader);
+                                //throw new 
ContributionReadException("Attribute 'composite' is missing");
+                            } else {
+                                if (contribution != null) {
+                                    Composite composite = 
assemblyFactory.createComposite();
+                                    composite.setName(compositeName);
+                                    composite.setUnresolved(true);
+                                    
contribution.getDeployables().add(composite);                         
+                                }
+                            }
                         } else {
-                            if (contribution != null) {
-                                Composite composite = 
assemblyFactory.createComposite();
-                                composite.setName(compositeName);
-                                composite.setUnresolved(true);
-                                contribution.getDeployables().add(composite);  
                       
+    
+                            // Read an extension element
+                            Object extension = extensionProcessor.read(reader);
+                            if (extension != null && contribution != null) {
+                                if (extension instanceof Import) {
+                                    
contribution.getImports().add((Import)extension);
+                                } else if (extension instanceof Export) {
+                                    
contribution.getExports().add((Export)extension);
+                                }
                             }
                         }
-                    } else {
-
-                        // Read an extension element
-                        Object extension = extensionProcessor.read(reader);
-                        if (extension != null && contribution != null) {
-                            if (extension instanceof Import) {
-                                
contribution.getImports().add((Import)extension);
-                            } else if (extension instanceof Export) {
-                                
contribution.getExports().add((Export)extension);
-                            }
+                        break;
+                        
+                    case XMLStreamConstants.END_ELEMENT:
+                        if (CONTRIBUTION_QNAME.equals(reader.getName())) {
+                            return contribution;
                         }
-                    }
-                    break;
-                    
-                case XMLStreamConstants.END_ELEMENT:
-                    if (CONTRIBUTION_QNAME.equals(reader.getName())) {
-                        return contribution;
-                    }
-                    break;        
-            }
-            
-            //Read the next element
-            if (reader.hasNext()) {
-                reader.next();
+                        break;        
+                }
+                
+                //Read the next element
+                if (reader.hasNext()) {
+                    reader.next();
+                }
             }
         }
+        catch (XMLStreamException e) {
+            ContributionReadException ex = new ContributionReadException(e);
+            error("XMLStreamException", reader, ex);
+        }
         
         return contribution;
     }

Modified: 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/contribution-xml-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/contribution-xml-validation-messages.properties?rev=709156&r1=709155&r2=709156&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/contribution-xml-validation-messages.properties
 (original)
+++ 
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/contribution-xml-validation-messages.properties
 Thu Oct 30 06:10:19 2008
@@ -18,6 +18,7 @@
 #    under the License.
 #
 #
-XMLStreamException = XMLStreamException occured due to:
-IOException = IOException occured due to:
-AttributeCompositeMissing = Attribute 'composite' is missing
\ No newline at end of file
+XMLStreamException = XMLStreamException occured due to : {0}
+IOException = IOException occured due to : {0}
+AttributeCompositeMissing = Attribute 'composite' is missing
+


Reply via email to