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 2007/09/18 08:36:13 UTC

svn commit: r576725 - in /incubator/tuscany/java/sca/modules: databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/ databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/ databinding-sdo/src/main/resources/META-INF/se...

Author: rfeng
Date: Mon Sep 17 23:36:11 2007
New Revision: 576725

URL: http://svn.apache.org/viewvc?rev=576725&view=rev
Log:
Improve the SDO <--> SAXON transformers

Added:
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java   (with props)
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java   (with props)
    incubator/tuscany/java/sca/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java   (with props)
Modified:
    incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/DataObject2NodeInfoTransformer.java
    incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/Node2NodeInfoTransformer.java
    incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/NodeInfo2DataObjectTransformer.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java
    incubator/tuscany/java/sca/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer

Modified: incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/DataObject2NodeInfoTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/DataObject2NodeInfoTransformer.java?rev=576725&r1=576724&r2=576725&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/DataObject2NodeInfoTransformer.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/DataObject2NodeInfoTransformer.java Mon Sep 17 23:36:11 2007
@@ -18,18 +18,7 @@
  */
 package org.apache.tuscany.sca.databinding.saxon;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-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.TransformerFactoryConfigurationError;
 import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.stream.StreamSource;
 
 import net.sf.saxon.om.NodeInfo;
 
@@ -37,10 +26,11 @@
 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 commonj.sdo.DataObject;
+import commonj.sdo.helper.XMLDocument;
 import commonj.sdo.helper.XMLHelper;
-import commonj.sdo.impl.HelperProvider;
 
 /**
  * Transforms SDO DataObject-s to NodeInfo objects needed by Saxon parser
@@ -59,8 +49,13 @@
         this.node2NodeInfoTransformer = node2NodeInfoTransformer;
     }
 
+    public DataObject2NodeInfoTransformer() {
+        this.node2NodeInfoTransformer = new Node2NodeInfoTransformer();
+    }
+
     public NodeInfo transform(DataObject source, TransformationContext context) {
-        XMLHelper helper = HelperProvider.INSTANCE.xmlHelper();
+        // FIXME: Need to create the HelperContext from the transformation context
+        XMLHelper helper = XMLHelper.INSTANCE;
         String name = null;
         if (source.getClass().getInterfaces().length > 0) {
             name = source.getClass().getInterfaces()[0].getSimpleName();
@@ -72,32 +67,15 @@
             name = Character.toLowerCase(name.charAt(0)) + name.substring(1, name.length());
         }
 
-        DOMResult domResult = new DOMResult();
-
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        try {
-            helper.save(source, null, name, baos);
-            baos.flush();
-            baos.close();
-        } catch (IOException e) {
-            throw new TransformationException(e);
-        }
-
-        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-        Source src = new StreamSource(bais);
-
         try {
-            Transformer transformer = TransformerFactory.newInstance().newTransformer();
-            transformer.transform(src, domResult);
-        } catch (TransformerConfigurationException e) {
-            throw new TransformationException(e);
-        } catch (TransformerFactoryConfigurationError e) {
-            throw new TransformationException(e);
-        } catch (TransformerException e) {
+            DOMResult domResult = new DOMResult(DOMHelper.newDocument());
+            XMLDocument xmlDoc = helper.createDocument(source, null, name);
+            helper.save(xmlDoc, domResult, null);
+            return node2NodeInfoTransformer.transform(domResult.getNode(), context);
+        } catch (Exception e) {
             throw new TransformationException(e);
         }
 
-        return node2NodeInfoTransformer.transform(domResult.getNode(), context);
     }
 
     @Override
@@ -112,7 +90,7 @@
 
     @Override
     public int getWeight() {
-        return 10;
+        return 30 + node2NodeInfoTransformer.getWeight();
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/Node2NodeInfoTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/Node2NodeInfoTransformer.java?rev=576725&r1=576724&r2=576725&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/Node2NodeInfoTransformer.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/Node2NodeInfoTransformer.java Mon Sep 17 23:36:11 2007
@@ -22,7 +22,6 @@
 
 import net.sf.saxon.Configuration;
 import net.sf.saxon.event.Builder;
-import net.sf.saxon.om.DocumentInfo;
 import net.sf.saxon.om.NodeInfo;
 import net.sf.saxon.trans.XPathException;
 
@@ -30,6 +29,7 @@
 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;
 
 /**
@@ -46,9 +46,10 @@
         if (configuration == null) {
             configuration = new Configuration();
         }
-        DocumentInfo docInfo = null;
+        NodeInfo docInfo = null;
         try {
-        	docInfo = (DocumentInfo)Builder.build(new DOMSource(source), null, configuration);
+            source = DOMHelper.promote(source);
+            docInfo = Builder.build(new DOMSource(source), null, configuration);
         } catch (XPathException e) {
             throw new TransformationException(e);
         }

Modified: incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/NodeInfo2DataObjectTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/NodeInfo2DataObjectTransformer.java?rev=576725&r1=576724&r2=576725&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/NodeInfo2DataObjectTransformer.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/NodeInfo2DataObjectTransformer.java Mon Sep 17 23:36:11 2007
@@ -18,21 +18,15 @@
  */
 package org.apache.tuscany.sca.databinding.saxon;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
 import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 
 import net.sf.saxon.om.NodeInfo;
 
 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.w3c.dom.Document;
 
@@ -57,6 +51,10 @@
         this.nodeInfo2NodeTransformer = nodeInfo2NodeTransformer;
     }
 
+    public NodeInfo2DataObjectTransformer() {
+        this.nodeInfo2NodeTransformer = new NodeInfo2NodeTransformer();
+    }
+
     @Override
     protected Class getSourceType() {
         return NodeInfo.class;
@@ -69,7 +67,7 @@
 
     @Override
     public int getWeight() {
-        return 10 + nodeInfo2NodeTransformer.getWeight();
+        return 30 + nodeInfo2NodeTransformer.getWeight();
     }
 
     public DataObject transform(NodeInfo source, TransformationContext context) {
@@ -79,30 +77,12 @@
     }
 
     private DataObject produceResult(Document doc) {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        StreamResult streamResult = new StreamResult(baos);
         try {
-            Transformer transformer = TransformerFactory.newInstance().newTransformer();
-            transformer.transform(new DOMSource(doc), streamResult);
-        } catch (TransformerConfigurationException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (TransformerFactoryConfigurationError e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (TransformerException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        try {
-            baos.flush();
-            baos.close();
+            DataObject resultingObject =
+                XMLHelper.INSTANCE.load(new DOMSource(doc), doc.getDocumentURI(), null).getRootObject();
+            return resultingObject;
         } catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
+            throw new TransformationException(e);
         }
-        DataObject resultingObject = XMLHelper.INSTANCE.load(new String(baos.toByteArray())).getRootObject();
-
-        return resultingObject;
     }
 }

Added: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java?rev=576725&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java (added)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java Mon Sep 17 23:36:11 2007
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.sca.databinding.sdo;
+
+import javax.xml.namespace.QName;
+import javax.xml.transform.dom.DOMResult;
+
+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;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+
+public class DataObject2Node extends BaseTransformer<DataObject, Node> implements
+    PullTransformer<DataObject, Node> {
+
+    public Node transform(DataObject source, TransformationContext context) {
+        try {
+            HelperContext helperContext = SDOContextHelper.getHelperContext(context);
+            XMLHelper xmlHelper = helperContext.getXMLHelper();
+            QName elementName = SDOContextHelper.getElement(context.getSourceDataType());
+            Document doc = DOMHelper.newDocument();
+            DOMResult result = new DOMResult(doc);
+            XMLDocument xmlDoc = xmlHelper.createDocument(source, elementName.getNamespaceURI(), elementName.getLocalPart());
+            xmlHelper.save(xmlDoc, result, null);
+            return doc.getDocumentElement();
+        } catch (Exception e) {
+            throw new TransformationException(e);
+        }
+    }
+
+    @Override
+    public Class getSourceType() {
+        return DataObject.class;
+    }
+
+    @Override
+    public Class getTargetType() {
+        return Node.class;
+    }
+
+    @Override
+    public int getWeight() {
+        return 40;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/DataObject2Node.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java?rev=576725&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java (added)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java Mon Sep 17 23:36:11 2007
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.sca.databinding.sdo;
+
+import javax.xml.transform.dom.DOMSource;
+
+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;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+
+public class Node2DataObject extends BaseTransformer<Node, DataObject> implements PullTransformer<Node, DataObject> {
+
+    public DataObject transform(Node source, TransformationContext context) {
+        try {
+            HelperContext helperContext = SDOContextHelper.getHelperContext(context);
+            XMLHelper xmlHelper = helperContext.getXMLHelper();
+            Document doc = DOMHelper.promote(source);
+            DOMSource domSource = new DOMSource(doc);
+            XMLDocument xmlDoc = xmlHelper.load(domSource, doc.getDocumentURI(), null);
+            return xmlDoc.getRootObject();
+        } catch (Exception e) {
+            throw new TransformationException(e);
+        }
+    }
+
+    @Override
+    public Class getSourceType() {
+        return Node.class;
+    }
+
+    @Override
+    public Class getTargetType() {
+        return DataObject.class;
+    }
+
+    @Override
+    public int getWeight() {
+        return 40;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/Node2DataObject.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java?rev=576725&r1=576724&r2=576725&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOWrapperHandler.java Mon Sep 17 23:36:11 2007
@@ -107,10 +107,10 @@
      */
     public DataType getWrapperType(ElementInfo element, List<ElementInfo> childElements, TransformationContext context) {
         // FIXME: [rfeng] Temporarily disable the wrapping support for SDO to work around a few issues
-        // in the WSDL-less story
-        if (true) {
-            return null;
-        }
+        // in the WSDL-less story: https://issues.apache.org/jira/browse/TUSCANY-1713
+//        if (true) {
+//            return null;
+//        }
         HelperContext helperContext = SDOContextHelper.getHelperContext(context);
         Type sdoType = getSDOType(helperContext, element);
         if (sdoType != null) {

Modified: incubator/tuscany/java/sca/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer?rev=576725&r1=576724&r2=576725&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer (original)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer Mon Sep 17 23:36:11 2007
@@ -23,3 +23,5 @@
 org.apache.tuscany.sca.databinding.sdo.XMLDocument2XMLStreamReader;source=commonj.sdo.helper.XMLDocument,target=javax.xml.stream.XMLStreamReader,weight=10
 org.apache.tuscany.sca.databinding.sdo.XMLStreamReader2DataObject;source=javax.xml.stream.XMLStreamReader,target=commonj.sdo.DataObject,weight=15
 org.apache.tuscany.sca.databinding.sdo.XMLStreamReader2XMLDocument;source=javax.xml.stream.XMLStreamReader,target=commonj.sdo.helper.XMLDocument,weight=15
+org.apache.tuscany.sca.databinding.sdo.DataObject2Node;source=commonj.sdo.DataObject,target=org.w3c.dom.Node,weight=40
+org.apache.tuscany.sca.databinding.sdo.Node2DataObject;source=org.w3c.dom.Node,target=commonj.sdo.DataObject,weight=40

Added: incubator/tuscany/java/sca/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java?rev=576725&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java Mon Sep 17 23:36:11 2007
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.databinding.sdo;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.interfacedef.DataType;
+import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
+import org.apache.tuscany.sca.interfacedef.util.XMLType;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+import com.example.ipo.sdo.PurchaseOrderType;
+import commonj.sdo.DataObject;
+
+/**
+ * 
+ */
+public class DataObject2NodeTestCase extends SDOTransformerTestCaseBase {
+    @Override
+    protected DataType<?> getSourceDataType() {
+        return new DataTypeImpl<XMLType>(binding, PurchaseOrderType.class, new XMLType(ORDER_QNAME, null));
+    }
+
+    @Override
+    protected DataType<?> getTargetDataType() {
+        return new DataTypeImpl<Class<String>>(String.class, String.class);
+    }
+
+    public final void testTransform() {
+        Node node = new DataObject2Node().transform(dataObject, context);
+        Assert.assertNotNull(node);
+        Element element = (Element) node;
+        Assert.assertEquals(ORDER_QNAME.getNamespaceURI(), element.getNamespaceURI());
+        Assert.assertEquals(ORDER_QNAME.getLocalPart(), element.getLocalName());
+        DataObject po = new Node2DataObject().transform(node, reversedContext);
+        Assert.assertTrue(po instanceof PurchaseOrderType);
+        PurchaseOrderType orderType = (PurchaseOrderType)po;
+        Assert.assertEquals("San Jose", orderType.getBillTo().getCity());
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/DataObject2NodeTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org