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);