You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2012/06/25 08:16:12 UTC

svn commit: r1353395 - in /axis/axis2/java/core/trunk/modules/jaxbri/src/main: java/org/apache/axis2/jaxbri/JaxbRIDataSource.java resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl

Author: veithen
Date: Mon Jun 25 06:16:11 2012
New Revision: 1353395

URL: http://svn.apache.org/viewvc?rev=1353395&view=rev
Log:
Use a more consistent lifecycle for the Marshaller (i.e. always create it in JaxbRIDataSource).

Modified:
    axis/axis2/java/core/trunk/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/JaxbRIDataSource.java
    axis/axis2/java/core/trunk/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl

Modified: axis/axis2/java/core/trunk/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/JaxbRIDataSource.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/JaxbRIDataSource.java?rev=1353395&r1=1353394&r2=1353395&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/JaxbRIDataSource.java (original)
+++ axis/axis2/java/core/trunk/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/JaxbRIDataSource.java Mon Jun 25 06:16:11 2012
@@ -45,11 +45,6 @@ public class JaxbRIDataSource implements
     private final Class outClazz;
 
     /**
-     * Marshaller.
-     */
-    private final Marshaller marshaller;
-
-    /**
      * Namespace
      */
     private String nsuri;
@@ -65,17 +60,18 @@ public class JaxbRIDataSource implements
      * @param obj
      * @param marshaller
      */
-    public JaxbRIDataSource(JAXBContext context, Class clazz, Object obj, Marshaller marshaller, String nsuri, String name) {
+    public JaxbRIDataSource(JAXBContext context, Class clazz, Object obj, String nsuri, String name) {
         this.context = context;
         this.outClazz = clazz;
         this.outObject = obj;
-        this.marshaller = marshaller;
         this.nsuri = nsuri;
         this.name = name;
     }
 
     public void serialize(java.io.OutputStream output, org.apache.axiom.om.OMOutputFormat format) throws XMLStreamException {
         try {
+            Marshaller marshaller = context.createMarshaller();
+            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
             marshaller.marshal(new JAXBElement(
                     new QName(nsuri, name), outObject.getClass(), outObject), output);
         } catch (JAXBException e) {
@@ -85,6 +81,8 @@ public class JaxbRIDataSource implements
 
     public void serialize(Writer writer, OMOutputFormat format) throws XMLStreamException {
         try {
+            Marshaller marshaller = context.createMarshaller();
+            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
             marshaller.marshal(new JAXBElement(
                     new QName(nsuri, name), outObject.getClass(), outObject), writer);
         } catch (JAXBException e) {
@@ -94,6 +92,8 @@ public class JaxbRIDataSource implements
 
     public void serialize(XMLStreamWriter xmlWriter) throws XMLStreamException {
         try {
+            Marshaller marshaller = context.createMarshaller();
+            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
             marshaller.marshal(new JAXBElement(
                     new QName(nsuri, name), outObject.getClass(), outObject), xmlWriter);
         } catch (JAXBException e) {

Modified: axis/axis2/java/core/trunk/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl?rev=1353395&r1=1353394&r2=1353395&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl (original)
+++ axis/axis2/java/core/trunk/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl Mon Jun 25 06:16:11 2012
@@ -63,47 +63,29 @@
 
                 private org.apache.axiom.om.OMElement toOM(<xsl:value-of select="@type"/> param, boolean optimizeContent, javax.xml.namespace.QName methodQName)
                 throws org.apache.axis2.AxisFault {
-                    try {
-                        javax.xml.bind.JAXBContext context = wsContext;
-                        javax.xml.bind.Marshaller marshaller = context.createMarshaller();
-                        marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
+                    org.apache.axiom.om.OMFactory factory = org.apache.axiom.om.OMAbstractFactory.getOMFactory();
 
+                    org.apache.axis2.jaxbri.JaxbRIDataSource source = new org.apache.axis2.jaxbri.JaxbRIDataSource( wsContext,
+                                                                    <xsl:value-of select="@type"/>.class,
+                                                                    param,
+                                                                    methodQName.getNamespaceURI(),
+                                                                    methodQName.getLocalPart());
+                    org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace(methodQName.getNamespaceURI(),
+                                                                       null);
+                    return factory.createOMElement(source, methodQName.getLocalPart(), namespace);
+                }
+
+                private org.apache.axiom.om.OMElement toOM(<xsl:value-of select="@type"/> param, boolean optimizeContent)
+                    throws org.apache.axis2.AxisFault {
                         org.apache.axiom.om.OMFactory factory = org.apache.axiom.om.OMAbstractFactory.getOMFactory();
 
                         org.apache.axis2.jaxbri.JaxbRIDataSource source = new org.apache.axis2.jaxbri.JaxbRIDataSource( wsContext,
                                                                         <xsl:value-of select="@type"/>.class,
                                                                         param,
-                                                                        marshaller,
-                                                                        methodQName.getNamespaceURI(),
-                                                                        methodQName.getLocalPart());
-                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace(methodQName.getNamespaceURI(),
-                                                                           null);
-                        return factory.createOMElement(source, methodQName.getLocalPart(), namespace);
-                    } catch (javax.xml.bind.JAXBException bex){
-                        throw org.apache.axis2.AxisFault.makeFault(bex);
-                    }
-                }
-
-                private org.apache.axiom.om.OMElement toOM(<xsl:value-of select="@type"/> param, boolean optimizeContent)
-                    throws org.apache.axis2.AxisFault {
-                        try {
-                            javax.xml.bind.JAXBContext context = wsContext;
-                            javax.xml.bind.Marshaller marshaller = context.createMarshaller();
-                            marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
-
-                            org.apache.axiom.om.OMFactory factory = org.apache.axiom.om.OMAbstractFactory.getOMFactory();
-
-                            org.apache.axis2.jaxbri.JaxbRIDataSource source = new org.apache.axis2.jaxbri.JaxbRIDataSource( wsContext,
-                                                                            <xsl:value-of select="@type"/>.class,
-                                                                            param,
-                                                                            marshaller,
-                                                                            "<xsl:value-of select="qname/@nsuri"/>",
-                                                                            "<xsl:value-of select="qname/@localname"/>");
-                            org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace("<xsl:value-of select="qname/@nsuri"/>", null);
-                            return factory.createOMElement(source, "<xsl:value-of select="qname/@localname"/>", namespace);
-                        } catch (javax.xml.bind.JAXBException bex){
-                            throw org.apache.axis2.AxisFault.makeFault(bex);
-                        }
+                                                                        "<xsl:value-of select="qname/@nsuri"/>",
+                                                                        "<xsl:value-of select="qname/@localname"/>");
+                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace("<xsl:value-of select="qname/@nsuri"/>", null);
+                        return factory.createOMElement(source, "<xsl:value-of select="qname/@localname"/>", namespace);
                     }
 
                 private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, <xsl:value-of select="@type"/> param, boolean optimizeContent, javax.xml.namespace.QName methodQName)