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 2008/06/01 01:24:19 UTC

svn commit: r662106 - in /incubator/tuscany/java/sca/modules: databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/ databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/ databinding-jaxb/src/main/...

Author: rfeng
Date: Sat May 31 16:24:19 2008
New Revision: 662106

URL: http://svn.apache.org/viewvc?rev=662106&view=rev
Log:
Improve the JAXB element handling

Modified:
    incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/JAXB2OMElement.java
    incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/OMElement2JAXB.java
    incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java
    incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/JAXB2OMElement.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/JAXB2OMElement.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/JAXB2OMElement.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/JAXB2OMElement.java Sat May 31 16:24:19 2008
@@ -19,9 +19,7 @@
 package org.apache.tuscany.sca.databinding.jaxb.axiom;
 
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
-import javax.xml.bind.JAXBIntrospector;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMAbstractFactory;
@@ -33,8 +31,6 @@
 import org.apache.tuscany.sca.databinding.impl.BaseTransformer;
 import org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper;
 import org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
 
 /**
  * JAXB Object --> AXIOM OMElement transformer
@@ -57,36 +53,8 @@
         } catch (JAXBException e) {
             throw new TransformationException(e);
         }
-        QName name = JAXBDataBinding.ROOT_ELEMENT;
-        if (context != null) {
-            DataType dataType = context.getTargetDataType();
-            Object logical = dataType == null ? null : dataType.getLogical();
-            if (logical instanceof XMLType) {
-                XMLType xmlType = (XMLType)logical;
-                if (xmlType.isElement()) {
-                    name = xmlType.getElementName();
-                }
-            }
-        }
-
-        JAXBIntrospector introspector = jaxbContext.createJAXBIntrospector();
-        Object element = null;
-        Class<?> type = null;
-        if (source != null && introspector.isElement(source)) {
-            if (name == JAXBDataBinding.ROOT_ELEMENT) {
-                element = source;
-                name = introspector.getElementName(element);
-            } else {
-                source = JAXBIntrospector.getValue(source);
-            }
-        } 
-        if (element == null) {
-            type = source == null ? Object.class : source.getClass();
-            if (context != null) {
-                type = context.getSourceDataType().getPhysical();
-            }
-            element = new JAXBElement(name, type, source);
-        }
+        Object element = JAXBContextHelper.createJAXBElement(jaxbContext, context.getTargetDataType(), source);
+        QName name = jaxbContext.createJAXBIntrospector().getElementName(element);
         JAXBDataSource dataSource = new JAXBDataSource(element, jaxbContext);
         OMElement omElement = AxiomHelper.createOMElement(factory, name, dataSource);
         return omElement;

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/OMElement2JAXB.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/OMElement2JAXB.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/OMElement2JAXB.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/main/java/org/apache/tuscany/sca/databinding/jaxb/axiom/OMElement2JAXB.java Sat May 31 16:24:19 2008
@@ -60,7 +60,7 @@
                     Object result =
                         unmarshaller.unmarshal(reader, JAXBContextHelper.getJavaType(context.getTargetDataType()));
                     reader.close();
-                    return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result);
+                    return JAXBContextHelper.createReturnValue(jaxbContext, context.getTargetDataType(), result);
                 }
             });
         } catch (PrivilegedActionException e) {

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb-axiom/src/test/java/org/apache/tuscany/databinding/jaxb/axiom/JAXB2OMTestCase.java Sat May 31 16:24:19 2008
@@ -34,6 +34,7 @@
 import org.apache.tuscany.sca.databinding.xml.Node2XMLStreamReader;
 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.junit.Test;
 import org.w3c.dom.Node;
 
@@ -47,18 +48,20 @@
  */
 public class JAXB2OMTestCase {
     @Test
-    public void testTransformType() throws Exception {
+    public void testTransformElement() throws Exception {
         JAXBElement<PurchaseOrderType> po = createPO();
-        DataType sourceDataType = new DataTypeImpl<Class>(PurchaseOrderType.class, null);
+        DataType<?> sourceDataType = new DataTypeImpl<XMLType>(PurchaseOrderType.class, XMLType.UNKNOWN);
+        DataType<?> targetDataType = new DataTypeImpl<XMLType>(PurchaseOrderType.class, new XMLType(po.getName(), null));
         TransformationContext tContext = new TransformationContextImpl();
         tContext.setSourceDataType(sourceDataType);
+        tContext.setTargetDataType(targetDataType);
 
         // Force the JAXBContext to be cached
         JAXBContextHelper.createJAXBContext(tContext, true);
-        
+
         long start = System.currentTimeMillis();
         JAXB2OMElement t1 = new JAXB2OMElement();
-        OMElement om = t1.transform(po.getValue(), tContext);
+        OMElement om = t1.transform(po, tContext);
         long duration1 = System.currentTimeMillis() - start;
         StringWriter sw = new StringWriter();
         // serializeAndConsume() will trigger the JAXBDataSource.serialize(Writer, OMOutputFormat)
@@ -66,7 +69,7 @@
         System.out.println(sw.toString());
 
         start = System.currentTimeMillis();
-        Node node = new JAXB2Node().transform(po.getValue(), tContext);
+        Node node = new JAXB2Node().transform(po, tContext);
         XMLStreamReader reader = new Node2XMLStreamReader().transform(node, null);
         om = new StAXOMBuilder(reader).getDocumentElement();
         sw = new StringWriter();
@@ -77,12 +80,14 @@
     }
 
     @Test
-    public void testTransformElement() throws Exception {
+    public void testTransformType() throws Exception {
         JAXBElement<PurchaseOrderType> po = createPO();
-        DataType sourceDataType = new DataTypeImpl<Class>(PurchaseOrderType.class, null);
+        DataType<?> sourceDataType = new DataTypeImpl<XMLType>(PurchaseOrderType.class, XMLType.UNKNOWN);
+        DataType<?> targetDataType = new DataTypeImpl<XMLType>(PurchaseOrderType.class, new XMLType(po.getName(), null));
         TransformationContext tContext = new TransformationContextImpl();
         tContext.setSourceDataType(sourceDataType);
-        OMElement om = new JAXB2OMElement().transform(po, tContext);
+        tContext.setTargetDataType(targetDataType);
+        OMElement om = new JAXB2OMElement().transform(po.getValue(), tContext);
         StringWriter sw = new StringWriter();
         om.serializeAndConsume(sw);
         System.out.println(sw.toString());

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java Sat May 31 16:24:19 2008
@@ -19,7 +19,6 @@
 package org.apache.tuscany.sca.databinding.jaxb;
 
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Marshaller;
 
 import org.apache.tuscany.sca.databinding.PullTransformer;
@@ -46,7 +45,7 @@
             // FIXME: The default Marshaller doesn't support
             // marshaller.getNode()
             Document document = DOMHelper.newDocument();
-            JAXBElement<?> jaxbElement = JAXBContextHelper.createJAXBElement(tContext.getSourceDataType(), source);
+            Object jaxbElement = JAXBContextHelper.createJAXBElement(context, tContext.getSourceDataType(), source);
             marshaller.marshal(jaxbElement, document);
             return DOMHelper.adjustElementName(tContext, document.getDocumentElement());
         } catch (Exception e) {

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java Sat May 31 16:24:19 2008
@@ -20,7 +20,6 @@
 package org.apache.tuscany.sca.databinding.jaxb;
 
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Marshaller;
 
 import org.apache.tuscany.sca.databinding.PushTransformer;
@@ -52,7 +51,7 @@
         try {
             JAXBContext context = JAXBContextHelper.createJAXBContext(tContext, true);
             Marshaller marshaller = context.createMarshaller();
-            JAXBElement<?> jaxbElement = JAXBContextHelper.createJAXBElement(tContext.getSourceDataType(), source);
+            Object jaxbElement = JAXBContextHelper.createJAXBElement(context, tContext.getSourceDataType(), source);
             marshaller.marshal(jaxbElement, target);
         } catch (Exception e) {
             throw new TransformationException(e);

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java Sat May 31 16:24:19 2008
@@ -21,7 +21,6 @@
 import java.io.StringWriter;
 
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Marshaller;
 import javax.xml.transform.stream.StreamResult;
 
@@ -43,7 +42,7 @@
             Marshaller marshaller = context.createMarshaller();
             StringWriter writer = new StringWriter();
             StreamResult result = new StreamResult(writer);
-            JAXBElement<?> jaxbElement = JAXBContextHelper.createJAXBElement(tContext.getSourceDataType(), source);
+            Object jaxbElement = JAXBContextHelper.createJAXBElement(context, tContext.getSourceDataType(), source);
             marshaller.marshal(jaxbElement, result);
             return writer.toString();
         } catch (Exception e) {

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java Sat May 31 16:24:19 2008
@@ -18,6 +18,7 @@
  */
 package org.apache.tuscany.sca.databinding.jaxb;
 
+import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
@@ -44,10 +45,16 @@
         }
         try {
             QName name = null;
-            Object bean = source;
-            JAXBElement<?> element = JAXBContextHelper.createJAXBElement(context.getSourceDataType(), source);
-            name = element.getName();
-            bean = element.getValue();
+            Object bean = null;
+            if (source instanceof JAXBElement) {
+                bean = ((JAXBElement)source).getValue();
+                name = ((JAXBElement)source).getName();
+            } else {
+                JAXBContext jaxbContext = JAXBContextHelper.createJAXBContext(context, true);
+                Object element = JAXBContextHelper.createJAXBElement(jaxbContext, context.getSourceDataType(), source);
+                name = jaxbContext.createJAXBIntrospector().getElementName(element);
+                bean = source;
+            }
             BeanXMLStreamReaderImpl reader = new BeanXMLStreamReaderImpl(name, bean);
             return reader;
         } catch (Exception e) {

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java Sat May 31 16:24:19 2008
@@ -24,6 +24,7 @@
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
+import javax.xml.bind.JAXBIntrospector;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.SchemaOutputResolver;
 import javax.xml.bind.Unmarshaller;
@@ -52,7 +53,7 @@
     public static final String JAXB_CLASSES = "jaxb.classes";
 
     public static final String JAXB_CONTEXT_PATH = "jaxb.contextPath";
-    
+
     private static final JAXBContextCache cache = new JAXBContextCache();
 
     private JAXBContextHelper() {
@@ -61,7 +62,7 @@
     public static JAXBContext createJAXBContext(Class<?> cls) throws JAXBException {
         return cache.getJAXBContext(cls);
     }
-    
+
     public static JAXBContext createJAXBContext(TransformationContext tContext, boolean source) throws JAXBException {
         if (tContext == null)
             throw new TransformationException("JAXB context is not set for the transformation.");
@@ -81,28 +82,25 @@
         }
         return context;
     }
-    
+
     public static Unmarshaller getUnmarshaller(JAXBContext context) throws JAXBException {
         return cache.getUnmarshaller(context);
     }
-    
+
     public static Marshaller getMarshaller(JAXBContext context) throws JAXBException {
         return cache.getMarshaller(context);
     }
 
     @SuppressWarnings("unchecked")
-    public static JAXBElement createJAXBElement(DataType dataType, Object value) {
-        if (value instanceof JAXBElement) {
-            return (JAXBElement)value;
-        } else {
-            Class type = dataType.getPhysical();
-            Object logical = dataType.getLogical();
-            QName elementName = JAXBDataBinding.ROOT_ELEMENT;
+    public static Object createJAXBElement(JAXBContext context, DataType dataType, Object value) {
+        Class<?> type = dataType.getPhysical();
+        QName name = JAXBDataBinding.ROOT_ELEMENT;
+        if (context != null) {
+            Object logical = dataType == null ? null : dataType.getLogical();
             if (logical instanceof XMLType) {
                 XMLType xmlType = (XMLType)logical;
-                QName element = xmlType.getElementName();
-                if (element != null) {
-                    elementName = element;
+                if (xmlType.isElement()) {
+                    name = xmlType.getElementName();
                 } else {
                     /**
                      * Set the declared type to Object.class so that xsi:type
@@ -113,15 +111,29 @@
             } else {
                 type = Object.class;
             }
-            return new JAXBElement(elementName, type, value);
         }
+
+        JAXBIntrospector introspector = context.createJAXBIntrospector();
+        Object element = null;
+        if (value != null && introspector.isElement(value)) {
+            if (name == JAXBDataBinding.ROOT_ELEMENT) {
+                element = value;
+                name = introspector.getElementName(element);
+            } else {
+                value = JAXBIntrospector.getValue(value);
+            }
+        }
+        if (element == null) {
+            element = new JAXBElement(name, type, value);
+        }
+        return element;
     }
 
     @SuppressWarnings("unchecked")
-    public static Object createReturnValue(DataType dataType, Object value) {
+    public static Object createReturnValue(JAXBContext context, DataType dataType, Object value) {
         Class<?> cls = getJavaType(dataType);
         if (cls == JAXBElement.class) {
-            return createJAXBElement(dataType, value);
+            return createJAXBElement(context, dataType, value);
         } else {
             if (value instanceof JAXBElement) {
                 return ((JAXBElement)value).getValue();
@@ -204,7 +216,7 @@
         }
         return new XMLType(elementQName, typeQName);
     }
-    
+
     public static Node generateSchema(JAXBContext context) throws Exception {
         SchemaOutputResolverImpl resolver = new SchemaOutputResolverImpl();
         context.generateSchema(resolver);
@@ -225,6 +237,5 @@
         }
 
     }
-    
 
 }

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java Sat May 31 16:24:19 2008
@@ -44,7 +44,7 @@
             JAXBContext jaxbContext = JAXBContextHelper.createJAXBContext(context, false);
             Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
             Object result = unmarshaller.unmarshal(source, JAXBContextHelper.getJavaType(context.getTargetDataType()));
-            return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result);
+            return JAXBContextHelper.createReturnValue(jaxbContext, context.getTargetDataType(), result);
         } catch (Exception e) {
             throw new TransformationException(e);
         }

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java Sat May 31 16:24:19 2008
@@ -45,7 +45,7 @@
             Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
             StreamSource streamSource = new StreamSource(source);
             Object result = unmarshaller.unmarshal(streamSource, JAXBContextHelper.getJavaType(context.getTargetDataType()));
-            return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result);
+            return JAXBContextHelper.createReturnValue(jaxbContext, context.getTargetDataType(), result);
         } catch (Exception e) {
             throw new TransformationException(e);
         }

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java Sat May 31 16:24:19 2008
@@ -46,7 +46,7 @@
             Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
             StreamSource streamSource = new StreamSource(new StringReader(source));
             Object result = unmarshaller.unmarshal(streamSource, JAXBContextHelper.getJavaType(context.getTargetDataType()));
-            return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result);
+            return JAXBContextHelper.createReturnValue(jaxbContext, context.getTargetDataType(), result);
         } catch (Exception e) {
             throw new TransformationException(e);
         }

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java Sat May 31 16:24:19 2008
@@ -49,7 +49,7 @@
             // a DOM Node
             Object result = unmarshaller.unmarshal(source, JAXBContextHelper.getJavaType(context.getTargetDataType()));
             source.close();
-            return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result);
+            return JAXBContextHelper.createReturnValue(jaxbContext, context.getTargetDataType(), result);
         } catch (Exception e) {
             throw new TransformationException(e);
         }

Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java?rev=662106&r1=662105&r2=662106&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java Sat May 31 16:24:19 2008
@@ -88,7 +88,8 @@
         service.setId("ID001");
         bean.setService(service);
         bean.setOtherService(service);
-        JAXBElement<Object> element = new JAXBElement<Object>(new QName("http://ns1", "bean"), Object.class, bean);
+        QName name = new QName("http://ns1", "bean");
+        JAXBElement<Object> element = new JAXBElement<Object>(name, Object.class, bean);
         TransformationContext tContext = new TransformationContextImpl();
         XMLStreamReader reader = new JAXB2XMLStreamReader().transform(element, tContext);