Author: dkulp
Date: Wed Aug 26 19:12:40 2009
New Revision: 808162
URL: http://svn.apache.org/viewvc?rev=808162&view=rev
Log:
Split the HTTPConduit stuff out of AbstractHTTPTransportFactory so the
conduit initiator stuff is completely separate from the destination
stuff.
Some fixes to ExtensionManagerBus to really allow deferred
binding/transports
Reduce number of initialized beans in a default bus to 8.
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/Jsr250BeanPostProcessor.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/cxf-extension-http-jetty.xml
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/ClientOnlyHTTPTransportFactory.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java
(original)
+++
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java
Wed Aug 26 19:12:40 2009
@@ -88,18 +88,17 @@
extensions.put(ResourceManager.class, resourceManager);
- ExtensionManagerImpl em = new ExtensionManagerImpl(
-
Thread.currentThread().getContextClassLoader(),
- extensions,
- resourceManager,
- this);
-
+ ExtensionManagerImpl em = new ExtensionManagerImpl(new String[0],
+
Thread.currentThread().getContextClassLoader(),
+ extensions,
+ resourceManager,
+ this);
+
setState(BusState.INITIAL);
BusLifeCycleManager lifeCycleManager =
this.getExtension(BusLifeCycleManager.class);
if (null != lifeCycleManager) {
lifeCycleManager.initComplete();
-
}
DestinationFactoryManager dfm =
this.getExtension(DestinationFactoryManager.class);
@@ -121,6 +120,9 @@
this);
extensions.put(BindingFactoryManager.class, bfm);
}
+ em.load(new String[] {ExtensionManagerImpl.BUS_EXTENSION_RESOURCE,
+
ExtensionManagerImpl.BUS_EXTENSION_RESOURCE_COMPAT});
+
this.setExtension(em, ExtensionManager.class);
}
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
(original)
+++
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
Wed Aug 26 19:12:40 2009
@@ -83,7 +83,12 @@
resourceManager.addResourceResolver(new ObjectTypeResolver(this));
deferred = new ConcurrentHashMap<String, Collection<Extension>>();
-
+ load(resources);
+ }
+ public final void load(String resources[]) {
+ if (resources == null) {
+ return;
+ }
try {
for (String resource : resources) {
load(resource);
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/Jsr250BeanPostProcessor.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/Jsr250BeanPostProcessor.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/Jsr250BeanPostProcessor.java
(original)
+++
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/Jsr250BeanPostProcessor.java
Wed Aug 26 19:12:40 2009
@@ -96,9 +96,9 @@
&& injectable(bean, beanId)) {
new ResourceInjector(getResourceManager(bean)).inject(bean);
/*
- System.err.println("p :" + (++count) + ": " +
bean.getClass().getName() + " " + beanId);
+ System.out.println("p :" + (++count) + ": " +
bean.getClass().getName() + " " + beanId);
} else if (bean != null) {
- System.err.println("np: " + (++count2)
+ System.out.println("np: " + (++count2)
+ ": " + bean.getClass().getName() + " " +
beanId);
*/
}
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
(original)
+++
cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
Wed Aug 26 19:12:40 2009
@@ -92,22 +92,26 @@
backChannel = getInbuiltBackChannel(inMessage);
}
} else {
- ConduitInitiator conduitInitiator = getConduitInitiator();
- if (conduitInitiator != null) {
- backChannel = conduitInitiator.getConduit(endpointInfo,
target);
- // ensure decoupled back channel input stream is closed
- backChannel.setMessageObserver(new MessageObserver() {
- public void onMessage(Message m) {
- if
(m.getContentFormats().contains(InputStream.class)) {
- InputStream is =
m.getContent(InputStream.class);
- try {
- is.close();
- } catch (Exception e) {
- // ignore
+ ConduitInitiatorManager mgr =
bus.getExtension(ConduitInitiatorManager.class);
+ if (mgr != null) {
+ ConduitInitiator conduitInitiator
+ =
mgr.getConduitInitiatorForUri(target.getAddress().getValue());
+ if (conduitInitiator != null) {
+ backChannel =
conduitInitiator.getConduit(endpointInfo, target);
+ // ensure decoupled back channel input stream is closed
+ backChannel.setMessageObserver(new MessageObserver() {
+ public void onMessage(Message m) {
+ if
(m.getContentFormats().contains(InputStream.class)) {
+ InputStream is =
m.getContent(InputStream.class);
+ try {
+ is.close();
+ } catch (Exception e) {
+ // ignore
+ }
}
}
- }
- });
+ });
+ }
}
}
}
@@ -135,14 +139,6 @@
}
/**
- * @return the associated conduit initiator, or null if decoupled mode
- * not supported.
- */
- protected ConduitInitiator getConduitInitiator() {
- return null;
- }
-
- /**
* @param inMessage the incoming message
* @return the inbuilt backchannel
*/
Modified: cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml (original)
+++ cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml Wed Aug 26
19:12:40 2009
@@ -24,9 +24,10 @@
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
- <!-- For Testing using the Swing commons processor, uncomment one of:
- <bean
class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
- <context:annotation-config/>
+ <!-- For Testing using the Swing commons processor, uncomment one
of:-->
+ <!--
+ <bean
class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
+ <context:annotation-config/>
-->
<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl"/>
<bean id="org.apache.cxf.bus.spring.BusApplicationListener"
Modified:
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
Wed Aug 26 19:12:40 2009
@@ -87,7 +87,7 @@
) throws IOException {
//Add the defualt port if the address is missing it
- super(b, ci, endpointInfo, true);
+ super(b, endpointInfo, true);
this.transportFactory = ci;
this.serverEngineFactory = ci.getJettyHTTPServerEngineFactory();
nurl = new URL(endpointInfo.getAddress());
Modified:
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPTransportFactory.java
Wed Aug 26 19:12:40 2009
@@ -20,7 +20,6 @@
import java.io.IOException;
import java.security.GeneralSecurityException;
-import java.util.ArrayList;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -32,7 +31,6 @@
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.transport.Destination;
import org.apache.cxf.transport.DestinationFactory;
-import org.apache.cxf.transport.DestinationFactoryManager;
import org.apache.cxf.transport.http.AbstractHTTPTransportFactory;
public class JettyHTTPTransportFactory extends AbstractHTTPTransportFactory
@@ -45,30 +43,16 @@
super();
}
- @Resource(name = "cxf")
+ @Resource
public void setBus(Bus b) {
super.setBus(b);
}
-
+
@PostConstruct
public void finalizeConfig() {
if (null == bus) {
return;
}
-
- if (getTransportIds() == null) {
- setTransportIds(new ArrayList<String>(activationNamespaces));
- }
- if (activationNamespaces == null) {
- activationNamespaces = getTransportIds();
- }
- DestinationFactoryManager dfm =
bus.getExtension(DestinationFactoryManager.class);
- if (null != dfm && null != activationNamespaces) {
- for (String ns : activationNamespaces) {
- dfm.registerDestinationFactory(ns, this);
- }
- }
-
// This call will register the server engine factory
// with the Bus.
getJettyHTTPServerEngineFactory();
Modified:
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/cxf-extension-http-jetty.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/cxf-extension-http-jetty.xml?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/cxf-extension-http-jetty.xml
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/main/resources/META-INF/cxf/cxf-extension-http-jetty.xml
Wed Aug 26 19:12:40 2009
@@ -27,8 +27,7 @@
<bean class="org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory"
id="org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory"
- lazy-init="false"
-
depends-on="org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory">
+ lazy-init="true">
<property name="bus" ref="cxf"/>
<property name="transportIds">
<list>
Modified:
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
(original)
+++
cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
Wed Aug 26 19:12:40 2009
@@ -23,9 +23,12 @@
import java.io.OutputStream;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
@@ -34,6 +37,7 @@
import javax.xml.namespace.QName;
import org.apache.cxf.Bus;
+import org.apache.cxf.BusException;
import org.apache.cxf.BusFactory;
import org.apache.cxf.bus.CXFBusImpl;
import org.apache.cxf.common.util.Base64Utility;
@@ -51,6 +55,8 @@
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.transport.Conduit;
+import org.apache.cxf.transport.ConduitInitiator;
+import org.apache.cxf.transport.ConduitInitiatorManager;
import org.apache.cxf.transport.Destination;
import org.apache.cxf.transport.MessageObserver;
import org.apache.cxf.transports.http.QueryHandler;
@@ -460,8 +466,8 @@
Conduit fullBackChannel =
destination.getBackChannel(inMessage, null, replyTo);
assertSame("unexpected back channel",
- fullBackChannel,
- decoupledBackChannel);
+ decoupledBackChannel,
+ fullBackChannel);
fullBackChannel.prepare(outMessage);
}
@@ -576,16 +582,46 @@
}
return serverEngineFactory;
}
-
- @Override
- public Conduit getConduit(EndpointInfo epi,
- EndpointReferenceType target) throws
IOException {
+ };
+
+ final ConduitInitiator ci = new ConduitInitiator() {
+ public Conduit getConduit(EndpointInfo targetInfo) throws
IOException {
return decoupledBackChannel;
}
+
+ public Conduit getConduit(EndpointInfo localInfo,
EndpointReferenceType target)
+ throws IOException {
+ return decoupledBackChannel;
+ }
+
+ public List<String> getTransportIds() {
+ return null;
+ }
+
+ public Set<String> getUriPrefixes() {
+ return new HashSet<String>(Collections.singletonList("http"));
+ }
+
+ };
+ ConduitInitiatorManager mgr = new ConduitInitiatorManager() {
+ public void deregisterConduitInitiator(String name) {
+ }
+
+ public ConduitInitiator getConduitInitiator(String name) throws
BusException {
+ return null;
+ }
+
+ public ConduitInitiator getConduitInitiatorForUri(String uri) {
+ return ci;
+ }
+
+ public void registerConduitInitiator(String name, ConduitInitiator
factory) {
+ }
};
if (!mockedBus) {
bus = new CXFBusImpl();
+ bus.setExtension(mgr, ConduitInitiatorManager.class);
} else {
bus = EasyMock.createMock(Bus.class);
bus.getExtension(EndpointResolverRegistry.class);
@@ -595,6 +631,7 @@
EasyMock.replay(bus);
}
+
engine = EasyMock.createNiceMock(JettyHTTPServerEngine.class);
ServiceInfo serviceInfo = new ServiceInfo();
serviceInfo.setName(new QName("bla", "Service"));
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
Wed Aug 26 19:12:40 2009
@@ -60,7 +60,6 @@
import org.apache.cxf.transport.AbstractDestination;
import org.apache.cxf.transport.AbstractMultiplexDestination;
import org.apache.cxf.transport.Conduit;
-import org.apache.cxf.transport.ConduitInitiator;
import org.apache.cxf.transport.http.policy.PolicyUtils;
import org.apache.cxf.transport.https.SSLUtils;
import org.apache.cxf.transports.http.configuration.HTTPServerPolicy;
@@ -90,7 +89,6 @@
private static final long serialVersionUID = 1L;
protected final Bus bus;
- protected final ConduitInitiator conduitInitiator;
// Configuration values
protected HTTPServerPolicy server;
@@ -108,13 +106,11 @@
* @throws IOException
*/
public AbstractHTTPDestination(Bus b,
- ConduitInitiator ci,
EndpointInfo ei,
boolean dp)
throws IOException {
super(b, getTargetReference(getAddressValue(ei, dp), b), ei);
bus = b;
- conduitInitiator = ci;
initConfig();
}
@@ -181,13 +177,6 @@
}
/**
- * @return the associated conduit initiator
- */
- protected ConduitInitiator getConduitInitiator() {
- return conduitInitiator;
- }
-
- /**
* Copy the request headers into the message.
*
* @param message the current message
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
Wed Aug 26 19:12:40 2009
@@ -19,7 +19,6 @@
package org.apache.cxf.transport.http;
-import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;
@@ -28,14 +27,11 @@
import java.util.List;
import java.util.Set;
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
import javax.wsdl.Port;
import javax.wsdl.extensions.http.HTTPAddress;
import javax.wsdl.extensions.soap.SOAPAddress;
import javax.xml.namespace.QName;
-import org.apache.cxf.Bus;
import org.apache.cxf.configuration.Configurer;
import org.apache.cxf.configuration.jsse.TLSClientParameters;
import org.apache.cxf.service.Service;
@@ -43,25 +39,17 @@
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.transport.AbstractTransportFactory;
-import org.apache.cxf.transport.Conduit;
-import org.apache.cxf.transport.ConduitInitiator;
-import org.apache.cxf.transport.ConduitInitiatorManager;
import org.apache.cxf.transport.https.HttpsURLConnectionFactory;
-import org.apache.cxf.ws.addressing.EndpointReferenceType;
import org.apache.cxf.wsdl.http.AddressType;
import org.apache.cxf.wsdl11.WSDLEndpointFactory;
/**
- * As a ConduitInitiator, this class sets up new HTTPConduits for particular
- * endpoints.
- *
- * TODO: Document WSDLEndpointFactory
*
*/
public abstract class AbstractHTTPTransportFactory
extends AbstractTransportFactory
- implements ConduitInitiator, WSDLEndpointFactory {
+ implements WSDLEndpointFactory {
/**
* This constant holds the prefixes served by this factory.
@@ -73,99 +61,12 @@
}
/**
- * The CXF Bus which this HTTPTransportFactory
- * is governed.
- */
- protected Bus bus;
-
- /**
- * This collection contains "activationNamespaces" which is synominous
- * with "transportId"s.
- */
- protected Collection<String> activationNamespaces;
-
- /**
- * This method is used by Spring to inject the bus.
- * @param b The CXF bus.
- */
- @Resource(name = "cxf")
- public void setBus(Bus b) {
- bus = b;
- }
-
- /**
- * This method returns the CXF Bus under which this HTTPTransportFactory
- * is governed.
- */
- public Bus getBus() {
- return bus;
- }
-
- /**
* This call is used by CXF ExtensionManager to inject the
activationNamespaces
* @param ans The transport ids.
*/
public void setActivationNamespaces(Collection<String> ans) {
- activationNamespaces = ans;
- }
-
- /**
- * This call gets called after this class is instantiated by Spring.
- * It registers itself as a ConduitInitiator and DestinationFactory under
- * the many names that are considered "transportIds" (which are currently
- * named "activationNamespaces").
- */
- @PostConstruct
- public void registerWithBindingManager() {
- if (null == bus) {
- return;
- }
-
- if (getTransportIds() == null) {
- setTransportIds(new ArrayList<String>(activationNamespaces));
- } else if (activationNamespaces == null) {
- activationNamespaces = getTransportIds();
- }
-
- ConduitInitiatorManager cim =
bus.getExtension(ConduitInitiatorManager.class);
- //Note, activationNamespaces can be null
- if (null != cim && null != activationNamespaces) {
- for (String ns : activationNamespaces) {
- cim.registerConduitInitiator(ns, this);
- }
- }
- }
-
- /**
- * This call creates a new HTTPConduit for the endpoint. It is equivalent
- * to calling getConduit without an EndpointReferenceType.
- */
- public Conduit getConduit(EndpointInfo endpointInfo) throws IOException {
- return getConduit(endpointInfo, endpointInfo.getTarget());
- }
-
- /**
- * This call creates a new HTTP Conduit based on the EndpointInfo and
- * EndpointReferenceType.
- * TODO: What are the formal constraints on EndpointInfo and
- * EndpointReferenceType values?
- */
- public Conduit getConduit(
- EndpointInfo endpointInfo,
- EndpointReferenceType target
- ) throws IOException {
- HTTPConduit conduit = target == null
- ? new HTTPConduit(bus, endpointInfo)
- : new HTTPConduit(bus, endpointInfo, target);
- // Spring configure the conduit.
- String address = conduit.getAddress();
- if (address != null && address.indexOf('?') != -1) {
- address = address.substring(0, address.indexOf('?'));
- }
- configure(conduit, conduit.getBeanName(), address);
- conduit.finalizeConfig();
- return conduit;
+ setTransportIds(new ArrayList<String>(ans));
}
public EndpointInfo createEndpointInfo(
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/ClientOnlyHTTPTransportFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/ClientOnlyHTTPTransportFactory.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/ClientOnlyHTTPTransportFactory.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/ClientOnlyHTTPTransportFactory.java
Wed Aug 26 19:12:40 2009
@@ -18,9 +18,57 @@
*/
package org.apache.cxf.transport.http;
-public class ClientOnlyHTTPTransportFactory extends
AbstractHTTPTransportFactory {
+import java.io.IOException;
+
+import javax.annotation.Resource;
+
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.transport.Conduit;
+import org.apache.cxf.transport.ConduitInitiator;
+import org.apache.cxf.ws.addressing.EndpointReferenceType;
+
+public class ClientOnlyHTTPTransportFactory extends
AbstractHTTPTransportFactory
+ implements ConduitInitiator {
public ClientOnlyHTTPTransportFactory() {
}
+
+ @Resource
+ public void setBus(Bus b) {
+ super.setBus(b);
+ }
+
+ /**
+ * This call creates a new HTTPConduit for the endpoint. It is equivalent
+ * to calling getConduit without an EndpointReferenceType.
+ */
+ public Conduit getConduit(EndpointInfo endpointInfo) throws IOException {
+ return getConduit(endpointInfo, endpointInfo.getTarget());
+ }
+ /**
+ * This call creates a new HTTP Conduit based on the EndpointInfo and
+ * EndpointReferenceType.
+ * TODO: What are the formal constraints on EndpointInfo and
+ * EndpointReferenceType values?
+ */
+ public Conduit getConduit(
+ EndpointInfo endpointInfo,
+ EndpointReferenceType target
+ ) throws IOException {
+ HTTPConduit conduit = target == null
+ ? new HTTPConduit(bus, endpointInfo)
+ : new HTTPConduit(bus, endpointInfo, target);
+ // Spring configure the conduit.
+ String address = conduit.getAddress();
+ if (address != null && address.indexOf('?') != -1) {
+ address = address.substring(0, address.indexOf('?'));
+ }
+ configure(conduit, conduit.getBeanName(), address);
+ conduit.finalizeConfig();
+ return conduit;
+ }
+
}
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletDestination.java
Wed Aug 26 19:12:40 2009
@@ -32,7 +32,6 @@
import org.apache.cxf.message.ExchangeImpl;
import org.apache.cxf.message.MessageImpl;
import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.transport.ConduitInitiator;
import org.apache.cxf.transport.MessageObserver;
import org.apache.cxf.transport.http.AbstractHTTPDestination;
import org.apache.cxf.transport.http.HTTPSession;
@@ -57,13 +56,12 @@
* @throws IOException
*/
public ServletDestination(Bus b,
- ConduitInitiator ci,
EndpointInfo ei,
ServletTransportFactory fact,
String p)
throws IOException {
// would add the default port to the address
- super(b, ci, ei, false);
+ super(b, ei, false);
factory = fact;
path = p;
}
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java
(original)
+++
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletTransportFactory.java
Wed Aug 26 19:12:40 2009
@@ -36,7 +36,6 @@
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.transport.Destination;
import org.apache.cxf.transport.DestinationFactory;
-import org.apache.cxf.transport.DestinationFactoryManager;
import org.apache.cxf.transport.http.AbstractHTTPTransportFactory;
import org.apache.cxf.wsdl.http.AddressType;
@@ -71,18 +70,6 @@
@Resource(name = "cxf")
public void setBus(Bus b) {
super.setBus(b);
- if (null == bus) {
- return;
- }
- if (activationNamespaces == null) {
- activationNamespaces = getTransportIds();
- }
- DestinationFactoryManager dfm =
bus.getExtension(DestinationFactoryManager.class);
- if (null != dfm && null != activationNamespaces) {
- for (String ns : activationNamespaces) {
- dfm.registerDestinationFactory(ns, this);
- }
- }
}
public void removeDestination(String path) {
@@ -94,7 +81,7 @@
ServletDestination d =
getDestinationForPath(endpointInfo.getAddress());
if (d == null) {
String path = getTrimmedPath(endpointInfo.getAddress());
- d = new ServletDestination(getBus(), this, endpointInfo, this,
path);
+ d = new ServletDestination(getBus(), endpointInfo, this, path);
destinations.put(path, d);
if (controller != null
Modified:
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml?rev=808162&r1=808161&r2=808162&view=diff
==============================================================================
---
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
(original)
+++
cxf/trunk/rt/transports/http/src/main/resources/META-INF/cxf/cxf-servlet.xml
Wed Aug 26 19:12:40 2009
@@ -22,6 +22,8 @@
xmlns:foo="http://cxf.apache.org/configuration/foo"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
<bean class="org.apache.cxf.transport.servlet.ServletTransportFactory"
id="org.apache.cxf.transport.servlet.ServletTransportFactory">