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 09:37:16 UTC
svn commit: r801902 - in /tuscany/java/sca/modules:
common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/
databinding-jaxb-axiom/META-INF/
databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/
databinding-jaxb/META-I...
Author: rfeng
Date: Fri Aug 7 07:37:15 2009
New Revision: 801902
URL: http://svn.apache.org/viewvc?rev=801902&view=rev
Log:
Replace the DOMHelper from common-xml module
Removed:
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/DOMHelper.java
tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/extension/DOMHelperTestCase.java
Modified:
tuscany/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/DOMHelper.java
tuscany/java/sca/modules/databinding-jaxb-axiom/META-INF/MANIFEST.MF
tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java
tuscany/java/sca/modules/databinding-jaxb/META-INF/MANIFEST.MF
tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java
tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java
tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBindingTestCase.java
tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBTestCase.java
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2DOMNodeTransformer.java
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMDataBinding.java
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/SimpleJavaType2Node.java
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2NodeTransformer.java
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2Node.java
tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2Node.java
tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DOM2StAXTestCase.java
tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DataPipeTestCase.java
tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/Node2StringTestCase.java
tuscany/java/sca/modules/implementation-java-runtime/META-INF/MANIFEST.MF
tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java
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=801902&r1=801901&r2=801902&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 Fri Aug 7 07:37:15 2009
@@ -26,10 +26,12 @@
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamResult;
@@ -97,6 +99,17 @@
InputSource is = new InputSource(new StringReader(xmlString));
return builder.parse(is);
}
+
+ public Document load(Source source) {
+ Transformer transformer = newTransformer();
+ DOMResult result = new DOMResult(newDocument());
+ try {
+ transformer.transform(source, result);
+ } catch (TransformerException e) {
+ throw new IllegalArgumentException(e);
+ }
+ return (Document)result.getNode();
+ }
public NodeContentHandler createContentHandler(Node root) {
if (root == null) {
Modified: tuscany/java/sca/modules/databinding-jaxb-axiom/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb-axiom/META-INF/MANIFEST.MF?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-jaxb-axiom/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/databinding-jaxb-axiom/META-INF/MANIFEST.MF Fri Aug 7 07:37:15 2009
@@ -25,6 +25,7 @@
org.apache.axiom.om.impl,
org.apache.axiom.om.impl.builder,
org.apache.axiom.om.util,
+ org.apache.tuscany.sca.core;version="2.0.0",
org.apache.tuscany.sca.databinding;version="2.0.0",
org.apache.tuscany.sca.databinding.impl;version="2.0.0",
org.apache.tuscany.sca.databinding.jaxb;version="2.0.0",
Modified: tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java (original)
+++ tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java Fri Aug 7 07:37:15 2009
@@ -26,6 +26,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.databinding.impl.TransformationContextImpl;
import org.apache.tuscany.sca.databinding.jaxb.JAXB2Node;
@@ -69,7 +70,7 @@
System.out.println(sw.toString());
start = System.currentTimeMillis();
- Node node = new JAXB2Node().transform(po, tContext);
+ Node node = new JAXB2Node(new DefaultExtensionPointRegistry()).transform(po, tContext);
XMLStreamReader reader = new Node2XMLStreamReader().transform(node, null);
om = new StAXOMBuilder(reader).getDocumentElement();
sw = new StringWriter();
Modified: tuscany/java/sca/modules/databinding-jaxb/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb/META-INF/MANIFEST.MF?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-jaxb/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/databinding-jaxb/META-INF/MANIFEST.MF Fri Aug 7 07:37:15 2009
@@ -32,7 +32,9 @@
javax.xml.transform.dom,
javax.xml.transform.stream,
org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.common.xml.dom;version="2.0.0",
org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
+ org.apache.tuscany.sca.core;version="2.0.0",
org.apache.tuscany.sca.databinding;version="2.0.0",
org.apache.tuscany.sca.databinding.impl;version="2.0.0",
org.apache.tuscany.sca.databinding.jaxb;version="2.0.0",
Modified: tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java (original)
+++ tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java Fri Aug 7 07:37:15 2009
@@ -21,11 +21,13 @@
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.databinding.PullTransformer;
import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.databinding.TransformationException;
import org.apache.tuscany.sca.databinding.impl.BaseTransformer;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
+import org.apache.tuscany.sca.databinding.xml.DOMDataBinding;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -34,7 +36,13 @@
* @version $Rev$ $Date$
*/
public class JAXB2Node extends BaseTransformer<Object, Node> implements PullTransformer<Object, Node> {
-
+ private DOMHelper helper;
+
+ public JAXB2Node(ExtensionPointRegistry registry) {
+ super();
+ helper = DOMHelper.getInstance(registry);
+ }
+
public Node transform(Object source, TransformationContext tContext) {
// if (source == null) {
// return null;
@@ -44,10 +52,10 @@
Marshaller marshaller = context.createMarshaller();
// FIXME: The default Marshaller doesn't support
// marshaller.getNode()
- Document document = DOMHelper.newDocument();
+ Document document = helper.newDocument();
Object jaxbElement = JAXBContextHelper.createJAXBElement(context, tContext.getSourceDataType(), source);
marshaller.marshal(jaxbElement, document);
- return DOMHelper.adjustElementName(tContext, document.getDocumentElement());
+ return DOMDataBinding.adjustElementName(tContext, document.getDocumentElement());
} catch (Exception e) {
throw new TransformationException(e);
}
Modified: tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java (original)
+++ tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java Fri Aug 7 07:37:15 2009
@@ -26,10 +26,11 @@
import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.databinding.WrapperHandler;
import org.apache.tuscany.sca.databinding.XMLTypeHelper;
import org.apache.tuscany.sca.databinding.impl.BaseDataBinding;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
@@ -49,11 +50,13 @@
private JAXBWrapperHandler wrapperHandler;
private JAXBTypeHelper xmlTypeHelper;
+ private DOMHelper domHelper;
- public JAXBDataBinding() {
+ public JAXBDataBinding(ExtensionPointRegistry registry) {
super(NAME, JAXBElement.class);
this.wrapperHandler = new JAXBWrapperHandler();
this.xmlTypeHelper = new JAXBTypeHelper();
+ this.domHelper = DOMHelper.getInstance(registry);
}
@Override
@@ -105,7 +108,7 @@
}
JAXBContext context = JAXBContextHelper.createJAXBContext(dataType);
arg = JAXBContextHelper.createJAXBElement(context, dataType, arg);
- Document doc = DOMHelper.newDocument();
+ Document doc = domHelper.newDocument();
context.createMarshaller().marshal(arg, doc);
Object value = context.createUnmarshaller().unmarshal(doc, dataType.getPhysical());
if (isElement && value instanceof JAXBElement) {
Modified: tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBindingTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBindingTestCase.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBindingTestCase.java (original)
+++ tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBindingTestCase.java Fri Aug 7 07:37:15 2009
@@ -25,6 +25,7 @@
import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
@@ -46,7 +47,7 @@
@Before
public void setUp() throws Exception {
- binding = new JAXBDataBinding();
+ binding = new JAXBDataBinding(new DefaultExtensionPointRegistry());
}
/**
Modified: tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBTestCase.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBTestCase.java (original)
+++ tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/sca/databinding/jaxb/JAXBTestCase.java Fri Aug 7 07:37:15 2009
@@ -22,6 +22,8 @@
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.databinding.impl.TransformationContextImpl;
import org.apache.tuscany.sca.interfacedef.DataType;
@@ -68,6 +70,8 @@
+ " </item>"
+ " </items>"
+ "</ipo:purchaseOrder>";
+
+ private static ExtensionPointRegistry registry = new DefaultExtensionPointRegistry();
@Test
public void testTransform() throws Exception {
@@ -85,7 +89,7 @@
TransformationContext tContext1 = new TransformationContextImpl();
tContext1.setSourceDataType(sourceDataType);
- JAXB2Node t1 = new JAXB2Node();
+ JAXB2Node t1 = new JAXB2Node(registry);
Node node = t1.transform(object1, tContext1);
Assert.assertNotNull(node);
@@ -114,7 +118,7 @@
TransformationContext tContext1 = new TransformationContextImpl();
tContext1.setSourceDataType(sourceDataType);
- JAXB2Node t1 = new JAXB2Node();
+ JAXB2Node t1 = new JAXB2Node(registry);
Node node = t1.transform(object1, tContext1);
Assert.assertNotNull(node);
@@ -134,7 +138,7 @@
tContext1.setSourceDataType(sourceDataType);
- JAXB2Node t1 = new JAXB2Node();
+ JAXB2Node t1 = new JAXB2Node(registry);
PurchaseOrderType po = new ObjectFactory().createPurchaseOrderType();
Node node = t1.transform(po, tContext1);
Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2DOMNodeTransformer.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2DOMNodeTransformer.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2DOMNodeTransformer.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBean2DOMNodeTransformer.java Fri Aug 7 07:37:15 2009
@@ -19,9 +19,9 @@
package org.apache.tuscany.sca.databinding.javabeans;
import javax.xml.namespace.QName;
-import javax.xml.parsers.ParserConfigurationException;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -34,15 +34,11 @@
public class JavaBean2DOMNodeTransformer extends JavaBean2XMLTransformer<Node> {
public static final String COLON = ":";
- private Document factory;
+ private DOMHelper helper;
- public JavaBean2DOMNodeTransformer() {
+ public JavaBean2DOMNodeTransformer(ExtensionPointRegistry registry) {
super();
- try {
- factory = DOMHelper.newDocument();
- } catch (ParserConfigurationException e) {
- throw new Java2XMLMapperException(e);
- }
+ helper = DOMHelper.getInstance(registry);
}
@Override
@@ -55,16 +51,17 @@
String qualifedName =
(qName.getPrefix() == null || qName.getPrefix().length() <= 0) ? qName.getLocalPart()
: qName.getPrefix() + COLON + qName.getLocalPart();
- return factory.createElementNS(qName.getNamespaceURI(), qualifedName);
+ return helper.newDocument().createElementNS(qName.getNamespaceURI(), qualifedName);
}
@Override
public void appendText(Node parentElement, String textData) throws Java2XMLMapperException {
+ Document document = helper.newDocument();
Node textNode;
if (textData != null) {
- textNode = factory.createTextNode(textData);
+ textNode = document.createTextNode(textData);
} else {
- Attr nil = factory.createAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:nil");
+ Attr nil = document.createAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:nil");
nil.setValue("true");
textNode = nil;
}
Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMDataBinding.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMDataBinding.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMDataBinding.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMDataBinding.java Fri Aug 7 07:37:15 2009
@@ -21,11 +21,18 @@
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.databinding.WrapperHandler;
import org.apache.tuscany.sca.databinding.impl.BaseDataBinding;
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.interfacedef.util.XMLType;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
/**
@@ -38,14 +45,17 @@
public static final String ROOT_NAMESPACE = "http://tuscany.apache.org/xmlns/sca/databinding/dom/1.0";
public static final QName ROOT_ELEMENT = new QName(ROOT_NAMESPACE, "root");
+
+ private DOMHelper domHelper;
- public DOMDataBinding() {
+ public DOMDataBinding(ExtensionPointRegistry registry) {
super(NAME, Node.class);
+ this.domHelper = DOMHelper.getInstance(registry);
}
@Override
public WrapperHandler getWrapperHandler() {
- return new DOMWrapperHandler();
+ return new DOMWrapperHandler(domHelper);
}
@Override
@@ -68,4 +78,49 @@
}
return false;
}
+
+ /**
+ * @param context
+ * @param element
+ */
+ public static Element adjustElementName(TransformationContext context, Element element) {
+ if (context != null) {
+ DataType dataType = context.getTargetDataType();
+ Object logical = dataType == null ? null : dataType.getLogical();
+ if (!(logical instanceof XMLType)) {
+ return element;
+ }
+ XMLType xmlType = (XMLType)logical;
+ QName name = new QName(element.getNamespaceURI(), element.getLocalName());
+ if (xmlType.isElement() && !xmlType.getElementName().equals(name)) {
+ QName newName = xmlType.getElementName();
+ String prefix = newName.getPrefix();
+ String qname = newName.getLocalPart();
+ if (prefix != null && !prefix.equals("")) {
+ qname = prefix + ":" + qname;
+ }
+ Document doc = element.getOwnerDocument();
+ Element newElement = doc.createElementNS(newName.getNamespaceURI(), qname);
+ // Copy the attributes to the new element
+ NamedNodeMap attrs = element.getAttributes();
+ for (int i = 0; i < attrs.getLength(); i++) {
+ Attr attr = (Attr)doc.importNode(attrs.item(i), true);
+ newElement.getAttributes().setNamedItem(attr);
+ }
+
+ // Move all the children
+ while (element.hasChildNodes()) {
+ newElement.appendChild(element.getFirstChild());
+ }
+
+ // Replace the old node with the new node
+ if (element.getParentNode() != null) {
+ element.getParentNode().replaceChild(newElement, element);
+ }
+
+ return newElement;
+ }
+ }
+ return element;
+ }
}
Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java Fri Aug 7 07:37:15 2009
@@ -25,11 +25,9 @@
import java.util.Set;
import javax.xml.namespace.QName;
-import javax.xml.parsers.ParserConfigurationException;
-import org.apache.tuscany.sca.databinding.TransformationException;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
import org.apache.tuscany.sca.databinding.WrapperHandler;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
@@ -41,22 +39,21 @@
import org.w3c.dom.NodeList;
public class DOMWrapperHandler implements WrapperHandler<Node> {
-
- public DOMWrapperHandler() {
+ private DOMHelper domHelper;
+
+ public DOMWrapperHandler(DOMHelper domHelper) {
super();
+ this.domHelper = domHelper;
}
public Node create(Operation operation, boolean input) {
- try {
- WrapperInfo wrapperInfo = operation.getWrapper();
- ElementInfo element = input ? wrapperInfo.getInputWrapperElement() : wrapperInfo.getOutputWrapperElement();
- // Class<?> wrapperClass = input ? wrapperInfo.getInputWrapperClass() : wrapperInfo.getOutputWrapperClass();
- Document document = DOMHelper.newDocument();
- QName name = element.getQName();
- return DOMHelper.createElement(document, name);
- } catch (ParserConfigurationException e) {
- throw new TransformationException(e);
- }
+
+ WrapperInfo wrapperInfo = operation.getWrapper();
+ ElementInfo element = input ? wrapperInfo.getInputWrapperElement() : wrapperInfo.getOutputWrapperElement();
+ // Class<?> wrapperClass = input ? wrapperInfo.getInputWrapperClass() : wrapperInfo.getOutputWrapperClass();
+ Document document = domHelper.newDocument();
+ QName name = element.getQName();
+ return DOMHelper.createElement(document, name);
}
public void setChildren(Node wrapper,
Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/SimpleJavaType2Node.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/SimpleJavaType2Node.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/SimpleJavaType2Node.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/SimpleJavaType2Node.java Fri Aug 7 07:37:15 2009
@@ -19,12 +19,11 @@
package org.apache.tuscany.sca.databinding.xml;
import javax.xml.namespace.QName;
-import javax.xml.parsers.ParserConfigurationException;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.databinding.TransformationContext;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.apache.tuscany.sca.databinding.impl.Java2SimpleTypeTransformer;
-import org.apache.tuscany.sca.databinding.javabeans.Java2XMLMapperException;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -35,23 +34,19 @@
* @version $Rev$ $Date$
*/
public class SimpleJavaType2Node extends Java2SimpleTypeTransformer<Node> {
-
- private Document factory;
-
- public SimpleJavaType2Node() {
+ private DOMHelper helper;
+
+ public SimpleJavaType2Node(ExtensionPointRegistry registry) {
super();
- try {
- factory = DOMHelper.newDocument();
- } catch (ParserConfigurationException e) {
- throw new Java2XMLMapperException(e);
- }
+ helper = DOMHelper.getInstance(registry);
}
-
+
@Override
protected Node createElement(QName element, String text, TransformationContext context) {
if (element == null) {
element = DOMDataBinding.ROOT_ELEMENT;
}
+ Document factory = helper.newDocument();
Node root = DOMHelper.createElement(factory, element);
if (text != null) {
root.appendChild(factory.createTextNode(text));
Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2NodeTransformer.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2NodeTransformer.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2NodeTransformer.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/Source2NodeTransformer.java Fri Aug 7 07:37:15 2009
@@ -19,14 +19,13 @@
package org.apache.tuscany.sca.databinding.xml;
import javax.xml.transform.Source;
-import javax.xml.transform.TransformerFactory;
-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.databinding.PullTransformer;
import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.databinding.TransformationException;
import org.apache.tuscany.sca.databinding.impl.BaseTransformer;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -37,15 +36,17 @@
*/
public class Source2NodeTransformer extends BaseTransformer<Source, Node> implements
PullTransformer<Source, Node> {
- private static final TransformerFactory FACTORY = TransformerFactory.newInstance();
-
+ private DOMHelper helper;
+
+ public Source2NodeTransformer(ExtensionPointRegistry registry) {
+ super();
+ helper = DOMHelper.getInstance(registry);
+ }
+
public Node transform(Source source, TransformationContext context) {
try {
- javax.xml.transform.Transformer transformer = FACTORY.newTransformer();
- DOMResult result = new DOMResult();
- transformer.transform(source, result);
- Document doc = (Document) result.getNode();
- return DOMHelper.adjustElementName(context, doc.getDocumentElement());
+ Document doc = helper.load(source);
+ return DOMDataBinding.adjustElementName(context, doc.getDocumentElement());
} catch (Exception e) {
throw new TransformationException(e);
}
Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2Node.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2Node.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2Node.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/String2Node.java Fri Aug 7 07:37:15 2009
@@ -18,25 +18,25 @@
*/
package org.apache.tuscany.sca.databinding.xml;
-import java.io.StringReader;
-
-import javax.xml.parsers.DocumentBuilder;
-
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.databinding.PullTransformer;
import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.databinding.TransformationException;
import org.apache.tuscany.sca.databinding.impl.BaseTransformer;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.w3c.dom.Node;
-import org.xml.sax.InputSource;
public class String2Node extends BaseTransformer<String, Node> implements PullTransformer<String, Node> {
-
+ private DOMHelper helper;
+
+ public String2Node(ExtensionPointRegistry registry) {
+ super();
+ helper = DOMHelper.getInstance(registry);
+ }
+
public Node transform(String source, TransformationContext context) {
try {
- DocumentBuilder builder = DOMHelper.newDocumentBuilder();
- InputSource inputSource = new InputSource(new StringReader(source));
- return builder.parse(inputSource);
+ return helper.load(source);
} catch (Exception e) {
throw new TransformationException(e);
}
Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2Node.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2Node.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2Node.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/XMLStreamReader2Node.java Fri Aug 7 07:37:15 2009
@@ -26,7 +26,6 @@
import org.apache.tuscany.sca.databinding.TransformationContext;
import org.apache.tuscany.sca.databinding.TransformationException;
import org.apache.tuscany.sca.databinding.impl.BaseTransformer;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.ContentHandler;
@@ -55,7 +54,7 @@
source.close();
if (node instanceof Document) {
Document doc = (Document)node;
- return DOMHelper.adjustElementName(context, doc.getDocumentElement());
+ return DOMDataBinding.adjustElementName(context, doc.getDocumentElement());
} else {
return node;
}
Modified: tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DOM2StAXTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DOM2StAXTestCase.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DOM2StAXTestCase.java (original)
+++ tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DOM2StAXTestCase.java Fri Aug 7 07:37:15 2009
@@ -78,7 +78,7 @@
@Test
public void testTransformation() throws Exception {
- String2Node t1 = new String2Node();
+ String2Node t1 = new String2Node(registry);
Node node = t1.transform(IPO_XML, null);
Node2XMLStreamReader t2 = new Node2XMLStreamReader();
XMLStreamReader reader = t2.transform(node, null);
@@ -90,7 +90,7 @@
@Test
public void testTransformation2() throws Exception {
- String2Node t1 = new String2Node();
+ String2Node t1 = new String2Node(registry);
Node node = t1.transform(CRAZY_XML, null);
Node2XMLStreamReader t2 = new Node2XMLStreamReader();
XMLStreamReader reader = t2.transform(node, null);
@@ -103,7 +103,7 @@
@Test
public void testTransformation3() throws Exception {
- String2Node t1 = new String2Node();
+ String2Node t1 = new String2Node(registry);
Node node = t1.transform(IPO_XML, null);
DOMXmlNodeImpl element = new DOMXmlNodeImpl(node);
XmlTreeStreamReaderImpl reader = new XmlTreeStreamReaderImpl(element);
Modified: tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DataPipeTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DataPipeTestCase.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DataPipeTestCase.java (original)
+++ tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/DataPipeTestCase.java Fri Aug 7 07:37:15 2009
@@ -25,9 +25,10 @@
import java.io.Reader;
import java.io.Writer;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.databinding.DataPipe;
import org.apache.tuscany.sca.databinding.DataPipeTransformer;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.apache.tuscany.sca.databinding.impl.PipedTransformer;
import org.junit.Assert;
import org.junit.Test;
@@ -79,7 +80,7 @@
Writer2ReaderDataPipe pipe = new Writer2ReaderDataPipe();
PipedTransformer<Node, Writer, Reader> transformer =
new PipedTransformer<Node, Writer, Reader>(node2Writer, pipe);
- Document document = DOMHelper.newDocument();
+ Document document = DOMHelper.getInstance(new DefaultExtensionPointRegistry()).newDocument();
Element element = document.createElementNS("http://ns1", "root");
document.appendChild(element);
Reader reader = transformer.transform(document, null);
Modified: tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/Node2StringTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/Node2StringTestCase.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/Node2StringTestCase.java (original)
+++ tuscany/java/sca/modules/databinding/src/test/java/org/apache/tuscany/sca/databinding/xml/Node2StringTestCase.java Fri Aug 7 07:37:15 2009
@@ -18,7 +18,8 @@
*/
package org.apache.tuscany.sca.databinding.xml;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -31,7 +32,7 @@
@Test
public void testTransformation() throws Exception {
- Document document = DOMHelper.newDocument();
+ Document document = DOMHelper.getInstance(new DefaultExtensionPointRegistry()).newDocument();
Element element = document.createElementNS("http://ns1", "test");
document.appendChild(element);
Modified: tuscany/java/sca/modules/implementation-java-runtime/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java-runtime/META-INF/MANIFEST.MF?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-java-runtime/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/implementation-java-runtime/META-INF/MANIFEST.MF Fri Aug 7 07:37:15 2009
@@ -28,6 +28,7 @@
Bundle-Description: Apache Tuscany SCA Java Implementation Model
Import-Package: javax.xml.namespace,
org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.common.xml.dom;version="2.0.0",
org.apache.tuscany.sca.context;version="2.0.0",
org.apache.tuscany.sca.core;version="2.0.0",
org.apache.tuscany.sca.core.context;version="2.0.0",
Modified: tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java?rev=801902&r1=801901&r2=801902&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java (original)
+++ tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java Fri Aug 7 07:37:15 2009
@@ -25,6 +25,7 @@
import org.apache.tuscany.sca.assembly.ComponentProperty;
import org.apache.tuscany.sca.assembly.Property;
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
import org.apache.tuscany.sca.context.PropertyValueFactory;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
@@ -32,7 +33,6 @@
import org.apache.tuscany.sca.core.factory.ObjectFactory;
import org.apache.tuscany.sca.databinding.Mediator;
import org.apache.tuscany.sca.databinding.SimpleTypeMapper;
-import org.apache.tuscany.sca.databinding.impl.DOMHelper;
import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl;
import org.apache.tuscany.sca.databinding.xml.DOMDataBinding;
import org.apache.tuscany.sca.implementation.java.JavaElementImpl;