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