You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2009/08/07 00:32:42 UTC
svn commit: r801826 - in /tuscany/java/sca/modules/common-xml: ./
src/main/java/org/apache/tuscany/sca/common/xml/dom/
src/main/java/org/apache/tuscany/sca/common/xml/stax/
src/test/java/org/apache/tuscany/sca/common/xml/stax/
Author: rfeng
Date: Thu Aug 6 22:32:41 2009
New Revision: 801826
URL: http://svn.apache.org/viewvc?rev=801826&view=rev
Log:
Adding common-xml into modules as the base to hold XML related utilities
It can also serve as the module that defines XML related dependencies based on the JDK levels
Added:
tuscany/java/sca/modules/common-xml/
- copied from r801818, tuscany/java/sca-contrib/modules/common-xml/
Modified:
tuscany/java/sca/modules/common-xml/pom.xml
tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/DOMHelper.java
tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/SAX2DOMAdapter.java
tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/StAXHelper.java
tuscany/java/sca/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/stax/StAXHelperTestCase.java
Modified: tuscany/java/sca/modules/common-xml/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/common-xml/pom.xml?rev=801826&r1=801818&r2=801826&view=diff
==============================================================================
--- tuscany/java/sca/modules/common-xml/pom.xml (original)
+++ tuscany/java/sca/modules/common-xml/pom.xml Thu Aug 6 22:32:41 2009
@@ -34,25 +34,6 @@
<artifactId>tuscany-extensibility</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
-
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-stax-api_1.0_spec</artifactId>
- <version>1.0.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>wstx-asl</artifactId>
- <version>3.2.4</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>stax</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>xmlunit</groupId>
@@ -63,4 +44,55 @@
</dependencies>
+ <profiles>
+ <profile>
+ <id>jdk15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <version>3.2.4</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>2.1.12</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ </dependencies>
+
+ </profile>
+ </profiles>
+
</project>
Modified: tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/DOMHelper.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/DOMHelper.java?rev=801826&r1=801818&r2=801826&view=diff
==============================================================================
--- tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/DOMHelper.java (original)
+++ tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/DOMHelper.java Thu Aug 6 22:32:41 2009
@@ -23,6 +23,8 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -35,27 +37,24 @@
* @version $Rev$ $Date$
*/
public final class DOMHelper {
- private static DocumentBuilderFactory FACTORY;
+ private DocumentBuilderFactory documentBuilderFactory;
- private DOMHelper() {
+ public DOMHelper(ExtensionPointRegistry registry) {
+ FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class);
+ documentBuilderFactory = factories.getFactory(DocumentBuilderFactory.class);
+ documentBuilderFactory.setNamespaceAware(true);
}
- public static Document newDocument() throws ParserConfigurationException {
+ public Document newDocument() {
return newDocumentBuilder().newDocument();
- }
- public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
- init();
- return FACTORY.newDocumentBuilder();
}
- /**
- *
- */
- private static synchronized void init() {
- if (FACTORY == null) {
- FACTORY = DocumentBuilderFactory.newInstance();
- FACTORY.setNamespaceAware(true);
+ public DocumentBuilder newDocumentBuilder() {
+ try {
+ return documentBuilderFactory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ throw new IllegalArgumentException(e);
}
}
@@ -64,9 +63,6 @@
if (ns == null) {
ns = "";
}
- // node.getLocalName() will return null if it is created using DOM Level
- // 1 method
- // such as createElement()
return new QName(ns, node.getNodeName());
}
Modified: tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/SAX2DOMAdapter.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/SAX2DOMAdapter.java?rev=801826&r1=801818&r2=801826&view=diff
==============================================================================
--- tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/SAX2DOMAdapter.java (original)
+++ tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/SAX2DOMAdapter.java Thu Aug 6 22:32:41 2009
@@ -22,6 +22,8 @@
import javax.xml.parsers.ParserConfigurationException;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.w3c.dom.Comment;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -58,8 +60,10 @@
private Node lastSibling;
- public SAX2DOMAdapter() throws ParserConfigurationException {
- this.document = DOMHelper.newDocument();
+ public SAX2DOMAdapter(ExtensionPointRegistry registry) {
+ UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+ DOMHelper domHelper = utilities.getUtility(DOMHelper.class);
+ this.document = domHelper.newDocument();
this.root = document;
}
@@ -69,9 +73,6 @@
this.document = (Document)root;
} else if (root != null) {
this.document = root.getOwnerDocument();
- } else {
- this.document = DOMHelper.newDocument();
- this.root = document;
}
this.nextSibling = nextSibling;
Modified: tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/StAXHelper.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/StAXHelper.java?rev=801826&r1=801818&r2=801826&view=diff
==============================================================================
--- tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/StAXHelper.java (original)
+++ tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/StAXHelper.java Thu Aug 6 22:32:41 2009
@@ -30,55 +30,99 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import javax.xml.transform.Result;
import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMResult;
-
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
public final class StAXHelper {
- private static final XMLInputFactory INPUT_FACTORY = XMLInputFactory.newInstance();
- private static final XMLOutputFactory OUTPUT_FACTORY = XMLOutputFactory.newInstance();
+ private final XMLInputFactory inputFactory;
+ private final XMLOutputFactory outputFactory;
+ private final DOMHelper domHelper;
+
+ public StAXHelper(ExtensionPointRegistry registry) {
+ FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class);
+ factories.getFactory(XMLInputFactory.class);
+ inputFactory = factories.getFactory(XMLInputFactory.class);
+ outputFactory = factories.getFactory(XMLOutputFactory.class);
+ UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+ domHelper = utilities.getUtility(DOMHelper.class);
+ }
- private StAXHelper() {
+ public XMLStreamReader createXMLStreamReader(InputStream inputStream) throws XMLStreamException {
+ return inputFactory.createXMLStreamReader(inputStream);
}
- public static XMLStreamReader createXMLStreamReader(InputStream inputStream) throws XMLStreamException {
- return INPUT_FACTORY.createXMLStreamReader(inputStream);
+ public XMLStreamReader createXMLStreamReader(Reader reader) throws XMLStreamException {
+ return inputFactory.createXMLStreamReader(reader);
}
- public static XMLStreamReader createXMLStreamReader(Reader reader) throws XMLStreamException {
- return INPUT_FACTORY.createXMLStreamReader(reader);
+ public XMLStreamReader createXMLStreamReader(Source source) throws XMLStreamException {
+ return inputFactory.createXMLStreamReader(source);
}
- public static XMLStreamReader createXMLStreamReader(Source source) throws XMLStreamException {
- return INPUT_FACTORY.createXMLStreamReader(source);
+ /*
+ public XMLStreamReader createXMLStreamReader(Node node) throws XMLStreamException {
+ // DOMSource is not supported by the XMLInputFactory from JDK 6
+ DOMSource source = new DOMSource(node);
+ return createXMLStreamReader(source);
}
+ */
- public static XMLStreamReader createXMLStreamReader(String string) throws XMLStreamException {
+ public XMLStreamReader createXMLStreamReader(String string) throws XMLStreamException {
StringReader reader = new StringReader(string);
return createXMLStreamReader(reader);
}
- public static String save(XMLStreamReader reader) throws XMLStreamException {
+ public String saveAsString(XMLStreamReader reader) throws XMLStreamException {
StringWriter writer = new StringWriter();
save(reader, writer);
return writer.toString();
}
- public static void save(XMLStreamReader reader, OutputStream outputStream) throws XMLStreamException {
+ public void save(XMLStreamReader reader, OutputStream outputStream) throws XMLStreamException {
+ XMLStreamSerializer serializer = new XMLStreamSerializer();
+ XMLStreamWriter streamWriter = createXMLStreamWriter(outputStream);
+ serializer.serialize(reader, streamWriter);
+ streamWriter.flush();
+ }
+
+ public XMLStreamWriter createXMLStreamWriter(OutputStream outputStream) throws XMLStreamException {
+ return outputFactory.createXMLStreamWriter(outputStream);
+ }
+
+ public void save(XMLStreamReader reader, Writer writer) throws XMLStreamException {
XMLStreamSerializer serializer = new XMLStreamSerializer();
- XMLStreamWriter streamWriter = OUTPUT_FACTORY.createXMLStreamWriter(outputStream);
+ XMLStreamWriter streamWriter = createXMLStreamWriter(writer);
serializer.serialize(reader, streamWriter);
streamWriter.flush();
}
- public static void save(XMLStreamReader reader, Writer writer) throws XMLStreamException {
+ public XMLStreamWriter createXMLStreamWriter(Writer writer) throws XMLStreamException {
+ return outputFactory.createXMLStreamWriter(writer);
+ }
+
+ public Node saveAsNode(XMLStreamReader reader) throws XMLStreamException {
XMLStreamSerializer serializer = new XMLStreamSerializer();
- XMLStreamWriter streamWriter = OUTPUT_FACTORY.createXMLStreamWriter(writer);
+ Document document = domHelper.newDocument();
+ DOMResult result = new DOMResult(document);
+ XMLStreamWriter streamWriter = createXMLStreamWriter(result);
serializer.serialize(reader, streamWriter);
streamWriter.flush();
+ return result.getNode();
+ }
+
+ public XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException {
+ return outputFactory.createXMLStreamWriter(result);
}
- public static void save(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ public void save(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
XMLStreamSerializer serializer = new XMLStreamSerializer();
serializer.serialize(reader, writer);
writer.flush();
Modified: tuscany/java/sca/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/stax/StAXHelperTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/stax/StAXHelperTestCase.java?rev=801826&r1=801818&r2=801826&view=diff
==============================================================================
--- tuscany/java/sca/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/stax/StAXHelperTestCase.java (original)
+++ tuscany/java/sca/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/stax/StAXHelperTestCase.java Thu Aug 6 22:32:41 2009
@@ -23,8 +23,10 @@
import javax.xml.stream.XMLStreamReader;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.custommonkey.xmlunit.XMLAssert;
import org.junit.Test;
+import org.w3c.dom.Node;
/**
* Test Case for StAXHelper
@@ -33,17 +35,22 @@
*/
public class StAXHelperTestCase {
private static final String XML =
- "<a:foo xmlns:a='http://a' name='foo'><bar name='bar'>"
- + "<doo a:name='doo' xmlns:a='http://doo'/>"
+ "<a:foo xmlns:a='http://a' name='foo'><bar name='bar'>" + "<doo a:name='doo' xmlns:a='http://doo'/>"
+ "</bar></a:foo>";
@Test
public void testHelper() throws Exception {
- XMLStreamReader reader = StAXHelper.createXMLStreamReader(XML);
- String xml = StAXHelper.save(reader);
+ StAXHelper helper = new StAXHelper(new DefaultExtensionPointRegistry());
+ XMLStreamReader reader = helper.createXMLStreamReader(XML);
+ String xml = helper.saveAsString(reader);
XMLAssert.assertXMLEqual(XML, xml);
- reader = StAXHelper.createXMLStreamReader(xml);
+ reader = helper.createXMLStreamReader(xml);
assertNotNull(reader);
+
+ Node node = helper.saveAsNode(reader);
+ // reader = helper.createXMLStreamReader(node);
+ assertNotNull(node.getFirstChild());
+
}
}