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 16:41:52 UTC
svn commit: r767160 - in /cxf/branches/2.1.x-fixes: ./
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/
Author: dkulp
Date: Tue Apr 21 14:41:51 2009
New Revision: 767160
URL: http://svn.apache.org/viewvc?rev=767160&view=rev
Log:
Merged revisions 767159 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r767159 | dkulp | 2009-04-21 10:37:30 -0400 (Tue, 21 Apr 2009) | 2 lines
[CXF-2181] Cache message factories for dispatch/provider stuff as well.
........
Modified:
cxf/branches/2.1.x-fixes/ (props changed)
cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchInDatabindingInterceptor.java
cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchOutDatabindingInterceptor.java
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Apr 21 14:41:51 2009
@@ -1 +1 @@
-/cxf/trunk:743446,753380,753397,753421,754585,755365,757499,757859,757899,757935,757951,758195,758303,758308,758378,758690,758910,759890,759961,759963-759964,759966,760029,760073,760150,760171,760178,760198,760212,760456,760468,760582,760938,761094,761113,761120,761317,761759,761789,762393,762518,762567,763200,763272,763495,763854,763931,763942,763953,764033-764034,764581,764599-764606,764887,765357,766013,766058,766100-766101,766763,766770,766860,766962-766963
+/cxf/trunk:743446,753380,753397,753421,754585,755365,757499,757859,757899,757935,757951,758195,758303,758308,758378,758690,758910,759890,759961,759963-759964,759966,760029,760073,760150,760171,760178,760198,760212,760456,760468,760582,760938,761094,761113,761120,761317,761759,761789,762393,762518,762567,763200,763272,763495,763854,763931,763942,763953,764033-764034,764581,764599-764606,764887,765357,766013,766058,766100-766101,766763,766770,766860,766962-766963,767159
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchInDatabindingInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchInDatabindingInterceptor.java?rev=767160&r1=767159&r2=767160&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchInDatabindingInterceptor.java (original)
+++ cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchInDatabindingInterceptor.java Tue Apr 21 14:41:51 2009
@@ -49,7 +49,6 @@
import org.apache.cxf.attachment.AttachmentImpl;
import org.apache.cxf.binding.soap.Soap11;
-import org.apache.cxf.binding.soap.Soap12;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.SoapVersion;
import org.apache.cxf.common.logging.LogUtils;
@@ -57,7 +56,6 @@
import org.apache.cxf.databinding.source.NodeDataReader;
import org.apache.cxf.databinding.source.XMLStreamDataReader;
import org.apache.cxf.endpoint.Endpoint;
-//import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.helpers.DOMUtils;
import org.apache.cxf.helpers.XMLUtils;
@@ -75,9 +73,6 @@
import org.apache.cxf.message.MessageContentsList;
import org.apache.cxf.message.XMLMessage;
import org.apache.cxf.phase.Phase;
-//import org.apache.cxf.service.model.BindingOperationInfo;
-//import org.apache.cxf.service.model.MessageInfo;
-//import org.apache.cxf.service.model.MessagePartInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.service.model.OperationInfo;
import org.apache.cxf.service.model.ServiceModelUtil;
@@ -86,8 +81,10 @@
public class DispatchInDatabindingInterceptor extends AbstractInDatabindingInterceptor {
private static final Logger LOG = LogUtils.getL7dLogger(DispatchInDatabindingInterceptor.class);
- private Class type;
- private Service.Mode mode;
+ private final Class type;
+ private final Service.Mode mode;
+ private MessageFactory soap11Factory;
+ private MessageFactory soap12Factory;
public DispatchInDatabindingInterceptor(Class type, Mode mode) {
super(Phase.READ);
@@ -95,7 +92,21 @@
this.type = type;
this.mode = mode;
}
-
+ private MessageFactory getFactory(SoapMessage message) throws SOAPException {
+ return getFactory(message.getVersion());
+ }
+ private synchronized MessageFactory getFactory(SoapVersion version) throws SOAPException {
+ if (version instanceof Soap11) {
+ if (soap11Factory == null) {
+ soap11Factory = MessageFactory.newInstance();
+ }
+ return soap11Factory;
+ }
+ if (soap12Factory == null) {
+ soap12Factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+ }
+ return soap12Factory;
+ }
public void handleMessage(Message message) throws Fault {
Exchange ex = message.getExchange();
@@ -184,8 +195,6 @@
}
private SOAPMessage newSOAPMessage(InputStream is, SoapMessage msg) throws Exception {
- SoapVersion version = msg.getVersion();
-
MimeHeaders headers = new MimeHeaders();
if (msg.containsKey(Message.PROTOCOL_HEADERS)) {
Map<String, List<String>> heads = CastUtils.cast((Map<?, ?>)msg.get(Message.PROTOCOL_HEADERS));
@@ -196,13 +205,7 @@
}
}
- MessageFactory msgFactory = null;
- if (version == null || version instanceof Soap11) {
- msgFactory = MessageFactory.newInstance();
- } else if (version instanceof Soap12) {
- msgFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
- }
- return msgFactory.createMessage(headers, is);
+ return getFactory(msg).createMessage(headers, is);
}
void setupBindingOperationInfo(Exchange exch, SOAPMessage msg) {
@@ -324,13 +327,7 @@
if (SOAPMessage.class.isAssignableFrom(type)) {
try {
- SoapVersion version = ((SoapMessage)message).getVersion();
- MessageFactory msgFactory = null;
- if (version == null || version instanceof Soap11) {
- msgFactory = MessageFactory.newInstance();
- } else if (version instanceof Soap12) {
- msgFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
- }
+ MessageFactory msgFactory = getFactory((SoapMessage)message);
SOAPMessage msg = msgFactory.createMessage();
msg.getSOAPPart().setContent(source);
Modified: cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchOutDatabindingInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchOutDatabindingInterceptor.java?rev=767160&r1=767159&r2=767160&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchOutDatabindingInterceptor.java (original)
+++ cxf/branches/2.1.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/DispatchOutDatabindingInterceptor.java Tue Apr 21 14:41:51 2009
@@ -52,7 +52,6 @@
import org.apache.cxf.attachment.AttachmentImpl;
import org.apache.cxf.binding.soap.Soap11;
-import org.apache.cxf.binding.soap.Soap12;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.SoapVersion;
import org.apache.cxf.common.WSDLConstants;
@@ -78,7 +77,9 @@
private static final Logger LOG = LogUtils.getL7dLogger(DispatchOutDatabindingInterceptor.class);
private DispatchOutDatabindingEndingInterceptor ending;
- private Service.Mode mode;
+ private final Service.Mode mode;
+ private MessageFactory soap11Factory;
+ private MessageFactory soap12Factory;
public DispatchOutDatabindingInterceptor(Mode mode) {
super(Phase.WRITE);
@@ -86,7 +87,21 @@
this.mode = mode;
}
-
+ private MessageFactory getFactory(SoapMessage message) throws SOAPException {
+ return getFactory(message.getVersion());
+ }
+ private synchronized MessageFactory getFactory(SoapVersion version) throws SOAPException {
+ if (version instanceof Soap11) {
+ if (soap11Factory == null) {
+ soap11Factory = MessageFactory.newInstance();
+ }
+ return soap11Factory;
+ }
+ if (soap12Factory == null) {
+ soap12Factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+ }
+ return soap12Factory;
+ }
public void handleMessage(Message message) throws Fault {
Object obj = null;
Object result = message.getContent(List.class);
@@ -337,13 +352,7 @@
}
} else {
try {
- SoapVersion version = ((SoapMessage)message).getVersion();
- MessageFactory msgFactory = null;
- if (version == null || version instanceof Soap11) {
- msgFactory = MessageFactory.newInstance();
- } else if (version instanceof Soap12) {
- msgFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
- }
+ MessageFactory msgFactory = getFactory((SoapMessage)message);
SOAPMessage msg = msgFactory.createMessage();
msg.getSOAPPart().setContent(source);
if (message.getAttachments() != null) {
@@ -375,12 +384,7 @@
SOAPMessage msg = null;
MimeHeaders headers = new MimeHeaders();
- MessageFactory msgFactory = null;
- if (version == null || version instanceof Soap11) {
- msgFactory = MessageFactory.newInstance();
- } else if (version instanceof Soap12) {
- msgFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
- }
+ MessageFactory msgFactory = getFactory(version);
if (is != null) {
msg = msgFactory.createMessage(headers, is);