diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-21 18:00:07 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-21 18:00:07 +0000 |
commit | 11d80a409e2d7e65be7e46ca872d995d35964f83 (patch) | |
tree | ede8e38bd57fb796fd81362a4ac6744fccaf6d16 /java/sca/modules/contribution/src/main | |
parent | 685e0996023a229894a43185d3da8a8f0e148669 (diff) |
Set the monitor to ValidatingXMLStreamReader
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@828119 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/contribution/src/main')
4 files changed, 48 insertions, 48 deletions
diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java index a6e7e8b6e3..c38061c1bf 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java @@ -61,8 +61,6 @@ import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; -import org.apache.tuscany.sca.monitor.Problem; -import org.apache.tuscany.sca.monitor.Problem.Severity; import org.w3c.dom.DOMImplementation; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSInput; @@ -82,7 +80,7 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory private DocumentBuilderFactory documentBuilderFactory; private DOMImplementationLS ls; private ValidationSchemaExtensionPoint schemas; - private Monitor monitor; + private MonitorFactory monitorFactory; private boolean initialized; private boolean hasSchemas; private Schema aggregatedSchema; @@ -93,6 +91,8 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory this.inputFactory = factoryExtensionPoint.getFactory(XMLInputFactory.class); this.documentBuilderFactory = factoryExtensionPoint.getFactory(DocumentBuilderFactory.class); this.schemas = registry.getExtensionPoint(ValidationSchemaExtensionPoint.class); + this.monitorFactory = + registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(MonitorFactory.class); this.helper = StAXHelper.getInstance(registry); } @@ -102,16 +102,11 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory * @param inputFactory * @param schemas */ - public DefaultValidatingXMLInputFactory(XMLInputFactory inputFactory, ValidationSchemaExtensionPoint schemas, Monitor monitor) { + public DefaultValidatingXMLInputFactory(XMLInputFactory inputFactory, ValidationSchemaExtensionPoint schemas) { this.inputFactory = inputFactory; this.schemas = schemas; - this.monitor = monitor; } - @Override - public void setMonitor(Monitor monitor) { - this.monitor = monitor; - } /** * Report a exception. @@ -120,30 +115,12 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory * @param message * @param model */ - private void error(String message, Object model, Throwable ex) { - if (monitor != null) { - Problem problem = - monitor.createProblem(this.getClass().getName(), - "contribution-validation-messages", - Severity.ERROR, - model, - message, - ex); - monitor.problem(problem); - } + private void error(Monitor monitor, String message, Object model, Throwable ex) { + Monitor.error(monitor, this, "contribution-validation-messages", message, ex); } - private void warn(String message, Object model, Throwable ex) { - if (monitor != null) { - Problem problem = - monitor.createProblem(this.getClass().getName(), - "contribution-validation-messages", - Severity.WARNING, - model, - message, - ex); - monitor.problem(problem); - } + private void warn(Monitor monitor, String message, Object model, Throwable ex) { + Monitor.warning(monitor, this, "contribution-validation-messages", message, ex); } public static final QName XSD = new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "schema"); @@ -187,8 +164,9 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory /** * Initialize the registered schemas and create an aggregated schema for * validation. + * @param monitor TODO */ - private synchronized void initializeSchemas() { + private synchronized void initializeSchemas(Monitor monitor) { if (initialized) { return; } @@ -231,7 +209,7 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory } }); } catch (PrivilegedActionException e) { - warn("PrivilegedActionException", schemaFactory, (SAXException)e.getException()); + warn(monitor, "PrivilegedActionException", schemaFactory, (SAXException)e.getException()); hasSchemas = false; throw (SAXException)e.getException(); } @@ -242,7 +220,7 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory // throw ie; } catch (Throwable e) { //FIXME Log this, some old JDKs don't support XMLSchema validation - warn(e.getMessage(), schemas, e); + warn(monitor, e.getMessage(), schemas, e); hasSchemas = false; } } @@ -294,7 +272,8 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory @Override public XMLStreamReader createXMLStreamReader(InputStream arg0, String arg1) throws XMLStreamException { - initializeSchemas(); + Monitor monitor = monitorFactory.getContextMonitor(); + initializeSchemas(monitor); if (hasSchemas) { return new ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0, arg1), aggregatedSchema, monitor); }else { @@ -304,7 +283,8 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory @Override public XMLStreamReader createXMLStreamReader(InputStream arg0) throws XMLStreamException { - initializeSchemas(); + Monitor monitor = monitorFactory.getContextMonitor(); + initializeSchemas(monitor); if (hasSchemas) { return new ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0), aggregatedSchema, monitor); } else { @@ -314,7 +294,8 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory @Override public XMLStreamReader createXMLStreamReader(Reader arg0) throws XMLStreamException { - initializeSchemas(); + Monitor monitor = monitorFactory.getContextMonitor(); + initializeSchemas(monitor); if (hasSchemas) { return new ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0), aggregatedSchema, monitor); } else { @@ -324,7 +305,8 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory @Override public XMLStreamReader createXMLStreamReader(Source arg0) throws XMLStreamException { - initializeSchemas(); + Monitor monitor = monitorFactory.getContextMonitor(); + initializeSchemas(monitor); if (hasSchemas) { return new ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0), aggregatedSchema, monitor); } else { @@ -334,7 +316,8 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory @Override public XMLStreamReader createXMLStreamReader(String arg0, InputStream arg1) throws XMLStreamException { - initializeSchemas(); + Monitor monitor = monitorFactory.getContextMonitor(); + initializeSchemas(monitor); if (hasSchemas) { return new ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0, arg1), aggregatedSchema, monitor); } else { @@ -344,7 +327,8 @@ public class DefaultValidatingXMLInputFactory extends ValidatingXMLInputFactory @Override public XMLStreamReader createXMLStreamReader(String arg0, Reader arg1) throws XMLStreamException { - initializeSchemas(); + Monitor monitor = monitorFactory.getContextMonitor(); + initializeSchemas(monitor); if (hasSchemas) { return new ValidatingXMLStreamReader(inputFactory.createXMLStreamReader(arg0, arg1), aggregatedSchema, monitor); } else { diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java index 2446862e07..756cd9eb78 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java @@ -20,6 +20,7 @@ package org.apache.tuscany.sca.contribution.processor; import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; import org.apache.tuscany.sca.monitor.Monitor; @@ -35,7 +36,12 @@ public abstract class ValidatingXMLInputFactory extends XMLInputFactory { * into the create methods. The base definitions of the create methods * don't allow for this. * + * @param reader the XMLStreamReader instance * @param monitor the current monitor object */ - public abstract void setMonitor(Monitor monitor); + public static void setMonitor(XMLStreamReader reader, Monitor monitor) { + if (reader instanceof ValidatingXMLStreamReader) { + ((ValidatingXMLStreamReader)reader).setMonitor(monitor); + } + } } diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java index 5e88f08529..3f18830a59 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java @@ -51,7 +51,8 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea private static final Logger logger = Logger.getLogger(ValidatingXMLStreamReader.class.getName()); private ValidatorHandler handler; - private final Monitor monitor; + private Schema schema; + private Monitor monitor; /** * Constructs a new ValidatingXMLStreamReader. @@ -63,10 +64,16 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea ValidatingXMLStreamReader(XMLStreamReader reader, Schema schema, Monitor monitor) throws XMLStreamException { super(reader); this.monitor = monitor; - if (schema == null) { - return; + } + + void setMonitor(Monitor monitor) { + this.monitor = monitor; + } + + private synchronized ValidatorHandler getHandler() throws XMLStreamException { + if (schema == null || handler!=null) { + return handler; } - handler = schema.newValidatorHandler(); handler.setDocumentLocator(new LocatorAdapter()); try { @@ -117,6 +124,7 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea return artifactName; } }); + return handler; } /** @@ -149,7 +157,7 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea @Override public int next() throws XMLStreamException { - if (handler == null) { + if (getHandler() == null) { return super.next(); } @@ -197,7 +205,7 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea @Override public int nextTag() throws XMLStreamException { - if (handler == null) { + if (getHandler() == null) { return super.nextTag(); } while (true) { @@ -232,7 +240,7 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea @Override public String getElementText() throws XMLStreamException { - if (handler == null) { + if (getHandler() == null) { return super.getElementText(); } diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java index 63521f8977..30220901a0 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java @@ -77,6 +77,8 @@ public class ContributionMetadataDocumentProcessor implements URLArtifactProcess // Create a stream reader urlStream = IOHelper.openStream(url); XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream); + ValidatingXMLInputFactory.setMonitor(reader, context.getMonitor()); + reader.nextTag(); // Read the contribution model |