You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/04/21 05:20:23 UTC

svn commit: r766963 - in /cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj: SAAJInInterceptor.java SAAJOutInterceptor.java

Author: dkulp
Date: Tue Apr 21 03:20:21 2009
New Revision: 766963

URL: http://svn.apache.org/viewvc?rev=766963&view=rev
Log:
Cache the message factories

Modified:
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJOutInterceptor.java

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java?rev=766963&r1=766962&r2=766963&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java Tue Apr 21 03:20:21 2009
@@ -66,7 +66,11 @@
  */
 public class SAAJInInterceptor extends AbstractSoapInterceptor {
     private static final ResourceBundle BUNDLE = BundleUtils.getBundle(SAAJInInterceptor.class);
-
+    
+    private MessageFactory factory11;
+    private MessageFactory factory12;
+    
+    
     public SAAJInInterceptor() {
         super(Phase.PRE_PROTOCOL);
     }
@@ -74,15 +78,22 @@
         super(phase);
     }
     
+    private synchronized MessageFactory getFactory(SoapMessage message) throws SOAPException {
+        if (message.getVersion() instanceof Soap11) {
+            if (factory11 == null) { 
+                factory11 = MessageFactory.newInstance();
+            } 
+            return factory11;
+        }
+        if (factory12 == null) {
+            factory12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+        }
+        return factory12;
+    }
+    
     public void handleMessage(SoapMessage message) throws Fault {
         try {
-            MessageFactory factory = null;
-            if (message.getVersion() instanceof Soap11) {
-                factory = MessageFactory.newInstance();
-            } else {
-                factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
-            }
-            
+            MessageFactory factory = getFactory(message);
             SOAPMessage soapMessage = factory.createMessage();
             message.setContent(SOAPMessage.class, soapMessage);
             

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJOutInterceptor.java?rev=766963&r1=766962&r2=766963&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJOutInterceptor.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJOutInterceptor.java Tue Apr 21 03:20:21 2009
@@ -38,6 +38,7 @@
 
 
 import org.apache.cxf.attachment.AttachmentImpl;
+import org.apache.cxf.binding.soap.Soap11;
 import org.apache.cxf.binding.soap.SoapFault;
 import org.apache.cxf.binding.soap.SoapMessage;
 import org.apache.cxf.binding.soap.SoapVersion;
@@ -67,22 +68,30 @@
     
     private static final ResourceBundle BUNDLE = BundleUtils.getBundle(SAAJOutInterceptor.class);
     
-
+    private MessageFactory factory11;
+    private MessageFactory factory12;
+    
     public SAAJOutInterceptor() {
         super(Phase.PRE_PROTOCOL);
     }
-    
+    private synchronized MessageFactory getFactory(SoapMessage message) throws SOAPException {
+        if (message.getVersion() instanceof Soap11) {
+            if (factory11 == null) { 
+                factory11 = MessageFactory.newInstance();
+            } 
+            return factory11;
+        }
+        if (factory12 == null) {
+            factory12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+        }
+        return factory12;
+    }
     public void handleMessage(SoapMessage message) throws Fault {
         SOAPMessage saaj = message.getContent(SOAPMessage.class);
         if (saaj == null) {
             SoapVersion version = message.getVersion();
             try {
-                MessageFactory factory = null;
-                if (version.getVersion() == 1.1) {
-                    factory = MessageFactory.newInstance();
-                } else {
-                    factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
-                }
+                MessageFactory factory = getFactory(message);
                 SOAPMessage soapMessage = factory.createMessage();
 
                 SOAPPart soapPart = soapMessage.getSOAPPart();