cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dk...@apache.org
Subject svn commit: r524286 [1/2] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/binding/ common/common/src/main/java/org/apache/cxf/configuration/spring/ rt/bindings/http/src/main/java/org/apache/cxf/binding/http/ rt/bindings/http/src/test/java/o...
Date Fri, 30 Mar 2007 21:53:15 GMT
Author: dkulp
Date: Fri Mar 30 14:53:13 2007
New Revision: 524286

URL: http://svn.apache.org/viewvc?view=rev&rev=524286
Log:
Start of support for actually using the binding ID sent into Endpoint.create

* Remove runtime dependency of XML binding from jaxws
* Update simple/jaxws frontends to use BindingFactory(Manager) instead of the hardcoded factories


Added:
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
      - copied, changed from r524118, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoFactoryBean.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java
      - copied, changed from r524118, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoFactoryBeanDefinitionParser.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
      - copied, changed from r524118, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoFactoryBean.java
Removed:
    incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/HttpBindingInfoFactoryBean.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoFactoryBean.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoFactoryBeanDefinitionParser.java
    incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingInfoFactoryBean.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/AbstractBindingInfoFactoryBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoFactoryBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/META-INF/bus-extensions.xml
Modified:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/binding/BindingFactory.java
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
    incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/HttpBindingFactory.java
    incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java
    incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/ClientTest.java
    incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/mtom/MtomTest.java
    incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/wrapped/WrappedServiceTest.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/NamespaceHandler.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/bus-extensions.xml
    incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java
    incubator/cxf/trunk/rt/bindings/xml/src/main/resources/META-INF/bus-extensions.xml
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java
    incubator/cxf/trunk/rt/frontend/jaxws/pom.xml
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/ServerBeanDefinitionParser.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/header/HeaderClientServerTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
    incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_bare.wsdl
    incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_mixed.wsdl
    incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_wrapped.wsdl
    incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/ServiceBuilder.java

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/binding/BindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/binding/BindingFactory.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/binding/BindingFactory.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/binding/BindingFactory.java Fri Mar 30 14:53:13 2007
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.binding;
 
+import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.BindingInfo;
 
 /**
@@ -33,4 +34,12 @@
      */
     Binding createBinding(BindingInfo binding);
 
+    /**
+     * Creates a "default" BindingInfo object for the service. Can return a subclass. 
+     * @param service
+     * @param namespace
+     * @param configObject - binding specific configuration object
+     * @return
+     */
+    BindingInfo createBindingInfo(Service service, String namespace, Object configObject);
 }

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java Fri Mar 30 14:53:13 2007
@@ -64,7 +64,7 @@
         
     }
 
-    private Element getFirstChild(Element element) {
+    protected Element getFirstChild(Element element) {
         Element first = null;
         NodeList children = element.getChildNodes();
         for (int i = 0; i < children.getLength(); i++) {

Modified: incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/HttpBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/HttpBindingFactory.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/HttpBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/HttpBindingFactory.java Fri Mar 30 14:53:13 2007
@@ -18,27 +18,45 @@
  */
 package org.apache.cxf.binding.http;
 
+import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import javax.annotation.Resource;
+import javax.xml.namespace.QName;
 
 import org.apache.cxf.binding.AbstractBindingFactory;
 import org.apache.cxf.binding.Binding;
 import org.apache.cxf.binding.http.interceptor.ContentTypeOutInterceptor;
 import org.apache.cxf.binding.http.interceptor.DatabindingInSetupInterceptor;
 import org.apache.cxf.binding.http.interceptor.DatabindingOutSetupInterceptor;
+import org.apache.cxf.binding.http.strategy.ConventionStrategy;
+import org.apache.cxf.binding.http.strategy.JRAStrategy;
+import org.apache.cxf.binding.http.strategy.ResourceStrategy;
 import org.apache.cxf.binding.xml.XMLBinding;
 import org.apache.cxf.binding.xml.interceptor.XMLFaultInInterceptor;
 import org.apache.cxf.binding.xml.interceptor.XMLFaultOutInterceptor;
+import org.apache.cxf.frontend.MethodDispatcher;
 import org.apache.cxf.interceptor.AttachmentInInterceptor;
 import org.apache.cxf.interceptor.AttachmentOutInterceptor;
 import org.apache.cxf.interceptor.StaxOutInterceptor;
+import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.BindingInfo;
+import org.apache.cxf.service.model.BindingOperationInfo;
+import org.apache.cxf.service.model.OperationInfo;
+import org.apache.cxf.service.model.ServiceInfo;
 
 public class HttpBindingFactory extends AbstractBindingFactory {
 
     public static final String HTTP_BINDING_ID = "http://apache.org/cxf/binding/http";
-    private Collection<String> activationNamespaces;    
+    private Collection<String> activationNamespaces;
+    private List<ResourceStrategy> strategies = new ArrayList<ResourceStrategy>();
+
+    public HttpBindingFactory() {
+        strategies.add(new JRAStrategy());
+        strategies.add(new ConventionStrategy());
+    }
     
     @Resource(name = "activationNamespaces")
     public void setActivationNamespaces(Collection<String> ans) {
@@ -67,5 +85,45 @@
         
         return binding;
     }
+    
+    
+    public BindingInfo createBindingInfo(Service service, String namespace, Object obj) {
+        URIMapper mapper = new URIMapper();
+        
+        ServiceInfo si = service.getServiceInfo();
+        BindingInfo info = new BindingInfo(si, 
+                                           HttpBindingFactory.HTTP_BINDING_ID);
+        info.setName(new QName(si.getName().getNamespaceURI(), 
+                               si.getName().getLocalPart() + "HttpBinding"));
+        
+        service.put(URIMapper.class.getName(), mapper);
+        MethodDispatcher md = (MethodDispatcher) service.get(MethodDispatcher.class.getName()); 
+
+        for (OperationInfo o : si.getInterface().getOperations()) {
+            BindingOperationInfo bop = info.buildOperation(o.getName(), o.getInputName(), o.getOutputName());
+
+            info.addOperation(bop);
+            
+            Method m = md.getMethod(bop);
+            
+            // attempt to map the method to a resource using different strategies
+            for (ResourceStrategy s : strategies) {
+                // Try different ones until we find one that succeeds
+                if (s.map(bop, m, mapper)) {
+                    break;
+                }
+            }
+        }
+        
+        return info;
+    }
+
+    public List<ResourceStrategy> getStrategies() {
+        return strategies;
+    }
+
+    public void setStrategies(List<ResourceStrategy> strategies) {
+        this.strategies = strategies;
+    }    
 
 }

Modified: incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java Fri Mar 30 14:53:13 2007
@@ -28,7 +28,6 @@
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.binding.http.AbstractRestTest;
 import org.apache.cxf.binding.http.HttpBindingFactory;
-import org.apache.cxf.binding.http.HttpBindingInfoFactoryBean;
 import org.apache.cxf.binding.http.URIMapper;
 import org.apache.cxf.endpoint.ServerImpl;
 import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
@@ -40,13 +39,14 @@
     @Test
     public void testCreation() throws Exception {
         BindingFactoryManager bfm = getBus().getExtension(BindingFactoryManager.class);
-        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, new HttpBindingFactory());
+        HttpBindingFactory factory = new HttpBindingFactory();
+        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, factory);
         
         JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
         sf.setBus(getBus());
+        sf.setBindingId(HttpBindingFactory.HTTP_BINDING_ID);
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(false);
-        sf.setBindingFactory(new HttpBindingInfoFactoryBean());
         sf.setAddress("http://localhost:9001/foo/");
 
         Map<String, Object> props = new HashMap<String, Object>();
@@ -121,13 +121,14 @@
     @Test
     public void testSetContentType() throws Exception {
         BindingFactoryManager bfm = getBus().getExtension(BindingFactoryManager.class);
-        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, new HttpBindingFactory());
+        HttpBindingFactory factory = new HttpBindingFactory();
+        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, factory);
         
         JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
         sf.setBus(getBus());
+        sf.setBindingId(HttpBindingFactory.HTTP_BINDING_ID);
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(false);
-        sf.setBindingFactory(new HttpBindingInfoFactoryBean());
         sf.setAddress("http://localhost:9001/foo/");
 
         Map<String, Object> props = new HashMap<String, Object>();

Modified: incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/ClientTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/ClientTest.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/ClientTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/ClientTest.java Fri Mar 30 14:53:13 2007
@@ -28,7 +28,6 @@
 import org.apache.cxf.binding.http.Customer;
 import org.apache.cxf.binding.http.Customers;
 import org.apache.cxf.binding.http.HttpBindingFactory;
-import org.apache.cxf.binding.http.HttpBindingInfoFactoryBean;
 import org.apache.cxf.endpoint.ClientImpl;
 import org.apache.cxf.endpoint.ServerImpl;
 import org.apache.cxf.interceptor.LoggingOutInterceptor;
@@ -45,7 +44,6 @@
         sf.setBus(getBus());
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(false);
-        sf.setBindingFactory(new HttpBindingInfoFactoryBean());
         sf.setAddress("http://localhost:9001/foo/");
 
         Map<String, Object> props = new HashMap<String, Object>();

Modified: incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/mtom/MtomTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/mtom/MtomTest.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/mtom/MtomTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/mtom/MtomTest.java Fri Mar 30 14:53:13 2007
@@ -27,7 +27,6 @@
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.binding.http.AbstractRestTest;
 import org.apache.cxf.binding.http.HttpBindingFactory;
-import org.apache.cxf.binding.http.HttpBindingInfoFactoryBean;
 import org.apache.cxf.endpoint.ServerImpl;
 import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.apache.cxf.person.Person;
@@ -39,16 +38,17 @@
     @Test
     public void testService() throws Exception {
         BindingFactoryManager bfm = getBus().getExtension(BindingFactoryManager.class);
-        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, new HttpBindingFactory());
+        HttpBindingFactory factory = new HttpBindingFactory();
+        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, factory);
 
         PeopleServiceImpl impl = new PeopleServiceImpl();
 
         JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
         sf.setBus(getBus());
+        sf.setBindingId(HttpBindingFactory.HTTP_BINDING_ID);        
         sf.setServiceBean(impl);
         sf.getServiceFactory().setInvoker(new BeanInvoker(impl));
         sf.getServiceFactory().setWrapped(true);
-        sf.setBindingFactory(new HttpBindingInfoFactoryBean());
         sf.setAddress("http://localhost:9001/");
 
         Map<String, Object> props = new HashMap<String, Object>();

Modified: incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/wrapped/WrappedServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/wrapped/WrappedServiceTest.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/wrapped/WrappedServiceTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/wrapped/WrappedServiceTest.java Fri Mar 30 14:53:13 2007
@@ -26,7 +26,6 @@
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.binding.http.AbstractRestTest;
 import org.apache.cxf.binding.http.HttpBindingFactory;
-import org.apache.cxf.binding.http.HttpBindingInfoFactoryBean;
 import org.apache.cxf.binding.http.URIMapper;
 import org.apache.cxf.binding.http.strategy.ConventionStrategy;
 import org.apache.cxf.endpoint.ServerImpl;
@@ -38,7 +37,7 @@
     
     @Test
     public void testConvention() throws Exception {
-        HttpBindingInfoFactoryBean hbif = new HttpBindingInfoFactoryBean();
+        HttpBindingFactory hbif = new HttpBindingFactory();
         hbif.getStrategies().clear();
         hbif.getStrategies().add(new ConventionStrategy());
         
@@ -47,18 +46,18 @@
     
     @Test
     public void testJRA() throws Exception {
-        testService(new HttpBindingInfoFactoryBean());
+        testService(new HttpBindingFactory());
     }
 
-    public void testService(HttpBindingInfoFactoryBean httpFactory) throws Exception {
+    public void testService(HttpBindingFactory httpFactory) throws Exception {
         BindingFactoryManager bfm = getBus().getExtension(BindingFactoryManager.class);
-        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, new HttpBindingFactory());
+        bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, httpFactory);
         
         JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
         sf.setBus(getBus());
+        sf.setBindingId(HttpBindingFactory.HTTP_BINDING_ID);
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(true);
-        sf.setBindingFactory(httpFactory);
         sf.setAddress("http://localhost:9001/");
 
         Map<String, Object> props = new HashMap<String, Object>();

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Fri Mar 30 14:53:13 2007
@@ -58,11 +58,13 @@
 import org.apache.cxf.interceptor.StaxOutInterceptor;
 import org.apache.cxf.interceptor.URIMappingInterceptor;
 import org.apache.cxf.interceptor.WrappedOutInterceptor;
+import org.apache.cxf.message.Message;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.BindingMessageInfo;
 import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.MessageInfo;
 import org.apache.cxf.service.model.MessagePartInfo;
+import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.tools.common.extensions.soap.SoapBody;
 import org.apache.cxf.tools.common.extensions.soap.SoapHeader;
@@ -87,6 +89,89 @@
         activationNamespaces = ans;
     }
 
+    public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object conf) {
+        SoapBindingInfoConfigBean config;
+        if (conf instanceof SoapBindingInfoConfigBean) {
+            config = (SoapBindingInfoConfigBean)conf;
+        } else {
+            config = new SoapBindingInfoConfigBean();
+        }
+        
+        SoapBindingInfo info = new SoapBindingInfo(si,
+                                                   "http://schemas.xmlsoap.org/wsdl/soap/",
+                                                   config.getSoapVersion());
+        
+        info.setName(new QName(si.getName().getNamespaceURI(), 
+                               si.getName().getLocalPart() + "SoapBinding"));
+        info.setStyle(config.getStyle());
+        info.setTransportURI(config.getTransportURI());
+        
+        if (config.isMtomEnabled()) {
+            info.setProperty(Message.MTOM_ENABLED, Boolean.TRUE);
+        }
+        
+        for (OperationInfo op : si.getInterface().getOperations()) {
+            SoapOperationInfo sop = new SoapOperationInfo();
+            sop.setAction(config.getSoapAction(op));
+            sop.setStyle(config.getStyle(op));
+            
+            BindingOperationInfo bop = 
+                info.buildOperation(op.getName(), op.getInputName(), op.getOutputName());
+            
+            bop.addExtensor(sop);
+            
+            info.addOperation(bop);
+            
+            
+            BindingMessageInfo bInput = bop.getInput();
+            if (bInput != null) {
+                MessageInfo input = null;
+                BindingMessageInfo unwrappedMsg = bInput;
+                if (bop.isUnwrappedCapable()) {
+                    input = bop.getOperationInfo().getUnwrappedOperation().getInput();
+                    unwrappedMsg = bop.getUnwrappedOperation().getInput();
+                } else {
+                    input = bop.getOperationInfo().getInput();
+                }
+                setupHeaders(bop, bInput, unwrappedMsg, input, config);
+            }
+            
+            BindingMessageInfo bOutput = bop.getOutput();
+            if (bOutput != null) {
+                MessageInfo output = null;
+                BindingMessageInfo unwrappedMsg = bOutput;
+                if (bop.isUnwrappedCapable()) {
+                    output = bop.getOperationInfo().getUnwrappedOperation().getOutput();
+                    unwrappedMsg = bop.getUnwrappedOperation().getOutput();
+                } else {
+                    output = bop.getOperationInfo().getOutput();
+                }
+                setupHeaders(bop, bOutput, unwrappedMsg, output, config);
+            }
+        }
+        
+        return info;
+    }
+    private void setupHeaders(BindingOperationInfo op, 
+                              BindingMessageInfo bMsg, 
+                              BindingMessageInfo unwrappedBMsg, 
+                              MessageInfo msg,
+                              SoapBindingInfoConfigBean config) {
+        List<MessagePartInfo> parts = new ArrayList<MessagePartInfo>();
+        for (MessagePartInfo part : msg.getMessageParts()) {
+            if (config.isHeader(op, part)) {
+                SoapHeaderInfo headerInfo = new SoapHeaderInfo();
+                headerInfo.setPart(part);
+                headerInfo.setUse(config.getUse());
+
+                bMsg.addExtensor(headerInfo);
+            } else {
+                parts.add(part);
+            }
+        }
+        unwrappedBMsg.setMessageParts(parts);
+    }
+    
     public Binding createBinding(BindingInfo binding) {
         // TODO what about the mix style/use?
 

Copied: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java (from r524118, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoFactoryBean.java)
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java?view=diff&rev=524286&p1=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoFactoryBean.java&r1=524118&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java Fri Mar 30 14:53:13 2007
@@ -18,112 +18,27 @@
  */
 package org.apache.cxf.binding.soap;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.cxf.binding.soap.model.SoapBindingInfo;
-import org.apache.cxf.binding.soap.model.SoapHeaderInfo;
-import org.apache.cxf.binding.soap.model.SoapOperationInfo;
-import org.apache.cxf.message.Message;
-import org.apache.cxf.service.factory.AbstractBindingInfoFactoryBean;
-import org.apache.cxf.service.model.BindingInfo;
-import org.apache.cxf.service.model.BindingMessageInfo;
 import org.apache.cxf.service.model.BindingOperationInfo;
-import org.apache.cxf.service.model.MessageInfo;
 import org.apache.cxf.service.model.MessagePartInfo;
 import org.apache.cxf.service.model.OperationInfo;
-import org.apache.cxf.service.model.ServiceInfo;
 
-public class SoapBindingInfoFactoryBean extends AbstractBindingInfoFactoryBean {
+public class SoapBindingInfoConfigBean {
     private SoapVersion soapVersion = Soap11.getInstance();
     private String style = "document";
     private String use;
     private String transportURI = "http://schemas.xmlsoap.org/soap/http";
+    private String defaultSoapAction = "";
     private boolean mtomEnabled;
     
-    @Override
-    public BindingInfo create() {
-        ServiceInfo si = getServiceInfo();
-        SoapBindingInfo info = new SoapBindingInfo(si, "http://schemas.xmlsoap.org/wsdl/soap/", soapVersion);
-        
-        info.setName(getBindingName());
-        info.setStyle(getStyle());
-        info.setTransportURI(getTransportURI());
-        
-        if (mtomEnabled) {
-            info.setProperty(Message.MTOM_ENABLED, Boolean.TRUE);
-        }
-        
-        for (OperationInfo op : si.getInterface().getOperations()) {
-            SoapOperationInfo sop = new SoapOperationInfo();
-            sop.setAction(getSoapAction(op));
-            sop.setStyle(getStyle(op));
-            
-            BindingOperationInfo bop = 
-                info.buildOperation(op.getName(), op.getInputName(), op.getOutputName());
-            
-            bop.addExtensor(sop);
-            
-            info.addOperation(bop);
-            
-            
-            BindingMessageInfo bInput = bop.getInput();
-            if (bInput != null) {
-                MessageInfo input = null;
-                BindingMessageInfo unwrappedMsg = bInput;
-                if (bop.isUnwrappedCapable()) {
-                    input = bop.getOperationInfo().getUnwrappedOperation().getInput();
-                    unwrappedMsg = bop.getUnwrappedOperation().getInput();
-                } else {
-                    input = bop.getOperationInfo().getInput();
-                }
-                setupHeaders(bop, bInput, unwrappedMsg, input);
-            }
-            
-            BindingMessageInfo bOutput = bop.getOutput();
-            if (bOutput != null) {
-                MessageInfo output = null;
-                BindingMessageInfo unwrappedMsg = bOutput;
-                if (bop.isUnwrappedCapable()) {
-                    output = bop.getOperationInfo().getUnwrappedOperation().getOutput();
-                    unwrappedMsg = bop.getUnwrappedOperation().getOutput();
-                } else {
-                    output = bop.getOperationInfo().getOutput();
-                }
-                setupHeaders(bop, bOutput, unwrappedMsg, output);
-            }
-        }
-        
-        return info;
-    }
 
-    private void setupHeaders(BindingOperationInfo op, 
-                              BindingMessageInfo bMsg, 
-                              BindingMessageInfo unwrappedBMsg, 
-                              MessageInfo msg) {
-        List<MessagePartInfo> parts = new ArrayList<MessagePartInfo>();
-        for (MessagePartInfo part : msg.getMessageParts()) {
-            if (isHeader(op, part)) {
-                SoapHeaderInfo headerInfo = new SoapHeaderInfo();
-                headerInfo.setPart(part);
-                headerInfo.setUse(getUse());
-
-                bMsg.addExtensor(headerInfo);
-            } else {
-                parts.add(part);
-            }
-        }
-        unwrappedBMsg.setMessageParts(parts);
-    }
+
 
     protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
         return false;
     }
 
-    private String getSoapAction(OperationInfo op) {
-        return "";
+    public String getSoapAction(OperationInfo op) {
+        return defaultSoapAction;
     }
 
     public String getTransportURI() {
@@ -140,12 +55,6 @@
 
     protected String getStyle(OperationInfo op) {
         return getStyle();
-    }
-
-    protected QName getBindingName() {
-        ServiceInfo si = getServiceInfo();
-        return new QName(si.getName().getNamespaceURI(), 
-                         si.getName().getLocalPart() + "SoapBinding");
     }
 
     public SoapVersion getSoapVersion() {

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/NamespaceHandler.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/NamespaceHandler.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/NamespaceHandler.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/NamespaceHandler.java Fri Mar 30 14:53:13 2007
@@ -22,6 +22,6 @@
 
 public class NamespaceHandler extends NamespaceHandlerSupport {
     public void init() {
-        registerBeanDefinitionParser("soapBinding", new SoapBindingInfoFactoryBeanDefinitionParser());        
+        registerBeanDefinitionParser("soapBinding", new SoapBindingInfoConfigBeanDefinitionParser());        
     }
 }

Copied: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java (from r524118, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoFactoryBeanDefinitionParser.java)
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java?view=diff&rev=524286&p1=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoFactoryBeanDefinitionParser.java&r1=524118&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoFactoryBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Fri Mar 30 14:53:13 2007
@@ -22,12 +22,12 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 
-import org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean;
+import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 
-public class SoapBindingInfoFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
+public class SoapBindingInfoConfigBeanDefinitionParser extends AbstractBeanDefinitionParser {
 
     @Override
     protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
@@ -41,7 +41,7 @@
 
     @Override
     protected Class getBeanClass(Element arg0) {
-        return SoapBindingInfoFactoryBean.class;
+        return SoapBindingInfoConfigBean.class;
     }
 
 }

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/bus-extensions.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/bus-extensions.xml?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/bus-extensions.xml (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/bus-extensions.xml Fri Mar 30 14:53:13 2007
@@ -29,15 +29,6 @@
         <namespace>http://schemas.xmlsoap.org/wsdl/soap12/</namespace>
     </extension>
     
-     <extension class="org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean" deferred="true">
-        <namespace>http://schemas.xmlsoap.org/soap/</namespace>
-        <namespace>http://schemas.xmlsoap.org/wsdl/soap/</namespace>      
-        <namespace>http://schemas.xmlsoap.org/wsdl/soap/http</namespace>
-        <namespace>http://cxf.apache.org/transports/jms</namespace>
-        <namespace>http://www.w3.org/2003/05/soap/bindings/HTTP/</namespace>
-        <namespace>http://schemas.xmlsoap.org/wsdl/soap12/</namespace>        
-    </extension>
-    
     <extension class="org.apache.cxf.binding.soap.SoapTransportFactory" 
       interface="org.apache.cxf.transport.DestinationFactory" deferred="true">
         <namespace>http://schemas.xmlsoap.org/soap/</namespace>

Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/XMLBindingFactory.java Fri Mar 30 14:53:13 2007
@@ -21,6 +21,7 @@
 import java.util.Collection;
 
 import javax.annotation.Resource;
+import javax.xml.namespace.QName;
 
 import org.apache.cxf.binding.AbstractBindingFactory;
 import org.apache.cxf.binding.Binding;
@@ -34,6 +35,9 @@
 import org.apache.cxf.interceptor.StaxOutInterceptor;
 import org.apache.cxf.interceptor.URIMappingInterceptor;
 import org.apache.cxf.service.model.BindingInfo;
+import org.apache.cxf.service.model.BindingOperationInfo;
+import org.apache.cxf.service.model.OperationInfo;
+import org.apache.cxf.service.model.ServiceInfo;
 
 public class XMLBindingFactory extends AbstractBindingFactory {
 
@@ -69,6 +73,20 @@
         xb.getOutFaultInterceptors().add(new XMLFaultOutInterceptor());
         
         return xb;
+    } 
+    
+    public BindingInfo createBindingInfo(ServiceInfo service, String namespace, Object config) {
+        BindingInfo info = new BindingInfo(service, "http://cxf.apache.org/bindings/xformat");        
+        info.setName(new QName(service.getName().getNamespaceURI(), 
+                               service.getName().getLocalPart() + "XMLBinding"));
+
+        for (OperationInfo op : service.getInterface().getOperations()) {                       
+            BindingOperationInfo bop = 
+                info.buildOperation(op.getName(), op.getInputName(), op.getOutputName());
+            info.addOperation(bop);
+        }
+        
+        return info;
     }
 
 }

Modified: incubator/cxf/trunk/rt/bindings/xml/src/main/resources/META-INF/bus-extensions.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/xml/src/main/resources/META-INF/bus-extensions.xml?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/bindings/xml/src/main/resources/META-INF/bus-extensions.xml (original)
+++ incubator/cxf/trunk/rt/bindings/xml/src/main/resources/META-INF/bus-extensions.xml Fri Mar 30 14:53:13 2007
@@ -24,9 +24,4 @@
         <namespace>http://www.w3.org/2004/08/wsdl/http</namespace>       
     </extension>
     
-    <extension class="org.apache.cxf.binding.xml.XMLBindingInfoFactoryBean" deferred="true">
-        <namespace>http://cxf.apache.org/bindings/xformat</namespace>
-        <namespace>http://www.w3.org/2004/08/wsdl/http</namespace>        
-    </extension>
-    
 </extensions>

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/AbstractBindingFactory.java Fri Mar 30 14:53:13 2007
@@ -31,6 +31,7 @@
 import javax.xml.namespace.QName;
 
 import org.apache.cxf.Bus;
+import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.AbstractPropertiesHolder;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.BindingOperationInfo;
@@ -65,10 +66,14 @@
      * @param service
      * @return
      */
-    public BindingInfo createBindingInfo(ServiceInfo service, String namespace) {
+    public BindingInfo createBindingInfo(ServiceInfo service, String namespace, Object config) {
         return new BindingInfo(service, namespace);
     }
     
+    public BindingInfo createBindingInfo(Service service, String namespace, Object config) {
+        return createBindingInfo(service.getServiceInfo(), namespace, config);
+    }
+    
     
     /**
      * Copies extensors from the Binding to BindingInfo.
@@ -78,7 +83,7 @@
      */
     public BindingInfo createBindingInfo(ServiceInfo service, Binding binding, String ns) {
 
-        BindingInfo bi = createBindingInfo(service, ns);
+        BindingInfo bi = createBindingInfo(service, ns, null);
         
         return initializeBindingInfo(service, binding, bi);
     }
@@ -97,12 +102,17 @@
                 outName = bop.getBindingOutput().getName();
             }
             String portTypeNs = binding.getPortType().getQName().getNamespaceURI();
-            BindingOperationInfo bop2 = bi.buildOperation(new QName(portTypeNs,
-                                                                    bop.getName()), inName, outName);
+            QName opName = new QName(portTypeNs,
+                                     bop.getName());
+            BindingOperationInfo bop2 = bi.getOperation(opName);
+            if (bop2 == null) {
+                bop2 = bi.buildOperation(opName, inName, outName);
+                if (bop2 != null) {
+                    bi.addOperation(bop2);
+                }
+            }
             if (bop2 != null) {
-
                 copyExtensors(bop2, bop.getExtensibilityElements());
-                bi.addOperation(bop2);
                 if (bop.getBindingInput() != null) {
                     copyExtensors(bop2.getInput(), bop.getBindingInput().getExtensibilityElements());
                 }

Modified: incubator/cxf/trunk/rt/frontend/jaxws/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/pom.xml?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/pom.xml (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/pom.xml Fri Mar 30 14:53:13 2007
@@ -85,6 +85,7 @@
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-bindings-xml</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
 
         <dependency>

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java Fri Mar 30 14:53:13 2007
@@ -72,6 +72,7 @@
     private Object implementor;
     private Server server;
     private Service service;
+    private String bindingId;
     private JaxWsImplementorInfo implInfo;
     private JaxWsServiceFactoryBean serviceFactory;
     private Map<String, Object> properties;
@@ -93,6 +94,7 @@
     public EndpointImpl(Bus b, Object i, String uri, URL wsdl) {
         bus = b;
         implementor = i;
+        bindingId = uri;
         // build up the Service model
         implInfo = new JaxWsImplementorInfo(implementor.getClass());
         serviceFactory = new JaxWsServiceFactoryBean(implInfo);
@@ -214,10 +216,11 @@
     protected void doPublish(String address) {
         checkPublishPermission();
 
-        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
+        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(serviceFactory);
+        
         svrFactory.setBus(bus);
+        svrFactory.setBindingId(bindingId);
         svrFactory.setAddress(address);
-        svrFactory.setServiceFactory(serviceFactory);
         svrFactory.setStart(false);
         svrFactory.setServiceBean(implementor);
         configureObject(svrFactory);

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java Fri Mar 30 14:53:13 2007
@@ -23,10 +23,8 @@
 import org.apache.cxf.binding.AbstractBindingFactory;
 import org.apache.cxf.binding.soap.SoapBindingFactory;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
-import org.apache.cxf.binding.xml.XMLBindingInfoFactoryBean;
-import org.apache.cxf.binding.xml.XMLConstants;
 import org.apache.cxf.frontend.ServerFactoryBean;
-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoFactoryBean;
+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
 import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.service.invoker.Invoker;
@@ -44,8 +42,13 @@
  */
 public class JaxWsServerFactoryBean extends ServerFactoryBean {
     public JaxWsServerFactoryBean() {
-        setServiceFactory(new JaxWsServiceFactoryBean());
-        setBindingFactory(new JaxWsSoapBindingInfoFactoryBean());
+        this(new JaxWsServiceFactoryBean());
+    }
+    public JaxWsServerFactoryBean(JaxWsServiceFactoryBean serviceFactory) {
+        setServiceFactory(serviceFactory);
+        JaxWsSoapBindingInfoConfigBean defConfig 
+            = new JaxWsSoapBindingInfoConfigBean(serviceFactory);
+        setBindingConfig(defConfig);
     }
 
     @Override
@@ -55,21 +58,24 @@
 
     @Override
     protected BindingInfo createBindingInfo() {
-        JaxWsServiceFactoryBean sf = (JaxWsServiceFactoryBean) getServiceFactory(); 
+        JaxWsServiceFactoryBean sf = (JaxWsServiceFactoryBean)getServiceFactory(); 
         
         JaxWsImplementorInfo implInfo = sf.getJaxWsImplementorInfo();
-        String binding = implInfo.getBindingType();
+        String binding = getBindingId();
+        if (binding == null) {
+            binding = implInfo.getBindingType();
+            setBindingId(binding);
+        }
         boolean messageMode = implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
-        BindingInfo bindingInfo;
-        if (XMLConstants.NS_XML_FORMAT.equals(binding)) {
-            XMLBindingInfoFactoryBean bindingFactory = new XMLBindingInfoFactoryBean();
-            bindingFactory.setServiceFactory(sf);
-            bindingInfo = bindingFactory.create();
-        } else {
-            bindingInfo = super.createBindingInfo();
+        
+        if (getBindingConfig() instanceof JaxWsSoapBindingInfoConfigBean) {
+            ((JaxWsSoapBindingInfoConfigBean)getBindingConfig()).setJaxWsServiceFactoryBean(sf);
         }
         
-        // This disables a bunch of unwanted interceptors for the Provider scenario. Not ideal, but it works.
+        BindingInfo bindingInfo = super.createBindingInfo();
+            
+        // This disables a bunch of unwanted interceptors for the Provider scenario. 
+        // Not ideal, but it works.
         if (implInfo.isWebServiceProvider()) {
             bindingInfo.setProperty(AbstractBindingFactory.DATABINDING_DISABLED, Boolean.TRUE);
             
@@ -79,7 +85,7 @@
                 bindingInfo.setProperty(SoapBindingFactory.MESSAGE_PROCESSING_DISABLED, Boolean.TRUE);
             }
         }
-        
+            
         return bindingInfo;
     }
     

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ServiceImpl.java Fri Mar 30 14:53:13 2007
@@ -46,13 +46,11 @@
 //import javax.xml.ws.WebServiceFeature;
 import javax.xml.ws.handler.Handler;
 import javax.xml.ws.handler.HandlerResolver;
-import javax.xml.ws.http.HTTPBinding;
 import javax.xml.ws.spi.ServiceDelegate;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
-import org.apache.cxf.binding.xml.XMLBindingInfoFactoryBean;
-import org.apache.cxf.binding.xml.XMLConstants;
+import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.configuration.Configurer;
 import org.apache.cxf.databinding.DataBinding;
@@ -62,7 +60,7 @@
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.endpoint.EndpointException;
 import org.apache.cxf.jaxb.JAXBDataBinding;
-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoFactoryBean;
+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
 import org.apache.cxf.jaxws.handler.HandlerResolverImpl;
 import org.apache.cxf.jaxws.handler.PortInfoImpl;
 import org.apache.cxf.jaxws.support.DummyImpl;
@@ -70,7 +68,6 @@
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.service.Service;
-import org.apache.cxf.service.factory.AbstractBindingInfoFactoryBean;
 import org.apache.cxf.service.factory.AbstractServiceFactoryBean;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 import org.apache.cxf.service.model.BindingInfo;
@@ -231,7 +228,7 @@
         LOG.log(Level.FINE, "creating port for portName", portName);
         LOG.log(Level.FINE, "endpoint interface:", serviceEndpointInterface);
 
-        ReflectionServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean();
+        JaxWsServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean();
         serviceFactory.setBus(bus);
         serviceFactory.setServiceName(serviceName);
         serviceFactory.setServiceClass(serviceEndpointInterface);
@@ -334,20 +331,15 @@
         String transportId = df.getTransportIds().get(0);
         String bindingID = portInfo.getBindingID();
 
-        // TODO: Replace with discovery mechanism, now it just the hardcode        
-        AbstractBindingInfoFactoryBean bindingFactory = null;
-        if (bindingID.equals(XMLConstants.NS_XML_FORMAT) 
-            || bindingID.equals(HTTPBinding.HTTP_BINDING)) {
-            bindingFactory = new XMLBindingInfoFactoryBean();
-        } else { // we set the default binding to be soap binding
-            JaxWsSoapBindingInfoFactoryBean soapBindingFactory = new JaxWsSoapBindingInfoFactoryBean();
-            soapBindingFactory.setTransportURI(transportId);
-            bindingFactory = soapBindingFactory;
-        } 
+        
+        Object config = null;
+        if (serviceFactory instanceof JaxWsServiceFactoryBean) {
+            config = new JaxWsSoapBindingInfoConfigBean((JaxWsServiceFactoryBean)serviceFactory);
+        }
+        BindingInfo bindingInfo = bus.getExtension(BindingFactoryManager.class).getBindingFactory(bindingID)
+                .createBindingInfo(serviceFactory.getService(), bindingID, config);
 
-        bindingFactory.setServiceFactory(serviceFactory);
 
-        BindingInfo bindingInfo = bindingFactory.create();
         Service service = serviceFactory.getService();
         service.getServiceInfo().addBinding(bindingInfo);
 

Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java (from r524118, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoFactoryBean.java)
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java?view=diff&rev=524286&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoFactoryBean.java&r1=524118&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java Fri Mar 30 14:53:13 2007
@@ -24,7 +24,7 @@
 import javax.jws.soap.SOAPBinding.Style;
 import javax.jws.soap.SOAPBinding.Use;
 
-import org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean;
+import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
 import org.apache.cxf.frontend.MethodDispatcher;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.service.model.BindingOperationInfo;
@@ -34,7 +34,16 @@
  * Introspects the SOAPBinding annotation to provide to construct
  * a {@link org.apache.cxf.service.model.BindingInfo}.
  */
-public class JaxWsSoapBindingInfoFactoryBean extends SoapBindingInfoFactoryBean {
+public class JaxWsSoapBindingInfoConfigBean extends SoapBindingInfoConfigBean {
+    JaxWsServiceFactoryBean serviceFactory;
+    
+    public JaxWsSoapBindingInfoConfigBean(JaxWsServiceFactoryBean sifb) {
+        serviceFactory = sifb;
+    }
+    
+    public void setJaxWsServiceFactoryBean(JaxWsServiceFactoryBean b) {
+        serviceFactory = b;
+    }
 
     @Override
     protected String getStyle() {
@@ -55,7 +64,7 @@
     }
 
     private JaxWsServiceFactoryBean getJaxWsServiceFactory() {
-        return (JaxWsServiceFactoryBean)getServiceFactory();
+        return serviceFactory;
     }
     
     @Override
@@ -73,7 +82,8 @@
 
     @Override
     protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
-        MethodDispatcher md = (MethodDispatcher) getService().get(MethodDispatcher.class.getName());
+        MethodDispatcher md = (MethodDispatcher)serviceFactory.getService()
+                .get(MethodDispatcher.class.getName());
         Method method = md.getMethod(op);
         
         return getJaxWsServiceFactory().isHeader(method, part.getIndex());

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/ServerBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/ServerBeanDefinitionParser.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/ServerBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/ServerBeanDefinitionParser.java Fri Mar 30 14:53:13 2007
@@ -66,7 +66,7 @@
                 } else if ("invoker".equals(n.getLocalName())) {
                     setFirstChildAsProperty((Element) n, ctx, bean, "serviceFactory.invoker");
                 } else if ("binding".equals(n.getLocalName())) {
-                    setFirstChildAsProperty((Element) n, ctx, bean, "bindingFactory");
+                    setFirstChildAsProperty((Element) n, ctx, bean, "bindingConfig");
                 }  else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name)
                     || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)) {
                     List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());

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=524286&r1=524285&r2=524286
==============================================================================
--- 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 Fri Mar 30 14:53:13 2007
@@ -51,7 +51,7 @@
     @Test
     public void testEndpoint() throws Exception {   
         GreeterImpl greeter = new GreeterImpl();
-        EndpointImpl endpoint = new EndpointImpl(getBus(), greeter, "anyuri");
+        EndpointImpl endpoint = new EndpointImpl(getBus(), greeter, (String)null);
  
         WebServiceContext ctx = greeter.getContext();
         assertNull(ctx);

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java Fri Mar 30 14:53:13 2007
@@ -53,6 +53,7 @@
 import org.apache.header_test.types.TestHeader6;
 import org.apache.header_test.types.TestHeader6Response;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 
@@ -288,6 +289,7 @@
     } 
     
     @Test
+    @Ignore("test takes forever for what it does. Why?")
     public void testHolderNull() {
         URL wsdl = getClass().getResource("/wsdl/soapheader.wsdl");
         assertNotNull(wsdl);

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java Fri Mar 30 14:53:13 2007
@@ -21,7 +21,6 @@
 import java.util.List;
 
 import junit.framework.TestCase;
-import org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean;
 import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
 import org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor;
 import org.apache.cxf.endpoint.Endpoint;
@@ -111,6 +110,5 @@
 
         bean = (JaxWsServerFactoryBean) ctx.getBean("inlineSoapBinding");
         assertNotNull(bean);
-        assertTrue(((SoapBindingInfoFactoryBean) bean.getBindingFactory()).isMtomEnabled());
     }
 }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java Fri Mar 30 14:53:13 2007
@@ -20,19 +20,23 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.logging.Logger;
 
 import javax.xml.namespace.QName;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
 import org.apache.cxf.BusFactory;
+import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.endpoint.EndpointException;
 import org.apache.cxf.interceptor.AbstractBasicInterceptorProvider;
 import org.apache.cxf.service.Service;
-import org.apache.cxf.service.factory.AbstractBindingInfoFactoryBean;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
+import org.apache.cxf.service.factory.ServiceConstructionException;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.DestinationFactory;
@@ -41,17 +45,19 @@
 import org.apache.cxf.wsdl11.WSDLEndpointFactory;
 
 public abstract class AbstractEndpointFactory extends AbstractBasicInterceptorProvider {
+    private static final Logger LOG = LogUtils.getL7dLogger(AbstractEndpointFactory.class);
 
     private Bus bus;
     private String address;
     private String transportId;
-    private AbstractBindingInfoFactoryBean bindingFactory;
+    private String bindingId;
     private Class serviceClass;
     private DestinationFactory destinationFactory;
     private ReflectionServiceFactoryBean serviceFactory;
     private QName endpointName;
     private Map<String, Object> properties;
     private List<AbstractWSFeature> features;
+    private Object bindingConfig;
 
     protected Endpoint createEndpoint() throws BusException, EndpointException {
         Service service = serviceFactory.getService();
@@ -69,6 +75,12 @@
         }
 
         EndpointInfo ei = service.getServiceInfo().getEndpoint(endpointName);
+        if (ei != null
+            && transportId != null
+            && !ei.getTransportId().equals(transportId)) {
+            ei = null;
+        }
+        
         Endpoint ep = null;
         if (ei == null) {
             ei = createEndpointInfo();
@@ -77,6 +89,7 @@
         }                        
 
         ep = service.getEndpoints().get(ei.getName());
+        
         if (ep == null) {
             ep = serviceFactory.createEndpoint(ei);
         }
@@ -126,7 +139,8 @@
         
         // Get the Service from the ServiceFactory if specified
         Service service = serviceFactory.getService();
-        
+
+
         // SOAP nonsense
         BindingInfo bindingInfo = createBindingInfo();
         if (bindingInfo instanceof SoapBindingInfo) {
@@ -144,6 +158,12 @@
         }
         
         EndpointInfo ei = new EndpointInfo(service.getServiceInfo(), transportId);
+        int count = 1;
+        while (service.getServiceInfo().getEndpoint(endpointName) != null) {
+            endpointName = new QName(endpointName.getNamespaceURI(), 
+                                     endpointName.getLocalPart() + count);
+            count++;
+        }
         ei.setName(endpointName);
         ei.setAddress(getAddress());
         ei.setBinding(bindingInfo);
@@ -160,8 +180,19 @@
     }
 
     protected BindingInfo createBindingInfo() {
-        getBindingFactory().setServiceFactory(serviceFactory);
-        return getBindingFactory().create();
+        BindingFactoryManager mgr = bus.getExtension(BindingFactoryManager.class);
+        String binding = bindingId;
+        if (binding == null) {
+            //default to soap binding
+            binding = "http://schemas.xmlsoap.org/soap/";
+        }
+        try {
+            return mgr.getBindingFactory(binding).createBindingInfo(serviceFactory.getService(),
+                                                                    binding, bindingConfig);
+        } catch (BusException ex) {
+            throw new ServiceConstructionException(
+                   new Message("COULD.NOT.RESOLVE.BINDING", LOG, bindingId), ex);
+        }
     }
 
     public String getAddress() {
@@ -199,15 +230,20 @@
     public void setTransportId(String transportId) {
         this.transportId = transportId;
     }
-
-    public AbstractBindingInfoFactoryBean getBindingFactory() {
-        return bindingFactory;
+    public void setBindingId(String bind) {
+        bindingId = bind;
     }
-
-    public void setBindingFactory(AbstractBindingInfoFactoryBean bindingFactory) {
-        this.bindingFactory = bindingFactory;
+    public String getBindingId() {
+        return bindingId;
     }
 
+    public void setBindingConfig(Object obj) {
+        bindingConfig = obj;
+    }
+    public Object getBindingConfig() {
+        return bindingConfig;
+    }
+    
     public Class getServiceClass() {
         return serviceClass;
     }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java Fri Mar 30 14:53:13 2007
@@ -19,7 +19,6 @@
 package org.apache.cxf.frontend;
 
 import org.apache.cxf.BusException;
-import org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.endpoint.ClientImpl;
 import org.apache.cxf.endpoint.Endpoint;
@@ -33,7 +32,6 @@
     
     public ClientFactoryBean() {
         super();
-        setBindingFactory(new SoapBindingInfoFactoryBean());
         setServiceFactory(new ReflectionServiceFactoryBean());
     }
 

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/Messages.properties Fri Mar 30 14:53:13 2007
@@ -18,3 +18,4 @@
 #    under the License.
 #
 #
+COULD.NOT.RESOLVE.BINDING=Could not resolve a binding for {0}
\ No newline at end of file

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java Fri Mar 30 14:53:13 2007
@@ -21,7 +21,6 @@
 import java.io.IOException;
 
 import org.apache.cxf.BusException;
-import org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.endpoint.EndpointException;
 import org.apache.cxf.endpoint.Server;
@@ -70,7 +69,6 @@
     
     public ServerFactoryBean() {
         super();
-        setBindingFactory(new SoapBindingInfoFactoryBean());
         setServiceFactory(new ReflectionServiceFactoryBean());
     }
     

Modified: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_bare.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_bare.wsdl?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_bare.wsdl (original)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_bare.wsdl Fri Mar 30 14:53:13 2007
@@ -17,131 +17,131 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<wsdl:definitions name="HelloWorld" targetNamespace="http://apache.org/hello_world_xml_http/bare" 
-		  xmlns="http://schemas.xmlsoap.org/wsdl/"
-		  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
-		  xmlns:xformat="http://cxf.apache.org/bindings/xformat" 
-		  xmlns:tns="http://apache.org/hello_world_xml_http/bare"
-		  xmlns:x1="http://apache.org/hello_world_xml_http/bare/types"
-		  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
-		  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    
+<wsdl:definitions name="HelloWorld" targetNamespace="http://apache.org/hello_world_xml_http/bare"
+          xmlns="http://schemas.xmlsoap.org/wsdl/"
+          xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
+          xmlns:xformat="http://cxf.apache.org/bindings/xformat"
+          xmlns:tns="http://apache.org/hello_world_xml_http/bare"
+          xmlns:x1="http://apache.org/hello_world_xml_http/bare/types"
+          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
     <wsdl:types>
-	<schema targetNamespace="http://apache.org/hello_world_xml_http/bare/types" 
-		xmlns="http://www.w3.org/2001/XMLSchema" 
-		elementFormDefault="qualified">
-
-	    <element name="responseType" type="xsd:string"/>
-	    <element name="requestType" type="xsd:string"/>      
-	    <element name="myComplexStruct" type="x1:myComplexStructType"/>     
-	    
-	    <complexType name="myComplexStructType">
-		<sequence>
-		    <element name="elem1" type="xsd:string"/>
-		    <element name="elem2" type="xsd:string"/>
-		    <element name="elem3" type="xsd:int"/>
-		</sequence>
-	    </complexType>
-	</schema>
+        <schema targetNamespace="http://apache.org/hello_world_xml_http/bare/types"
+            xmlns="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified">
+
+            <element name="responseType" type="xsd:string"/>
+            <element name="requestType" type="xsd:string"/>
+            <element name="myComplexStruct" type="x1:myComplexStructType"/>
+
+            <complexType name="myComplexStructType">
+                <sequence>
+                    <element name="elem1" type="xsd:string"/>
+                    <element name="elem2" type="xsd:string"/>
+                    <element name="elem3" type="xsd:int"/>
+                </sequence>
+            </complexType>
+        </schema>
     </wsdl:types>
-    
+
     <wsdl:message name="sayHiRequest"/>
-    
+
     <wsdl:message name="sayHiResponse">
-	<wsdl:part type="xsd:string" name="out"/>
+        <wsdl:part type="xsd:string" name="out"/>
     </wsdl:message>
-    
+
     <wsdl:message name="greetMeRequest">
-	<wsdl:part element="x1:requestType" name="me"/>
+        <wsdl:part element="x1:requestType" name="me"/>
     </wsdl:message>
-    
+
     <wsdl:message name="greetMeResponse">
-	<wsdl:part element="x1:responseType" name="theResponse"/>
+        <wsdl:part element="x1:responseType" name="theResponse"/>
     </wsdl:message>
-    
+
     <wsdl:message name="sendReceiveDataRequest">
-	<wsdl:part type="x1:myComplexStructType" name="in"/>
+        <wsdl:part type="x1:myComplexStructType" name="in"/>
     </wsdl:message>
-    
+
     <wsdl:message name="sendReceiveDataResponse">
-	<wsdl:part type="x1:myComplexStructType" name="out"/>
+        <wsdl:part type="x1:myComplexStructType" name="out"/>
     </wsdl:message>
 
     <wsdl:message name="multiParamPartRequest">
-	<wsdl:part element="x1:requestType" name="in1"/>
-	<wsdl:part element="x1:myComplexStruct" name="in2"/>
+        <wsdl:part element="x1:requestType" name="in1"/>
+        <wsdl:part element="x1:myComplexStruct" name="in2"/>
     </wsdl:message>
-    
+
     <wsdl:message name="multiParamPartResponse">
-	<wsdl:part element="x1:responseType" name="out1"/>
+        <wsdl:part element="x1:responseType" name="out1"/>
     </wsdl:message>
-    
+
     <wsdl:message name="triPartRequest">
-	<wsdl:part element="x1:requestType" name="in3"/>
-	<wsdl:part element="x1:myComplexStruct" name="in1"/>
-	<wsdl:part element="x1:requestType" name="in2"/>
+        <wsdl:part element="x1:requestType" name="in3"/>
+        <wsdl:part element="x1:myComplexStruct" name="in1"/>
+        <wsdl:part element="x1:requestType" name="in2"/>
     </wsdl:message>
-    
+
     <wsdl:portType name="Greeter">
-	<wsdl:operation name="sayHi">
-	    <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/>
-	    <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/>
-	</wsdl:operation>
-	<wsdl:operation name="greetMe">
-	    <wsdl:input message="tns:greetMeRequest" name="greetMeRequest"/>
-	    <wsdl:output message="tns:greetMeResponse" name="greetMeResponse"/>
-	</wsdl:operation>
-	<wsdl:operation name="sendReceiveData">
-	    <wsdl:input message="tns:sendReceiveDataRequest" name="SendReceiveDataRequest"/>
-	    <wsdl:output message="tns:sendReceiveDataResponse" name="SendReceiveDataResponse"/>
-	</wsdl:operation>
-	<wsdl:operation name="testMultiParamPart" parameterOrder="in2 in1">
-	    <wsdl:input message="tns:multiParamPartRequest" name="multiParamPartRequest"/>
-	    <wsdl:output message="tns:multiParamPartResponse" name="multiParamPartResponse"/>
-	</wsdl:operation>
-	<wsdl:operation name="testTriPart" parameterOrder="in1 in3 in2">
-	    <wsdl:input message="tns:triPartRequest" name="triPartRequest"/>
-	    <wsdl:output message="tns:multiParamPartResponse" name="multiParamPartResponse"/>
-	</wsdl:operation>
-	<wsdl:operation name="testTriPartNoOrder">
-	    <wsdl:input message="tns:triPartRequest" name="triPartRequest"/>
-	    <wsdl:output message="tns:multiParamPartResponse" name="multiParamPartResponse"/>
-	</wsdl:operation>
+        <wsdl:operation name="sayHi">
+            <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/>
+            <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="greetMe">
+            <wsdl:input message="tns:greetMeRequest" name="greetMeRequest"/>
+            <wsdl:output message="tns:greetMeResponse" name="greetMeResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="sendReceiveData">
+            <wsdl:input message="tns:sendReceiveDataRequest" name="SendReceiveDataRequest"/>
+            <wsdl:output message="tns:sendReceiveDataResponse" name="SendReceiveDataResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="testMultiParamPart" parameterOrder="in2 in1">
+            <wsdl:input message="tns:multiParamPartRequest" name="multiParamPartRequest"/>
+            <wsdl:output message="tns:multiParamPartResponse" name="multiParamPartResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="testTriPart" parameterOrder="in1 in3 in2">
+            <wsdl:input message="tns:triPartRequest" name="triPartRequest"/>
+            <wsdl:output message="tns:multiParamPartResponse" name="multiParamPartResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="testTriPartNoOrder">
+            <wsdl:input message="tns:triPartRequest" name="triPartRequest"/>
+            <wsdl:output message="tns:multiParamPartResponse" name="multiParamPartResponse"/>
+        </wsdl:operation>
     </wsdl:portType>
-    
+
     <wsdl:binding name="Greeter_XMLBinding" type="tns:Greeter">
 
-	<xformat:binding/>
+        <xformat:binding/>
 
-	<wsdl:operation name="sayHi">
-	    <wsdl:input>
-		<xformat:body rootNode="tns:sayHi"/>
-	    </wsdl:input>
-	    <wsdl:output/>
-	</wsdl:operation>
-	
-	<wsdl:operation name="greetMe">
-	    <wsdl:input/>
-	    <wsdl:output/>
-	</wsdl:operation>
-	
-	<wsdl:operation name="sendReceiveData">
-	    <wsdl:input/>
-	    <wsdl:output/>
-	</wsdl:operation>
-
-	<wsdl:operation name="testMultiParamPart">
-	    <wsdl:input>
-		<xformat:body rootNode="tns:multiParamRootReq"/>
-	    </wsdl:input>
-	    <wsdl:output/>
-	</wsdl:operation>
+        <wsdl:operation name="sayHi">
+            <wsdl:input>
+                <xformat:body rootNode="tns:sayHi"/>
+            </wsdl:input>
+            <wsdl:output/>
+        </wsdl:operation>
+
+        <wsdl:operation name="greetMe">
+            <wsdl:input/>
+            <wsdl:output/>
+        </wsdl:operation>
+
+        <wsdl:operation name="sendReceiveData">
+            <wsdl:input/>
+            <wsdl:output/>
+        </wsdl:operation>
+
+        <wsdl:operation name="testMultiParamPart">
+            <wsdl:input>
+                <xformat:body rootNode="tns:multiParamRootReq"/>
+            </wsdl:input>
+            <wsdl:output/>
+        </wsdl:operation>
 
     </wsdl:binding>
-    
+
     <wsdl:service name="XMLService">
-	<wsdl:port binding="tns:Greeter_XMLBinding" name="XMLPort">
-	    <http:address location="http://localhost:9031/XMLService/XMLPort"/>
-	</wsdl:port>
+        <wsdl:port binding="tns:Greeter_XMLBinding" name="XMLPort">
+            <http:address location="http://localhost:9031/XMLService/XMLPort"/>
+        </wsdl:port>
     </wsdl:service>
 </wsdl:definitions>

Modified: incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_mixed.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_mixed.wsdl?view=diff&rev=524286&r1=524285&r2=524286
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_mixed.wsdl (original)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/hello_world_xml_mixed.wsdl Fri Mar 30 14:53:13 2007
@@ -1,169 +1,169 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-	Licensed to the Apache Software Foundation (ASF) under one
-	or more contributor license agreements. See the NOTICE file
-	distributed with this work for additional information
-	regarding copyright ownership. The ASF licenses this file
-	to you under the Apache License, Version 2.0 (the
-	"License"); you may not use this file except in compliance
-	with the License. You may obtain a copy of the License at
-	
-	http://www.apache.org/licenses/LICENSE-2.0
-	
-	Unless required by applicable law or agreed to in writing,
-	software distributed under the License is distributed on an
-	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-	KIND, either express or implied. See the License for the
-	specific language governing permissions and limitations
-	under the License.
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+    
+    http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
 -->
 <wsdl:definitions name="HelloWorld"
-	targetNamespace="http://apache.org/hello_world_xml_http/mixed"
-	xmlns="http://schemas.xmlsoap.org/wsdl/"
-	xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
-	xmlns:tns="http://apache.org/hello_world_xml_http/mixed"
-	xmlns:x1="http://apache.org/hello_world_xml_http/mixed/types"
-	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
-	xmlns:xformat="http://cxf.apache.org/bindings/xformat"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-	<wsdl:types>
-		<schema
-			targetNamespace="http://apache.org/hello_world_xml_http/mixed/types"
-			xmlns="http://www.w3.org/2001/XMLSchema"
-			elementFormDefault="qualified">
-			<element name="sayHi">
-				<complexType />
-			</element>
-			<element name="sayHiResponse">
-				<complexType>
-					<sequence>
-						<element name="responseType" type="xsd:string" />
-					</sequence>
-				</complexType>
-			</element>
-
-			<element name="greetMe">
-				<complexType>
-					<sequence>
-						<element name="requestType" type="xsd:string" />
-					</sequence>
-				</complexType>
-			</element>
-			<element name="greetMeResponse">
-				<complexType>
-					<sequence>
-						<element name="responseType" type="xsd:string" />
-					</sequence>
-				</complexType>
-			</element>
-			<element name="greetMeOneWay">
-				<complexType>
-					<sequence>
-						<element name="requestType" type="xsd:string" />
-					</sequence>
-				</complexType>
-			</element>
-
-			<element name="pingMe">
-				<complexType />
-			</element>
-			<element name="pingMeResponse">
-				<complexType />
-			</element>
-			<element name="faultDetail">
-				<complexType>
-					<sequence>
-						<element name="minor" type="xsd:short" />
-						<element name="major" type="xsd:short" />
-					</sequence>
-				</complexType>
-			</element>
-		</schema>
-	</wsdl:types>
-	<wsdl:message name="sayHiRequest">
-		<wsdl:part element="x1:sayHi" name="in" />
-	</wsdl:message>
-	<wsdl:message name="sayHiResponse">
-		<wsdl:part element="x1:sayHiResponse" name="out" />
-	</wsdl:message>
-	<wsdl:message name="greetMeRequest">
-		<wsdl:part element="x1:greetMe" name="in" />
-	</wsdl:message>
-	<wsdl:message name="greetMeResponse">
-		<wsdl:part element="x1:greetMeResponse" name="out" />
-	</wsdl:message>
-	<wsdl:message name="greetMeOneWayRequest">
-		<wsdl:part element="x1:greetMeOneWay" name="in" />
-	</wsdl:message>
-
-	<wsdl:message name="pingMeRequest">
-		<wsdl:part name="in" element="x1:pingMe" />
-	</wsdl:message>
-	<wsdl:message name="pingMeResponse">
-		<wsdl:part name="out" element="x1:pingMeResponse" />
-	</wsdl:message>
-	<wsdl:message name="pingMeFault">
-		<wsdl:part name="faultDetail" element="x1:faultDetail" />
-	</wsdl:message>
-
-	<wsdl:portType name="Greeter">
-		<wsdl:operation name="sayHi1">
-			<wsdl:input message="tns:sayHiRequest" name="sayHiRequest" />
-			<wsdl:output message="tns:sayHiResponse"
-				name="sayHiResponse" />
-		</wsdl:operation>
-
-		<wsdl:operation name="greetMe">
-			<wsdl:input message="tns:greetMeRequest"
-				name="greetMeRequest" />
-			<wsdl:output message="tns:greetMeResponse"
-				name="greetMeResponse" />
-		</wsdl:operation>
-
-		<wsdl:operation name="greetMeOneWay">
-			<wsdl:input message="tns:greetMeOneWayRequest"
-				name="greetMeOneWayRequest" />
-		</wsdl:operation>
-
-		<wsdl:operation name="pingMe">
-			<wsdl:input name="pingMeRequest"
-				message="tns:pingMeRequest" />
-			<wsdl:output name="pingMeResponse"
-				message="tns:pingMeResponse" />
-			<wsdl:fault name="pingMeFault" message="tns:pingMeFault" />
-		</wsdl:operation>
-
-	</wsdl:portType>
-	<wsdl:binding name="Greeter_XMLBinding" type="tns:Greeter">
-		<xformat:binding />
-
-		<wsdl:operation name="sayHi1">
-			<wsdl:input name="sayHiRequest" />
-			<wsdl:output name="sayHiResponse" />
-		</wsdl:operation>
-
-		<wsdl:operation name="greetMe">
-			<wsdl:input name="greetMeRequest" />
-			<wsdl:output name="greetMeResponse" />
-		</wsdl:operation>
-
-		<wsdl:operation name="greetMeOneWay">
-			<wsdl:input name="greetMeOneWayRequest" />
-		</wsdl:operation>
-
-		<wsdl:operation name="pingMe">
-			<wsdl:input />
-			<wsdl:output />
-			<wsdl:fault name="pingMeFault" />
-		</wsdl:operation>
-	</wsdl:binding>
-
-	<wsdl:service name="XMLService">
-		<wsdl:port binding="tns:Greeter_XMLBinding" name="XMLPort">
-			<http:address
-				location="http://localhost:9028/XMLService/XMLPort" />
-		</wsdl:port>
-	</wsdl:service>
+    targetNamespace="http://apache.org/hello_world_xml_http/mixed"
+    xmlns="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
+    xmlns:tns="http://apache.org/hello_world_xml_http/mixed"
+    xmlns:x1="http://apache.org/hello_world_xml_http/mixed/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:xformat="http://cxf.apache.org/bindings/xformat"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <wsdl:types>
+        <schema
+            targetNamespace="http://apache.org/hello_world_xml_http/mixed/types"
+            xmlns="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified">
+            <element name="sayHi">
+                <complexType />
+            </element>
+            <element name="sayHiResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="greetMe">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeOneWay">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="xsd:string" />
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="pingMe">
+                <complexType />
+            </element>
+            <element name="pingMeResponse">
+                <complexType />
+            </element>
+            <element name="faultDetail">
+                <complexType>
+                    <sequence>
+                        <element name="minor" type="xsd:short" />
+                        <element name="major" type="xsd:short" />
+                    </sequence>
+                </complexType>
+            </element>
+        </schema>
+    </wsdl:types>
+    <wsdl:message name="sayHiRequest">
+        <wsdl:part element="x1:sayHi" name="in" />
+    </wsdl:message>
+    <wsdl:message name="sayHiResponse">
+        <wsdl:part element="x1:sayHiResponse" name="out" />
+    </wsdl:message>
+    <wsdl:message name="greetMeRequest">
+        <wsdl:part element="x1:greetMe" name="in" />
+    </wsdl:message>
+    <wsdl:message name="greetMeResponse">
+        <wsdl:part element="x1:greetMeResponse" name="out" />
+    </wsdl:message>
+    <wsdl:message name="greetMeOneWayRequest">
+        <wsdl:part element="x1:greetMeOneWay" name="in" />
+    </wsdl:message>
+
+    <wsdl:message name="pingMeRequest">
+        <wsdl:part name="in" element="x1:pingMe" />
+    </wsdl:message>
+    <wsdl:message name="pingMeResponse">
+        <wsdl:part name="out" element="x1:pingMeResponse" />
+    </wsdl:message>
+    <wsdl:message name="pingMeFault">
+        <wsdl:part name="faultDetail" element="x1:faultDetail" />
+    </wsdl:message>
+
+    <wsdl:portType name="Greeter">
+        <wsdl:operation name="sayHi1">
+            <wsdl:input message="tns:sayHiRequest" name="sayHiRequest" />
+            <wsdl:output message="tns:sayHiResponse"
+                name="sayHiResponse" />
+        </wsdl:operation>
+
+        <wsdl:operation name="greetMe">
+            <wsdl:input message="tns:greetMeRequest"
+                name="greetMeRequest" />
+            <wsdl:output message="tns:greetMeResponse"
+                name="greetMeResponse" />
+        </wsdl:operation>
+
+        <wsdl:operation name="greetMeOneWay">
+            <wsdl:input message="tns:greetMeOneWayRequest"
+                name="greetMeOneWayRequest" />
+        </wsdl:operation>
+
+        <wsdl:operation name="pingMe">
+            <wsdl:input name="pingMeRequest"
+                message="tns:pingMeRequest" />
+            <wsdl:output name="pingMeResponse"
+                message="tns:pingMeResponse" />
+            <wsdl:fault name="pingMeFault" message="tns:pingMeFault" />
+        </wsdl:operation>
+
+    </wsdl:portType>
+    <wsdl:binding name="Greeter_XMLBinding" type="tns:Greeter">
+        <xformat:binding />
+
+        <wsdl:operation name="sayHi1">
+            <wsdl:input name="sayHiRequest" />
+            <wsdl:output name="sayHiResponse" />
+        </wsdl:operation>
+
+        <wsdl:operation name="greetMe">
+            <wsdl:input name="greetMeRequest" />
+            <wsdl:output name="greetMeResponse" />
+        </wsdl:operation>
+
+        <wsdl:operation name="greetMeOneWay">
+            <wsdl:input name="greetMeOneWayRequest" />
+        </wsdl:operation>
+
+        <wsdl:operation name="pingMe">
+            <wsdl:input />
+            <wsdl:output />
+            <wsdl:fault name="pingMeFault" />
+        </wsdl:operation>
+    </wsdl:binding>
+
+    <wsdl:service name="XMLService">
+        <wsdl:port binding="tns:Greeter_XMLBinding" name="XMLPort">
+            <http:address
+                location="http://localhost:9028/XMLService/XMLPort" />
+        </wsdl:port>
+    </wsdl:service>
 
 </wsdl:definitions>
 



Mime
View raw message