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 +
