summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-09-30 22:07:56 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-09-30 22:07:56 +0000
commit881494d2d1f8c186ebbe45433a34ef7d859c6adb (patch)
treef186323b9bc26ca9a7da4336a64e9974a873d559 /sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java
parent9d3cbbfe0b8a62ed9e61bf32e72f6da27c73bba8 (diff)
Use the cached marshaller/unmarshaller for JAXB databinding
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1177857 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java b/sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java
index 7ecca3a042..6731f5ae1c 100644
--- a/sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java
+++ b/sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java
@@ -25,10 +25,10 @@ import javax.xml.bind.Marshaller;
import javax.xml.transform.stream.StreamResult;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.databinding.BaseTransformer;
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.BaseTransformer;
import org.apache.tuscany.sca.databinding.xml.XMLStringDataBinding;
/**
@@ -44,11 +44,15 @@ public class JAXB2String extends BaseTransformer<Object, String> implements Pull
public String transform(Object source, TransformationContext tContext) {
try {
JAXBContext context = contextHelper.createJAXBContext(tContext, true);
- Marshaller marshaller = context.createMarshaller();
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
Object jaxbElement = JAXBContextHelper.createJAXBElement(context, tContext.getSourceDataType(), source);
- marshaller.marshal(jaxbElement, result);
+ Marshaller marshaller = contextHelper.getMarshaller(context);
+ try {
+ marshaller.marshal(jaxbElement, result);
+ } finally {
+ contextHelper.releaseJAXBMarshaller(context, marshaller);
+ }
return writer.toString();
} catch (Exception e) {
throw new TransformationException(e);