You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/04/05 20:51:28 UTC
svn commit: r525926 - in /incubator/cxf/trunk:
api/src/main/java/org/apache/cxf/transport/ buildtools/src/main/resources/
integration/jbi/src/main/java/org/apache/cxf/jbi/transport/
rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ rt/bin...
Author: dandiep
Date: Thu Apr 5 11:51:24 2007
New Revision: 525926
URL: http://svn.apache.org/viewvc?view=rev&rev=525926
Log:
o Rename Conduit.send(Message) to Conduit.prepare(Message);
o Save created JettyHTTPDestinations inside the JettyHTTPTransport.
o Few changes to objectbinding config which are half finished (too much work to
exclude it for this commit, will clean up shortly)
o Disable checkstyle rule which forced Abstract/Factory/Base for abstract classes
Modified:
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/transport/Conduit.java
incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml
incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIConduit.java
incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIDestination.java
incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBinding.java
incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/ObjectBindingTest.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MessageSenderInterceptor.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/EndpointImplTest.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/MessageReplayObserver.java
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitTest.java
incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java
incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java
incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
incubator/cxf/trunk/rt/transports/local/src/test/java/org/apache/cxf/transport/local/LocalTransportFactoryTest.java
incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/transport/Conduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/transport/Conduit.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/transport/Conduit.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/transport/Conduit.java Thu Apr 5 11:51:24 2007
@@ -47,11 +47,12 @@
public interface Conduit extends Observable {
/**
- * Send an outbound message.
+ * Prepare the message for sending. This will typically involve setting
+ * an OutputStream on the message, but it may do nothing at all.
*
* @param message the message to be sent.
*/
- void send(Message message) throws IOException;
+ void prepare(Message message) throws IOException;
/**
* Close the connections associated with the message
Modified: incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml (original)
+++ incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml Thu Apr 5 11:51:24 2007
@@ -57,10 +57,7 @@
<!-- Checks for Naming Conventions. -->
- <!-- See http://checkstyle.sf.net/config_naming.html -->
- <module name="AbstractClassName">
- <property name="format" value="^Abstract.*$|^.*Factory$|^.*Bus$|^.*ConfigurationRepository$|^.*Base$|^Exception$|^.*Builder$"/>
- </module>
+ <!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
Modified: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIConduit.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIConduit.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIConduit.java Thu Apr 5 11:51:24 2007
@@ -49,7 +49,7 @@
return LOG;
}
- public void send(Message message) throws IOException {
+ public void prepare(Message message) throws IOException {
getLogger().log(Level.FINE, "JBIConduit send message");
message.setContent(OutputStream.class,
Modified: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIDestination.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIDestination.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/transport/JBIDestination.java Thu Apr 5 11:51:24 2007
@@ -119,7 +119,7 @@
*
* @param message the message to be sent.
*/
- public void send(Message message) throws IOException {
+ public void prepare(Message message) throws IOException {
// setup the message to be send back
message.put(JBIConstants.MESSAGE_EXCHANGE_PROPERTY,
inMessage.get(JBIConstants.MESSAGE_EXCHANGE_PROPERTY));
Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBinding.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBinding.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBinding.java Thu Apr 5 11:51:24 2007
@@ -27,7 +27,7 @@
public static final String OPERATION = "objectBinding.operationName";
public static final String BINDING = "objectBinding.bindingName";
-
+
public Message createMessage() {
return new MessageImpl();
}
@@ -35,4 +35,5 @@
public Message createMessage(Message m) {
return m;
}
+
}
Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java Thu Apr 5 11:51:24 2007
@@ -18,6 +18,26 @@
*/
package org.apache.cxf.binding.object;
+import java.util.Set;
+
public class ObjectBindingConfigBean {
+ private boolean stopAfterLogicalPhases = true;
+ private Set<String> skipPhases;
+
+ public Set<String> getSkipPhases() {
+ return skipPhases;
+ }
+
+ public void setSkipPhases(Set<String> skipPhases) {
+ this.skipPhases = skipPhases;
+ }
+
+ public boolean isStopAfterLogicalPhases() {
+ return stopAfterLogicalPhases;
+ }
+ public void setStopAfterLogicalPhases(boolean stopAfterLogicalPhases) {
+ this.stopAfterLogicalPhases = stopAfterLogicalPhases;
+ }
+
}
Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java Thu Apr 5 11:51:24 2007
@@ -32,6 +32,8 @@
public class ObjectBindingFactory extends AbstractBindingFactory {
public static final String BINDING_ID = "http://cxf.apache.org/binding/object";
+ public static final String STOP_AFTER_LOGICAL = "objectBinding.stopAfterLogical";
+
private Collection<String> activationNamespaces;
public Collection<String> getActivationNamespaces() {
@@ -53,6 +55,12 @@
public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object config) {
BindingInfo info = super.createBindingInfo(si, bindingid, config);
+
+ if (config instanceof ObjectBindingConfigBean) {
+ ObjectBindingConfigBean c = (ObjectBindingConfigBean) config;
+
+ info.setProperty(STOP_AFTER_LOGICAL, c.isStopAfterLogicalPhases());
+ }
info.setName(new QName(si.getName().getNamespaceURI(),
si.getName().getLocalPart() + "ObjectBinding"));
Modified: incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/ObjectBindingTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/ObjectBindingTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/ObjectBindingTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/test/java/org/apache/cxf/binding/object/ObjectBindingTest.java Thu Apr 5 11:51:24 2007
@@ -84,8 +84,9 @@
response = message;
}
});
- c.send(m);
-
+ c.prepare(m);
+ c.close(m);
+
Thread.sleep(1000);
assertNotNull(response);
@@ -119,8 +120,8 @@
inMsg.getExchange().setInMessage(outMsg);
try {
Conduit backChannel = d.getBackChannel(inMsg, null, null);
- backChannel.send(outMsg);
- backChannel.close();
+ backChannel.prepare(outMsg);
+ backChannel.close(outMsg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MessageSenderInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MessageSenderInterceptor.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MessageSenderInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/MessageSenderInterceptor.java Thu Apr 5 11:51:24 2007
@@ -53,7 +53,7 @@
: null;
try {
- conduit.send(message);
+ conduit.prepare(message);
if (message.getInterceptorChain().doIntercept(message)) {
conduit.close(message);
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java Thu Apr 5 11:51:24 2007
@@ -112,7 +112,7 @@
conduit.setMessageObserver(obs);
Message m = new MessageImpl();
- conduit.send(m);
+ conduit.prepare(m);
OutputStream os = m.getContent(OutputStream.class);
InputStream is = getResourceAsStream(message);
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/EndpointImplTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/EndpointImplTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/EndpointImplTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/EndpointImplTest.java Thu Apr 5 11:51:24 2007
@@ -153,7 +153,7 @@
try {
Conduit backChannel = message.getDestination().getBackChannel(message, null, null);
- backChannel.send(message);
+ backChannel.prepare(message);
OutputStream out = message.getContent(OutputStream.class);
assertNotNull(out);
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/MessageReplayObserver.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/MessageReplayObserver.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/MessageReplayObserver.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/MessageReplayObserver.java Thu Apr 5 11:51:24 2007
@@ -45,7 +45,7 @@
Conduit backChannel = message.getDestination().getBackChannel(message, null, null);
- backChannel.send(message);
+ backChannel.prepare(message);
OutputStream out = message.getContent(OutputStream.class);
Assert.assertNotNull(out);
@@ -55,6 +55,7 @@
res.close();
in.close();
out.close();
+ backChannel.close(message);
} catch (Exception e) {
e.printStackTrace();
}
Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Thu Apr 5 11:51:24 2007
@@ -47,7 +47,8 @@
protected ServerEngine engine;
protected ServerEngine alternateEngine;
-
+ protected JettyHTTPTransportFactory transportFactory;
+
/**
* Constructor, using Jetty server engine.
*
@@ -56,8 +57,10 @@
* @param endpointInfo the endpoint info of the destination
* @throws IOException
*/
- public JettyHTTPDestination(Bus b, ConduitInitiator ci, EndpointInfo endpointInfo) throws IOException {
+ public JettyHTTPDestination(Bus b, JettyHTTPTransportFactory ci,
+ EndpointInfo endpointInfo) throws IOException {
this(b, ci, endpointInfo, null);
+ this.transportFactory = ci;
}
/**
@@ -69,11 +72,13 @@
* @param eng the server engine
* @throws IOException
*/
- public JettyHTTPDestination(Bus b, ConduitInitiator ci, EndpointInfo endpointInfo, ServerEngine eng)
+ public JettyHTTPDestination(Bus b, JettyHTTPTransportFactory ci,
+ EndpointInfo endpointInfo, ServerEngine eng)
throws IOException {
//Add the defualt port if the address is missing it
super(b, ci, endpointInfo, true);
alternateEngine = eng;
+ this.transportFactory = ci;
}
protected Logger getLogger() {
@@ -188,6 +193,13 @@
LOG.fine("Finished servicing http request on thread: " + Thread.currentThread());
}
}
+ }
+
+ @Override
+ public void shutdown() {
+ transportFactory.destinations.remove(endpointInfo.getAddress());
+
+ super.shutdown();
}
}
Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java Thu Apr 5 11:51:24 2007
@@ -19,6 +19,8 @@
package org.apache.cxf.transport.http_jetty;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
import javax.annotation.Resource;
@@ -28,12 +30,13 @@
import org.apache.cxf.transport.Destination;
import org.apache.cxf.transport.http.AbstractHTTPTransportFactory;
import org.apache.cxf.transport.https_jetty.JettySslConnectorFactory;
-
import org.mortbay.jetty.AbstractConnector;
import org.mortbay.jetty.nio.SelectChannelConnector;
public class JettyHTTPTransportFactory extends AbstractHTTPTransportFactory {
+ Map<String, JettyHTTPDestination> destinations = new HashMap<String, JettyHTTPDestination>();
+
public JettyHTTPTransportFactory() {
super();
@@ -46,12 +49,29 @@
@Override
public Destination getDestination(EndpointInfo endpointInfo) throws IOException {
- JettyHTTPDestination destination = new JettyHTTPDestination(getBus(), this, endpointInfo);
- configure(destination);
- destination.retrieveEngine();
+ String addr = endpointInfo.getAddress();
+ JettyHTTPDestination destination = destinations.get(addr);
+ if (destination == null) {
+ destination = createDestination(endpointInfo);
+ }
+
return destination;
}
+ private synchronized JettyHTTPDestination createDestination(EndpointInfo endpointInfo)
+ throws IOException {
+ JettyHTTPDestination destination = destinations.get(endpointInfo.getAddress());
+ if (destination == null) {
+ destination = new JettyHTTPDestination(getBus(), this, endpointInfo);
+
+ destinations.put(endpointInfo.getAddress(), destination);
+
+ configure(destination);
+ destination.retrieveEngine();
+ }
+ return destination;
+ }
+
protected static JettyConnectorFactory getConnectorFactory(SSLServerPolicy policy) {
return policy == null
? new JettyConnectorFactory() {
Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java Thu Apr 5 11:51:24 2007
@@ -21,6 +21,7 @@
import java.io.ByteArrayOutputStream;
+import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.util.ArrayList;
@@ -46,7 +47,7 @@
import org.apache.cxf.security.transport.TLSSessionInfo;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.transport.Conduit;
-import org.apache.cxf.transport.ConduitInitiator;
+import org.apache.cxf.transport.Destination;
import org.apache.cxf.transport.MessageObserver;
import org.apache.cxf.transport.http.WSDLQueryHandler;
import org.apache.cxf.transports.http.QueryHandler;
@@ -76,7 +77,6 @@
private static final String DIGEST_CHALLENGE = "Digest realm=luna";
private static final String CUSTOM_CHALLENGE = "Custom realm=sol";
private Bus bus;
- private ConduitInitiator conduitInitiator;
private Conduit decoupledBackChannel;
private EndpointInfo endpointInfo;
private EndpointReferenceType address;
@@ -93,13 +93,14 @@
private ServletOutputStream os;
private WSDLQueryHandler wsdlQueryHandler;
private QueryHandlerRegistry queryHandlerRegistry;
- private List<QueryHandler> queryHandlerList;
+ private List<QueryHandler> queryHandlerList;
+ private JettyHTTPTransportFactory transportFactory;
@After
public void tearDown() {
bus = null;
- conduitInitiator = null;
+ transportFactory = null;
decoupledBackChannel = null;
address = null;
replyTo = null;
@@ -124,6 +125,25 @@
}
@Test
+ public void testGetMultiple() throws Exception {
+ transportFactory = new JettyHTTPTransportFactory();
+ transportFactory.setBus(new CXFBusImpl());
+
+ EndpointInfo ei = new EndpointInfo();
+ ei.setAddress("http://foo");
+ Destination d1 = transportFactory.getDestination(ei);
+
+ Destination d2 = transportFactory.getDestination(ei);
+ assertEquals(d1, d2);
+
+ d2.shutdown();
+
+ Destination d3 = transportFactory.getDestination(ei);
+ assertNotSame(d1, d3);
+ }
+
+
+ @Test
public void testRemoveServant() throws Exception {
destination = setUpDestination();
setUpRemoveServant();
@@ -211,7 +231,7 @@
Conduit backChannel =
destination.getBackChannel(inMessage, null, null);
outMessage = setUpOutMessage();
- backChannel.send(outMessage);
+ backChannel.prepare(outMessage);
verifyBackChannelSend(backChannel, outMessage, 200);
}
@@ -224,7 +244,7 @@
Conduit backChannel =
destination.getBackChannel(inMessage, null, null);
outMessage = setUpOutMessage();
- backChannel.send(outMessage);
+ backChannel.prepare(outMessage);
verifyBackChannelSend(backChannel, outMessage, 500);
}
@@ -237,7 +257,7 @@
Conduit backChannel =
destination.getBackChannel(inMessage, null, null);
outMessage = setUpOutMessage();
- backChannel.send(outMessage);
+ backChannel.prepare(outMessage);
verifyBackChannelSend(backChannel, outMessage, 500, true);
}
@@ -255,7 +275,7 @@
assertEquals("unexpected response code",
202,
partialResponse.get(Message.RESPONSE_CODE));
- partialBackChannel.send(partialResponse);
+ partialBackChannel.prepare(partialResponse);
verifyBackChannelSend(partialBackChannel, partialResponse, 202);
outMessage = setUpOutMessage();
@@ -264,7 +284,7 @@
assertSame("unexpected back channel",
fullBackChannel,
decoupledBackChannel);
- fullBackChannel.send(outMessage);
+ fullBackChannel.prepare(outMessage);
}
@Test
@@ -274,7 +294,7 @@
address = getEPR("bar/foo");
bus = new CXFBusImpl();
- conduitInitiator = EasyMock.createMock(ConduitInitiator.class);
+ transportFactory = new JettyHTTPTransportFactory();
endpointInfo = new EndpointInfo();
endpointInfo.addExtensor(policy);
endpointInfo.addExtensor(new SSLServerPolicy());
@@ -284,7 +304,7 @@
endpointInfo.setAddress(NOWHERE + "bar/foo");
JettyHTTPDestination dest = new JettyHTTPDestination(bus,
- conduitInitiator,
+ transportFactory,
endpointInfo,
engine);
assertEquals(policy, dest.getServer());
@@ -308,7 +328,15 @@
EasyMock.replay(bus);
}
- conduitInitiator = EasyMock.createMock(ConduitInitiator.class);
+ transportFactory = new JettyHTTPTransportFactory() {
+ @Override
+ public Conduit getConduit(EndpointInfo epi,
+ EndpointReferenceType target) throws IOException {
+ return decoupledBackChannel;
+ }
+ };
+ transportFactory.setBus(bus);
+
engine = EasyMock.createMock(ServerEngine.class);
endpointInfo = new EndpointInfo();
endpointInfo.setAddress(NOWHERE + "bar/foo");
@@ -322,7 +350,7 @@
EasyMock.replay(engine);
JettyHTTPDestination dest = new JettyHTTPDestination(bus,
- conduitInitiator,
+ transportFactory,
endpointInfo,
engine);
dest.retrieveEngine();
@@ -457,13 +485,9 @@
if (decoupled) {
decoupledBackChannel = EasyMock.createMock(Conduit.class);
- conduitInitiator.getConduit(EasyMock.isA(EndpointInfo.class),
- EasyMock.eq(replyTo));
- EasyMock.expectLastCall().andReturn(decoupledBackChannel);
decoupledBackChannel.setMessageObserver(EasyMock.isA(MessageObserver.class));
- decoupledBackChannel.send(EasyMock.isA(Message.class));
+ decoupledBackChannel.prepare(EasyMock.isA(Message.class));
EasyMock.expectLastCall();
- EasyMock.replay(conduitInitiator);
EasyMock.replay(decoupledBackChannel);
}
EasyMock.replay(response);
Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Thu Apr 5 11:51:24 2007
@@ -342,7 +342,7 @@
*
* @param message the message to be sent.
*/
- public void send(Message message) throws IOException {
+ public void prepare(Message message) throws IOException {
message.put(HTTP_RESPONSE, response);
message.setContent(OutputStream.class, new WrappedOutputStream(message, response));
}
Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Thu Apr 5 11:51:24 2007
@@ -151,11 +151,11 @@
}
/**
- * Send an outbound message.
+ * Prepare the outbound message for sending.
*
* @param message the message to be sent.
*/
- public void send(Message message) throws IOException {
+ public void prepare(Message message) throws IOException {
Map<String, List<String>> headers = setHeaders(message);
URL currentURL = setupURL(message);
URLConnection connection =
Modified: incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitTest.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitTest.java Thu Apr 5 11:51:24 2007
@@ -109,7 +109,7 @@
public void testSend() throws Exception {
HTTPConduit conduit = setUpConduit(true, false, false);
Message message = new MessageImpl();
- conduit.send(message);
+ conduit.prepare(message);
verifySentMessage(conduit, message);
}
@@ -118,7 +118,7 @@
HTTPConduit conduit = setUpConduit(true, false, false);
Message message = new MessageImpl();
setUpHeaders(message);
- conduit.send(message);
+ conduit.prepare(message);
verifySentMessage(conduit, message, true);
}
@@ -126,7 +126,7 @@
public void testSendHttpConnection() throws Exception {
HTTPConduit conduit = setUpConduit(true, true, false);
Message message = new MessageImpl();
- conduit.send(message);
+ conduit.prepare(message);
verifySentMessage(conduit, message);
}
@@ -134,7 +134,7 @@
public void testSendHttpConnectionAutoRedirect() throws Exception {
HTTPConduit conduit = setUpConduit(true, true, true);
Message message = new MessageImpl();
- conduit.send(message);
+ conduit.prepare(message);
verifySentMessage(conduit, message);
}
@@ -142,7 +142,7 @@
public void testSendDecoupled() throws Exception {
HTTPConduit conduit = setUpConduit(true, false, false, true);
Message message = new MessageImpl();
- conduit.send(message);
+ conduit.prepare(message);
verifySentMessage(conduit, message, false, true);
}
Modified: incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java (original)
+++ incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java Thu Apr 5 11:51:24 2007
@@ -78,7 +78,7 @@
}
// prepare the message for send out , not actually send out the message
- public void send(Message message) throws IOException {
+ public void prepare(Message message) throws IOException {
getLogger().log(Level.FINE, "JMSConduit send message");
try {
Modified: incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java Thu Apr 5 11:51:24 2007
@@ -363,7 +363,7 @@
*
* @param message the message to be sent.
*/
- public void send(Message message) throws IOException {
+ public void prepare(Message message) throws IOException {
// setup the message to be send back
message.put(JMSConstants.JMS_REQUEST_MESSAGE,
inMessage.get(JMSConstants.JMS_REQUEST_MESSAGE));
Modified: incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java (original)
+++ incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/AbstractJMSTester.java Thu Apr 5 11:51:24 2007
@@ -94,7 +94,7 @@
message.setExchange(exchange);
exchange.setInMessage(message);
try {
- conduit.send(message);
+ conduit.prepare(message);
} catch (IOException ex) {
assertFalse("JMSConduit can't perpare to send out message", false);
ex.printStackTrace();
Modified: incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java (original)
+++ incubator/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java Thu Apr 5 11:51:24 2007
@@ -77,7 +77,7 @@
JMSConduit conduit = setupJMSConduit(false, false);
Message message = new MessageImpl();
try {
- conduit.send(message);
+ conduit.prepare(message);
} catch (Exception ex) {
ex.printStackTrace();
}
Modified: incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java (original)
+++ incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java Thu Apr 5 11:51:24 2007
@@ -50,12 +50,19 @@
this.destination = destination;
}
- public void send(final Message message) throws IOException {
- if (Boolean.TRUE.equals(message.get(DIRECT_DISPATCH))) {
- dispatchDirect(message);
- } else {
+ public void prepare(final Message message) throws IOException {
+ if (!Boolean.TRUE.equals(message.get(DIRECT_DISPATCH))) {
dispatchViaPipe(message);
}
+ }
+
+ @Override
+ public void close(Message message) throws IOException {
+ if (Boolean.TRUE.equals(message.get(DIRECT_DISPATCH))) {
+ dispatchDirect(message);
+ }
+
+ super.close(message);
}
private void dispatchDirect(Message message) {
Modified: incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java Thu Apr 5 11:51:24 2007
@@ -73,7 +73,7 @@
this.conduit = conduit;
}
- public void send(final Message message) throws IOException {
+ public void prepare(final Message message) throws IOException {
final Exchange exchange = (Exchange)message.getExchange().get(LocalConduit.IN_EXCHANGE);
if (Boolean.TRUE.equals(message.get(LocalConduit.DIRECT_DISPATCH))) {
Modified: incubator/cxf/trunk/rt/transports/local/src/test/java/org/apache/cxf/transport/local/LocalTransportFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/local/src/test/java/org/apache/cxf/transport/local/LocalTransportFactoryTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/transports/local/src/test/java/org/apache/cxf/transport/local/LocalTransportFactoryTest.java (original)
+++ incubator/cxf/trunk/rt/transports/local/src/test/java/org/apache/cxf/transport/local/LocalTransportFactoryTest.java Thu Apr 5 11:51:24 2007
@@ -55,7 +55,7 @@
conduit.setMessageObserver(obs);
Message m = new MessageImpl();
- conduit.send(m);
+ conduit.prepare(m);
OutputStream out = m.getContent(OutputStream.class);
out.write("hello".getBytes());
@@ -86,10 +86,10 @@
m.put(LocalConduit.DIRECT_DISPATCH, Boolean.TRUE);
m.setDestination(d);
m.setContent(InputStream.class, new ByteArrayInputStream("hello".getBytes()));
- conduit.send(m);
+ conduit.prepare(m);
+ conduit.close(m);
assertEquals("hello", obs.getResponseStream().toString());
-
}
static class EchoObserver implements MessageObserver {
@@ -98,7 +98,7 @@
Conduit backChannel = message.getDestination().getBackChannel(message, null, null);
message.remove(LocalConduit.DIRECT_DISPATCH);
- backChannel.send(message);
+ backChannel.prepare(message);
OutputStream out = message.getContent(OutputStream.class);
assertNotNull(out);
Modified: incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java (original)
+++ incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java Thu Apr 5 11:51:24 2007
@@ -288,7 +288,7 @@
callbacks = ((AbstractCachedOutputStream)os).getCallbacks();
}
- c.send(message);
+ c.prepare(message);
os = message.getContent(OutputStream.class);
if (os instanceof AbstractCachedOutputStream && callbacks.size() > 1) {
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java?view=diff&rev=525926&r1=525925&r2=525926
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java Thu Apr 5 11:51:24 2007
@@ -73,7 +73,7 @@
+ "boundary=\"----=_Part_4_701508.1145579811786\"";
m.put(Message.CONTENT_TYPE, ct);
- conduit.send(m);
+ conduit.prepare(m);
OutputStream os = m.getContent(OutputStream.class);
InputStream is = getResourceAsStream("request");