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">


Reply via email to