summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/contribution/src
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-10-21 18:00:07 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-10-21 18:00:07 +0000
commit11d80a409e2d7e65be7e46ca872d995d35964f83 (patch)
treeede8e38bd57fb796fd81362a4ac6744fccaf6d16 /java/sca/modules/contribution/src
parent685e0996023a229894a43185d3da8a8f0e148669 (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')
-rw-r--r--java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java64
-rw-r--r--java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLInputFactory.java8
-rw-r--r--java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java22
-rw-r--r--java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java2
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