diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2011-09-30 22:07:56 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2011-09-30 22:07:56 +0000 |
commit | 881494d2d1f8c186ebbe45433a34ef7d859c6adb (patch) | |
tree | f186323b9bc26ca9a7da4336a64e9974a873d559 /sca-java-2.x/trunk/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java | |
parent | 9d3cbbfe0b8a62ed9e61bf32e72f6da27c73bba8 (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.java | 10 |
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); |