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 2010/05/05 08:27:41 UTC
svn commit: r941159 - in /cxf/trunk/rt:
core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java
transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
Author: dkulp
Date: Wed May 5 06:27:41 2010
New Revision: 941159
URL: http://svn.apache.org/viewvc?rev=941159&view=rev
Log:
[CXF-2792] Make sure custom set executor gets passed into conduit and
used
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java?rev=941159&r1=941158&r2=941159&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java Wed May 5 06:27:41 2010
@@ -773,13 +773,20 @@ public class ClientImpl
if (exchange.isSynchronous() || executor == null) {
exchange.put(MessageObserver.class, this);
} else {
+ exchange.put(Executor.class, executor);
exchange.put(MessageObserver.class, new MessageObserver() {
public void onMessage(final Message message) {
- executor.execute(new Runnable() {
- public void run() {
- ClientImpl.this.onMessage(message);
- }
- });
+ if (!message.getExchange()
+ .containsKey(Executor.class.getName() + ".USING_SPECIFIED")) {
+
+ executor.execute(new Runnable() {
+ public void run() {
+ ClientImpl.this.onMessage(message);
+ }
+ });
+ } else {
+ ClientImpl.this.onMessage(message);
+ }
}
});
}
Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java?rev=941159&r1=941158&r2=941159&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java Wed May 5 06:27:41 2010
@@ -459,13 +459,15 @@ public class ServiceImpl extends Service
configureObject(service);
// Configure the JaxWsEndpoitnImpl
- JaxWsEndpointImpl jaxwsEndpoint = (JaxWsEndpointImpl) ClientProxy.getClient(obj).getEndpoint();
+ Client client = ClientProxy.getClient(obj);
+ client.getEndpoint().setExecutor(executor);
+ client.setExecutor(executor);
+ JaxWsEndpointImpl jaxwsEndpoint = (JaxWsEndpointImpl) client.getEndpoint();
configureObject(jaxwsEndpoint);
List<Handler> hc = jaxwsEndpoint.getJaxwsBinding().getHandlerChain();
hc.addAll(handlerResolver.getHandlerChain(portInfos.get(portName)));
jaxwsEndpoint.getJaxwsBinding().setHandlerChain(hc);
-
LOG.log(Level.FINE, "created proxy", obj);
ports.add(portName);
Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=941159&r1=941158&r2=941159&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Wed May 5 06:27:41 2010
@@ -41,6 +41,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Executor;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -78,7 +79,6 @@ import org.apache.cxf.transport.https.Ce
import org.apache.cxf.transport.https.CertConstraintsJaxBUtils;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.apache.cxf.version.Version;
-import org.apache.cxf.workqueue.AutomaticWorkQueue;
import org.apache.cxf.workqueue.WorkQueueManager;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
import org.apache.cxf.ws.policy.Assertor;
@@ -2059,13 +2059,19 @@ public class HTTPConduit
}
}
};
- WorkQueueManager mgr = outMessage.getExchange().get(Bus.class)
- .getExtension(WorkQueueManager.class);
- AutomaticWorkQueue queue = mgr.getNamedWorkQueue("http-conduit");
- if (queue == null) {
- queue = mgr.getAutomaticWorkQueue();
+ Executor ex = outMessage.getExchange().get(Executor.class);
+ if (ex == null) {
+ WorkQueueManager mgr = outMessage.getExchange().get(Bus.class)
+ .getExtension(WorkQueueManager.class);
+ ex = mgr.getNamedWorkQueue("http-conduit");
+ if (ex == null) {
+ ex = mgr.getAutomaticWorkQueue();
+ }
+ } else {
+ outMessage.getExchange().put(Executor.class.getName()
+ + ".USING_SPECIFIED", Boolean.TRUE);
}
- queue.execute(runnable);
+ ex.execute(runnable);
}
}
protected void handleResponseInternal() throws IOException {