You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/04/10 01:05:55 UTC

svn commit: r526945 [1/2] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/service/ common/common/src/main/java/org/apache/cxf/configuration/spring/ parent/...

Author: dandiep
Date: Mon Apr  9 16:05:51 2007
New Revision: 526945

URL: http://svn.apache.org/viewvc?view=rev&rev=526945
Log:
o Enabled usage of <jaxws:endpoint> when using Endpoint.publish():
  - Removed EndpointFactoryBean and just use EndpointImpl
  - Added many getters/setters to configure the Endpointimpl
  - Added constructor to pass in ServerFactoryBean instead of 
    ServiceFactoryBean. Deprecated old constructors because this
    is more correct and 99% of the people can probably just use
    the getters/setters on EndpointImpl now.
o Renamed BindingInfoConfigBean objects to *BindingConfiguration.
  These all inherit from BindingConfiguration which has an abstract
  method getBindingId().
o Removed Endpoint/Service.enableSchemaValidation and made it a 
  service property instead. I also changed the constant 
  Message.ENABLE_SCHEMA_VALIDATION to be more amenable to config files.
o Upgrade to Spring 2.0.3 and fix issues with SpringBeanMap in this
  latest version.
o Add a property editor for SoapVersions so we can specify "1.2" in 
  the xml configuration for a <jaxws:endpoint>
o Fix several bugs with the JaxWsServiceConfiguration
o Don't create an Invoker inside JaxWsServiceFactoryBean, do it in the
  JaxWsSERVERFactoryBean instead


Added:
    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java
      - copied, changed from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java
      - copied, changed from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java   (with props)
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java   (with props)
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java
      - copied, changed from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
      - copied, changed from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
Removed:
    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
Modified:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
    incubator/cxf/trunk/parent/pom.xml
    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/wrapped/WrappedServiceTest.java
    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.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/SoapBindingInfoConfigBeanDefinitionParser.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
    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/NamespaceHandler.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.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/HeaderTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/configured-endpoints.xml
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderService.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderServiceImpl.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/provider/ProviderServiceFactoryTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/servers.xml
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceConfigurationTest.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/service/factory/ReflectionServiceFactoryBean.java
    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java
    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedService.java
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/schema_validation/cxf-config.xml
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/SpringServletTest.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/spring.xml
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/databinding-schema-validation.xml

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java Mon Apr  9 16:05:51 2007
@@ -51,9 +51,5 @@
     void setInFaultObserver(MessageObserver observer);
     
     void setOutFaultObserver(MessageObserver observer);
-    
-    boolean getEnableSchemaValidation();
-    
-    void setEnableSchemaValidation(boolean value);
 
 }

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java Mon Apr  9 16:05:51 2007
@@ -49,7 +49,7 @@
     String PATH_INFO = Message.class.getName() + ".PATH_INFO";
     String QUERY_STRING = Message.class.getName() + ".QUERY_STRING";
     String MTOM_ENABLED = "mtom-enabled";
-    String SCHEMA_VALIDATION_ENABLED = Message.class.getCanonicalName() + ".schemaValidationEnabled";
+    String SCHEMA_VALIDATION_ENABLED = "schema-validation-enabled";
     String FAULT_STACKTRACE_ENABLED = "faultStackTraceEnabled";
     String CONTENT_TYPE = "Content-Type";
     String BASE_PATH = Message.class.getName() + ".BASE_PATH";

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java Mon Apr  9 16:05:51 2007
@@ -49,8 +49,4 @@
     void setInvoker(Invoker invoker);
     
     Map<QName, Endpoint> getEndpoints();
-    
-    void setEnableSchemaValidationForAllPort(boolean value);
-    
-    boolean getEnableSchemaValidationForAllPort();
 }

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -40,11 +40,18 @@
 public abstract class AbstractBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
 
     protected void setFirstChildAsProperty(Element element, ParserContext ctx, 
-                                         BeanDefinitionBuilder bean, String string) {
+                                         BeanDefinitionBuilder bean, String propertyName) {
+        String id = getAndRegisterFirstChild(element, ctx, bean, propertyName);
+        bean.addPropertyReference(propertyName, id);
+        
+    }
+
+    protected String getAndRegisterFirstChild(Element element, ParserContext ctx, 
+                                              BeanDefinitionBuilder bean, String propertyName) {
         Element first = getFirstChild(element);
         
         if (first == null) {
-            throw new IllegalStateException(string + " property must have child elements!");
+            throw new IllegalStateException(propertyName + " property must have child elements!");
         }
         
         // Seems odd that we have to do the registration, I wonder if there is a better way
@@ -61,8 +68,7 @@
         }
        
         ctx.getRegistry().registerBeanDefinition(id, child);
-        bean.addPropertyReference(string, id);
-        
+        return id;
     }
 
     protected Element getFirstChild(Element element) {

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java Mon Apr  9 16:05:51 2007
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -38,6 +39,9 @@
 import org.springframework.beans.factory.BeanIsAbstractException;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.config.TypedStringValue;
+import org.springframework.beans.factory.support.ManagedList;
+import org.springframework.beans.factory.support.ManagedSet;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ConfigurableApplicationContext;
@@ -100,6 +104,18 @@
                     }
                 }
                 
+                if (ids instanceof ManagedSet || ids instanceof ManagedList) {
+                    List<String> newIds = new ArrayList<String>();
+                    for (Iterator itr = ids.iterator(); itr.hasNext();) {
+                        Object o = itr.next();
+                        if (o instanceof TypedStringValue) {
+                            newIds.add(((TypedStringValue) o).getValue());
+                        } else {
+                            newIds.add((String) o);
+                        }
+                    }
+                    ids = newIds;
+                }
                 for (Object id : ids) {
                     idToBeanName.put(id.toString(), beanNames[i]);
                 }

Modified: incubator/cxf/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/parent/pom.xml?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/parent/pom.xml (original)
+++ incubator/cxf/trunk/parent/pom.xml Mon Apr  9 16:05:51 2007
@@ -46,7 +46,7 @@
         <jaxws.version>2.0</jaxws.version>
         <jetty.version>5.1.11</jetty.version>
         <saaj.version>1.3</saaj.version>
-        <spring.version>2.0</spring.version>
+        <spring.version>2.0.3</spring.version>
         <wsdl4j.version>1.6.1</wsdl4j.version>
         <derby.version>10.1.1.0</derby.version>
         <activemq.version>4.1.0-incubator</activemq.version>

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -48,7 +48,8 @@
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(false);
         sf.setAddress("http://localhost:9001/foo/");
-
+        sf.setServiceBean(new CustomerService());
+        
         Map<String, Object> props = new HashMap<String, Object>();
         props.put("contextMatchStrategy", "stem");
         sf.setProperties(props);
@@ -130,7 +131,8 @@
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(false);
         sf.setAddress("http://localhost:9001/foo/");
-
+        sf.setServiceBean(new CustomerService());
+        
         Map<String, Object> props = new HashMap<String, Object>();
         props.put("Content-Type", "text/plain");
         sf.setProperties(props);

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -45,7 +45,8 @@
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(false);
         sf.setAddress("http://localhost:9001/foo/");
-
+        sf.setServiceBean(new CustomerService());
+        
         Map<String, Object> props = new HashMap<String, Object>();
         props.put("contextMatchStrategy", "stem");
         sf.setProperties(props);

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -59,7 +59,8 @@
         sf.setServiceClass(CustomerService.class);
         sf.getServiceFactory().setWrapped(true);
         sf.setAddress("http://localhost:9001/");
-
+        sf.setServiceBean(new CustomerService());
+        
         Map<String, Object> props = new HashMap<String, Object>();
         props.put("contextMatchStrategy", "stem");
         sf.setProperties(props);

Copied: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java (from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java)
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java&r1=525926&p2=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java Mon Apr  9 16:05:51 2007
@@ -20,9 +20,16 @@
 
 import java.util.Set;
 
-public class ObjectBindingConfigBean {
+import org.apache.cxf.binding.BindingConfiguration;
+
+public class ObjectBindingConfiguration extends BindingConfiguration {
     private boolean stopAfterLogicalPhases = true;
     private Set<String> skipPhases;
+    
+    @Override
+    public String getBindingId() {
+        return ObjectBindingFactory.BINDING_ID;
+    }
 
     public Set<String> getSkipPhases() {
         return skipPhases;

Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java Mon Apr  9 16:05:51 2007
@@ -56,8 +56,8 @@
     public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object config) {
         BindingInfo info = super.createBindingInfo(si, bindingid, config);
         
-        if (config instanceof ObjectBindingConfigBean) {
-            ObjectBindingConfigBean c = (ObjectBindingConfigBean) config;
+        if (config instanceof ObjectBindingConfiguration) {
+            ObjectBindingConfiguration c = (ObjectBindingConfiguration) config;
             
             info.setProperty(STOP_AFTER_LOGICAL, c.isStopAfterLogicalPhases());
         }

Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java Mon Apr  9 16:05:51 2007
@@ -22,7 +22,7 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 
-import org.apache.cxf.binding.object.ObjectBindingConfigBean;
+import org.apache.cxf.binding.object.ObjectBindingConfiguration;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
@@ -41,7 +41,7 @@
 
     @Override
     protected Class getBeanClass(Element arg0) {
-        return ObjectBindingConfigBean.class;
+        return ObjectBindingConfiguration.class;
     }
 
 }

Copied: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java (from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java)
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java&r1=525649&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
@@ -18,23 +18,27 @@
  */
 package org.apache.cxf.binding.soap;
 
+import org.apache.cxf.binding.BindingConfiguration;
 import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.MessagePartInfo;
 import org.apache.cxf.service.model.OperationInfo;
 
-public class SoapBindingInfoConfigBean {
+public class SoapBindingConfiguration extends BindingConfiguration {
     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 String getBindingId() {
+        return "http://schemas.xmlsoap.org/soap/";
+    }
 
     protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
-        return false;
+        Object isHeader = part.getProperty("messagepart.isheader");
+        return Boolean.TRUE.equals(isHeader);
     }
 
     public String getSoapAction(OperationInfo op) {
@@ -57,12 +61,12 @@
         return getStyle();
     }
 
-    public SoapVersion getSoapVersion() {
+    public SoapVersion getVersion() {
         return soapVersion;
     }
 
-    public void setSoapVersion(SoapVersion soapVersion) {
-        this.soapVersion = soapVersion;
+    public void setVersion(SoapVersion sv) {
+        this.soapVersion = sv;
     }
 
     public String getUse() {

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -90,16 +90,16 @@
     }
 
     public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object conf) {
-        SoapBindingInfoConfigBean config;
-        if (conf instanceof SoapBindingInfoConfigBean) {
-            config = (SoapBindingInfoConfigBean)conf;
+        SoapBindingConfiguration config;
+        if (conf instanceof SoapBindingConfiguration) {
+            config = (SoapBindingConfiguration)conf;
         } else {
-            config = new SoapBindingInfoConfigBean();
+            config = new SoapBindingConfiguration();
         }
         
         SoapBindingInfo info = new SoapBindingInfo(si,
                                                    "http://schemas.xmlsoap.org/wsdl/soap/",
-                                                   config.getSoapVersion());
+                                                   config.getVersion());
         
         info.setName(new QName(si.getName().getNamespaceURI(), 
                                si.getName().getLocalPart() + "SoapBinding"));
@@ -156,7 +156,7 @@
                               BindingMessageInfo bMsg, 
                               BindingMessageInfo unwrappedBMsg, 
                               MessageInfo msg,
-                              SoapBindingInfoConfigBean config) {
+                              SoapBindingConfiguration config) {
         List<MessagePartInfo> parts = new ArrayList<MessagePartInfo>();
         for (MessagePartInfo part : msg.getMessageParts()) {
             if (config.isHeader(op, part)) {

Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java?view=auto&rev=526945
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java (added)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java Mon Apr  9 16:05:51 2007
@@ -0,0 +1,43 @@
+/**
+ * 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.
+ */
+package org.apache.cxf.binding.soap;
+
+import java.beans.PropertyEditorSupport;
+
+public class SoapVersionPropertyEditor extends PropertyEditorSupport {
+
+    private SoapVersion version;
+
+    @Override
+    public Object getValue() {
+        return version;
+    }
+
+    @Override
+    public void setAsText(String text) throws IllegalArgumentException {
+        if ("1.2".equals(text)) {
+            this.version = Soap12.getInstance();
+        } else if ("1.1".equals(text)) {
+            this.version = Soap11.getInstance();
+        } else {
+            super.setAsText(text);
+        }
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.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=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Mon Apr  9 16:05:51 2007
@@ -22,7 +22,7 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 
-import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
+import org.apache.cxf.binding.soap.SoapBindingConfiguration;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
@@ -41,7 +41,7 @@
 
     @Override
     protected Class getBeanClass(Element arg0) {
-        return SoapBindingInfoConfigBean.class;
+        return SoapBindingConfiguration.class;
     }
 
 }

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml Mon Apr  9 16:05:51 2007
@@ -44,4 +44,15 @@
         </property>
         <property name="bus" ref="cxf"/>
     </bean>
+        
+	<bean id="org.apache.cxf.binding.soap.customEditorConfigurer"
+		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
+		<property name="customEditors">
+			<map>
+				<entry key="org.apache.cxf.binding.soap.SoapVersion">
+					<bean class="org.apache.cxf.binding.soap.SoapVersionPropertyEditor"/>
+				</entry>
+			</map>
+		</property>
+	</bean>
 </beans>

Added: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java?view=auto&rev=526945
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java (added)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java Mon Apr  9 16:05:51 2007
@@ -0,0 +1,26 @@
+/**
+ * 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.
+ */
+package org.apache.cxf.binding;
+
+/**
+ * A configuration for a binding.
+ */
+public abstract class BindingConfiguration {
+    public abstract String getBindingId();
+}

Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java Mon Apr  9 16:05:51 2007
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.endpoint;
 
+import java.util.Map;
 import java.util.ResourceBundle;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
@@ -55,7 +56,6 @@
     private Bus bus;
     private MessageObserver inFaultObserver;
     private MessageObserver outFaultObserver;
-    private boolean schemaValidation;
 
     public EndpointImpl(Bus bus, Service s, QName endpointName) throws EndpointException {
         this(bus, s, s.getServiceInfo().getEndpoint(endpointName));
@@ -84,7 +84,7 @@
     }
     
     public String getBeanName() {
-        return endpointInfo.getName().toString();
+        return endpointInfo.getName().toString() + ".endpoint";
     }
     
    
@@ -141,13 +141,6 @@
     public MessageObserver getOutFaultObserver() {
         return outFaultObserver;
     }
-    
-    public void setEnableSchemaValidation(boolean value) {
-        schemaValidation = value;
-    }
-    public boolean getEnableSchemaValidation() {
-        return schemaValidation;
-    }
 
     public void setInFaultObserver(MessageObserver observer) {
         inFaultObserver = observer;        
@@ -157,7 +150,14 @@
         outFaultObserver = observer;
         
     }
-
-   
+    
+    /**
+     * Utility method to make it easy to set properties from Spring.
+     * 
+     * @param properties
+     */
+    public void setProperties(Map<String, Object> properties) {
+        this.putAll(properties);
+    }
     
 }

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
@@ -78,7 +78,8 @@
     }
 
     private void setSchemaInMessage(Service service, Message message, DataReader<?> reader) {
-        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
+        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
+        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
             Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
             reader.setSchema(schema);
         }

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
@@ -57,7 +57,8 @@
     }
 
     private void setSchemaOutMessage(Service service, Message message, DataWriter<?> writer) {
-        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
+        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
+        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
             Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
             writer.setSchema(schema);
         }

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java Mon Apr  9 16:05:51 2007
@@ -39,7 +39,6 @@
     private Executor executor;
     private Invoker invoker;
     private Map<QName, Endpoint> endpoints = new HashMap<QName, Endpoint>();
-    private boolean enableSchemaValidationForAllPort;
     
     public ServiceImpl() {
         this(null);
@@ -93,11 +92,8 @@
     public void setEndpoints(Map<QName, Endpoint> endpoints) {
         this.endpoints = endpoints;
     }
-    public void setEnableSchemaValidationForAllPort(boolean value) {
-        enableSchemaValidationForAllPort = value;
-    }
-    
-    public boolean getEnableSchemaValidationForAllPort() {
-        return enableSchemaValidationForAllPort;
+
+    public void setProperties(Map<String, Object> properties) {
+        this.putAll(properties);
     }
 }

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -22,37 +22,40 @@
 import java.security.AccessController;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.xml.namespace.QName;
 import javax.xml.transform.Source;
 import javax.xml.ws.Binding;
-
-//TODO JAX-WS 2.1
-//import javax.xml.ws.EndpointReference;
 import javax.xml.ws.WebServiceException;
 import javax.xml.ws.WebServicePermission;
 import javax.xml.ws.handler.Handler;
 
 import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
 import org.apache.cxf.common.injection.ResourceInjector;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.configuration.Configurable;
 import org.apache.cxf.configuration.Configurer;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.endpoint.ServerImpl;
+import org.apache.cxf.interceptor.Interceptor;
+import org.apache.cxf.interceptor.InterceptorProvider;
 import org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
 import org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilder;
 import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
 import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
-import org.apache.cxf.message.Message;
 import org.apache.cxf.resource.DefaultResourceManager;
 import org.apache.cxf.resource.ResourceManager;
 import org.apache.cxf.resource.ResourceResolver;
 import org.apache.cxf.service.Service;
 
-public class EndpointImpl extends javax.xml.ws.Endpoint {
-    /*
+public class EndpointImpl extends javax.xml.ws.Endpoint 
+    implements InterceptorProvider, Configurable {
+    /**
      * This property controls whether the 'publishEndpoint' permission is checked 
      * using only the AccessController (i.e. when SecurityManager is not installed).
      * By default this check is not done as the system property is not set.
@@ -66,37 +69,63 @@
         new WebServicePermission("publishEndpoint");
     
     protected boolean doInit;
-
     private Bus bus;
     private Object implementor;
     private Server server;
+    private JaxWsServerFactoryBean serverFactory;
     private Service service;
-    private String bindingId;
-    private JaxWsImplementorInfo implInfo;
-    private JaxWsServiceFactoryBean serviceFactory;
     private Map<String, Object> properties;
     private List<Source> metadata;
     
+    private Executor executor;
+    private String binding;
+    private String wsdlLocation;
+    private String address;
+    private QName endpointName;
+    private QName serviceName;
+    
+    private List<Interceptor> in = new CopyOnWriteArrayList<Interceptor>();
+    private List<Interceptor> out = new CopyOnWriteArrayList<Interceptor>();
+    private List<Interceptor> outFault  = new CopyOnWriteArrayList<Interceptor>();
+    private List<Interceptor> inFault  = new CopyOnWriteArrayList<Interceptor>();
+
+    public EndpointImpl(Object implementor) {
+        this(BusFactory.getDefaultBus(), implementor);
+    }
+    
+    @Deprecated
     public EndpointImpl(Bus b, Object implementor, JaxWsServiceFactoryBean serviceFactory) {
         this(b, implementor, serviceFactory, null);
     }
     
+    /**
+     * If you're using this method you should switch to passing in a JaxWsServerFactoryBean
+     * or using the new getters/setters on EndpointImpl before our next release.
+     * @param b
+     * @param implementor
+     * @param serviceFactory
+     * @param bindingUri
+     */
+    @Deprecated
     public EndpointImpl(Bus b, Object implementor, 
                         JaxWsServiceFactoryBean serviceFactory, String bindingUri) {
         this.bus = b;
-        this.serviceFactory = serviceFactory;
-        this.implInfo = serviceFactory.getJaxWsImplementorInfo();
-        this.service = serviceFactory.getService();
+        this.binding = bindingUri;
+        this.serverFactory = new JaxWsServerFactoryBean(serviceFactory);
         this.implementor = implementor;
-        this.bindingId = bindingUri;
-        
-        if (this.service == null) {
-            service = serviceFactory.create();
-        }
         
         doInit = true;
     }
    
+    public EndpointImpl(Bus b, Object implementor, 
+                        JaxWsServerFactoryBean sf) {
+        this.bus = b;
+        this.serverFactory = sf;
+        this.implementor = implementor;
+        
+        doInit = true;
+    }
+    
     /**
      * 
      * @param b
@@ -108,28 +137,16 @@
     public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl) {
         bus = b;
         implementor = i;
-        bindingId = bindingUri;
-        // build up the Service model
-        implInfo = new JaxWsImplementorInfo(implementor.getClass());
-        serviceFactory = new JaxWsServiceFactoryBean(implInfo);
-        serviceFactory.setBus(bus);
-        if (null != wsdl) {
-            serviceFactory.setWsdlURL(wsdl);
-        }
-        service = serviceFactory.create();
-        
-        configureObject(service);
-        
-        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
-        
-        service.setInvoker(new JAXWSMethodInvoker(i));
+        binding = bindingUri;
+        wsdlLocation = wsdl;
+        serverFactory = new JaxWsServerFactoryBean();
         
         doInit = true; 
     }
     
     
-    public EndpointImpl(Bus b, Object i, String uri) {
-        this(b, i, uri, (String)null);
+    public EndpointImpl(Bus b, Object i, String bindingUri) {
+        this(b, i, bindingUri, (String)null);
     }
    
     public EndpointImpl(Bus bus, Object implementor) {
@@ -141,13 +158,18 @@
     }
 
     public void setExecutor(Executor executor) {
-        service.setExecutor(executor);
+        this.executor = executor;
     }
 
     public Executor getExecutor() {
-        return service.getExecutor();
+        return executor;
     }
 
+    public Service getService() {
+        return service;
+    }
+
+    
     @Override
     public Object getImplementor() {
         return implementor;
@@ -174,8 +196,8 @@
     }
 
     @Override
-    public void publish(String address) {
-        doPublish(address);
+    public void publish(String addr) {
+        doPublish(addr);
     }
 
     public void setMetadata(List<Source> metadata) {
@@ -222,33 +244,70 @@
         }
     }
 
-    protected void doPublish(String address) {
+    
+    public String getBeanName() {
+        return endpointName.toString();
+    }
+
+    protected void doPublish(String addr) {
         checkPublishPermission();
 
-        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(serviceFactory);
+        // Initialize the endpointName so we can do configureObject
+        if (endpointName == null) {
+            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
+            endpointName = implInfo.getEndpointName();
+        }
         
-        svrFactory.setBus(bus);
-        svrFactory.setBindingId(bindingId);
-        svrFactory.setAddress(address);
-        svrFactory.setStart(false);
-        svrFactory.setServiceBean(implementor);
-        configureObject(svrFactory);
+        configureObject(this);
+        
+        // Set up the server factory
+        serverFactory.setAddress(addr);
+        serverFactory.setStart(false);
+        serverFactory.setEndpointName(endpointName);
+        serverFactory.setServiceBean(implementor);
+        serverFactory.setBus(bus);
+        
+        // Be careful not to override any serverfactory settings as a user might
+        // have supplied their own.
+        if (getWsdlLocation() != null) {
+            serverFactory.setWsdlURL(getWsdlLocation());
+        }
+        
+        if (binding != null) {
+            serverFactory.setBindingId(binding);
+        }
+        
+        if (serviceName != null) {
+            serverFactory.getServiceFactory().setServiceName(serviceName);
+        }
+        
+        configureObject(serverFactory);
+        
+        server = serverFactory.create();
         
-        server = svrFactory.create();
-
         init();
         
         org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
+        if (getInInterceptors() != null) {
+            endpoint.getInInterceptors().addAll(getInInterceptors());
+        }
+        if (getOutInterceptors() != null) {
+            endpoint.getOutInterceptors().addAll(getOutInterceptors());
+        }
+        if (getInFaultInterceptors() != null) {
+            endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
+        }
+        if (getOutFaultInterceptors() != null) {
+            endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors());
+        }
         
         if (properties != null) {
             endpoint.putAll(properties);
         }
         
+        configureObject(endpoint.getService());
         configureObject(endpoint);
         
-        if (endpoint.getEnableSchemaValidation()) {
-            endpoint.put(Message.SCHEMA_VALIDATION_ENABLED, endpoint.getEnableSchemaValidation());
-        }
         server.start();
     }
     
@@ -304,6 +363,78 @@
         }
     }
 
+    public void publish() {
+        publish(getAddress());
+    }
+    
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public QName getEndpointName() {
+        return endpointName;
+    }
+
+    public void setEndpointName(QName endpointName) {
+        this.endpointName = endpointName;
+    }
+
+    public QName getServiceName() {
+        return serviceName;
+    }
+
+    public void setServiceName(QName serviceName) {
+        this.serviceName = serviceName;
+    }
+
+    public String getWsdlLocation() {
+        return wsdlLocation;
+    }
+
+    public void setWsdlLocation(String wsdlLocation) {
+        this.wsdlLocation = wsdlLocation;
+    }
+
+    public void setBinding(String binding) {
+        this.binding = binding;
+    }
+
+    public List<Interceptor> getOutFaultInterceptors() {
+        return outFault;
+    }
+
+    public List<Interceptor> getInFaultInterceptors() {
+        return inFault;
+    }
+
+    public List<Interceptor> getInInterceptors() {
+        return in;
+    }
+
+    public List<Interceptor> getOutInterceptors() {
+        return out;
+    }
+
+    public void setInInterceptors(List<Interceptor> interceptors) {
+        in = interceptors;
+    }
+
+    public void setInFaultInterceptors(List<Interceptor> interceptors) {
+        inFault = interceptors;
+    }
+
+    public void setOutInterceptors(List<Interceptor> interceptors) {
+        out = interceptors;
+    }
+
+    public void setOutFaultInterceptors(List<Interceptor> interceptors) {
+        outFault = interceptors;
+    }
+    
     /*
     //TODO JAX-WS 2.1
     public EndpointReference getEndpointReference(Element... referenceParameters) {

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -26,7 +26,7 @@
 import org.apache.cxf.binding.soap.SoapBindingFactory;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
 import org.apache.cxf.frontend.ServerFactoryBean;
-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
 import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.service.invoker.Invoker;
@@ -48,8 +48,8 @@
     }
     public JaxWsServerFactoryBean(JaxWsServiceFactoryBean serviceFactory) {
         setServiceFactory(serviceFactory);
-        JaxWsSoapBindingInfoConfigBean defConfig 
-            = new JaxWsSoapBindingInfoConfigBean(serviceFactory);
+        JaxWsSoapBindingConfiguration defConfig 
+            = new JaxWsSoapBindingConfiguration(serviceFactory);
         setBindingConfig(defConfig);
     }
 
@@ -75,7 +75,7 @@
                 binding = "http://schemas.xmlsoap.org/soap/";
                 
                 if (getBindingConfig() == null) {
-                    setBindingConfig(new JaxWsSoapBindingInfoConfigBean(sf));
+                    setBindingConfig(new JaxWsSoapBindingConfiguration(sf));
                 }
             }
             
@@ -83,15 +83,15 @@
         }
         boolean messageMode = implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
         
-        if (getBindingConfig() instanceof JaxWsSoapBindingInfoConfigBean) {
-            JaxWsSoapBindingInfoConfigBean conf = (JaxWsSoapBindingInfoConfigBean)getBindingConfig();
+        if (getBindingConfig() instanceof JaxWsSoapBindingConfiguration) {
+            JaxWsSoapBindingConfiguration conf = (JaxWsSoapBindingConfiguration)getBindingConfig();
             
             if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_BINDING))) {
-                conf.setSoapVersion(Soap12.getInstance());
+                conf.setVersion(Soap12.getInstance());
             }
             
             if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING))) {
-                conf.setSoapVersion(Soap12.getInstance());
+                conf.setVersion(Soap12.getInstance());
                 conf.setMtomEnabled(true);
             }
             

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -50,14 +50,13 @@
 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.JaxWsSoapBindingInfoConfigBean;
+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
 import org.apache.cxf.jaxws.handler.HandlerResolverImpl;
 import org.apache.cxf.jaxws.handler.PortInfoImpl;
 import org.apache.cxf.jaxws.support.DummyImpl;
 import org.apache.cxf.jaxws.support.JaxWsClientEndpointImpl;
 import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
 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.AbstractServiceFactoryBean;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
@@ -249,7 +248,6 @@
         
         // Configure the Service
         Service service = serviceFactory.getService();
-        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
         service.setExecutor(new Executor() {
             public void execute(Runnable command) {
                 Executor ex = getExecutor();
@@ -267,10 +265,7 @@
         configureObject(jaxwsEndpoint);  
         
         QName pn = portName;
-        if (jaxwsEndpoint.getEnableSchemaValidation()) {
-            jaxwsEndpoint.put(Message.SCHEMA_VALIDATION_ENABLED, jaxwsEndpoint.getEnableSchemaValidation());
-        }
-
+        
         List<Handler> hc = jaxwsEndpoint.getJaxwsBinding().getHandlerChain();
         hc.addAll(handlerResolver.getHandlerChain(portInfos.get(pn)));
 
@@ -295,7 +290,7 @@
         
         Object config = null;
         if (serviceFactory instanceof JaxWsServiceFactoryBean) {
-            config = new JaxWsSoapBindingInfoConfigBean((JaxWsServiceFactoryBean)serviceFactory);
+            config = new JaxWsSoapBindingConfiguration((JaxWsServiceFactoryBean)serviceFactory);
         }
         BindingInfo bindingInfo = bus.getExtension(BindingFactoryManager.class).getBindingFactory(bindingID)
                 .createBindingInfo(serviceFactory.getService(), bindingID, config);

Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java (from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java)
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java&r1=526927&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
@@ -18,26 +18,21 @@
  */
 package org.apache.cxf.jaxws.binding.soap;
 
-import java.lang.reflect.Method;
-
 import javax.jws.soap.SOAPBinding;
 import javax.jws.soap.SOAPBinding.Style;
 import javax.jws.soap.SOAPBinding.Use;
 
-import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
-import org.apache.cxf.frontend.MethodDispatcher;
+import org.apache.cxf.binding.soap.SoapBindingConfiguration;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
-import org.apache.cxf.service.model.BindingOperationInfo;
-import org.apache.cxf.service.model.MessagePartInfo;
 
 /**
  * Introspects the SOAPBinding annotation to provide to construct
  * a {@link org.apache.cxf.service.model.BindingInfo}.
  */
-public class JaxWsSoapBindingInfoConfigBean extends SoapBindingInfoConfigBean {
+public class JaxWsSoapBindingConfiguration extends SoapBindingConfiguration {
     JaxWsServiceFactoryBean serviceFactory;
     
-    public JaxWsSoapBindingInfoConfigBean(JaxWsServiceFactoryBean sifb) {
+    public JaxWsSoapBindingConfiguration(JaxWsServiceFactoryBean sifb) {
         serviceFactory = sifb;
     }
     
@@ -79,15 +74,4 @@
         }
         return super.getStyle();
     }
-
-    @Override
-    protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
-        MethodDispatcher md = (MethodDispatcher)serviceFactory.getService()
-                .get(MethodDispatcher.class.getName());
-        Method method = md.getMethod(op);
-        
-        return getJaxWsServiceFactory().isHeader(method, part.getIndex());
-    }
-    
-    
 }

Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java (from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java)
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java&r1=526469&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java Mon Apr  9 16:05:51 2007
@@ -31,25 +31,28 @@
 
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
+import org.apache.cxf.jaxws.EndpointImpl;
 import org.springframework.beans.FatalBeanException;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.springframework.util.StringUtils;
 
-public class EndpointFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
+
+public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
 
     private static final String IMPLEMENTOR = "implementor";
 
     @Override
     protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
+
         NamedNodeMap atts = element.getAttributes();
         for (int i = 0; i < atts.getLength(); i++) {
             Attr node = (Attr) atts.item(i);
             String val = node.getValue();
             String pre = node.getPrefix();
             String name = node.getLocalName();
-            
-            if (isAttribute(pre, name)) {
+
+            if (isAttribute(pre, name) && !"publish".equals(name)) {
                 if ("endpointName".equals(name) || "serviceName".equals(name)) {
                     QName q = parseQName(element, val);
                     bean.addPropertyValue(name, q);
@@ -58,6 +61,8 @@
                 } else {
                     mapToProperty(bean, name, val);
                 }
+            } else if ("abstract".equals(name)) {
+                bean.setAbstract(true);
             }
         }
         
@@ -73,29 +78,29 @@
                     || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)) {
                     List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());
                     bean.addPropertyValue(n.getLocalName(), list);
+                } else if (IMPLEMENTOR.equals(name)) {
+                    ctx.getDelegate()
+                        .parseConstructorArgElement(getFirstChild(element), bean.getBeanDefinition());
                 } else {
                     setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
                 }
             }
         }
+
+        bean.setInitMethodName("publish");
         
-        // We don't really want to delay the registration of our Server
+        // We don't want to delay the registration of our Server
         bean.setLazyInit(false);
-        
-//        PropertyValue idValue = bean.getBeanDefinition().getPropertyValues().getPropertyValue("id");
-//        if (idValue == null) {
-//            bean.addPropertyReference("id", arg1);
-//        }
     }
 
     private void loadImplementor(BeanDefinitionBuilder bean, String val) {
         if (StringUtils.hasText(val)) {
             if (val.startsWith("#")) {
-                bean.addPropertyReference(IMPLEMENTOR, val.substring(1));
+                bean.addConstructorArgReference(val.substring(1));
             } else {
                 try {
-                    bean.addPropertyValue(IMPLEMENTOR,
-                                          ClassLoaderUtils.loadClass(val, getClass()).newInstance());
+                    Object obj = ClassLoaderUtils.loadClass(val, getClass()).newInstance();
+                    bean.addConstructorArg(obj);
                 } catch (Exception e) {
                     throw new FatalBeanException("Could not load class: " + val, e);
                 }
@@ -105,7 +110,7 @@
 
     @Override
     protected Class getBeanClass(Element arg0) {
-        return EndpointFactoryBean.class;
+        return EndpointImpl.class;
     }
 
 }

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java Mon Apr  9 16:05:51 2007
@@ -23,7 +23,7 @@
 public class NamespaceHandler extends NamespaceHandlerSupport {
     public void init() {
         registerBeanDefinitionParser("client", new JaxWsProxyFactoryBeanDefinitionParser());        
-        registerBeanDefinitionParser("endpoint", new EndpointFactoryBeanDefinitionParser());        
+        registerBeanDefinitionParser("endpoint", new EndpointDefinitionParser());        
         registerBeanDefinitionParser("server", new ServerBeanDefinitionParser());        
     }
 }

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java Mon Apr  9 16:05:51 2007
@@ -161,7 +161,7 @@
             return null;
         }
         
-        return getPartName(op, method, paramNumber, "arg");
+        return getPartName(op, method, paramNumber, op.getInput().size(), "arg");
     }
 
     @Override
@@ -170,10 +170,10 @@
             return null;
         }
         
-        return getParameterName(op, method, paramNumber, "arg");
+        return getParameterName(op, method, paramNumber, op.getInput().size(), "arg");
     }
 
-    private QName getPartName(OperationInfo op, Method method, int paramNumber, String prefix) {
+    private QName getPartName(OperationInfo op, Method method, int paramNumber, int curSize, String prefix) {
         WebParam param = getWebParam(method, paramNumber);
         String tns = op.getName().getNamespaceURI();
         if (param != null) {
@@ -185,34 +185,38 @@
                 local = param.name();
             }
             if (local.length() == 0) {
-                getDefaultLocalName(op, method, paramNumber, prefix);
+                getDefaultLocalName(op, method, paramNumber, curSize, prefix);
             }
             return new QName(tns, local);
         } else {
-            return new QName(tns, getDefaultLocalName(op, method, paramNumber, prefix));
+            return new QName(tns, getDefaultLocalName(op, method, paramNumber, curSize, prefix));
         }        
     }
 
-    private QName getParameterName(OperationInfo op, Method method, int paramNumber, String prefix) {
+    private QName getParameterName(OperationInfo op, Method method, int paramNumber, 
+                                   int curSize, String prefix) {
+        method = getDeclaredMethod(method);
         WebParam param = getWebParam(method, paramNumber);
+        String tns = null;
+        String local = null;
         if (param != null) {
-            String tns = param.targetNamespace();
-            String local = param.name();
-
-            if (tns.length() == 0) {
-                tns = op.getName().getNamespaceURI();
-            }
-
-            if (local.length() == 0) {
-                local = getDefaultLocalName(op, method, paramNumber, prefix);
-            }
+            tns = param.targetNamespace();
+            local = param.name();
+        }
+        
+        if (tns == null || tns.length() == 0) {
+            tns = op.getName().getNamespaceURI();
+        }
 
-            return new QName(tns, local);
+        if (local == null || local.length() == 0) {
+            local = getDefaultLocalName(op, method, paramNumber, curSize, prefix);
         }
-        return null;
+        
+        return new QName(tns, local);
     }
 
-    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, String prefix) {
+    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, 
+                                       int curSize, String prefix) {
         Class<?> impl = implInfo.getImplementorClass(); 
         // try to grab the implementation class so we can read the debug symbols from it
         if (impl == null) {
@@ -223,7 +227,7 @@
             }
         }
         
-        return DefaultServiceConfiguration.createName(method, paramNumber, paramNumber, false, prefix);
+        return DefaultServiceConfiguration.createName(method, paramNumber, curSize, false, prefix);
     }
 
     private WebParam getWebParam(Method method, int parameter) {
@@ -248,33 +252,38 @@
 
     @Override
     public QName getOutParameterName(OperationInfo op, Method method, int paramNumber) {
+        method = getDeclaredMethod(method);
+        
         if (paramNumber >= 0) {
-            return getParameterName(op, method, paramNumber, "return");
+            return getParameterName(op, method, paramNumber, op.getOutput().size(), "return");
         } else {
             WebResult webResult = getWebResult(method);
 
+            String tns = null;
+            String local = null;
             if (webResult != null) {
-                String tns = webResult.targetNamespace();
-                String local = webResult.name();
-
-                if (tns.length() == 0) {
-                    tns = op.getName().getNamespaceURI();
-                }
+                tns = webResult.targetNamespace();
+                local = webResult.name();
+            }
 
-                if (local.length() == 0) {
-                    local = getDefaultLocalName(op, method, paramNumber, "return");
-                }
+            if (tns == null || tns.length() == 0) {
+                tns = op.getName().getNamespaceURI();
+            }
 
-                return new QName(tns, local);
+            if (local == null || local.length() == 0) {
+                local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
             }
+            
+            return new QName(tns, local);
         }
-        return super.getOutParameterName(op, method, paramNumber);
     }
 
     @Override
     public QName getOutPartName(OperationInfo op, Method method, int paramNumber) {
+        method = getDeclaredMethod(method);
+        
         if (paramNumber >= 0) {
-            return getPartName(op, method, paramNumber, "return");
+            return getPartName(op, method, paramNumber, op.getOutput().size(), "return");
         } else {
             WebResult webResult = getWebResult(method);
             String tns = op.getName().getNamespaceURI();
@@ -287,7 +296,7 @@
                     local = webResult.name();
                 }
                 if (local.length() == 0) {
-                    local = getDefaultLocalName(op, method, paramNumber, "return");
+                    local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
                 }
                 return new QName(tns, local);
             } else {

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Mon Apr  9 16:05:51 2007
@@ -51,6 +51,7 @@
 import org.apache.cxf.service.factory.AbstractServiceConfiguration;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 import org.apache.cxf.service.factory.ServiceConstructionException;
+import org.apache.cxf.service.invoker.Invoker;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.service.model.FaultInfo;
@@ -85,6 +86,11 @@
         this.serviceClass = implInfo.getEndpointClass();
     }
 
+    @Override
+    protected Invoker createInvoker() {
+        return null;
+    }
+    
     protected SimpleMethodDispatcher getMethodDispatcher() {
         return methodDispatcher;
     }

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd Mon Apr  9 16:05:51 2007
@@ -15,6 +15,7 @@
       <xsd:complexContent>
         <xsd:extension base="beans:identifiedType">
           <xsd:sequence>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="implementor" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
@@ -25,7 +26,7 @@
             <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
           </xsd:sequence>
           <xsd:attribute name="address" type="xsd:string" />
-          <xsd:attribute name="binding" type="xsd:string" />
+          <xsd:attribute name="bindingUri" type="xsd:string" />
           <xsd:attribute name="bus" type="xsd:string" />
           <xsd:attribute name="implementor" type="xsd:string"/>
           <xsd:attribute name="publish" type="xsd:boolean" default="true"/>
@@ -71,6 +72,7 @@
       <xsd:complexContent>
         <xsd:extension base="beans:identifiedType">
           <xsd:sequence>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
             <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
@@ -78,7 +80,7 @@
             <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
           </xsd:sequence>
           <xsd:attribute name="address" type="xsd:string" />
-          <xsd:attribute name="binding" type="xsd:string" />
+          <xsd:attribute name="bindingUri" type="xsd:string" />
           <xsd:attribute name="bus" type="xsd:string" />
           <xsd:attribute name="endpointName" type="xsd:QName" />
           <xsd:attribute name="password" type="xsd:string" />

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java Mon Apr  9 16:05:51 2007
@@ -94,8 +94,9 @@
         JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
         Client client = eih.getClient();
         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
-        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
+        assertTrue("Unexpected value for property validating", 
+                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
    
         // System.out.println("endpoint interceptors");
         List<Interceptor> interceptors = endpoint.getInInterceptors();
@@ -160,28 +161,29 @@
         JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
         Client client = eih.getClient();
         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
-        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
-        List<Interceptor> interceptors = endpoint.getInInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
-        assertEquals("Unexpected interceptor id.", "endpoint-in", 
-                     findTestInterceptor(interceptors).getId());
-        interceptors = endpoint.getOutInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
-        assertEquals("Unexpected interceptor id.", "endpoint-out", 
-                     findTestInterceptor(interceptors).getId());
-        interceptors = endpoint.getInFaultInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
-        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
-                     findTestInterceptor(interceptors).getId());
-        interceptors = endpoint.getOutFaultInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
-        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
-                     findTestInterceptor(interceptors).getId());
+//      The service shouldn't pick up the <jaxws:endpoint>...
+//        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
+//        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
+//        List<Interceptor> interceptors = endpoint.getInInterceptors();
+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+//        assertEquals("Unexpected interceptor id.", "endpoint-in", 
+//                     findTestInterceptor(interceptors).getId());
+//        interceptors = endpoint.getOutInterceptors();
+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+//        assertEquals("Unexpected interceptor id.", "endpoint-out", 
+//                     findTestInterceptor(interceptors).getId());
+//        interceptors = endpoint.getInFaultInterceptors();
+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+//        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
+//                     findTestInterceptor(interceptors).getId());
+//        interceptors = endpoint.getOutFaultInterceptors();
+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+//        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
+//                     findTestInterceptor(interceptors).getId());
         
         org.apache.cxf.service.ServiceImpl svc = (org.apache.cxf.service.ServiceImpl)endpoint.getService();
         assertEquals("Unexpected bean name.", SERVICE_NAME.toString(), svc.getBeanName());
-        interceptors = svc.getInInterceptors();
+        List<Interceptor> interceptors = svc.getInInterceptors();
         assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
         assertEquals("Unexpected interceptor id.", "service-in", 
                      findTestInterceptor(interceptors).getId());
@@ -226,8 +228,9 @@
         ei.publish("http://localhost/greeter");
         
         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
-        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
+        assertTrue("Unexpected value for property validating", 
+                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
    
         List<Interceptor> interceptors = endpoint.getInInterceptors();
         assertNull("Unexpected test interceptor", findTestInterceptor(interceptors));
@@ -283,22 +286,23 @@
         ei.publish("http://localhost/greeter");
         
         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
-        assertTrue("Unexpected value for property validating", endpoint.getEnableSchemaValidation());
+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
+        assertTrue("Unexpected value for property validating", 
+                   Boolean.valueOf((String) ei.getProperties().get(Message.SCHEMA_VALIDATION_ENABLED)));
         List<Interceptor> interceptors = endpoint.getInInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 5, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-in", 
                      findTestInterceptor(interceptors).getId());
         interceptors = endpoint.getOutInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 6, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-out", 
                      findTestInterceptor(interceptors).getId());
         interceptors = endpoint.getInFaultInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 2, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
                      findTestInterceptor(interceptors).getId());
         interceptors = endpoint.getOutFaultInterceptors();
-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
                      findTestInterceptor(interceptors).getId());
         

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=526945&r1=526944&r2=526945
==============================================================================
--- 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 Mon Apr  9 16:05:51 2007
@@ -127,7 +127,7 @@
             assertEquals(expeced, e.getMessage());
         }
     }
-
+    
     @Test
     public void testPublishEndpointPermission() throws Exception {
         Hello service = new Hello();

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java?view=diff&rev=526945&r1=526944&r2=526945
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java Mon Apr  9 16:05:51 2007
@@ -26,7 +26,7 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.frontend.ServerFactoryBean;
-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.MessagePartInfo;
@@ -76,8 +76,10 @@
         ServerFactoryBean svr = new ServerFactoryBean();
         svr.setBus(bus);
         svr.setServiceFactory(bean);
+        svr.setServiceBean(new TestHeaderImpl());
         svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPort");
-        svr.setBindingConfig(new JaxWsSoapBindingInfoConfigBean(bean));
+        svr.setBindingConfig(new JaxWsSoapBindingConfiguration(bean));
+
         
         svr.create();
         



Re: svn commit: r526945 [1/2] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/service/ common/common/src/main/java/org/apache/cxf/configuration/spring/ parent/...

Posted by Daniel Kulp <dk...@apache.org>.

I have these fixed in my checkout.    They'll go away when I commit next.

Dan


On Tuesday 10 April 2007 08:01, James Mao wrote:
> Hi Dan,
>
> Can you also fix the build warnings in
> rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\EndpointImplTest.
>java due to the [deprecation] of EndpointImpl
>
> C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\
>jaxws\Endp ointImplTest.java:[80,32] 警告:[deprecation]
> org.apache.cxf.jaxws.EndpointImpl
> 中的
> EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.
>suppo rt.JaxWsServiceFactoryBean) 已过时
>
> C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\
>jaxws\Endp ointImplTest.java:[104,32] 警告:[deprecation]
> org.apache.cxf.jaxws.EndpointImpl
>  中的
> EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.
>supp ort.JaxWsServiceFactoryBean) 已过时
>
> C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\
>jaxws\Endp ointImplTest.java:[124,12] 警告:[deprecation]
> org.apache.cxf.jaxws.EndpointImpl
>  中的
> EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.
>supp ort.JaxWsServiceFactoryBean) 已过时
>
> Thanks,
> James.
>
> > Author: dandiep
> > Date: Mon Apr  9 16:05:51 2007
> > New Revision: 526945
> >
> > URL: http://svn.apache.org/viewvc?view=rev&rev=526945
> > Log:
> > o Enabled usage of <jaxws:endpoint> when using Endpoint.publish():
> >   - Removed EndpointFactoryBean and just use EndpointImpl
> >   - Added many getters/setters to configure the Endpointimpl
> >   - Added constructor to pass in ServerFactoryBean instead of
> >     ServiceFactoryBean. Deprecated old constructors because this
> >     is more correct and 99% of the people can probably just use
> >     the getters/setters on EndpointImpl now.
> > o Renamed BindingInfoConfigBean objects to *BindingConfiguration.
> >   These all inherit from BindingConfiguration which has an abstract
> >   method getBindingId().
> > o Removed Endpoint/Service.enableSchemaValidation and made it a
> >   service property instead. I also changed the constant
> >   Message.ENABLE_SCHEMA_VALIDATION to be more amenable to config
> > files. o Upgrade to Spring 2.0.3 and fix issues with SpringBeanMap
> > in this latest version.
> > o Add a property editor for SoapVersions so we can specify "1.2" in
> >   the xml configuration for a <jaxws:endpoint>
> > o Fix several bugs with the JaxWsServiceConfiguration
> > o Don't create an Invoker inside JaxWsServiceFactoryBean, do it in
> > the JaxWsSERVERFactoryBean instead
> >
> >
> > Added:
> >    
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingConfiguration.java - copied, changed from
> > r525926,
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingConfigBean.java
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingConfiguration.java - copied, changed from
> > r525649,
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingInfoConfigBean.java
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapVersionPropertyEditor.java   (with props)
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/Bin
> >dingConfiguration.java   (with props)
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/binding/soap/JaxWsSoapBindingConfiguration.java - copied,
> > changed from r526927,
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointDefinitionParser.java - copied, changed from
> > r526469,
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointFactoryBeanDefinitionParser.java Removed:
> >    
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingConfigBean.java
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingInfoConfigBean.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointFactoryBean.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointFactoryBeanDefinitionParser.java Modified:
> >    
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoi
> >nt.java
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message
> >.java
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service
> >.java
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/AbstractBeanDefinitionParser.java
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/SpringBeanMap.java incubator/cxf/trunk/parent/pom.xml
> >    
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/BareServiceTest.java
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/ClientTest.java
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/wrapped/WrappedServiceTest.java
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingFactory.java
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingFactory.java
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java
> > incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf
> >/cxf-extension-soap.xml
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/En
> >dpointImpl.java
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractInDatabindingInterceptor.java
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractOutDatabindingInterceptor.java
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/Ser
> >viceImpl.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/EndpointImpl.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/JaxWsServerFactoryBean.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/ServiceImpl.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/NamespaceHandler.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceConfiguration.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceFactoryBean.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/
> >cxf/jaxws/spring/jaxws.xsd
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/ConfiguredEndpointTest.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/EndpointImplTest.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/HeaderTest.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/configured-endpoints.xml
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/holder/HolderService.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/holder/HolderServiceImpl.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/holder/HolderTest.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/provider/ProviderServiceFactoryTest.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/spring/SpringBeansTest.java
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/spring/endpoints.xml
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/spring/servers.xml
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/support/JaxWsServiceConfigurationTest.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/
> >service/factory/ReflectionServiceFactoryBean.java
> > incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Wrap
> >pedEndpoint.java
> > incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Wrap
> >pedService.java
> > incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/s
> >ecurity/wss4j/RoundTripTest.java
> > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mt
> >om/MtomServerTest.java
> > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/sc
> >hema_validation/cxf-config.xml
> > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/se
> >rvlet/SpringServletTest.java
> > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/se
> >rvlet/spring.xml
> > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ty
> >pe_test/databinding-schema-validation.xml
> >
> > Modified:
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoi
> >nt.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/o
> >rg/apache/cxf/endpoint/Endpoint.java?view=diff&rev=526945&r1=526944&r
> >2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoi
> >nt.java (original) +++
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoi
> >nt.java Mon Apr  9 16:05:51 2007 @@ -51,9 +51,5 @@
> >      void setInFaultObserver(MessageObserver observer);
> >
> >      void setOutFaultObserver(MessageObserver observer);
> > -
> > -    boolean getEnableSchemaValidation();
> > -
> > -    void setEnableSchemaValidation(boolean value);
> >
> >  }
> >
> > Modified:
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message
> >.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/o
> >rg/apache/cxf/message/Message.java?view=diff&rev=526945&r1=526944&r2=
> >526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message
> >.java (original) +++
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message
> >.java Mon Apr  9 16:05:51 2007 @@ -49,7 +49,7 @@
> >      String PATH_INFO = Message.class.getName() + ".PATH_INFO";
> >      String QUERY_STRING = Message.class.getName() +
> > ".QUERY_STRING"; String MTOM_ENABLED = "mtom-enabled";
> > -    String SCHEMA_VALIDATION_ENABLED =
> > Message.class.getCanonicalName() + ".schemaValidationEnabled"; +   
> > String SCHEMA_VALIDATION_ENABLED = "schema-validation-enabled";
> > String FAULT_STACKTRACE_ENABLED = "faultStackTraceEnabled"; String
> > CONTENT_TYPE = "Content-Type";
> >      String BASE_PATH = Message.class.getName() + ".BASE_PATH";
> >
> > Modified:
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service
> >.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/o
> >rg/apache/cxf/service/Service.java?view=diff&rev=526945&r1=526944&r2=
> >526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service
> >.java (original) +++
> > incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service
> >.java Mon Apr  9 16:05:51 2007 @@ -49,8 +49,4 @@
> >      void setInvoker(Invoker invoker);
> >
> >      Map<QName, Endpoint> getEndpoints();
> > -
> > -    void setEnableSchemaValidationForAllPort(boolean value);
> > -
> > -    boolean getEnableSchemaValidationForAllPort();
> >  }
> >
> > Modified:
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/AbstractBeanDefinitionParser.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/m
> >ain/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionPa
> >rser.java?view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/AbstractBeanDefinitionParser.java (original) +++
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/AbstractBeanDefinitionParser.java Mon Apr  9 16:05:51
> > 2007 @@ -40,11 +40,18 @@
> >  public abstract class AbstractBeanDefinitionParser extends
> > AbstractSingleBeanDefinitionParser {
> >
> >      protected void setFirstChildAsProperty(Element element,
> > ParserContext ctx, -                                        
> > BeanDefinitionBuilder bean, String string) { +                      
> >                   BeanDefinitionBuilder bean, String propertyName) {
> > +        String id = getAndRegisterFirstChild(element, ctx, bean,
> > propertyName); +        bean.addPropertyReference(propertyName, id);
> > +
> > +    }
> > +
> > +    protected String getAndRegisterFirstChild(Element element,
> > ParserContext ctx, +                                             
> > BeanDefinitionBuilder bean, String propertyName) { Element first =
> > getFirstChild(element);
> >
> >          if (first == null) {
> > -            throw new IllegalStateException(string + " property
> > must have child elements!"); +            throw new
> > IllegalStateException(propertyName + " property must have child
> > elements!"); }
> >
> >          // Seems odd that we have to do the registration, I wonder
> > if there is a better way @@ -61,8 +68,7 @@
> >          }
> >
> >          ctx.getRegistry().registerBeanDefinition(id, child);
> > -        bean.addPropertyReference(string, id);
> > -
> > +        return id;
> >      }
> >
> >      protected Element getFirstChild(Element element) {
> >
> > Modified:
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/SpringBeanMap.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/m
> >ain/java/org/apache/cxf/configuration/spring/SpringBeanMap.java?view=
> >diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/SpringBeanMap.java (original) +++
> > incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/confi
> >guration/spring/SpringBeanMap.java Mon Apr  9 16:05:51 2007 @@ -24,6
> > +24,7 @@
> >  import java.util.ArrayList;
> >  import java.util.Collection;
> >  import java.util.HashSet;
> > +import java.util.Iterator;
> >  import java.util.List;
> >  import java.util.Map;
> >  import java.util.Set;
> > @@ -38,6 +39,9 @@
> >  import org.springframework.beans.factory.BeanIsAbstractException;
> >  import org.springframework.beans.factory.InitializingBean;
> >  import org.springframework.beans.factory.config.BeanDefinition;
> > +import org.springframework.beans.factory.config.TypedStringValue;
> > +import org.springframework.beans.factory.support.ManagedList;
> > +import org.springframework.beans.factory.support.ManagedSet;
> >  import org.springframework.context.ApplicationContext;
> >  import org.springframework.context.ApplicationContextAware;
> >  import org.springframework.context.ConfigurableApplicationContext;
> > @@ -100,6 +104,18 @@
> >                      }
> >                  }
> >
> > +                if (ids instanceof ManagedSet || ids instanceof
> > ManagedList) { +                    List<String> newIds = new
> > ArrayList<String>(); +                    for (Iterator itr =
> > ids.iterator(); itr.hasNext();) { +                        Object o
> > = itr.next();
> > +                        if (o instanceof TypedStringValue) {
> > +                            newIds.add(((TypedStringValue)
> > o).getValue()); +                        } else {
> > +                            newIds.add((String) o);
> > +                        }
> > +                    }
> > +                    ids = newIds;
> > +                }
> >                  for (Object id : ids) {
> >                      idToBeanName.put(id.toString(), beanNames[i]);
> >                  }
> >
> > Modified: incubator/cxf/trunk/parent/pom.xml
> > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/parent/pom.xml?view
> >=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== --- incubator/cxf/trunk/parent/pom.xml (original)
> > +++ incubator/cxf/trunk/parent/pom.xml Mon Apr  9 16:05:51 2007
> > @@ -46,7 +46,7 @@
> >          <jaxws.version>2.0</jaxws.version>
> >          <jetty.version>5.1.11</jetty.version>
> >          <saaj.version>1.3</saaj.version>
> > -        <spring.version>2.0</spring.version>
> > +        <spring.version>2.0.3</spring.version>
> >          <wsdl4j.version>1.6.1</wsdl4j.version>
> >          <derby.version>10.1.1.0</derby.version>
> >          <activemq.version>4.1.0-incubator</activemq.version>
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/BareServiceTest.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/sr
> >c/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java?vie
> >w=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/BareServiceTest.java (original) +++
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/BareServiceTest.java Mon Apr  9 16:05:51 2007 @@
> > -48,7 +48,8 @@
> >          sf.setServiceClass(CustomerService.class);
> >          sf.getServiceFactory().setWrapped(false);
> >          sf.setAddress("http://localhost:9001/foo/");
> > -
> > +        sf.setServiceBean(new CustomerService());
> > +
> >          Map<String, Object> props = new HashMap<String, Object>();
> >          props.put("contextMatchStrategy", "stem");
> >          sf.setProperties(props);
> > @@ -130,7 +131,8 @@
> >          sf.setServiceClass(CustomerService.class);
> >          sf.getServiceFactory().setWrapped(false);
> >          sf.setAddress("http://localhost:9001/foo/");
> > -
> > +        sf.setServiceBean(new CustomerService());
> > +
> >          Map<String, Object> props = new HashMap<String, Object>();
> >          props.put("Content-Type", "text/plain");
> >          sf.setProperties(props);
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/ClientTest.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/sr
> >c/test/java/org/apache/cxf/binding/http/bare/ClientTest.java?view=dif
> >f&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/ClientTest.java (original) +++
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/bare/ClientTest.java Mon Apr  9 16:05:51 2007 @@ -45,7
> > +45,8 @@
> >          sf.setServiceClass(CustomerService.class);
> >          sf.getServiceFactory().setWrapped(false);
> >          sf.setAddress("http://localhost:9001/foo/");
> > -
> > +        sf.setServiceBean(new CustomerService());
> > +
> >          Map<String, Object> props = new HashMap<String, Object>();
> >          props.put("contextMatchStrategy", "stem");
> >          sf.setProperties(props);
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/wrapped/WrappedServiceTest.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/sr
> >c/test/java/org/apache/cxf/binding/http/wrapped/WrappedServiceTest.ja
> >va?view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/wrapped/WrappedServiceTest.java (original) +++
> > incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/bi
> >nding/http/wrapped/WrappedServiceTest.java Mon Apr  9 16:05:51 2007
> > @@ -59,7 +59,8 @@
> >          sf.setServiceClass(CustomerService.class);
> >          sf.getServiceFactory().setWrapped(true);
> >          sf.setAddress("http://localhost:9001/");
> > -
> > +        sf.setServiceBean(new CustomerService());
> > +
> >          Map<String, Object> props = new HashMap<String, Object>();
> >          props.put("contextMatchStrategy", "stem");
> >          sf.setProperties(props);
> >
> > Copied:
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingConfiguration.java (from r525926,
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingConfigBean.java) URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/
> >src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguratio
> >n.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/object
> >/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.
> >java&r1=525926&p2=incubator/cxf/trunk/rt/bindings/object/src/main/jav
> >a/org/apache/cxf/binding/object/ObjectBindingConfiguration.java&r2=52
> >6945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingConfigBean.java (original) +++
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingConfiguration.java Mon Apr  9 16:05:51
> > 2007 @@ -20,9 +20,16 @@
> >
> >  import java.util.Set;
> >
> > -public class ObjectBindingConfigBean {
> > +import org.apache.cxf.binding.BindingConfiguration;
> > +
> > +public class ObjectBindingConfiguration extends
> > BindingConfiguration { private boolean stopAfterLogicalPhases =
> > true;
> >      private Set<String> skipPhases;
> > +
> > +    @Override
> > +    public String getBindingId() {
> > +        return ObjectBindingFactory.BINDING_ID;
> > +    }
> >
> >      public Set<String> getSkipPhases() {
> >          return skipPhases;
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingFactory.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/
> >src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
> >?view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingFactory.java (original) +++
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/ObjectBindingFactory.java Mon Apr  9 16:05:51 2007 @@
> > -56,8 +56,8 @@
> >      public BindingInfo createBindingInfo(ServiceInfo si, String
> > bindingid, Object config) { BindingInfo info =
> > super.createBindingInfo(si, bindingid, config);
> >
> > -        if (config instanceof ObjectBindingConfigBean) {
> > -            ObjectBindingConfigBean c = (ObjectBindingConfigBean)
> > config; +        if (config instanceof ObjectBindingConfiguration) {
> > +            ObjectBindingConfiguration c =
> > (ObjectBindingConfiguration) config;
> >
> >              info.setProperty(STOP_AFTER_LOGICAL,
> > c.isStopAfterLogicalPhases()); }
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
> > URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/
> >src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfi
> >gBeanDefinintionParser.java?view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
> > (original) +++
> > incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/
> >binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
> > Mon Apr  9 16:05:51 2007 @@ -22,7 +22,7 @@
> >  import org.w3c.dom.Element;
> >  import org.w3c.dom.NamedNodeMap;
> >
> > -import org.apache.cxf.binding.object.ObjectBindingConfigBean;
> > +import org.apache.cxf.binding.object.ObjectBindingConfiguration;
> >  import
> > org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> > import
> > org.springframework.beans.factory.support.BeanDefinitionBuilder;
> > import org.springframework.beans.factory.xml.ParserContext; @@ -41,7
> > +41,7 @@
> >
> >      @Override
> >      protected Class getBeanClass(Element arg0) {
> > -        return ObjectBindingConfigBean.class;
> > +        return ObjectBindingConfiguration.class;
> >      }
> >
> >  }
> >
> > Copied:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingConfiguration.java (from r525649,
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingInfoConfigBean.java) URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/sr
> >c/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java
> >?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/soap/src/mai
> >n/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java&r1=
> >525649&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apac
> >he/cxf/binding/soap/SoapBindingConfiguration.java&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingInfoConfigBean.java (original) +++
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingConfiguration.java Mon Apr  9 16:05:51 2007 @@
> > -18,23 +18,27 @@
> >   */
> >  package org.apache.cxf.binding.soap;
> >
> > +import org.apache.cxf.binding.BindingConfiguration;
> >  import org.apache.cxf.service.model.BindingOperationInfo;
> >  import org.apache.cxf.service.model.MessagePartInfo;
> >  import org.apache.cxf.service.model.OperationInfo;
> >
> > -public class SoapBindingInfoConfigBean {
> > +public class SoapBindingConfiguration extends BindingConfiguration
> > { 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 String getBindingId() {
> > +        return "http://schemas.xmlsoap.org/soap/";
> > +    }
> >
> >      protected boolean isHeader(BindingOperationInfo op,
> > MessagePartInfo part) { -        return false;
> > +        Object isHeader = part.getProperty("messagepart.isheader");
> > +        return Boolean.TRUE.equals(isHeader);
> >      }
> >
> >      public String getSoapAction(OperationInfo op) {
> > @@ -57,12 +61,12 @@
> >          return getStyle();
> >      }
> >
> > -    public SoapVersion getSoapVersion() {
> > +    public SoapVersion getVersion() {
> >          return soapVersion;
> >      }
> >
> > -    public void setSoapVersion(SoapVersion soapVersion) {
> > -        this.soapVersion = soapVersion;
> > +    public void setVersion(SoapVersion sv) {
> > +        this.soapVersion = sv;
> >      }
> >
> >      public String getUse() {
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingFactory.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/sr
> >c/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?view=
> >diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingFactory.java (original) +++
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapBindingFactory.java Mon Apr  9 16:05:51 2007 @@ -90,16
> > +90,16 @@
> >      }
> >
> >      public BindingInfo createBindingInfo(ServiceInfo si, String
> > bindingid, Object conf) { -        SoapBindingInfoConfigBean config;
> > -        if (conf instanceof SoapBindingInfoConfigBean) {
> > -            config = (SoapBindingInfoConfigBean)conf;
> > +        SoapBindingConfiguration config;
> > +        if (conf instanceof SoapBindingConfiguration) {
> > +            config = (SoapBindingConfiguration)conf;
> >          } else {
> > -            config = new SoapBindingInfoConfigBean();
> > +            config = new SoapBindingConfiguration();
> >          }
> >
> >          SoapBindingInfo info = new SoapBindingInfo(si,
> >                                                    
> > "http://schemas.xmlsoap.org/wsdl/soap/", -                          
> >                         config.getSoapVersion()); +                 
> >                                  config.getVersion());
> >
> >          info.setName(new QName(si.getName().getNamespaceURI(),
> >                                 si.getName().getLocalPart() +
> > "SoapBinding")); @@ -156,7 +156,7 @@
> >                                BindingMessageInfo bMsg,
> >                                BindingMessageInfo unwrappedBMsg,
> >                                MessageInfo msg,
> > -                              SoapBindingInfoConfigBean config) {
> > +                              SoapBindingConfiguration config) {
> >          List<MessagePartInfo> parts = new
> > ArrayList<MessagePartInfo>(); for (MessagePartInfo part :
> > msg.getMessageParts()) { if (config.isHeader(op, part)) {
> >
> > Added:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapVersionPropertyEditor.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/sr
> >c/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.jav
> >a?view=auto&rev=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapVersionPropertyEditor.java (added) +++
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapVersionPropertyEditor.java Mon Apr  9 16:05:51 2007 @@
> > -0,0 +1,43 @@
> > +/**
> > + * 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.
> > + */
> > +package org.apache.cxf.binding.soap;
> > +
> > +import java.beans.PropertyEditorSupport;
> > +
> > +public class SoapVersionPropertyEditor extends
> > PropertyEditorSupport { +
> > +    private SoapVersion version;
> > +
> > +    @Override
> > +    public Object getValue() {
> > +        return version;
> > +    }
> > +
> > +    @Override
> > +    public void setAsText(String text) throws
> > IllegalArgumentException { +        if ("1.2".equals(text)) {
> > +            this.version = Soap12.getInstance();
> > +        } else if ("1.1".equals(text)) {
> > +            this.version = Soap11.getInstance();
> > +        } else {
> > +            super.setAsText(text);
> > +        }
> > +    }
> > +
> > +}
> >
> > Propchange:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapVersionPropertyEditor.java
> > --------------------------------------------------------------------
> >---------- svn:eol-style = native
> >
> > Propchange:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapVersionPropertyEditor.java
> > --------------------------------------------------------------------
> >---------- svn:executable = *
> >
> > Propchange:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/SoapVersionPropertyEditor.java
> > --------------------------------------------------------------------
> >---------- svn:keywords = Rev Date
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/sr
> >c/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigB
> >eanDefinitionParser.java?view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java
> > (original) +++
> > incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/bi
> >nding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Mon
> > Apr  9 16:05:51 2007 @@ -22,7 +22,7 @@
> >  import org.w3c.dom.Element;
> >  import org.w3c.dom.NamedNodeMap;
> >
> > -import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
> > +import org.apache.cxf.binding.soap.SoapBindingConfiguration;
> >  import
> > org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> > import
> > org.springframework.beans.factory.support.BeanDefinitionBuilder;
> > import org.springframework.beans.factory.xml.ParserContext; @@ -41,7
> > +41,7 @@
> >
> >      @Override
> >      protected Class getBeanClass(Element arg0) {
> > -        return SoapBindingInfoConfigBean.class;
> > +        return SoapBindingConfiguration.class;
> >      }
> >
> >  }
> >
> > Modified:
> > incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf
> >/cxf-extension-soap.xml URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/sr
> >c/main/resources/META-INF/cxf/cxf-extension-soap.xml?view=diff&rev=52
> >6945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf
> >/cxf-extension-soap.xml (original) +++
> > incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf
> >/cxf-extension-soap.xml Mon Apr  9 16:05:51 2007 @@ -44,4 +44,15 @@
> >          </property>
> >          <property name="bus" ref="cxf"/>
> >      </bean>
> > +
> > +	<bean id="org.apache.cxf.binding.soap.customEditorConfigurer"
> > +		class="org.springframework.beans.factory.config.CustomEditorConfi
> >gurer"> +		<property name="customEditors">
> > +			<map>
> > +				<entry key="org.apache.cxf.binding.soap.SoapVersion">
> > +					<bean
> > class="org.apache.cxf.binding.soap.SoapVersionPropertyEditor"/>
> > +				</entry>
> > +			</map>
> > +		</property>
> > +	</bean>
> >  </beans>
> >
> > Added:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/Bin
> >dingConfiguration.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/ja
> >va/org/apache/cxf/binding/BindingConfiguration.java?view=auto&rev=526
> >945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/Bin
> >dingConfiguration.java (added) +++
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/Bin
> >dingConfiguration.java Mon Apr  9 16:05:51 2007 @@ -0,0 +1,26 @@
> > +/**
> > + * 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.
> > + */
> > +package org.apache.cxf.binding;
> > +
> > +/**
> > + * A configuration for a binding.
> > + */
> > +public abstract class BindingConfiguration {
> > +    public abstract String getBindingId();
> > +}
> >
> > Propchange:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/Bin
> >dingConfiguration.java
> > --------------------------------------------------------------------
> >---------- svn:eol-style = native
> >
> > Propchange:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/Bin
> >dingConfiguration.java
> > --------------------------------------------------------------------
> >---------- svn:executable = *
> >
> > Propchange:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/Bin
> >dingConfiguration.java
> > --------------------------------------------------------------------
> >---------- svn:keywords = Rev Date
> >
> > Modified:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/En
> >dpointImpl.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/ja
> >va/org/apache/cxf/endpoint/EndpointImpl.java?view=diff&rev=526945&r1=
> >526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/En
> >dpointImpl.java (original) +++
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/En
> >dpointImpl.java Mon Apr  9 16:05:51 2007 @@ -19,6 +19,7 @@
> >
> >  package org.apache.cxf.endpoint;
> >
> > +import java.util.Map;
> >  import java.util.ResourceBundle;
> >  import java.util.concurrent.Executor;
> >  import java.util.logging.Logger;
> > @@ -55,7 +56,6 @@
> >      private Bus bus;
> >      private MessageObserver inFaultObserver;
> >      private MessageObserver outFaultObserver;
> > -    private boolean schemaValidation;
> >
> >      public EndpointImpl(Bus bus, Service s, QName endpointName)
> > throws EndpointException { this(bus, s,
> > s.getServiceInfo().getEndpoint(endpointName)); @@ -84,7 +84,7 @@
> >      }
> >
> >      public String getBeanName() {
> > -        return endpointInfo.getName().toString();
> > +        return endpointInfo.getName().toString() + ".endpoint";
> >      }
> >
> >
> > @@ -141,13 +141,6 @@
> >      public MessageObserver getOutFaultObserver() {
> >          return outFaultObserver;
> >      }
> > -
> > -    public void setEnableSchemaValidation(boolean value) {
> > -        schemaValidation = value;
> > -    }
> > -    public boolean getEnableSchemaValidation() {
> > -        return schemaValidation;
> > -    }
> >
> >      public void setInFaultObserver(MessageObserver observer) {
> >          inFaultObserver = observer;
> > @@ -157,7 +150,14 @@
> >          outFaultObserver = observer;
> >
> >      }
> > -
> > -
> > +
> > +    /**
> > +     * Utility method to make it easy to set properties from
> > Spring. +     *
> > +     * @param properties
> > +     */
> > +    public void setProperties(Map<String, Object> properties) {
> > +        this.putAll(properties);
> > +    }
> >
> >  }
> >
> > Modified:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractInDatabindingInterceptor.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/ja
> >va/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?v
> >iew=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractInDatabindingInterceptor.java (original) +++
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractInDatabindingInterceptor.java Mon Apr  9 16:05:51 2007 @@
> > -78,7 +78,8 @@
> >      }
> >
> >      private void setSchemaInMessage(Service service, Message
> > message, DataReader<?> reader) { -        if
> > (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VA
> >LIDATION_ENABLED))) { +        Object en =
> > message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED); + 
> >       if (Boolean.TRUE.equals(en) || "true".equals(en)) { Schema
> > schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
> > reader.setSchema(schema);
> >          }
> >
> > Modified:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractOutDatabindingInterceptor.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/ja
> >va/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java?
> >view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractOutDatabindingInterceptor.java (original) +++
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor
> >/AbstractOutDatabindingInterceptor.java Mon Apr  9 16:05:51 2007 @@
> > -57,7 +57,8 @@
> >      }
> >
> >      private void setSchemaOutMessage(Service service, Message
> > message, DataWriter<?> writer) { -        if
> > (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VA
> >LIDATION_ENABLED))) { +        Object en =
> > message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED); + 
> >       if (Boolean.TRUE.equals(en) || "true".equals(en)) { Schema
> > schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
> > writer.setSchema(schema);
> >          }
> >
> > Modified:
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/Ser
> >viceImpl.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/ja
> >va/org/apache/cxf/service/ServiceImpl.java?view=diff&rev=526945&r1=52
> >6944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/Ser
> >viceImpl.java (original) +++
> > incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/Ser
> >viceImpl.java Mon Apr  9 16:05:51 2007 @@ -39,7 +39,6 @@
> >      private Executor executor;
> >      private Invoker invoker;
> >      private Map<QName, Endpoint> endpoints = new HashMap<QName,
> > Endpoint>(); -    private boolean enableSchemaValidationForAllPort;
> >
> >      public ServiceImpl() {
> >          this(null);
> > @@ -93,11 +92,8 @@
> >      public void setEndpoints(Map<QName, Endpoint> endpoints) {
> >          this.endpoints = endpoints;
> >      }
> > -    public void setEnableSchemaValidationForAllPort(boolean value)
> > { -        enableSchemaValidationForAllPort = value;
> > -    }
> > -
> > -    public boolean getEnableSchemaValidationForAllPort() {
> > -        return enableSchemaValidationForAllPort;
> > +
> > +    public void setProperties(Map<String, Object> properties) {
> > +        this.putAll(properties);
> >      }
> >  }
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/EndpointImpl.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/EndpointImpl.java?view=diff&rev=526
> >945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/EndpointImpl.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/EndpointImpl.java Mon Apr  9 16:05:51 2007 @@ -22,37 +22,40 @@
> >  import java.security.AccessController;
> >  import java.util.List;
> >  import java.util.Map;
> > +import java.util.concurrent.CopyOnWriteArrayList;
> >  import java.util.concurrent.Executor;
> >  import java.util.logging.Logger;
> >
> > +import javax.xml.namespace.QName;
> >  import javax.xml.transform.Source;
> >  import javax.xml.ws.Binding;
> > -
> > -//TODO JAX-WS 2.1
> > -//import javax.xml.ws.EndpointReference;
> >  import javax.xml.ws.WebServiceException;
> >  import javax.xml.ws.WebServicePermission;
> >  import javax.xml.ws.handler.Handler;
> >
> >  import org.apache.cxf.Bus;
> > +import org.apache.cxf.BusFactory;
> >  import org.apache.cxf.common.injection.ResourceInjector;
> >  import org.apache.cxf.common.logging.LogUtils;
> > +import org.apache.cxf.configuration.Configurable;
> >  import org.apache.cxf.configuration.Configurer;
> >  import org.apache.cxf.endpoint.Server;
> >  import org.apache.cxf.endpoint.ServerImpl;
> > +import org.apache.cxf.interceptor.Interceptor;
> > +import org.apache.cxf.interceptor.InterceptorProvider;
> >  import
> > org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
> > import org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilder;
> > import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
> >  import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
> >  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> > -import org.apache.cxf.message.Message;
> >  import org.apache.cxf.resource.DefaultResourceManager;
> >  import org.apache.cxf.resource.ResourceManager;
> >  import org.apache.cxf.resource.ResourceResolver;
> >  import org.apache.cxf.service.Service;
> >
> > -public class EndpointImpl extends javax.xml.ws.Endpoint {
> > -    /*
> > +public class EndpointImpl extends javax.xml.ws.Endpoint
> > +    implements InterceptorProvider, Configurable {
> > +    /**
> >       * This property controls whether the 'publishEndpoint'
> > permission is checked * using only the AccessController (i.e. when
> > SecurityManager is not installed). * By default this check is not
> > done as the system property is not set. @@ -66,37 +69,63 @@
> >          new WebServicePermission("publishEndpoint");
> >
> >      protected boolean doInit;
> > -
> >      private Bus bus;
> >      private Object implementor;
> >      private Server server;
> > +    private JaxWsServerFactoryBean serverFactory;
> >      private Service service;
> > -    private String bindingId;
> > -    private JaxWsImplementorInfo implInfo;
> > -    private JaxWsServiceFactoryBean serviceFactory;
> >      private Map<String, Object> properties;
> >      private List<Source> metadata;
> >
> > +    private Executor executor;
> > +    private String binding;
> > +    private String wsdlLocation;
> > +    private String address;
> > +    private QName endpointName;
> > +    private QName serviceName;
> > +
> > +    private List<Interceptor> in = new
> > CopyOnWriteArrayList<Interceptor>(); +    private List<Interceptor>
> > out = new CopyOnWriteArrayList<Interceptor>(); +    private
> > List<Interceptor> outFault  = new
> > CopyOnWriteArrayList<Interceptor>(); +    private List<Interceptor>
> > inFault  = new CopyOnWriteArrayList<Interceptor>(); +
> > +    public EndpointImpl(Object implementor) {
> > +        this(BusFactory.getDefaultBus(), implementor);
> > +    }
> > +
> > +    @Deprecated
> >      public EndpointImpl(Bus b, Object implementor,
> > JaxWsServiceFactoryBean serviceFactory) { this(b, implementor,
> > serviceFactory, null);
> >      }
> >
> > +    /**
> > +     * If you're using this method you should switch to passing in
> > a JaxWsServerFactoryBean +     * or using the new getters/setters on
> > EndpointImpl before our next release. +     * @param b
> > +     * @param implementor
> > +     * @param serviceFactory
> > +     * @param bindingUri
> > +     */
> > +    @Deprecated
> >      public EndpointImpl(Bus b, Object implementor,
> >                          JaxWsServiceFactoryBean serviceFactory,
> > String bindingUri) { this.bus = b;
> > -        this.serviceFactory = serviceFactory;
> > -        this.implInfo = serviceFactory.getJaxWsImplementorInfo();
> > -        this.service = serviceFactory.getService();
> > +        this.binding = bindingUri;
> > +        this.serverFactory = new
> > JaxWsServerFactoryBean(serviceFactory); this.implementor =
> > implementor;
> > -        this.bindingId = bindingUri;
> > -
> > -        if (this.service == null) {
> > -            service = serviceFactory.create();
> > -        }
> >
> >          doInit = true;
> >      }
> >
> > +    public EndpointImpl(Bus b, Object implementor,
> > +                        JaxWsServerFactoryBean sf) {
> > +        this.bus = b;
> > +        this.serverFactory = sf;
> > +        this.implementor = implementor;
> > +
> > +        doInit = true;
> > +    }
> > +
> >      /**
> >       *
> >       * @param b
> > @@ -108,28 +137,16 @@
> >      public EndpointImpl(Bus b, Object i, String bindingUri, String
> > wsdl) { bus = b;
> >          implementor = i;
> > -        bindingId = bindingUri;
> > -        // build up the Service model
> > -        implInfo = new
> > JaxWsImplementorInfo(implementor.getClass()); -       
> > serviceFactory = new JaxWsServiceFactoryBean(implInfo); -       
> > serviceFactory.setBus(bus);
> > -        if (null != wsdl) {
> > -            serviceFactory.setWsdlURL(wsdl);
> > -        }
> > -        service = serviceFactory.create();
> > -
> > -        configureObject(service);
> > -
> > -        service.put(Message.SCHEMA_VALIDATION_ENABLED,
> > service.getEnableSchemaValidationForAllPort()); -
> > -        service.setInvoker(new JAXWSMethodInvoker(i));
> > +        binding = bindingUri;
> > +        wsdlLocation = wsdl;
> > +        serverFactory = new JaxWsServerFactoryBean();
> >
> >          doInit = true;
> >      }
> >
> >
> > -    public EndpointImpl(Bus b, Object i, String uri) {
> > -        this(b, i, uri, (String)null);
> > +    public EndpointImpl(Bus b, Object i, String bindingUri) {
> > +        this(b, i, bindingUri, (String)null);
> >      }
> >
> >      public EndpointImpl(Bus bus, Object implementor) {
> > @@ -141,13 +158,18 @@
> >      }
> >
> >      public void setExecutor(Executor executor) {
> > -        service.setExecutor(executor);
> > +        this.executor = executor;
> >      }
> >
> >      public Executor getExecutor() {
> > -        return service.getExecutor();
> > +        return executor;
> >      }
> >
> > +    public Service getService() {
> > +        return service;
> > +    }
> > +
> > +
> >      @Override
> >      public Object getImplementor() {
> >          return implementor;
> > @@ -174,8 +196,8 @@
> >      }
> >
> >      @Override
> > -    public void publish(String address) {
> > -        doPublish(address);
> > +    public void publish(String addr) {
> > +        doPublish(addr);
> >      }
> >
> >      public void setMetadata(List<Source> metadata) {
> > @@ -222,33 +244,70 @@
> >          }
> >      }
> >
> > -    protected void doPublish(String address) {
> > +
> > +    public String getBeanName() {
> > +        return endpointName.toString();
> > +    }
> > +
> > +    protected void doPublish(String addr) {
> >          checkPublishPermission();
> >
> > -        JaxWsServerFactoryBean svrFactory = new
> > JaxWsServerFactoryBean(serviceFactory); +        // Initialize the
> > endpointName so we can do configureObject +        if (endpointName
> > == null) {
> > +            JaxWsImplementorInfo implInfo = new
> > JaxWsImplementorInfo(implementor.getClass()); +           
> > endpointName = implInfo.getEndpointName();
> > +        }
> >
> > -        svrFactory.setBus(bus);
> > -        svrFactory.setBindingId(bindingId);
> > -        svrFactory.setAddress(address);
> > -        svrFactory.setStart(false);
> > -        svrFactory.setServiceBean(implementor);
> > -        configureObject(svrFactory);
> > +        configureObject(this);
> > +
> > +        // Set up the server factory
> > +        serverFactory.setAddress(addr);
> > +        serverFactory.setStart(false);
> > +        serverFactory.setEndpointName(endpointName);
> > +        serverFactory.setServiceBean(implementor);
> > +        serverFactory.setBus(bus);
> > +
> > +        // Be careful not to override any serverfactory settings as
> > a user might +        // have supplied their own.
> > +        if (getWsdlLocation() != null) {
> > +            serverFactory.setWsdlURL(getWsdlLocation());
> > +        }
> > +
> > +        if (binding != null) {
> > +            serverFactory.setBindingId(binding);
> > +        }
> > +
> > +        if (serviceName != null) {
> > +           
> > serverFactory.getServiceFactory().setServiceName(serviceName); +    
> >    }
> > +
> > +        configureObject(serverFactory);
> > +
> > +        server = serverFactory.create();
> >
> > -        server = svrFactory.create();
> > -
> >          init();
> >
> >          org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
> > +        if (getInInterceptors() != null) {
> > +           
> > endpoint.getInInterceptors().addAll(getInInterceptors()); +        }
> > +        if (getOutInterceptors() != null) {
> > +           
> > endpoint.getOutInterceptors().addAll(getOutInterceptors()); +       
> > }
> > +        if (getInFaultInterceptors() != null) {
> > +           
> > endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
> > +        }
> > +        if (getOutFaultInterceptors() != null) {
> > +           
> > endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors())
> >; +        }
> >
> >          if (properties != null) {
> >              endpoint.putAll(properties);
> >          }
> >
> > +        configureObject(endpoint.getService());
> >          configureObject(endpoint);
> >
> > -        if (endpoint.getEnableSchemaValidation()) {
> > -            endpoint.put(Message.SCHEMA_VALIDATION_ENABLED,
> > endpoint.getEnableSchemaValidation()); -        }
> >          server.start();
> >      }
> >
> > @@ -304,6 +363,78 @@
> >          }
> >      }
> >
> > +    public void publish() {
> > +        publish(getAddress());
> > +    }
> > +
> > +    public String getAddress() {
> > +        return address;
> > +    }
> > +
> > +    public void setAddress(String address) {
> > +        this.address = address;
> > +    }
> > +
> > +    public QName getEndpointName() {
> > +        return endpointName;
> > +    }
> > +
> > +    public void setEndpointName(QName endpointName) {
> > +        this.endpointName = endpointName;
> > +    }
> > +
> > +    public QName getServiceName() {
> > +        return serviceName;
> > +    }
> > +
> > +    public void setServiceName(QName serviceName) {
> > +        this.serviceName = serviceName;
> > +    }
> > +
> > +    public String getWsdlLocation() {
> > +        return wsdlLocation;
> > +    }
> > +
> > +    public void setWsdlLocation(String wsdlLocation) {
> > +        this.wsdlLocation = wsdlLocation;
> > +    }
> > +
> > +    public void setBinding(String binding) {
> > +        this.binding = binding;
> > +    }
> > +
> > +    public List<Interceptor> getOutFaultInterceptors() {
> > +        return outFault;
> > +    }
> > +
> > +    public List<Interceptor> getInFaultInterceptors() {
> > +        return inFault;
> > +    }
> > +
> > +    public List<Interceptor> getInInterceptors() {
> > +        return in;
> > +    }
> > +
> > +    public List<Interceptor> getOutInterceptors() {
> > +        return out;
> > +    }
> > +
> > +    public void setInInterceptors(List<Interceptor> interceptors) {
> > +        in = interceptors;
> > +    }
> > +
> > +    public void setInFaultInterceptors(List<Interceptor>
> > interceptors) { +        inFault = interceptors;
> > +    }
> > +
> > +    public void setOutInterceptors(List<Interceptor> interceptors)
> > { +        out = interceptors;
> > +    }
> > +
> > +    public void setOutFaultInterceptors(List<Interceptor>
> > interceptors) { +        outFault = interceptors;
> > +    }
> > +
> >      /*
> >      //TODO JAX-WS 2.1
> >      public EndpointReference getEndpointReference(Element...
> > referenceParameters) {
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/JaxWsServerFactoryBean.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java?view=di
> >ff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/JaxWsServerFactoryBean.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/JaxWsServerFactoryBean.java Mon Apr  9 16:05:51 2007 @@ -26,7
> > +26,7 @@
> >  import org.apache.cxf.binding.soap.SoapBindingFactory;
> >  import org.apache.cxf.binding.soap.model.SoapBindingInfo;
> >  import org.apache.cxf.frontend.ServerFactoryBean;
> > -import
> > org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
> > +import
> > org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> > import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
> >  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> >  import org.apache.cxf.service.invoker.Invoker;
> > @@ -48,8 +48,8 @@
> >      }
> >      public JaxWsServerFactoryBean(JaxWsServiceFactoryBean
> > serviceFactory) { setServiceFactory(serviceFactory);
> > -        JaxWsSoapBindingInfoConfigBean defConfig
> > -            = new JaxWsSoapBindingInfoConfigBean(serviceFactory);
> > +        JaxWsSoapBindingConfiguration defConfig
> > +            = new JaxWsSoapBindingConfiguration(serviceFactory);
> >          setBindingConfig(defConfig);
> >      }
> >
> > @@ -75,7 +75,7 @@
> >                  binding = "http://schemas.xmlsoap.org/soap/";
> >
> >                  if (getBindingConfig() == null) {
> > -                    setBindingConfig(new
> > JaxWsSoapBindingInfoConfigBean(sf)); +                   
> > setBindingConfig(new JaxWsSoapBindingConfiguration(sf)); }
> >              }
> >
> > @@ -83,15 +83,15 @@
> >          }
> >          boolean messageMode =
> > implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
> >
> > -        if (getBindingConfig() instanceof
> > JaxWsSoapBindingInfoConfigBean) { -           
> > JaxWsSoapBindingInfoConfigBean conf =
> > (JaxWsSoapBindingInfoConfigBean)getBindingConfig(); +        if
> > (getBindingConfig() instanceof JaxWsSoapBindingConfiguration) { +   
> >         JaxWsSoapBindingConfiguration conf =
> > (JaxWsSoapBindingConfiguration)getBindingConfig();
> >
> >              if
> > (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_BINDING))) { - 
> >               conf.setSoapVersion(Soap12.getInstance()); +          
> >      conf.setVersion(Soap12.getInstance());
> >              }
> >
> >              if
> > (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING)))
> > { -                conf.setSoapVersion(Soap12.getInstance()); +     
> >           conf.setVersion(Soap12.getInstance());
> >                  conf.setMtomEnabled(true);
> >              }
> >
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/ServiceImpl.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/ServiceImpl.java?view=diff&rev=5269
> >45&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/ServiceImpl.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/ServiceImpl.java Mon Apr  9 16:05:51 2007 @@ -50,14 +50,13 @@
> >  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.JaxWsSoapBindingInfoConfigBean;
> > +import
> > org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> > import org.apache.cxf.jaxws.handler.HandlerResolverImpl;
> >  import org.apache.cxf.jaxws.handler.PortInfoImpl;
> >  import org.apache.cxf.jaxws.support.DummyImpl;
> >  import org.apache.cxf.jaxws.support.JaxWsClientEndpointImpl;
> >  import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
> >  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.AbstractServiceFactoryBean;
> >  import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
> > @@ -249,7 +248,6 @@
> >
> >          // Configure the Service
> >          Service service = serviceFactory.getService();
> > -        service.put(Message.SCHEMA_VALIDATION_ENABLED,
> > service.getEnableSchemaValidationForAllPort());
> > service.setExecutor(new Executor() {
> >              public void execute(Runnable command) {
> >                  Executor ex = getExecutor();
> > @@ -267,10 +265,7 @@
> >          configureObject(jaxwsEndpoint);
> >
> >          QName pn = portName;
> > -        if (jaxwsEndpoint.getEnableSchemaValidation()) {
> > -            jaxwsEndpoint.put(Message.SCHEMA_VALIDATION_ENABLED,
> > jaxwsEndpoint.getEnableSchemaValidation()); -        }
> > -
> > +
> >          List<Handler> hc =
> > jaxwsEndpoint.getJaxwsBinding().getHandlerChain();
> > hc.addAll(handlerResolver.getHandlerChain(portInfos.get(pn)));
> >
> > @@ -295,7 +290,7 @@
> >
> >          Object config = null;
> >          if (serviceFactory instanceof JaxWsServiceFactoryBean) {
> > -            config = new
> > JaxWsSoapBindingInfoConfigBean((JaxWsServiceFactoryBean)serviceFacto
> >ry); +            config = new
> > JaxWsSoapBindingConfiguration((JaxWsServiceFactoryBean)serviceFactor
> >y); }
> >          BindingInfo bindingInfo =
> > bus.getExtension(BindingFactoryManager.class).getBindingFactory(bind
> >ingID) .createBindingInfo(serviceFactory.getService(), bindingID,
> > config);
> >
> > Copied:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/binding/soap/JaxWsSoapBindingConfiguration.java (from r526927,
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/binding/soap/JaxWsSoapBindingInfoConfigBean.java) URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfig
> >uration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/
> >jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindin
> >gInfoConfigBean.java&r1=526927&p2=incubator/cxf/trunk/rt/frontend/jax
> >ws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingCo
> >nfiguration.java&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/binding/soap/JaxWsSoapBindingInfoConfigBean.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/binding/soap/JaxWsSoapBindingConfiguration.java Mon Apr  9
> > 16:05:51 2007 @@ -18,26 +18,21 @@
> >   */
> >  package org.apache.cxf.jaxws.binding.soap;
> >
> > -import java.lang.reflect.Method;
> > -
> >  import javax.jws.soap.SOAPBinding;
> >  import javax.jws.soap.SOAPBinding.Style;
> >  import javax.jws.soap.SOAPBinding.Use;
> >
> > -import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
> > -import org.apache.cxf.frontend.MethodDispatcher;
> > +import org.apache.cxf.binding.soap.SoapBindingConfiguration;
> >  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> > -import org.apache.cxf.service.model.BindingOperationInfo;
> > -import org.apache.cxf.service.model.MessagePartInfo;
> >
> >  /**
> >   * Introspects the SOAPBinding annotation to provide to construct
> >   * a {@link org.apache.cxf.service.model.BindingInfo}.
> >   */
> > -public class JaxWsSoapBindingInfoConfigBean extends
> > SoapBindingInfoConfigBean { +public class
> > JaxWsSoapBindingConfiguration extends SoapBindingConfiguration {
> > JaxWsServiceFactoryBean serviceFactory;
> >
> > -    public JaxWsSoapBindingInfoConfigBean(JaxWsServiceFactoryBean
> > sifb) { +    public
> > JaxWsSoapBindingConfiguration(JaxWsServiceFactoryBean sifb) {
> > serviceFactory = sifb;
> >      }
> >
> > @@ -79,15 +74,4 @@
> >          }
> >          return super.getStyle();
> >      }
> > -
> > -    @Override
> > -    protected boolean isHeader(BindingOperationInfo op,
> > MessagePartInfo part) { -        MethodDispatcher md =
> > (MethodDispatcher)serviceFactory.getService() -               
> > .get(MethodDispatcher.class.getName());
> > -        Method method = md.getMethod(op);
> > -
> > -        return getJaxWsServiceFactory().isHeader(method,
> > part.getIndex()); -    }
> > -
> > -
> >  }
> >
> > Copied:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointDefinitionParser.java (from r526469,
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointFactoryBeanDefinitionParser.java) URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.jav
> >a?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/m
> >ain/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionPar
> >ser.java&r1=526469&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/
> >java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java&r2=526
> >945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointFactoryBeanDefinitionParser.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/EndpointDefinitionParser.java Mon Apr  9 16:05:51 2007 @@
> > -31,25 +31,28 @@
> >
> >  import org.apache.cxf.common.classloader.ClassLoaderUtils;
> >  import
> > org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> > +import org.apache.cxf.jaxws.EndpointImpl;
> >  import org.springframework.beans.FatalBeanException;
> >  import
> > org.springframework.beans.factory.support.BeanDefinitionBuilder;
> > import org.springframework.beans.factory.xml.ParserContext; import
> > org.springframework.util.StringUtils;
> >
> > -public class EndpointFactoryBeanDefinitionParser extends
> > AbstractBeanDefinitionParser { +
> > +public class EndpointDefinitionParser extends
> > AbstractBeanDefinitionParser {
> >
> >      private static final String IMPLEMENTOR = "implementor";
> >
> >      @Override
> >      protected void doParse(Element element, ParserContext ctx,
> > BeanDefinitionBuilder bean) { +
> >          NamedNodeMap atts = element.getAttributes();
> >          for (int i = 0; i < atts.getLength(); i++) {
> >              Attr node = (Attr) atts.item(i);
> >              String val = node.getValue();
> >              String pre = node.getPrefix();
> >              String name = node.getLocalName();
> > -
> > -            if (isAttribute(pre, name)) {
> > +
> > +            if (isAttribute(pre, name) && !"publish".equals(name))
> > { if ("endpointName".equals(name) || "serviceName".equals(name)) {
> > QName q = parseQName(element, val);
> >                      bean.addPropertyValue(name, q);
> > @@ -58,6 +61,8 @@
> >                  } else {
> >                      mapToProperty(bean, name, val);
> >                  }
> > +            } else if ("abstract".equals(name)) {
> > +                bean.setAbstract(true);
> >              }
> >          }
> >
> > @@ -73,29 +78,29 @@
> >
> >                      || "outInterceptors".equals(name) ||
> >                      || "outFaultInterceptors".equals(name)) {
> >
> >                      List list =
> > ctx.getDelegate().parseListElement((Element) n,
> > bean.getBeanDefinition()); bean.addPropertyValue(n.getLocalName(),
> > list); +                } else if (IMPLEMENTOR.equals(name)) {
> > +                    ctx.getDelegate()
> > +                       
> > .parseConstructorArgElement(getFirstChild(element),
> > bean.getBeanDefinition()); } else {
> >                      setFirstChildAsProperty((Element) n, ctx, bean,
> > n.getLocalName()); }
> >              }
> >          }
> > +
> > +        bean.setInitMethodName("publish");
> >
> > -        // We don't really want to delay the registration of our
> > Server +        // We don't want to delay the registration of our
> > Server bean.setLazyInit(false);
> > -
> > -//        PropertyValue idValue =
> > bean.getBeanDefinition().getPropertyValues().getPropertyValue("id");
> > -//        if (idValue == null) {
> > -//            bean.addPropertyReference("id", arg1);
> > -//        }
> >      }
> >
> >      private void loadImplementor(BeanDefinitionBuilder bean, String
> > val) { if (StringUtils.hasText(val)) {
> >              if (val.startsWith("#")) {
> > -                bean.addPropertyReference(IMPLEMENTOR,
> > val.substring(1)); +               
> > bean.addConstructorArgReference(val.substring(1)); } else {
> >                  try {
> > -                    bean.addPropertyValue(IMPLEMENTOR,
> > -                                         
> > ClassLoaderUtils.loadClass(val, getClass()).newInstance()); +       
> >             Object obj = ClassLoaderUtils.loadClass(val,
> > getClass()).newInstance(); +                   
> > bean.addConstructorArg(obj);
> >                  } catch (Exception e) {
> >                      throw new FatalBeanException("Could not load
> > class: " + val, e); }
> > @@ -105,7 +110,7 @@
> >
> >      @Override
> >      protected Class getBeanClass(Element arg0) {
> > -        return EndpointFactoryBean.class;
> > +        return EndpointImpl.class;
> >      }
> >
> >  }
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/NamespaceHandler.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?view=d
> >iff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/NamespaceHandler.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/spring/NamespaceHandler.java Mon Apr  9 16:05:51 2007 @@ -23,7
> > +23,7 @@
> >  public class NamespaceHandler extends NamespaceHandlerSupport {
> >      public void init() {
> >          registerBeanDefinitionParser("client", new
> > JaxWsProxyFactoryBeanDefinitionParser()); -       
> > registerBeanDefinitionParser("endpoint", new
> > EndpointFactoryBeanDefinitionParser()); +       
> > registerBeanDefinitionParser("endpoint", new
> > EndpointDefinitionParser()); registerBeanDefinitionParser("server",
> > new ServerBeanDefinitionParser()); }
> >  }
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceConfiguration.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.j
> >ava?view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceConfiguration.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceConfiguration.java Mon Apr  9 16:05:51 2007
> > @@ -161,7 +161,7 @@
> >              return null;
> >          }
> >
> > -        return getPartName(op, method, paramNumber, "arg");
> > +        return getPartName(op, method, paramNumber,
> > op.getInput().size(), "arg"); }
> >
> >      @Override
> > @@ -170,10 +170,10 @@
> >              return null;
> >          }
> >
> > -        return getParameterName(op, method, paramNumber, "arg");
> > +        return getParameterName(op, method, paramNumber,
> > op.getInput().size(), "arg"); }
> >
> > -    private QName getPartName(OperationInfo op, Method method, int
> > paramNumber, String prefix) { +    private QName
> > getPartName(OperationInfo op, Method method, int paramNumber, int
> > curSize, String prefix) { WebParam param = getWebParam(method,
> > paramNumber); String tns = op.getName().getNamespaceURI();
> >          if (param != null) {
> > @@ -185,34 +185,38 @@
> >                  local = param.name();
> >              }
> >              if (local.length() == 0) {
> > -                getDefaultLocalName(op, method, paramNumber,
> > prefix); +                getDefaultLocalName(op, method,
> > paramNumber, curSize, prefix); }
> >              return new QName(tns, local);
> >          } else {
> > -            return new QName(tns, getDefaultLocalName(op, method,
> > paramNumber, prefix)); +            return new QName(tns,
> > getDefaultLocalName(op, method, paramNumber, curSize, prefix)); }
> >      }
> >
> > -    private QName getParameterName(OperationInfo op, Method method,
> > int paramNumber, String prefix) { +    private QName
> > getParameterName(OperationInfo op, Method method, int paramNumber, +
> >                                   int curSize, String prefix) { +   
> >     method = getDeclaredMethod(method);
> >          WebParam param = getWebParam(method, paramNumber);
> > +        String tns = null;
> > +        String local = null;
> >          if (param != null) {
> > -            String tns = param.targetNamespace();
> > -            String local = param.name();
> > -
> > -            if (tns.length() == 0) {
> > -                tns = op.getName().getNamespaceURI();
> > -            }
> > -
> > -            if (local.length() == 0) {
> > -                local = getDefaultLocalName(op, method,
> > paramNumber, prefix); -            }
> > +            tns = param.targetNamespace();
> > +            local = param.name();
> > +        }
> > +
> > +        if (tns == null || tns.length() == 0) {
> > +            tns = op.getName().getNamespaceURI();
> > +        }
> >
> > -            return new QName(tns, local);
> > +        if (local == null || local.length() == 0) {
> > +            local = getDefaultLocalName(op, method, paramNumber,
> > curSize, prefix); }
> > -        return null;
> > +
> > +        return new QName(tns, local);
> >      }
> >
> > -    private String getDefaultLocalName(OperationInfo op, Method
> > method, int paramNumber, String prefix) { +    private String
> > getDefaultLocalName(OperationInfo op, Method method, int
> > paramNumber, +                                       int curSize,
> > String prefix) { Class<?> impl = implInfo.getImplementorClass();
> >          // try to grab the implementation class so we can read the
> > debug symbols from it if (impl == null) {
> > @@ -223,7 +227,7 @@
> >              }
> >          }
> >
> > -        return DefaultServiceConfiguration.createName(method,
> > paramNumber, paramNumber, false, prefix); +        return
> > DefaultServiceConfiguration.createName(method, paramNumber, curSize,
> > false, prefix); }
> >
> >      private WebParam getWebParam(Method method, int parameter) {
> > @@ -248,33 +252,38 @@
> >
> >      @Override
> >      public QName getOutParameterName(OperationInfo op, Method
> > method, int paramNumber) { +        method =
> > getDeclaredMethod(method);
> > +
> >          if (paramNumber >= 0) {
> > -            return getParameterName(op, method, paramNumber,
> > "return"); +            return getParameterName(op, method,
> > paramNumber, op.getOutput().size(), "return"); } else {
> >              WebResult webResult = getWebResult(method);
> >
> > +            String tns = null;
> > +            String local = null;
> >              if (webResult != null) {
> > -                String tns = webResult.targetNamespace();
> > -                String local = webResult.name();
> > -
> > -                if (tns.length() == 0) {
> > -                    tns = op.getName().getNamespaceURI();
> > -                }
> > +                tns = webResult.targetNamespace();
> > +                local = webResult.name();
> > +            }
> >
> > -                if (local.length() == 0) {
> > -                    local = getDefaultLocalName(op, method,
> > paramNumber, "return"); -                }
> > +            if (tns == null || tns.length() == 0) {
> > +                tns = op.getName().getNamespaceURI();
> > +            }
> >
> > -                return new QName(tns, local);
> > +            if (local == null || local.length() == 0) {
> > +                local = getDefaultLocalName(op, method,
> > paramNumber, op.getOutput().size(), "return"); }
> > +
> > +            return new QName(tns, local);
> >          }
> > -        return super.getOutParameterName(op, method, paramNumber);
> >      }
> >
> >      @Override
> >      public QName getOutPartName(OperationInfo op, Method method,
> > int paramNumber) { +        method = getDeclaredMethod(method);
> > +
> >          if (paramNumber >= 0) {
> > -            return getPartName(op, method, paramNumber, "return");
> > +            return getPartName(op, method, paramNumber,
> > op.getOutput().size(), "return"); } else {
> >              WebResult webResult = getWebResult(method);
> >              String tns = op.getName().getNamespaceURI();
> > @@ -287,7 +296,7 @@
> >                      local = webResult.name();
> >                  }
> >                  if (local.length() == 0) {
> > -                    local = getDefaultLocalName(op, method,
> > paramNumber, "return"); +                    local =
> > getDefaultLocalName(op, method, paramNumber, op.getOutput().size(),
> > "return"); }
> >                  return new QName(tns, local);
> >              } else {
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceFactoryBean.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.jav
> >a?view=diff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceFactoryBean.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/j
> >axws/support/JaxWsServiceFactoryBean.java Mon Apr  9 16:05:51 2007 @@
> > -51,6 +51,7 @@
> >  import org.apache.cxf.service.factory.AbstractServiceConfiguration;
> >  import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
> >  import org.apache.cxf.service.factory.ServiceConstructionException;
> > +import org.apache.cxf.service.invoker.Invoker;
> >  import org.apache.cxf.service.model.BindingInfo;
> >  import org.apache.cxf.service.model.EndpointInfo;
> >  import org.apache.cxf.service.model.FaultInfo;
> > @@ -85,6 +86,11 @@
> >          this.serviceClass = implInfo.getEndpointClass();
> >      }
> >
> > +    @Override
> > +    protected Invoker createInvoker() {
> > +        return null;
> > +    }
> > +
> >      protected SimpleMethodDispatcher getMethodDispatcher() {
> >          return methodDispatcher;
> >      }
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/
> >cxf/jaxws/spring/jaxws.xsd URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd?view=diff&rev
> >=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/
> >cxf/jaxws/spring/jaxws.xsd (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/
> >cxf/jaxws/spring/jaxws.xsd Mon Apr  9 16:05:51 2007 @@ -15,6 +15,7 @@
> >        <xsd:complexContent>
> >          <xsd:extension base="beans:identifiedType">
> >            <xsd:sequence>
> > +            <xsd:element name="binding" type="xsd:anyType"
> > minOccurs="0"/> <xsd:element name="executor" type="xsd:anyType"
> > minOccurs="0"/> <xsd:element name="implementor" type="xsd:anyType"
> > minOccurs="0"/> <xsd:element name="inInterceptors"
> > type="xsd:anyType" minOccurs="0"/> @@ -25,7 +26,7 @@
> >              <xsd:element name="serviceFactory" type="xsd:anyType"
> > minOccurs="0"/> </xsd:sequence>
> >            <xsd:attribute name="address" type="xsd:string" />
> > -          <xsd:attribute name="binding" type="xsd:string" />
> > +          <xsd:attribute name="bindingUri" type="xsd:string" />
> >            <xsd:attribute name="bus" type="xsd:string" />
> >            <xsd:attribute name="implementor" type="xsd:string"/>
> >            <xsd:attribute name="publish" type="xsd:boolean"
> > default="true"/> @@ -71,6 +72,7 @@
> >        <xsd:complexContent>
> >          <xsd:extension base="beans:identifiedType">
> >            <xsd:sequence>
> > +            <xsd:element name="binding" type="xsd:anyType"
> > minOccurs="0"/> <xsd:element name="inInterceptors"
> > type="xsd:anyType" minOccurs="0"/> <xsd:element
> > name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
> > <xsd:element name="outInterceptors" type="xsd:anyType"
> > minOccurs="0"/> @@ -78,7 +80,7 @@
> >              <xsd:element name="properties" type="beans:mapType"
> > minOccurs="0"/> </xsd:sequence>
> >            <xsd:attribute name="address" type="xsd:string" />
> > -          <xsd:attribute name="binding" type="xsd:string" />
> > +          <xsd:attribute name="bindingUri" type="xsd:string" />
> >            <xsd:attribute name="bus" type="xsd:string" />
> >            <xsd:attribute name="endpointName" type="xsd:QName" />
> >            <xsd:attribute name="password" type="xsd:string" />
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/ConfiguredEndpointTest.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java?view=di
> >ff&rev=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/ConfiguredEndpointTest.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/ConfiguredEndpointTest.java Mon Apr  9 16:05:51 2007 @@ -94,8
> > +94,9 @@
> >          JaxWsClientProxy eih =
> > (JaxWsClientProxy)Proxy.getInvocationHandler(greeter); Client client
> > = eih.getClient();
> >          JaxWsEndpointImpl endpoint =
> > (JaxWsEndpointImpl)client.getEndpoint(); -       
> > assertEquals("Unexpected bean name", PORT_NAME.toString(),
> > endpoint.getBeanName()); -        assertTrue("Unexpected value for
> > property validating", !endpoint.getEnableSchemaValidation()); +     
> >   assertEquals("Unexpected bean name", PORT_NAME.toString() +
> > ".endpoint", endpoint.getBeanName()); +       
> > assertTrue("Unexpected value for property validating", +            
> >      
> > !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)
> >));
> >
> >          // System.out.println("endpoint interceptors");
> >          List<Interceptor> interceptors =
> > endpoint.getInInterceptors(); @@ -160,28 +161,29 @@
> >          JaxWsClientProxy eih =
> > (JaxWsClientProxy)Proxy.getInvocationHandler(greeter); Client client
> > = eih.getClient();
> >          JaxWsEndpointImpl endpoint =
> > (JaxWsEndpointImpl)client.getEndpoint(); -       
> > assertEquals("Unexpected bean name", PORT_NAME.toString(),
> > endpoint.getBeanName()); -        // assertTrue("Unexpected value
> > for property validating", endpoint.getValidating()); -       
> > List<Interceptor> interceptors = endpoint.getInInterceptors(); -    
> >    assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); -        assertEquals("Unexpected interceptor
> > id.", "endpoint-in", -                    
> > findTestInterceptor(interceptors).getId()); -        interceptors =
> > endpoint.getOutInterceptors();
> > -        assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); -        assertEquals("Unexpected interceptor
> > id.", "endpoint-out", -                    
> > findTestInterceptor(interceptors).getId()); -        interceptors =
> > endpoint.getInFaultInterceptors();
> > -        assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); -        assertEquals("Unexpected interceptor
> > id.", "endpoint-in-fault", -                    
> > findTestInterceptor(interceptors).getId()); -        interceptors =
> > endpoint.getOutFaultInterceptors(); -       
> > assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); -        assertEquals("Unexpected interceptor
> > id.", "endpoint-out-fault", -                    
> > findTestInterceptor(interceptors).getId()); +//      The service
> > shouldn't pick up the <jaxws:endpoint>... +//       
> > assertEquals("Unexpected bean name", PORT_NAME.toString() +
> > ".endpoint", endpoint.getBeanName()); +//        //
> > assertTrue("Unexpected value for property validating",
> > endpoint.getValidating()); +//        List<Interceptor> interceptors
> > = endpoint.getInInterceptors(); +//        assertEquals("Unexpected
> > number of interceptors.", 1, interceptors.size()); +//       
> > assertEquals("Unexpected interceptor id.", "endpoint-in", +//       
> >              findTestInterceptor(interceptors).getId()); +//       
> > interceptors = endpoint.getOutInterceptors();
> > +//        assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); +//        assertEquals("Unexpected
> > interceptor id.", "endpoint-out", +//                    
> > findTestInterceptor(interceptors).getId()); +//        interceptors
> > = endpoint.getInFaultInterceptors(); +//       
> > assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); +//        assertEquals("Unexpected
> > interceptor id.", "endpoint-in-fault", +//                    
> > findTestInterceptor(interceptors).getId()); +//        interceptors
> > = endpoint.getOutFaultInterceptors(); +//       
> > assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); +//        assertEquals("Unexpected
> > interceptor id.", "endpoint-out-fault", +//                    
> > findTestInterceptor(interceptors).getId());
> >
> >          org.apache.cxf.service.ServiceImpl svc =
> > (org.apache.cxf.service.ServiceImpl)endpoint.getService();
> > assertEquals("Unexpected bean name.", SERVICE_NAME.toString(),
> > svc.getBeanName()); -        interceptors = svc.getInInterceptors();
> > +        List<Interceptor> interceptors = svc.getInInterceptors();
> >          assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); assertEquals("Unexpected interceptor id.",
> > "service-in", findTestInterceptor(interceptors).getId()); @@ -226,8
> > +228,9 @@
> >          ei.publish("http://localhost/greeter");
> >
> >          JaxWsEndpointImpl endpoint =
> > (JaxWsEndpointImpl)ei.getEndpoint(); -       
> > assertEquals("Unexpected bean name", PORT_NAME.toString(),
> > endpoint.getBeanName()); -        assertTrue("Unexpected value for
> > property validating", !endpoint.getEnableSchemaValidation()); +     
> >   assertEquals("Unexpected bean name", PORT_NAME.toString() +
> > ".endpoint", endpoint.getBeanName()); +       
> > assertTrue("Unexpected value for property validating", +            
> >      
> > !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)
> >));
> >
> >          List<Interceptor> interceptors =
> > endpoint.getInInterceptors(); assertNull("Unexpected test
> > interceptor", findTestInterceptor(interceptors)); @@ -283,22 +286,23
> > @@
> >          ei.publish("http://localhost/greeter");
> >
> >          JaxWsEndpointImpl endpoint =
> > (JaxWsEndpointImpl)ei.getEndpoint(); -       
> > assertEquals("Unexpected bean name", PORT_NAME.toString(),
> > endpoint.getBeanName()); -        assertTrue("Unexpected value for
> > property validating", endpoint.getEnableSchemaValidation()); +      
> >  assertEquals("Unexpected bean name", PORT_NAME.toString() +
> > ".endpoint", endpoint.getBeanName()); +       
> > assertTrue("Unexpected value for property validating", +            
> >       Boolean.valueOf((String)
> > ei.getProperties().get(Message.SCHEMA_VALIDATION_ENABLED)));
> > List<Interceptor> interceptors = endpoint.getInInterceptors(); -    
> >    assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); +        assertEquals("Unexpected number of
> > interceptors.", 5, interceptors.size()); assertEquals("Unexpected
> > interceptor id.", "endpoint-in",
> > findTestInterceptor(interceptors).getId()); interceptors =
> > endpoint.getOutInterceptors();
> > -        assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); +        assertEquals("Unexpected number of
> > interceptors.", 6, interceptors.size()); assertEquals("Unexpected
> > interceptor id.", "endpoint-out",
> > findTestInterceptor(interceptors).getId()); interceptors =
> > endpoint.getInFaultInterceptors();
> > -        assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); +        assertEquals("Unexpected number of
> > interceptors.", 2, interceptors.size()); assertEquals("Unexpected
> > interceptor id.", "endpoint-in-fault",
> > findTestInterceptor(interceptors).getId()); interceptors =
> > endpoint.getOutFaultInterceptors(); -       
> > assertEquals("Unexpected number of interceptors.", 1,
> > interceptors.size()); +        assertEquals("Unexpected number of
> > interceptors.", 4, interceptors.size()); assertEquals("Unexpected
> > interceptor id.", "endpoint-out-fault",
> > findTestInterceptor(interceptors).getId());
> >
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/EndpointImplTest.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/test/java/org/apache/cxf/jaxws/EndpointImplTest.java?view=diff&rev
> >=526945&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/EndpointImplTest.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/EndpointImplTest.java Mon Apr  9 16:05:51 2007 @@ -127,7 +127,7
> > @@
> >              assertEquals(expeced, e.getMessage());
> >          }
> >      }
> > -
> > +
> >      @Test
> >      public void testPublishEndpointPermission() throws Exception {
> >          Hello service = new Hello();
> >
> > Modified:
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/HeaderTest.java URL:
> > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/s
> >rc/test/java/org/apache/cxf/jaxws/HeaderTest.java?view=diff&rev=52694
> >5&r1=526944&r2=526945
> > ====================================================================
> >========== ---
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/HeaderTest.java (original) +++
> > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/j
> >axws/HeaderTest.java Mon Apr  9 16:05:51 2007 @@ -26,7 +26,7 @@
> >
> >  import org.apache.cxf.Bus;
> >  import org.apache.cxf.frontend.ServerFactoryBean;
> > -import
> > org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
> > +import
> > org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> > import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean; import
> > org.apache.cxf.service.Service;
> >  import org.apache.cxf.service.model.MessagePartInfo;
> > @@ -76,8 +76,10 @@
> >          ServerFactoryBean svr = new ServerFactoryBean();
> >          svr.setBus(bus);
> >          svr.setServiceFactory(bean);
> > +        svr.setServiceBean(new TestHeaderImpl());
> >         
> > svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPo
> >rt"); -        svr.setBindingConfig(new
> > JaxWsSoapBindingInfoConfigBean(bean)); +       
> > svr.setBindingConfig(new JaxWsSoapBindingConfiguration(bean)); +
> >
> >          svr.create();

-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
daniel.kulp@iona.com
http://www.dankulp.com/blog

Re: svn commit: r526945 [1/2] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/service/ common/common/src/main/java/org/apache/cxf/configuration/spring/ parent/...

Posted by James Mao <ja...@iona.com>.
Hi Dan,

Can you also fix the build warnings in
rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\EndpointImplTest.java
due to the [deprecation] of EndpointImpl

C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\Endp
ointImplTest.java:[80,32] 警告:[deprecation] 
org.apache.cxf.jaxws.EndpointImpl
中的 
EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.suppo
rt.JaxWsServiceFactoryBean) 已过时

C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\Endp
ointImplTest.java:[104,32] 警告:[deprecation] 
org.apache.cxf.jaxws.EndpointImpl
 中的 
EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.supp
ort.JaxWsServiceFactoryBean) 已过时

C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\Endp
ointImplTest.java:[124,12] 警告:[deprecation] 
org.apache.cxf.jaxws.EndpointImpl
 中的 
EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.supp
ort.JaxWsServiceFactoryBean) 已过时

Thanks,
James.

> Author: dandiep
> Date: Mon Apr  9 16:05:51 2007
> New Revision: 526945
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=526945
> Log:
> o Enabled usage of <jaxws:endpoint> when using Endpoint.publish():
>   - Removed EndpointFactoryBean and just use EndpointImpl
>   - Added many getters/setters to configure the Endpointimpl
>   - Added constructor to pass in ServerFactoryBean instead of 
>     ServiceFactoryBean. Deprecated old constructors because this
>     is more correct and 99% of the people can probably just use
>     the getters/setters on EndpointImpl now.
> o Renamed BindingInfoConfigBean objects to *BindingConfiguration.
>   These all inherit from BindingConfiguration which has an abstract
>   method getBindingId().
> o Removed Endpoint/Service.enableSchemaValidation and made it a 
>   service property instead. I also changed the constant 
>   Message.ENABLE_SCHEMA_VALIDATION to be more amenable to config files.
> o Upgrade to Spring 2.0.3 and fix issues with SpringBeanMap in this
>   latest version.
> o Add a property editor for SoapVersions so we can specify "1.2" in 
>   the xml configuration for a <jaxws:endpoint>
> o Fix several bugs with the JaxWsServiceConfiguration
> o Don't create an Invoker inside JaxWsServiceFactoryBean, do it in the
>   JaxWsSERVERFactoryBean instead
>
>
> Added:
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java
>       - copied, changed from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java
>       - copied, changed from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java   (with props)
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java   (with props)
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java
>       - copied, changed from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
>       - copied, changed from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
> Removed:
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
> Modified:
>     incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
>     incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
>     incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
>     incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
>     incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
>     incubator/cxf/trunk/parent/pom.xml
>     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/wrapped/WrappedServiceTest.java
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.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/SoapBindingInfoConfigBeanDefinitionParser.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
>     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/NamespaceHandler.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.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/HeaderTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/configured-endpoints.xml
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderService.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderServiceImpl.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/provider/ProviderServiceFactoryTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/servers.xml
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceConfigurationTest.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/service/factory/ReflectionServiceFactoryBean.java
>     incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java
>     incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedService.java
>     incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/schema_validation/cxf-config.xml
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/SpringServletTest.java
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/spring.xml
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/databinding-schema-validation.xml
>
> Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java (original)
> +++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java Mon Apr  9 16:05:51 2007
> @@ -51,9 +51,5 @@
>      void setInFaultObserver(MessageObserver observer);
>      
>      void setOutFaultObserver(MessageObserver observer);
> -    
> -    boolean getEnableSchemaValidation();
> -    
> -    void setEnableSchemaValidation(boolean value);
>  
>  }
>
> Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java (original)
> +++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java Mon Apr  9 16:05:51 2007
> @@ -49,7 +49,7 @@
>      String PATH_INFO = Message.class.getName() + ".PATH_INFO";
>      String QUERY_STRING = Message.class.getName() + ".QUERY_STRING";
>      String MTOM_ENABLED = "mtom-enabled";
> -    String SCHEMA_VALIDATION_ENABLED = Message.class.getCanonicalName() + ".schemaValidationEnabled";
> +    String SCHEMA_VALIDATION_ENABLED = "schema-validation-enabled";
>      String FAULT_STACKTRACE_ENABLED = "faultStackTraceEnabled";
>      String CONTENT_TYPE = "Content-Type";
>      String BASE_PATH = Message.class.getName() + ".BASE_PATH";
>
> Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java (original)
> +++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java Mon Apr  9 16:05:51 2007
> @@ -49,8 +49,4 @@
>      void setInvoker(Invoker invoker);
>      
>      Map<QName, Endpoint> getEndpoints();
> -    
> -    void setEnableSchemaValidationForAllPort(boolean value);
> -    
> -    boolean getEnableSchemaValidationForAllPort();
>  }
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -40,11 +40,18 @@
>  public abstract class AbstractBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
>  
>      protected void setFirstChildAsProperty(Element element, ParserContext ctx, 
> -                                         BeanDefinitionBuilder bean, String string) {
> +                                         BeanDefinitionBuilder bean, String propertyName) {
> +        String id = getAndRegisterFirstChild(element, ctx, bean, propertyName);
> +        bean.addPropertyReference(propertyName, id);
> +        
> +    }
> +
> +    protected String getAndRegisterFirstChild(Element element, ParserContext ctx, 
> +                                              BeanDefinitionBuilder bean, String propertyName) {
>          Element first = getFirstChild(element);
>          
>          if (first == null) {
> -            throw new IllegalStateException(string + " property must have child elements!");
> +            throw new IllegalStateException(propertyName + " property must have child elements!");
>          }
>          
>          // Seems odd that we have to do the registration, I wonder if there is a better way
> @@ -61,8 +68,7 @@
>          }
>         
>          ctx.getRegistry().registerBeanDefinition(id, child);
> -        bean.addPropertyReference(string, id);
> -        
> +        return id;
>      }
>  
>      protected Element getFirstChild(Element element) {
>
> Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java (original)
> +++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java Mon Apr  9 16:05:51 2007
> @@ -24,6 +24,7 @@
>  import java.util.ArrayList;
>  import java.util.Collection;
>  import java.util.HashSet;
> +import java.util.Iterator;
>  import java.util.List;
>  import java.util.Map;
>  import java.util.Set;
> @@ -38,6 +39,9 @@
>  import org.springframework.beans.factory.BeanIsAbstractException;
>  import org.springframework.beans.factory.InitializingBean;
>  import org.springframework.beans.factory.config.BeanDefinition;
> +import org.springframework.beans.factory.config.TypedStringValue;
> +import org.springframework.beans.factory.support.ManagedList;
> +import org.springframework.beans.factory.support.ManagedSet;
>  import org.springframework.context.ApplicationContext;
>  import org.springframework.context.ApplicationContextAware;
>  import org.springframework.context.ConfigurableApplicationContext;
> @@ -100,6 +104,18 @@
>                      }
>                  }
>                  
> +                if (ids instanceof ManagedSet || ids instanceof ManagedList) {
> +                    List<String> newIds = new ArrayList<String>();
> +                    for (Iterator itr = ids.iterator(); itr.hasNext();) {
> +                        Object o = itr.next();
> +                        if (o instanceof TypedStringValue) {
> +                            newIds.add(((TypedStringValue) o).getValue());
> +                        } else {
> +                            newIds.add((String) o);
> +                        }
> +                    }
> +                    ids = newIds;
> +                }
>                  for (Object id : ids) {
>                      idToBeanName.put(id.toString(), beanNames[i]);
>                  }
>
> Modified: incubator/cxf/trunk/parent/pom.xml
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/parent/pom.xml?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/parent/pom.xml (original)
> +++ incubator/cxf/trunk/parent/pom.xml Mon Apr  9 16:05:51 2007
> @@ -46,7 +46,7 @@
>          <jaxws.version>2.0</jaxws.version>
>          <jetty.version>5.1.11</jetty.version>
>          <saaj.version>1.3</saaj.version>
> -        <spring.version>2.0</spring.version>
> +        <spring.version>2.0.3</spring.version>
>          <wsdl4j.version>1.6.1</wsdl4j.version>
>          <derby.version>10.1.1.0</derby.version>
>          <activemq.version>4.1.0-incubator</activemq.version>
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -48,7 +48,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(false);
>          sf.setAddress("http://localhost:9001/foo/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("contextMatchStrategy", "stem");
>          sf.setProperties(props);
> @@ -130,7 +131,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(false);
>          sf.setAddress("http://localhost:9001/foo/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("Content-Type", "text/plain");
>          sf.setProperties(props);
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -45,7 +45,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(false);
>          sf.setAddress("http://localhost:9001/foo/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("contextMatchStrategy", "stem");
>          sf.setProperties(props);
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -59,7 +59,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(true);
>          sf.setAddress("http://localhost:9001/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("contextMatchStrategy", "stem");
>          sf.setProperties(props);
>
> Copied: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java (from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java&r1=525926&p2=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java (original)
> +++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -20,9 +20,16 @@
>  
>  import java.util.Set;
>  
> -public class ObjectBindingConfigBean {
> +import org.apache.cxf.binding.BindingConfiguration;
> +
> +public class ObjectBindingConfiguration extends BindingConfiguration {
>      private boolean stopAfterLogicalPhases = true;
>      private Set<String> skipPhases;
> +    
> +    @Override
> +    public String getBindingId() {
> +        return ObjectBindingFactory.BINDING_ID;
> +    }
>  
>      public Set<String> getSkipPhases() {
>          return skipPhases;
>
> Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java (original)
> +++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java Mon Apr  9 16:05:51 2007
> @@ -56,8 +56,8 @@
>      public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object config) {
>          BindingInfo info = super.createBindingInfo(si, bindingid, config);
>          
> -        if (config instanceof ObjectBindingConfigBean) {
> -            ObjectBindingConfigBean c = (ObjectBindingConfigBean) config;
> +        if (config instanceof ObjectBindingConfiguration) {
> +            ObjectBindingConfiguration c = (ObjectBindingConfiguration) config;
>              
>              info.setProperty(STOP_AFTER_LOGICAL, c.isStopAfterLogicalPhases());
>          }
>
> Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java (original)
> +++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java Mon Apr  9 16:05:51 2007
> @@ -22,7 +22,7 @@
>  import org.w3c.dom.Element;
>  import org.w3c.dom.NamedNodeMap;
>  
> -import org.apache.cxf.binding.object.ObjectBindingConfigBean;
> +import org.apache.cxf.binding.object.ObjectBindingConfiguration;
>  import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
>  import org.springframework.beans.factory.support.BeanDefinitionBuilder;
>  import org.springframework.beans.factory.xml.ParserContext;
> @@ -41,7 +41,7 @@
>  
>      @Override
>      protected Class getBeanClass(Element arg0) {
> -        return ObjectBindingConfigBean.class;
> +        return ObjectBindingConfiguration.class;
>      }
>  
>  }
>
> Copied: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java (from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java&r1=525649&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java (original)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -18,23 +18,27 @@
>   */
>  package org.apache.cxf.binding.soap;
>  
> +import org.apache.cxf.binding.BindingConfiguration;
>  import org.apache.cxf.service.model.BindingOperationInfo;
>  import org.apache.cxf.service.model.MessagePartInfo;
>  import org.apache.cxf.service.model.OperationInfo;
>  
> -public class SoapBindingInfoConfigBean {
> +public class SoapBindingConfiguration extends BindingConfiguration {
>      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 String getBindingId() {
> +        return "http://schemas.xmlsoap.org/soap/";
> +    }
>  
>      protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
> -        return false;
> +        Object isHeader = part.getProperty("messagepart.isheader");
> +        return Boolean.TRUE.equals(isHeader);
>      }
>  
>      public String getSoapAction(OperationInfo op) {
> @@ -57,12 +61,12 @@
>          return getStyle();
>      }
>  
> -    public SoapVersion getSoapVersion() {
> +    public SoapVersion getVersion() {
>          return soapVersion;
>      }
>  
> -    public void setSoapVersion(SoapVersion soapVersion) {
> -        this.soapVersion = soapVersion;
> +    public void setVersion(SoapVersion sv) {
> +        this.soapVersion = sv;
>      }
>  
>      public String getUse() {
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -90,16 +90,16 @@
>      }
>  
>      public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object conf) {
> -        SoapBindingInfoConfigBean config;
> -        if (conf instanceof SoapBindingInfoConfigBean) {
> -            config = (SoapBindingInfoConfigBean)conf;
> +        SoapBindingConfiguration config;
> +        if (conf instanceof SoapBindingConfiguration) {
> +            config = (SoapBindingConfiguration)conf;
>          } else {
> -            config = new SoapBindingInfoConfigBean();
> +            config = new SoapBindingConfiguration();
>          }
>          
>          SoapBindingInfo info = new SoapBindingInfo(si,
>                                                     "http://schemas.xmlsoap.org/wsdl/soap/",
> -                                                   config.getSoapVersion());
> +                                                   config.getVersion());
>          
>          info.setName(new QName(si.getName().getNamespaceURI(), 
>                                 si.getName().getLocalPart() + "SoapBinding"));
> @@ -156,7 +156,7 @@
>                                BindingMessageInfo bMsg, 
>                                BindingMessageInfo unwrappedBMsg, 
>                                MessageInfo msg,
> -                              SoapBindingInfoConfigBean config) {
> +                              SoapBindingConfiguration config) {
>          List<MessagePartInfo> parts = new ArrayList<MessagePartInfo>();
>          for (MessagePartInfo part : msg.getMessageParts()) {
>              if (config.isHeader(op, part)) {
>
> Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java?view=auto&rev=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java (added)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java Mon Apr  9 16:05:51 2007
> @@ -0,0 +1,43 @@
> +/**
> + * 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.
> + */
> +package org.apache.cxf.binding.soap;
> +
> +import java.beans.PropertyEditorSupport;
> +
> +public class SoapVersionPropertyEditor extends PropertyEditorSupport {
> +
> +    private SoapVersion version;
> +
> +    @Override
> +    public Object getValue() {
> +        return version;
> +    }
> +
> +    @Override
> +    public void setAsText(String text) throws IllegalArgumentException {
> +        if ("1.2".equals(text)) {
> +            this.version = Soap12.getInstance();
> +        } else if ("1.1".equals(text)) {
> +            this.version = Soap11.getInstance();
> +        } else {
> +            super.setAsText(text);
> +        }
> +    }
> +
> +}
>
> Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> ------------------------------------------------------------------------------
>     svn:executable = *
>
> Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev Date
>
> Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.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=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java (original)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Mon Apr  9 16:05:51 2007
> @@ -22,7 +22,7 @@
>  import org.w3c.dom.Element;
>  import org.w3c.dom.NamedNodeMap;
>  
> -import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
> +import org.apache.cxf.binding.soap.SoapBindingConfiguration;
>  import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
>  import org.springframework.beans.factory.support.BeanDefinitionBuilder;
>  import org.springframework.beans.factory.xml.ParserContext;
> @@ -41,7 +41,7 @@
>  
>      @Override
>      protected Class getBeanClass(Element arg0) {
> -        return SoapBindingInfoConfigBean.class;
> +        return SoapBindingConfiguration.class;
>      }
>  
>  }
>
> Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml (original)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml Mon Apr  9 16:05:51 2007
> @@ -44,4 +44,15 @@
>          </property>
>          <property name="bus" ref="cxf"/>
>      </bean>
> +        
> +	<bean id="org.apache.cxf.binding.soap.customEditorConfigurer"
> +		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
> +		<property name="customEditors">
> +			<map>
> +				<entry key="org.apache.cxf.binding.soap.SoapVersion">
> +					<bean class="org.apache.cxf.binding.soap.SoapVersionPropertyEditor"/>
> +				</entry>
> +			</map>
> +		</property>
> +	</bean>
>  </beans>
>
> Added: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java?view=auto&rev=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java (added)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -0,0 +1,26 @@
> +/**
> + * 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.
> + */
> +package org.apache.cxf.binding;
> +
> +/**
> + * A configuration for a binding.
> + */
> +public abstract class BindingConfiguration {
> +    public abstract String getBindingId();
> +}
>
> Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> ------------------------------------------------------------------------------
>     svn:executable = *
>
> Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev Date
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java Mon Apr  9 16:05:51 2007
> @@ -19,6 +19,7 @@
>  
>  package org.apache.cxf.endpoint;
>  
> +import java.util.Map;
>  import java.util.ResourceBundle;
>  import java.util.concurrent.Executor;
>  import java.util.logging.Logger;
> @@ -55,7 +56,6 @@
>      private Bus bus;
>      private MessageObserver inFaultObserver;
>      private MessageObserver outFaultObserver;
> -    private boolean schemaValidation;
>  
>      public EndpointImpl(Bus bus, Service s, QName endpointName) throws EndpointException {
>          this(bus, s, s.getServiceInfo().getEndpoint(endpointName));
> @@ -84,7 +84,7 @@
>      }
>      
>      public String getBeanName() {
> -        return endpointInfo.getName().toString();
> +        return endpointInfo.getName().toString() + ".endpoint";
>      }
>      
>     
> @@ -141,13 +141,6 @@
>      public MessageObserver getOutFaultObserver() {
>          return outFaultObserver;
>      }
> -    
> -    public void setEnableSchemaValidation(boolean value) {
> -        schemaValidation = value;
> -    }
> -    public boolean getEnableSchemaValidation() {
> -        return schemaValidation;
> -    }
>  
>      public void setInFaultObserver(MessageObserver observer) {
>          inFaultObserver = observer;        
> @@ -157,7 +150,14 @@
>          outFaultObserver = observer;
>          
>      }
> -
> -   
> +    
> +    /**
> +     * Utility method to make it easy to set properties from Spring.
> +     * 
> +     * @param properties
> +     */
> +    public void setProperties(Map<String, Object> properties) {
> +        this.putAll(properties);
> +    }
>      
>  }
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
> @@ -78,7 +78,8 @@
>      }
>  
>      private void setSchemaInMessage(Service service, Message message, DataReader<?> reader) {
> -        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
> +        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
> +        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>              Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>              reader.setSchema(schema);
>          }
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
> @@ -57,7 +57,8 @@
>      }
>  
>      private void setSchemaOutMessage(Service service, Message message, DataWriter<?> writer) {
> -        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
> +        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
> +        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>              Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>              writer.setSchema(schema);
>          }
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java Mon Apr  9 16:05:51 2007
> @@ -39,7 +39,6 @@
>      private Executor executor;
>      private Invoker invoker;
>      private Map<QName, Endpoint> endpoints = new HashMap<QName, Endpoint>();
> -    private boolean enableSchemaValidationForAllPort;
>      
>      public ServiceImpl() {
>          this(null);
> @@ -93,11 +92,8 @@
>      public void setEndpoints(Map<QName, Endpoint> endpoints) {
>          this.endpoints = endpoints;
>      }
> -    public void setEnableSchemaValidationForAllPort(boolean value) {
> -        enableSchemaValidationForAllPort = value;
> -    }
> -    
> -    public boolean getEnableSchemaValidationForAllPort() {
> -        return enableSchemaValidationForAllPort;
> +
> +    public void setProperties(Map<String, Object> properties) {
> +        this.putAll(properties);
>      }
>  }
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -22,37 +22,40 @@
>  import java.security.AccessController;
>  import java.util.List;
>  import java.util.Map;
> +import java.util.concurrent.CopyOnWriteArrayList;
>  import java.util.concurrent.Executor;
>  import java.util.logging.Logger;
>  
> +import javax.xml.namespace.QName;
>  import javax.xml.transform.Source;
>  import javax.xml.ws.Binding;
> -
> -//TODO JAX-WS 2.1
> -//import javax.xml.ws.EndpointReference;
>  import javax.xml.ws.WebServiceException;
>  import javax.xml.ws.WebServicePermission;
>  import javax.xml.ws.handler.Handler;
>  
>  import org.apache.cxf.Bus;
> +import org.apache.cxf.BusFactory;
>  import org.apache.cxf.common.injection.ResourceInjector;
>  import org.apache.cxf.common.logging.LogUtils;
> +import org.apache.cxf.configuration.Configurable;
>  import org.apache.cxf.configuration.Configurer;
>  import org.apache.cxf.endpoint.Server;
>  import org.apache.cxf.endpoint.ServerImpl;
> +import org.apache.cxf.interceptor.Interceptor;
> +import org.apache.cxf.interceptor.InterceptorProvider;
>  import org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
>  import org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilder;
>  import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
>  import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> -import org.apache.cxf.message.Message;
>  import org.apache.cxf.resource.DefaultResourceManager;
>  import org.apache.cxf.resource.ResourceManager;
>  import org.apache.cxf.resource.ResourceResolver;
>  import org.apache.cxf.service.Service;
>  
> -public class EndpointImpl extends javax.xml.ws.Endpoint {
> -    /*
> +public class EndpointImpl extends javax.xml.ws.Endpoint 
> +    implements InterceptorProvider, Configurable {
> +    /**
>       * This property controls whether the 'publishEndpoint' permission is checked 
>       * using only the AccessController (i.e. when SecurityManager is not installed).
>       * By default this check is not done as the system property is not set.
> @@ -66,37 +69,63 @@
>          new WebServicePermission("publishEndpoint");
>      
>      protected boolean doInit;
> -
>      private Bus bus;
>      private Object implementor;
>      private Server server;
> +    private JaxWsServerFactoryBean serverFactory;
>      private Service service;
> -    private String bindingId;
> -    private JaxWsImplementorInfo implInfo;
> -    private JaxWsServiceFactoryBean serviceFactory;
>      private Map<String, Object> properties;
>      private List<Source> metadata;
>      
> +    private Executor executor;
> +    private String binding;
> +    private String wsdlLocation;
> +    private String address;
> +    private QName endpointName;
> +    private QName serviceName;
> +    
> +    private List<Interceptor> in = new CopyOnWriteArrayList<Interceptor>();
> +    private List<Interceptor> out = new CopyOnWriteArrayList<Interceptor>();
> +    private List<Interceptor> outFault  = new CopyOnWriteArrayList<Interceptor>();
> +    private List<Interceptor> inFault  = new CopyOnWriteArrayList<Interceptor>();
> +
> +    public EndpointImpl(Object implementor) {
> +        this(BusFactory.getDefaultBus(), implementor);
> +    }
> +    
> +    @Deprecated
>      public EndpointImpl(Bus b, Object implementor, JaxWsServiceFactoryBean serviceFactory) {
>          this(b, implementor, serviceFactory, null);
>      }
>      
> +    /**
> +     * If you're using this method you should switch to passing in a JaxWsServerFactoryBean
> +     * or using the new getters/setters on EndpointImpl before our next release.
> +     * @param b
> +     * @param implementor
> +     * @param serviceFactory
> +     * @param bindingUri
> +     */
> +    @Deprecated
>      public EndpointImpl(Bus b, Object implementor, 
>                          JaxWsServiceFactoryBean serviceFactory, String bindingUri) {
>          this.bus = b;
> -        this.serviceFactory = serviceFactory;
> -        this.implInfo = serviceFactory.getJaxWsImplementorInfo();
> -        this.service = serviceFactory.getService();
> +        this.binding = bindingUri;
> +        this.serverFactory = new JaxWsServerFactoryBean(serviceFactory);
>          this.implementor = implementor;
> -        this.bindingId = bindingUri;
> -        
> -        if (this.service == null) {
> -            service = serviceFactory.create();
> -        }
>          
>          doInit = true;
>      }
>     
> +    public EndpointImpl(Bus b, Object implementor, 
> +                        JaxWsServerFactoryBean sf) {
> +        this.bus = b;
> +        this.serverFactory = sf;
> +        this.implementor = implementor;
> +        
> +        doInit = true;
> +    }
> +    
>      /**
>       * 
>       * @param b
> @@ -108,28 +137,16 @@
>      public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl) {
>          bus = b;
>          implementor = i;
> -        bindingId = bindingUri;
> -        // build up the Service model
> -        implInfo = new JaxWsImplementorInfo(implementor.getClass());
> -        serviceFactory = new JaxWsServiceFactoryBean(implInfo);
> -        serviceFactory.setBus(bus);
> -        if (null != wsdl) {
> -            serviceFactory.setWsdlURL(wsdl);
> -        }
> -        service = serviceFactory.create();
> -        
> -        configureObject(service);
> -        
> -        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
> -        
> -        service.setInvoker(new JAXWSMethodInvoker(i));
> +        binding = bindingUri;
> +        wsdlLocation = wsdl;
> +        serverFactory = new JaxWsServerFactoryBean();
>          
>          doInit = true; 
>      }
>      
>      
> -    public EndpointImpl(Bus b, Object i, String uri) {
> -        this(b, i, uri, (String)null);
> +    public EndpointImpl(Bus b, Object i, String bindingUri) {
> +        this(b, i, bindingUri, (String)null);
>      }
>     
>      public EndpointImpl(Bus bus, Object implementor) {
> @@ -141,13 +158,18 @@
>      }
>  
>      public void setExecutor(Executor executor) {
> -        service.setExecutor(executor);
> +        this.executor = executor;
>      }
>  
>      public Executor getExecutor() {
> -        return service.getExecutor();
> +        return executor;
>      }
>  
> +    public Service getService() {
> +        return service;
> +    }
> +
> +    
>      @Override
>      public Object getImplementor() {
>          return implementor;
> @@ -174,8 +196,8 @@
>      }
>  
>      @Override
> -    public void publish(String address) {
> -        doPublish(address);
> +    public void publish(String addr) {
> +        doPublish(addr);
>      }
>  
>      public void setMetadata(List<Source> metadata) {
> @@ -222,33 +244,70 @@
>          }
>      }
>  
> -    protected void doPublish(String address) {
> +    
> +    public String getBeanName() {
> +        return endpointName.toString();
> +    }
> +
> +    protected void doPublish(String addr) {
>          checkPublishPermission();
>  
> -        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(serviceFactory);
> +        // Initialize the endpointName so we can do configureObject
> +        if (endpointName == null) {
> +            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
> +            endpointName = implInfo.getEndpointName();
> +        }
>          
> -        svrFactory.setBus(bus);
> -        svrFactory.setBindingId(bindingId);
> -        svrFactory.setAddress(address);
> -        svrFactory.setStart(false);
> -        svrFactory.setServiceBean(implementor);
> -        configureObject(svrFactory);
> +        configureObject(this);
> +        
> +        // Set up the server factory
> +        serverFactory.setAddress(addr);
> +        serverFactory.setStart(false);
> +        serverFactory.setEndpointName(endpointName);
> +        serverFactory.setServiceBean(implementor);
> +        serverFactory.setBus(bus);
> +        
> +        // Be careful not to override any serverfactory settings as a user might
> +        // have supplied their own.
> +        if (getWsdlLocation() != null) {
> +            serverFactory.setWsdlURL(getWsdlLocation());
> +        }
> +        
> +        if (binding != null) {
> +            serverFactory.setBindingId(binding);
> +        }
> +        
> +        if (serviceName != null) {
> +            serverFactory.getServiceFactory().setServiceName(serviceName);
> +        }
> +        
> +        configureObject(serverFactory);
> +        
> +        server = serverFactory.create();
>          
> -        server = svrFactory.create();
> -
>          init();
>          
>          org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
> +        if (getInInterceptors() != null) {
> +            endpoint.getInInterceptors().addAll(getInInterceptors());
> +        }
> +        if (getOutInterceptors() != null) {
> +            endpoint.getOutInterceptors().addAll(getOutInterceptors());
> +        }
> +        if (getInFaultInterceptors() != null) {
> +            endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
> +        }
> +        if (getOutFaultInterceptors() != null) {
> +            endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors());
> +        }
>          
>          if (properties != null) {
>              endpoint.putAll(properties);
>          }
>          
> +        configureObject(endpoint.getService());
>          configureObject(endpoint);
>          
> -        if (endpoint.getEnableSchemaValidation()) {
> -            endpoint.put(Message.SCHEMA_VALIDATION_ENABLED, endpoint.getEnableSchemaValidation());
> -        }
>          server.start();
>      }
>      
> @@ -304,6 +363,78 @@
>          }
>      }
>  
> +    public void publish() {
> +        publish(getAddress());
> +    }
> +    
> +    public String getAddress() {
> +        return address;
> +    }
> +
> +    public void setAddress(String address) {
> +        this.address = address;
> +    }
> +
> +    public QName getEndpointName() {
> +        return endpointName;
> +    }
> +
> +    public void setEndpointName(QName endpointName) {
> +        this.endpointName = endpointName;
> +    }
> +
> +    public QName getServiceName() {
> +        return serviceName;
> +    }
> +
> +    public void setServiceName(QName serviceName) {
> +        this.serviceName = serviceName;
> +    }
> +
> +    public String getWsdlLocation() {
> +        return wsdlLocation;
> +    }
> +
> +    public void setWsdlLocation(String wsdlLocation) {
> +        this.wsdlLocation = wsdlLocation;
> +    }
> +
> +    public void setBinding(String binding) {
> +        this.binding = binding;
> +    }
> +
> +    public List<Interceptor> getOutFaultInterceptors() {
> +        return outFault;
> +    }
> +
> +    public List<Interceptor> getInFaultInterceptors() {
> +        return inFault;
> +    }
> +
> +    public List<Interceptor> getInInterceptors() {
> +        return in;
> +    }
> +
> +    public List<Interceptor> getOutInterceptors() {
> +        return out;
> +    }
> +
> +    public void setInInterceptors(List<Interceptor> interceptors) {
> +        in = interceptors;
> +    }
> +
> +    public void setInFaultInterceptors(List<Interceptor> interceptors) {
> +        inFault = interceptors;
> +    }
> +
> +    public void setOutInterceptors(List<Interceptor> interceptors) {
> +        out = interceptors;
> +    }
> +
> +    public void setOutFaultInterceptors(List<Interceptor> interceptors) {
> +        outFault = interceptors;
> +    }
> +    
>      /*
>      //TODO JAX-WS 2.1
>      public EndpointReference getEndpointReference(Element... referenceParameters) {
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -26,7 +26,7 @@
>  import org.apache.cxf.binding.soap.SoapBindingFactory;
>  import org.apache.cxf.binding.soap.model.SoapBindingInfo;
>  import org.apache.cxf.frontend.ServerFactoryBean;
> -import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
> +import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
>  import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>  import org.apache.cxf.service.invoker.Invoker;
> @@ -48,8 +48,8 @@
>      }
>      public JaxWsServerFactoryBean(JaxWsServiceFactoryBean serviceFactory) {
>          setServiceFactory(serviceFactory);
> -        JaxWsSoapBindingInfoConfigBean defConfig 
> -            = new JaxWsSoapBindingInfoConfigBean(serviceFactory);
> +        JaxWsSoapBindingConfiguration defConfig 
> +            = new JaxWsSoapBindingConfiguration(serviceFactory);
>          setBindingConfig(defConfig);
>      }
>  
> @@ -75,7 +75,7 @@
>                  binding = "http://schemas.xmlsoap.org/soap/";
>                  
>                  if (getBindingConfig() == null) {
> -                    setBindingConfig(new JaxWsSoapBindingInfoConfigBean(sf));
> +                    setBindingConfig(new JaxWsSoapBindingConfiguration(sf));
>                  }
>              }
>              
> @@ -83,15 +83,15 @@
>          }
>          boolean messageMode = implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
>          
> -        if (getBindingConfig() instanceof JaxWsSoapBindingInfoConfigBean) {
> -            JaxWsSoapBindingInfoConfigBean conf = (JaxWsSoapBindingInfoConfigBean)getBindingConfig();
> +        if (getBindingConfig() instanceof JaxWsSoapBindingConfiguration) {
> +            JaxWsSoapBindingConfiguration conf = (JaxWsSoapBindingConfiguration)getBindingConfig();
>              
>              if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_BINDING))) {
> -                conf.setSoapVersion(Soap12.getInstance());
> +                conf.setVersion(Soap12.getInstance());
>              }
>              
>              if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING))) {
> -                conf.setSoapVersion(Soap12.getInstance());
> +                conf.setVersion(Soap12.getInstance());
>                  conf.setMtomEnabled(true);
>              }
>              
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -50,14 +50,13 @@
>  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.JaxWsSoapBindingInfoConfigBean;
> +import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
>  import org.apache.cxf.jaxws.handler.HandlerResolverImpl;
>  import org.apache.cxf.jaxws.handler.PortInfoImpl;
>  import org.apache.cxf.jaxws.support.DummyImpl;
>  import org.apache.cxf.jaxws.support.JaxWsClientEndpointImpl;
>  import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
>  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.AbstractServiceFactoryBean;
>  import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
> @@ -249,7 +248,6 @@
>          
>          // Configure the Service
>          Service service = serviceFactory.getService();
> -        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
>          service.setExecutor(new Executor() {
>              public void execute(Runnable command) {
>                  Executor ex = getExecutor();
> @@ -267,10 +265,7 @@
>          configureObject(jaxwsEndpoint);  
>          
>          QName pn = portName;
> -        if (jaxwsEndpoint.getEnableSchemaValidation()) {
> -            jaxwsEndpoint.put(Message.SCHEMA_VALIDATION_ENABLED, jaxwsEndpoint.getEnableSchemaValidation());
> -        }
> -
> +        
>          List<Handler> hc = jaxwsEndpoint.getJaxwsBinding().getHandlerChain();
>          hc.addAll(handlerResolver.getHandlerChain(portInfos.get(pn)));
>  
> @@ -295,7 +290,7 @@
>          
>          Object config = null;
>          if (serviceFactory instanceof JaxWsServiceFactoryBean) {
> -            config = new JaxWsSoapBindingInfoConfigBean((JaxWsServiceFactoryBean)serviceFactory);
> +            config = new JaxWsSoapBindingConfiguration((JaxWsServiceFactoryBean)serviceFactory);
>          }
>          BindingInfo bindingInfo = bus.getExtension(BindingFactoryManager.class).getBindingFactory(bindingID)
>                  .createBindingInfo(serviceFactory.getService(), bindingID, config);
>
> Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java (from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java&r1=526927&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -18,26 +18,21 @@
>   */
>  package org.apache.cxf.jaxws.binding.soap;
>  
> -import java.lang.reflect.Method;
> -
>  import javax.jws.soap.SOAPBinding;
>  import javax.jws.soap.SOAPBinding.Style;
>  import javax.jws.soap.SOAPBinding.Use;
>  
> -import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
> -import org.apache.cxf.frontend.MethodDispatcher;
> +import org.apache.cxf.binding.soap.SoapBindingConfiguration;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> -import org.apache.cxf.service.model.BindingOperationInfo;
> -import org.apache.cxf.service.model.MessagePartInfo;
>  
>  /**
>   * Introspects the SOAPBinding annotation to provide to construct
>   * a {@link org.apache.cxf.service.model.BindingInfo}.
>   */
> -public class JaxWsSoapBindingInfoConfigBean extends SoapBindingInfoConfigBean {
> +public class JaxWsSoapBindingConfiguration extends SoapBindingConfiguration {
>      JaxWsServiceFactoryBean serviceFactory;
>      
> -    public JaxWsSoapBindingInfoConfigBean(JaxWsServiceFactoryBean sifb) {
> +    public JaxWsSoapBindingConfiguration(JaxWsServiceFactoryBean sifb) {
>          serviceFactory = sifb;
>      }
>      
> @@ -79,15 +74,4 @@
>          }
>          return super.getStyle();
>      }
> -
> -    @Override
> -    protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
> -        MethodDispatcher md = (MethodDispatcher)serviceFactory.getService()
> -                .get(MethodDispatcher.class.getName());
> -        Method method = md.getMethod(op);
> -        
> -        return getJaxWsServiceFactory().isHeader(method, part.getIndex());
> -    }
> -    
> -    
>  }
>
> Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java (from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java&r1=526469&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java Mon Apr  9 16:05:51 2007
> @@ -31,25 +31,28 @@
>  
>  import org.apache.cxf.common.classloader.ClassLoaderUtils;
>  import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> +import org.apache.cxf.jaxws.EndpointImpl;
>  import org.springframework.beans.FatalBeanException;
>  import org.springframework.beans.factory.support.BeanDefinitionBuilder;
>  import org.springframework.beans.factory.xml.ParserContext;
>  import org.springframework.util.StringUtils;
>  
> -public class EndpointFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
> +
> +public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
>  
>      private static final String IMPLEMENTOR = "implementor";
>  
>      @Override
>      protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
> +
>          NamedNodeMap atts = element.getAttributes();
>          for (int i = 0; i < atts.getLength(); i++) {
>              Attr node = (Attr) atts.item(i);
>              String val = node.getValue();
>              String pre = node.getPrefix();
>              String name = node.getLocalName();
> -            
> -            if (isAttribute(pre, name)) {
> +
> +            if (isAttribute(pre, name) && !"publish".equals(name)) {
>                  if ("endpointName".equals(name) || "serviceName".equals(name)) {
>                      QName q = parseQName(element, val);
>                      bean.addPropertyValue(name, q);
> @@ -58,6 +61,8 @@
>                  } else {
>                      mapToProperty(bean, name, val);
>                  }
> +            } else if ("abstract".equals(name)) {
> +                bean.setAbstract(true);
>              }
>          }
>          
> @@ -73,29 +78,29 @@
>                      || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)) {
>                      List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());
>                      bean.addPropertyValue(n.getLocalName(), list);
> +                } else if (IMPLEMENTOR.equals(name)) {
> +                    ctx.getDelegate()
> +                        .parseConstructorArgElement(getFirstChild(element), bean.getBeanDefinition());
>                  } else {
>                      setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
>                  }
>              }
>          }
> +
> +        bean.setInitMethodName("publish");
>          
> -        // We don't really want to delay the registration of our Server
> +        // We don't want to delay the registration of our Server
>          bean.setLazyInit(false);
> -        
> -//        PropertyValue idValue = bean.getBeanDefinition().getPropertyValues().getPropertyValue("id");
> -//        if (idValue == null) {
> -//            bean.addPropertyReference("id", arg1);
> -//        }
>      }
>  
>      private void loadImplementor(BeanDefinitionBuilder bean, String val) {
>          if (StringUtils.hasText(val)) {
>              if (val.startsWith("#")) {
> -                bean.addPropertyReference(IMPLEMENTOR, val.substring(1));
> +                bean.addConstructorArgReference(val.substring(1));
>              } else {
>                  try {
> -                    bean.addPropertyValue(IMPLEMENTOR,
> -                                          ClassLoaderUtils.loadClass(val, getClass()).newInstance());
> +                    Object obj = ClassLoaderUtils.loadClass(val, getClass()).newInstance();
> +                    bean.addConstructorArg(obj);
>                  } catch (Exception e) {
>                      throw new FatalBeanException("Could not load class: " + val, e);
>                  }
> @@ -105,7 +110,7 @@
>  
>      @Override
>      protected Class getBeanClass(Element arg0) {
> -        return EndpointFactoryBean.class;
> +        return EndpointImpl.class;
>      }
>  
>  }
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java Mon Apr  9 16:05:51 2007
> @@ -23,7 +23,7 @@
>  public class NamespaceHandler extends NamespaceHandlerSupport {
>      public void init() {
>          registerBeanDefinitionParser("client", new JaxWsProxyFactoryBeanDefinitionParser());        
> -        registerBeanDefinitionParser("endpoint", new EndpointFactoryBeanDefinitionParser());        
> +        registerBeanDefinitionParser("endpoint", new EndpointDefinitionParser());        
>          registerBeanDefinitionParser("server", new ServerBeanDefinitionParser());        
>      }
>  }
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -161,7 +161,7 @@
>              return null;
>          }
>          
> -        return getPartName(op, method, paramNumber, "arg");
> +        return getPartName(op, method, paramNumber, op.getInput().size(), "arg");
>      }
>  
>      @Override
> @@ -170,10 +170,10 @@
>              return null;
>          }
>          
> -        return getParameterName(op, method, paramNumber, "arg");
> +        return getParameterName(op, method, paramNumber, op.getInput().size(), "arg");
>      }
>  
> -    private QName getPartName(OperationInfo op, Method method, int paramNumber, String prefix) {
> +    private QName getPartName(OperationInfo op, Method method, int paramNumber, int curSize, String prefix) {
>          WebParam param = getWebParam(method, paramNumber);
>          String tns = op.getName().getNamespaceURI();
>          if (param != null) {
> @@ -185,34 +185,38 @@
>                  local = param.name();
>              }
>              if (local.length() == 0) {
> -                getDefaultLocalName(op, method, paramNumber, prefix);
> +                getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>              }
>              return new QName(tns, local);
>          } else {
> -            return new QName(tns, getDefaultLocalName(op, method, paramNumber, prefix));
> +            return new QName(tns, getDefaultLocalName(op, method, paramNumber, curSize, prefix));
>          }        
>      }
>  
> -    private QName getParameterName(OperationInfo op, Method method, int paramNumber, String prefix) {
> +    private QName getParameterName(OperationInfo op, Method method, int paramNumber, 
> +                                   int curSize, String prefix) {
> +        method = getDeclaredMethod(method);
>          WebParam param = getWebParam(method, paramNumber);
> +        String tns = null;
> +        String local = null;
>          if (param != null) {
> -            String tns = param.targetNamespace();
> -            String local = param.name();
> -
> -            if (tns.length() == 0) {
> -                tns = op.getName().getNamespaceURI();
> -            }
> -
> -            if (local.length() == 0) {
> -                local = getDefaultLocalName(op, method, paramNumber, prefix);
> -            }
> +            tns = param.targetNamespace();
> +            local = param.name();
> +        }
> +        
> +        if (tns == null || tns.length() == 0) {
> +            tns = op.getName().getNamespaceURI();
> +        }
>  
> -            return new QName(tns, local);
> +        if (local == null || local.length() == 0) {
> +            local = getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>          }
> -        return null;
> +        
> +        return new QName(tns, local);
>      }
>  
> -    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, String prefix) {
> +    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, 
> +                                       int curSize, String prefix) {
>          Class<?> impl = implInfo.getImplementorClass(); 
>          // try to grab the implementation class so we can read the debug symbols from it
>          if (impl == null) {
> @@ -223,7 +227,7 @@
>              }
>          }
>          
> -        return DefaultServiceConfiguration.createName(method, paramNumber, paramNumber, false, prefix);
> +        return DefaultServiceConfiguration.createName(method, paramNumber, curSize, false, prefix);
>      }
>  
>      private WebParam getWebParam(Method method, int parameter) {
> @@ -248,33 +252,38 @@
>  
>      @Override
>      public QName getOutParameterName(OperationInfo op, Method method, int paramNumber) {
> +        method = getDeclaredMethod(method);
> +        
>          if (paramNumber >= 0) {
> -            return getParameterName(op, method, paramNumber, "return");
> +            return getParameterName(op, method, paramNumber, op.getOutput().size(), "return");
>          } else {
>              WebResult webResult = getWebResult(method);
>  
> +            String tns = null;
> +            String local = null;
>              if (webResult != null) {
> -                String tns = webResult.targetNamespace();
> -                String local = webResult.name();
> -
> -                if (tns.length() == 0) {
> -                    tns = op.getName().getNamespaceURI();
> -                }
> +                tns = webResult.targetNamespace();
> +                local = webResult.name();
> +            }
>  
> -                if (local.length() == 0) {
> -                    local = getDefaultLocalName(op, method, paramNumber, "return");
> -                }
> +            if (tns == null || tns.length() == 0) {
> +                tns = op.getName().getNamespaceURI();
> +            }
>  
> -                return new QName(tns, local);
> +            if (local == null || local.length() == 0) {
> +                local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>              }
> +            
> +            return new QName(tns, local);
>          }
> -        return super.getOutParameterName(op, method, paramNumber);
>      }
>  
>      @Override
>      public QName getOutPartName(OperationInfo op, Method method, int paramNumber) {
> +        method = getDeclaredMethod(method);
> +        
>          if (paramNumber >= 0) {
> -            return getPartName(op, method, paramNumber, "return");
> +            return getPartName(op, method, paramNumber, op.getOutput().size(), "return");
>          } else {
>              WebResult webResult = getWebResult(method);
>              String tns = op.getName().getNamespaceURI();
> @@ -287,7 +296,7 @@
>                      local = webResult.name();
>                  }
>                  if (local.length() == 0) {
> -                    local = getDefaultLocalName(op, method, paramNumber, "return");
> +                    local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>                  }
>                  return new QName(tns, local);
>              } else {
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Mon Apr  9 16:05:51 2007
> @@ -51,6 +51,7 @@
>  import org.apache.cxf.service.factory.AbstractServiceConfiguration;
>  import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
>  import org.apache.cxf.service.factory.ServiceConstructionException;
> +import org.apache.cxf.service.invoker.Invoker;
>  import org.apache.cxf.service.model.BindingInfo;
>  import org.apache.cxf.service.model.EndpointInfo;
>  import org.apache.cxf.service.model.FaultInfo;
> @@ -85,6 +86,11 @@
>          this.serviceClass = implInfo.getEndpointClass();
>      }
>  
> +    @Override
> +    protected Invoker createInvoker() {
> +        return null;
> +    }
> +    
>      protected SimpleMethodDispatcher getMethodDispatcher() {
>          return methodDispatcher;
>      }
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd Mon Apr  9 16:05:51 2007
> @@ -15,6 +15,7 @@
>        <xsd:complexContent>
>          <xsd:extension base="beans:identifiedType">
>            <xsd:sequence>
> +            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="implementor" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
> @@ -25,7 +26,7 @@
>              <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
>            </xsd:sequence>
>            <xsd:attribute name="address" type="xsd:string" />
> -          <xsd:attribute name="binding" type="xsd:string" />
> +          <xsd:attribute name="bindingUri" type="xsd:string" />
>            <xsd:attribute name="bus" type="xsd:string" />
>            <xsd:attribute name="implementor" type="xsd:string"/>
>            <xsd:attribute name="publish" type="xsd:boolean" default="true"/>
> @@ -71,6 +72,7 @@
>        <xsd:complexContent>
>          <xsd:extension base="beans:identifiedType">
>            <xsd:sequence>
> +            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
> @@ -78,7 +80,7 @@
>              <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
>            </xsd:sequence>
>            <xsd:attribute name="address" type="xsd:string" />
> -          <xsd:attribute name="binding" type="xsd:string" />
> +          <xsd:attribute name="bindingUri" type="xsd:string" />
>            <xsd:attribute name="bus" type="xsd:string" />
>            <xsd:attribute name="endpointName" type="xsd:QName" />
>            <xsd:attribute name="password" type="xsd:string" />
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java Mon Apr  9 16:05:51 2007
> @@ -94,8 +94,9 @@
>          JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>          Client client = eih.getClient();
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
> +        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +        assertTrue("Unexpected value for property validating", 
> +                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>     
>          // System.out.println("endpoint interceptors");
>          List<Interceptor> interceptors = endpoint.getInInterceptors();
> @@ -160,28 +161,29 @@
>          JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>          Client client = eih.getClient();
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
> -        List<Interceptor> interceptors = endpoint.getInInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-in", 
> -                     findTestInterceptor(interceptors).getId());
> -        interceptors = endpoint.getOutInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-out", 
> -                     findTestInterceptor(interceptors).getId());
> -        interceptors = endpoint.getInFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
> -                     findTestInterceptor(interceptors).getId());
> -        interceptors = endpoint.getOutFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
> -                     findTestInterceptor(interceptors).getId());
> +//      The service shouldn't pick up the <jaxws:endpoint>...
> +//        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +//        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
> +//        List<Interceptor> interceptors = endpoint.getInInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-in", 
> +//                     findTestInterceptor(interceptors).getId());
> +//        interceptors = endpoint.getOutInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-out", 
> +//                     findTestInterceptor(interceptors).getId());
> +//        interceptors = endpoint.getInFaultInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
> +//                     findTestInterceptor(interceptors).getId());
> +//        interceptors = endpoint.getOutFaultInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
> +//                     findTestInterceptor(interceptors).getId());
>          
>          org.apache.cxf.service.ServiceImpl svc = (org.apache.cxf.service.ServiceImpl)endpoint.getService();
>          assertEquals("Unexpected bean name.", SERVICE_NAME.toString(), svc.getBeanName());
> -        interceptors = svc.getInInterceptors();
> +        List<Interceptor> interceptors = svc.getInInterceptors();
>          assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "service-in", 
>                       findTestInterceptor(interceptors).getId());
> @@ -226,8 +228,9 @@
>          ei.publish("http://localhost/greeter");
>          
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
> +        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +        assertTrue("Unexpected value for property validating", 
> +                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>     
>          List<Interceptor> interceptors = endpoint.getInInterceptors();
>          assertNull("Unexpected test interceptor", findTestInterceptor(interceptors));
> @@ -283,22 +286,23 @@
>          ei.publish("http://localhost/greeter");
>          
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        assertTrue("Unexpected value for property validating", endpoint.getEnableSchemaValidation());
> +        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +        assertTrue("Unexpected value for property validating", 
> +                   Boolean.valueOf((String) ei.getProperties().get(Message.SCHEMA_VALIDATION_ENABLED)));
>          List<Interceptor> interceptors = endpoint.getInInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 5, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-in", 
>                       findTestInterceptor(interceptors).getId());
>          interceptors = endpoint.getOutInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 6, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-out", 
>                       findTestInterceptor(interceptors).getId());
>          interceptors = endpoint.getInFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 2, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>                       findTestInterceptor(interceptors).getId());
>          interceptors = endpoint.getOutFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>                       findTestInterceptor(interceptors).getId());
>          
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -127,7 +127,7 @@
>              assertEquals(expeced, e.getMessage());
>          }
>      }
> -
> +    
>      @Test
>      public void testPublishEndpointPermission() throws Exception {
>          Hello service = new Hello();
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java Mon Apr  9 16:05:51 2007
> @@ -26,7 +26,7 @@
>  
>  import org.apache.cxf.Bus;
>  import org.apache.cxf.frontend.ServerFactoryBean;
> -import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
> +import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>  import org.apache.cxf.service.Service;
>  import org.apache.cxf.service.model.MessagePartInfo;
> @@ -76,8 +76,10 @@
>          ServerFactoryBean svr = new ServerFactoryBean();
>          svr.setBus(bus);
>          svr.setServiceFactory(bean);
> +        svr.setServiceBean(new TestHeaderImpl());
>          svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPort");
> -        svr.setBindingConfig(new JaxWsSoapBindingInfoConfigBean(bean));
> +        svr.setBindingConfig(new JaxWsSoapBindingConfiguration(bean));
> +
>          
>          svr.create();
>          
>
>
>
>   


Re: svn commit: r526945 [1/2] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/service/ common/common/src/main/java/org/apache/cxf/configuration/spring/ parent/...

Posted by Andrea Smyth <an...@iona.com>.
dandiep@apache.org wrote:

>Author: dandiep
>Date: Mon Apr  9 16:05:51 2007
>New Revision: 526945
>
>URL: http://svn.apache.org/viewvc?view=rev&rev=526945
>Log:
>o Enabled usage of <jaxws:endpoint> when using Endpoint.publish():
>  - Removed EndpointFactoryBean and just use EndpointImpl
>  - Added many getters/setters to configure the Endpointimpl
>  - Added constructor to pass in ServerFactoryBean instead of 
>    ServiceFactoryBean. Deprecated old constructors because this
>    is more correct and 99% of the people can probably just use
>    the getters/setters on EndpointImpl now.
>  
>
Hi Dan,

What do you mean with 'people can use the getters/setters on EndpointImpl'?
They suggest that if you cast the object returned from 
javax.xml.ws.Endpoint.publish(...) to org.apache.cxf.jaxws.EndpointImpl, 
you can use get/set[In|InFault|Out|OutFault]Interceptors to access the 
real endpoint's (i.e. org.apache.cxf.endpoint.Endpoint)  interceptors 
whereas in fact you are only accessing the interceptors of the wrapping 
implementation for javax.xml.ws.Endpoint - which has no effect.
The call to configure(this) in EndpointImpl seems to be necessary only 
in order to subsequently transfer properties to the 
JaxWsServerFactoryBean. Injection into a temporary object,  of type 
EndpointCfgHelper or similar (the class does not really matter as only 
the bean definition is needed), and subsequent transfer of required 
properties from there to the server factory, would have the same effect, 
and is IMO preferrable as it avoids the need for additional (public!) 
getters/setters on EndpointImpl.

Cheers,
Andrea.

>o Renamed BindingInfoConfigBean objects to *BindingConfiguration.
>  These all inherit from BindingConfiguration which has an abstract
>  method getBindingId().
>o Removed Endpoint/Service.enableSchemaValidation and made it a 
>  service property instead. I also changed the constant 
>  Message.ENABLE_SCHEMA_VALIDATION to be more amenable to config files.
>o Upgrade to Spring 2.0.3 and fix issues with SpringBeanMap in this
>  latest version.
>o Add a property editor for SoapVersions so we can specify "1.2" in 
>  the xml configuration for a <jaxws:endpoint>
>o Fix several bugs with the JaxWsServiceConfiguration
>o Don't create an Invoker inside JaxWsServiceFactoryBean, do it in the
>  JaxWsSERVERFactoryBean instead
>
>
>Added:
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java
>      - copied, changed from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java
>      - copied, changed from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java   (with props)
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java   (with props)
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java
>      - copied, changed from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
>      - copied, changed from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
>Removed:
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
>Modified:
>    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
>    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
>    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
>    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
>    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
>    incubator/cxf/trunk/parent/pom.xml
>    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/wrapped/WrappedServiceTest.java
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.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/SoapBindingInfoConfigBeanDefinitionParser.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
>    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/NamespaceHandler.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.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/HeaderTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/configured-endpoints.xml
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderService.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderServiceImpl.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/provider/ProviderServiceFactoryTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/servers.xml
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceConfigurationTest.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/service/factory/ReflectionServiceFactoryBean.java
>    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java
>    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedService.java
>    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/schema_validation/cxf-config.xml
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/SpringServletTest.java
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/spring.xml
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/databinding-schema-validation.xml
>
>Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java (original)
>+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java Mon Apr  9 16:05:51 2007
>@@ -51,9 +51,5 @@
>     void setInFaultObserver(MessageObserver observer);
>     
>     void setOutFaultObserver(MessageObserver observer);
>-    
>-    boolean getEnableSchemaValidation();
>-    
>-    void setEnableSchemaValidation(boolean value);
> 
> }
>
>Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java (original)
>+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java Mon Apr  9 16:05:51 2007
>@@ -49,7 +49,7 @@
>     String PATH_INFO = Message.class.getName() + ".PATH_INFO";
>     String QUERY_STRING = Message.class.getName() + ".QUERY_STRING";
>     String MTOM_ENABLED = "mtom-enabled";
>-    String SCHEMA_VALIDATION_ENABLED = Message.class.getCanonicalName() + ".schemaValidationEnabled";
>+    String SCHEMA_VALIDATION_ENABLED = "schema-validation-enabled";
>     String FAULT_STACKTRACE_ENABLED = "faultStackTraceEnabled";
>     String CONTENT_TYPE = "Content-Type";
>     String BASE_PATH = Message.class.getName() + ".BASE_PATH";
>
>Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java (original)
>+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java Mon Apr  9 16:05:51 2007
>@@ -49,8 +49,4 @@
>     void setInvoker(Invoker invoker);
>     
>     Map<QName, Endpoint> getEndpoints();
>-    
>-    void setEnableSchemaValidationForAllPort(boolean value);
>-    
>-    boolean getEnableSchemaValidationForAllPort();
> }
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -40,11 +40,18 @@
> public abstract class AbstractBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
> 
>     protected void setFirstChildAsProperty(Element element, ParserContext ctx, 
>-                                         BeanDefinitionBuilder bean, String string) {
>+                                         BeanDefinitionBuilder bean, String propertyName) {
>+        String id = getAndRegisterFirstChild(element, ctx, bean, propertyName);
>+        bean.addPropertyReference(propertyName, id);
>+        
>+    }
>+
>+    protected String getAndRegisterFirstChild(Element element, ParserContext ctx, 
>+                                              BeanDefinitionBuilder bean, String propertyName) {
>         Element first = getFirstChild(element);
>         
>         if (first == null) {
>-            throw new IllegalStateException(string + " property must have child elements!");
>+            throw new IllegalStateException(propertyName + " property must have child elements!");
>         }
>         
>         // Seems odd that we have to do the registration, I wonder if there is a better way
>@@ -61,8 +68,7 @@
>         }
>        
>         ctx.getRegistry().registerBeanDefinition(id, child);
>-        bean.addPropertyReference(string, id);
>-        
>+        return id;
>     }
> 
>     protected Element getFirstChild(Element element) {
>
>Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java (original)
>+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java Mon Apr  9 16:05:51 2007
>@@ -24,6 +24,7 @@
> import java.util.ArrayList;
> import java.util.Collection;
> import java.util.HashSet;
>+import java.util.Iterator;
> import java.util.List;
> import java.util.Map;
> import java.util.Set;
>@@ -38,6 +39,9 @@
> import org.springframework.beans.factory.BeanIsAbstractException;
> import org.springframework.beans.factory.InitializingBean;
> import org.springframework.beans.factory.config.BeanDefinition;
>+import org.springframework.beans.factory.config.TypedStringValue;
>+import org.springframework.beans.factory.support.ManagedList;
>+import org.springframework.beans.factory.support.ManagedSet;
> import org.springframework.context.ApplicationContext;
> import org.springframework.context.ApplicationContextAware;
> import org.springframework.context.ConfigurableApplicationContext;
>@@ -100,6 +104,18 @@
>                     }
>                 }
>                 
>+                if (ids instanceof ManagedSet || ids instanceof ManagedList) {
>+                    List<String> newIds = new ArrayList<String>();
>+                    for (Iterator itr = ids.iterator(); itr.hasNext();) {
>+                        Object o = itr.next();
>+                        if (o instanceof TypedStringValue) {
>+                            newIds.add(((TypedStringValue) o).getValue());
>+                        } else {
>+                            newIds.add((String) o);
>+                        }
>+                    }
>+                    ids = newIds;
>+                }
>                 for (Object id : ids) {
>                     idToBeanName.put(id.toString(), beanNames[i]);
>                 }
>
>Modified: incubator/cxf/trunk/parent/pom.xml
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/parent/pom.xml?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/parent/pom.xml (original)
>+++ incubator/cxf/trunk/parent/pom.xml Mon Apr  9 16:05:51 2007
>@@ -46,7 +46,7 @@
>         <jaxws.version>2.0</jaxws.version>
>         <jetty.version>5.1.11</jetty.version>
>         <saaj.version>1.3</saaj.version>
>-        <spring.version>2.0</spring.version>
>+        <spring.version>2.0.3</spring.version>
>         <wsdl4j.version>1.6.1</wsdl4j.version>
>         <derby.version>10.1.1.0</derby.version>
>         <activemq.version>4.1.0-incubator</activemq.version>
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -48,7 +48,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(false);
>         sf.setAddress("http://localhost:9001/foo/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("contextMatchStrategy", "stem");
>         sf.setProperties(props);
>@@ -130,7 +131,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(false);
>         sf.setAddress("http://localhost:9001/foo/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("Content-Type", "text/plain");
>         sf.setProperties(props);
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -45,7 +45,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(false);
>         sf.setAddress("http://localhost:9001/foo/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("contextMatchStrategy", "stem");
>         sf.setProperties(props);
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -59,7 +59,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(true);
>         sf.setAddress("http://localhost:9001/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("contextMatchStrategy", "stem");
>         sf.setProperties(props);
>
>Copied: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java (from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java&r1=525926&p2=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java (original)
>+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -20,9 +20,16 @@
> 
> import java.util.Set;
> 
>-public class ObjectBindingConfigBean {
>+import org.apache.cxf.binding.BindingConfiguration;
>+
>+public class ObjectBindingConfiguration extends BindingConfiguration {
>     private boolean stopAfterLogicalPhases = true;
>     private Set<String> skipPhases;
>+    
>+    @Override
>+    public String getBindingId() {
>+        return ObjectBindingFactory.BINDING_ID;
>+    }
> 
>     public Set<String> getSkipPhases() {
>         return skipPhases;
>
>Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java (original)
>+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java Mon Apr  9 16:05:51 2007
>@@ -56,8 +56,8 @@
>     public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object config) {
>         BindingInfo info = super.createBindingInfo(si, bindingid, config);
>         
>-        if (config instanceof ObjectBindingConfigBean) {
>-            ObjectBindingConfigBean c = (ObjectBindingConfigBean) config;
>+        if (config instanceof ObjectBindingConfiguration) {
>+            ObjectBindingConfiguration c = (ObjectBindingConfiguration) config;
>             
>             info.setProperty(STOP_AFTER_LOGICAL, c.isStopAfterLogicalPhases());
>         }
>
>Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java (original)
>+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java Mon Apr  9 16:05:51 2007
>@@ -22,7 +22,7 @@
> import org.w3c.dom.Element;
> import org.w3c.dom.NamedNodeMap;
> 
>-import org.apache.cxf.binding.object.ObjectBindingConfigBean;
>+import org.apache.cxf.binding.object.ObjectBindingConfiguration;
> import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> import org.springframework.beans.factory.support.BeanDefinitionBuilder;
> import org.springframework.beans.factory.xml.ParserContext;
>@@ -41,7 +41,7 @@
> 
>     @Override
>     protected Class getBeanClass(Element arg0) {
>-        return ObjectBindingConfigBean.class;
>+        return ObjectBindingConfiguration.class;
>     }
> 
> }
>
>Copied: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java (from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java&r1=525649&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java (original)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -18,23 +18,27 @@
>  */
> package org.apache.cxf.binding.soap;
> 
>+import org.apache.cxf.binding.BindingConfiguration;
> import org.apache.cxf.service.model.BindingOperationInfo;
> import org.apache.cxf.service.model.MessagePartInfo;
> import org.apache.cxf.service.model.OperationInfo;
> 
>-public class SoapBindingInfoConfigBean {
>+public class SoapBindingConfiguration extends BindingConfiguration {
>     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 String getBindingId() {
>+        return "http://schemas.xmlsoap.org/soap/";
>+    }
> 
>     protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
>-        return false;
>+        Object isHeader = part.getProperty("messagepart.isheader");
>+        return Boolean.TRUE.equals(isHeader);
>     }
> 
>     public String getSoapAction(OperationInfo op) {
>@@ -57,12 +61,12 @@
>         return getStyle();
>     }
> 
>-    public SoapVersion getSoapVersion() {
>+    public SoapVersion getVersion() {
>         return soapVersion;
>     }
> 
>-    public void setSoapVersion(SoapVersion soapVersion) {
>-        this.soapVersion = soapVersion;
>+    public void setVersion(SoapVersion sv) {
>+        this.soapVersion = sv;
>     }
> 
>     public String getUse() {
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -90,16 +90,16 @@
>     }
> 
>     public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object conf) {
>-        SoapBindingInfoConfigBean config;
>-        if (conf instanceof SoapBindingInfoConfigBean) {
>-            config = (SoapBindingInfoConfigBean)conf;
>+        SoapBindingConfiguration config;
>+        if (conf instanceof SoapBindingConfiguration) {
>+            config = (SoapBindingConfiguration)conf;
>         } else {
>-            config = new SoapBindingInfoConfigBean();
>+            config = new SoapBindingConfiguration();
>         }
>         
>         SoapBindingInfo info = new SoapBindingInfo(si,
>                                                    "http://schemas.xmlsoap.org/wsdl/soap/",
>-                                                   config.getSoapVersion());
>+                                                   config.getVersion());
>         
>         info.setName(new QName(si.getName().getNamespaceURI(), 
>                                si.getName().getLocalPart() + "SoapBinding"));
>@@ -156,7 +156,7 @@
>                               BindingMessageInfo bMsg, 
>                               BindingMessageInfo unwrappedBMsg, 
>                               MessageInfo msg,
>-                              SoapBindingInfoConfigBean config) {
>+                              SoapBindingConfiguration config) {
>         List<MessagePartInfo> parts = new ArrayList<MessagePartInfo>();
>         for (MessagePartInfo part : msg.getMessageParts()) {
>             if (config.isHeader(op, part)) {
>
>Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java?view=auto&rev=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java (added)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java Mon Apr  9 16:05:51 2007
>@@ -0,0 +1,43 @@
>+/**
>+ * 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.
>+ */
>+package org.apache.cxf.binding.soap;
>+
>+import java.beans.PropertyEditorSupport;
>+
>+public class SoapVersionPropertyEditor extends PropertyEditorSupport {
>+
>+    private SoapVersion version;
>+
>+    @Override
>+    public Object getValue() {
>+        return version;
>+    }
>+
>+    @Override
>+    public void setAsText(String text) throws IllegalArgumentException {
>+        if ("1.2".equals(text)) {
>+            this.version = Soap12.getInstance();
>+        } else if ("1.1".equals(text)) {
>+            this.version = Soap11.getInstance();
>+        } else {
>+            super.setAsText(text);
>+        }
>+    }
>+
>+}
>
>Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>------------------------------------------------------------------------------
>    svn:eol-style = native
>
>Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>------------------------------------------------------------------------------
>    svn:executable = *
>
>Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
>Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.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=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java (original)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Mon Apr  9 16:05:51 2007
>@@ -22,7 +22,7 @@
> import org.w3c.dom.Element;
> import org.w3c.dom.NamedNodeMap;
> 
>-import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
>+import org.apache.cxf.binding.soap.SoapBindingConfiguration;
> import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> import org.springframework.beans.factory.support.BeanDefinitionBuilder;
> import org.springframework.beans.factory.xml.ParserContext;
>@@ -41,7 +41,7 @@
> 
>     @Override
>     protected Class getBeanClass(Element arg0) {
>-        return SoapBindingInfoConfigBean.class;
>+        return SoapBindingConfiguration.class;
>     }
> 
> }
>
>Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml (original)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml Mon Apr  9 16:05:51 2007
>@@ -44,4 +44,15 @@
>         </property>
>         <property name="bus" ref="cxf"/>
>     </bean>
>+        
>+	<bean id="org.apache.cxf.binding.soap.customEditorConfigurer"
>+		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
>+		<property name="customEditors">
>+			<map>
>+				<entry key="org.apache.cxf.binding.soap.SoapVersion">
>+					<bean class="org.apache.cxf.binding.soap.SoapVersionPropertyEditor"/>
>+				</entry>
>+			</map>
>+		</property>
>+	</bean>
> </beans>
>
>Added: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java?view=auto&rev=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java (added)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -0,0 +1,26 @@
>+/**
>+ * 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.
>+ */
>+package org.apache.cxf.binding;
>+
>+/**
>+ * A configuration for a binding.
>+ */
>+public abstract class BindingConfiguration {
>+    public abstract String getBindingId();
>+}
>
>Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>------------------------------------------------------------------------------
>    svn:eol-style = native
>
>Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>------------------------------------------------------------------------------
>    svn:executable = *
>
>Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java Mon Apr  9 16:05:51 2007
>@@ -19,6 +19,7 @@
> 
> package org.apache.cxf.endpoint;
> 
>+import java.util.Map;
> import java.util.ResourceBundle;
> import java.util.concurrent.Executor;
> import java.util.logging.Logger;
>@@ -55,7 +56,6 @@
>     private Bus bus;
>     private MessageObserver inFaultObserver;
>     private MessageObserver outFaultObserver;
>-    private boolean schemaValidation;
> 
>     public EndpointImpl(Bus bus, Service s, QName endpointName) throws EndpointException {
>         this(bus, s, s.getServiceInfo().getEndpoint(endpointName));
>@@ -84,7 +84,7 @@
>     }
>     
>     public String getBeanName() {
>-        return endpointInfo.getName().toString();
>+        return endpointInfo.getName().toString() + ".endpoint";
>     }
>     
>    
>@@ -141,13 +141,6 @@
>     public MessageObserver getOutFaultObserver() {
>         return outFaultObserver;
>     }
>-    
>-    public void setEnableSchemaValidation(boolean value) {
>-        schemaValidation = value;
>-    }
>-    public boolean getEnableSchemaValidation() {
>-        return schemaValidation;
>-    }
> 
>     public void setInFaultObserver(MessageObserver observer) {
>         inFaultObserver = observer;        
>@@ -157,7 +150,14 @@
>         outFaultObserver = observer;
>         
>     }
>-
>-   
>+    
>+    /**
>+     * Utility method to make it easy to set properties from Spring.
>+     * 
>+     * @param properties
>+     */
>+    public void setProperties(Map<String, Object> properties) {
>+        this.putAll(properties);
>+    }
>     
> }
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
>@@ -78,7 +78,8 @@
>     }
> 
>     private void setSchemaInMessage(Service service, Message message, DataReader<?> reader) {
>-        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
>+        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
>+        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>             Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>             reader.setSchema(schema);
>         }
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
>@@ -57,7 +57,8 @@
>     }
> 
>     private void setSchemaOutMessage(Service service, Message message, DataWriter<?> writer) {
>-        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
>+        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
>+        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>             Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>             writer.setSchema(schema);
>         }
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java Mon Apr  9 16:05:51 2007
>@@ -39,7 +39,6 @@
>     private Executor executor;
>     private Invoker invoker;
>     private Map<QName, Endpoint> endpoints = new HashMap<QName, Endpoint>();
>-    private boolean enableSchemaValidationForAllPort;
>     
>     public ServiceImpl() {
>         this(null);
>@@ -93,11 +92,8 @@
>     public void setEndpoints(Map<QName, Endpoint> endpoints) {
>         this.endpoints = endpoints;
>     }
>-    public void setEnableSchemaValidationForAllPort(boolean value) {
>-        enableSchemaValidationForAllPort = value;
>-    }
>-    
>-    public boolean getEnableSchemaValidationForAllPort() {
>-        return enableSchemaValidationForAllPort;
>+
>+    public void setProperties(Map<String, Object> properties) {
>+        this.putAll(properties);
>     }
> }
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -22,37 +22,40 @@
> import java.security.AccessController;
> import java.util.List;
> import java.util.Map;
>+import java.util.concurrent.CopyOnWriteArrayList;
> import java.util.concurrent.Executor;
> import java.util.logging.Logger;
> 
>+import javax.xml.namespace.QName;
> import javax.xml.transform.Source;
> import javax.xml.ws.Binding;
>-
>-//TODO JAX-WS 2.1
>-//import javax.xml.ws.EndpointReference;
> import javax.xml.ws.WebServiceException;
> import javax.xml.ws.WebServicePermission;
> import javax.xml.ws.handler.Handler;
> 
> import org.apache.cxf.Bus;
>+import org.apache.cxf.BusFactory;
> import org.apache.cxf.common.injection.ResourceInjector;
> import org.apache.cxf.common.logging.LogUtils;
>+import org.apache.cxf.configuration.Configurable;
> import org.apache.cxf.configuration.Configurer;
> import org.apache.cxf.endpoint.Server;
> import org.apache.cxf.endpoint.ServerImpl;
>+import org.apache.cxf.interceptor.Interceptor;
>+import org.apache.cxf.interceptor.InterceptorProvider;
> import org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
> import org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilder;
> import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
> import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>-import org.apache.cxf.message.Message;
> import org.apache.cxf.resource.DefaultResourceManager;
> import org.apache.cxf.resource.ResourceManager;
> import org.apache.cxf.resource.ResourceResolver;
> import org.apache.cxf.service.Service;
> 
>-public class EndpointImpl extends javax.xml.ws.Endpoint {
>-    /*
>+public class EndpointImpl extends javax.xml.ws.Endpoint 
>+    implements InterceptorProvider, Configurable {
>+    /**
>      * This property controls whether the 'publishEndpoint' permission is checked 
>      * using only the AccessController (i.e. when SecurityManager is not installed).
>      * By default this check is not done as the system property is not set.
>@@ -66,37 +69,63 @@
>         new WebServicePermission("publishEndpoint");
>     
>     protected boolean doInit;
>-
>     private Bus bus;
>     private Object implementor;
>     private Server server;
>+    private JaxWsServerFactoryBean serverFactory;
>     private Service service;
>-    private String bindingId;
>-    private JaxWsImplementorInfo implInfo;
>-    private JaxWsServiceFactoryBean serviceFactory;
>     private Map<String, Object> properties;
>     private List<Source> metadata;
>     
>+    private Executor executor;
>+    private String binding;
>+    private String wsdlLocation;
>+    private String address;
>+    private QName endpointName;
>+    private QName serviceName;
>+    
>+    private List<Interceptor> in = new CopyOnWriteArrayList<Interceptor>();
>+    private List<Interceptor> out = new CopyOnWriteArrayList<Interceptor>();
>+    private List<Interceptor> outFault  = new CopyOnWriteArrayList<Interceptor>();
>+    private List<Interceptor> inFault  = new CopyOnWriteArrayList<Interceptor>();
>+
>+    public EndpointImpl(Object implementor) {
>+        this(BusFactory.getDefaultBus(), implementor);
>+    }
>+    
>+    @Deprecated
>     public EndpointImpl(Bus b, Object implementor, JaxWsServiceFactoryBean serviceFactory) {
>         this(b, implementor, serviceFactory, null);
>     }
>     
>+    /**
>+     * If you're using this method you should switch to passing in a JaxWsServerFactoryBean
>+     * or using the new getters/setters on EndpointImpl before our next release.
>+     * @param b
>+     * @param implementor
>+     * @param serviceFactory
>+     * @param bindingUri
>+     */
>+    @Deprecated
>     public EndpointImpl(Bus b, Object implementor, 
>                         JaxWsServiceFactoryBean serviceFactory, String bindingUri) {
>         this.bus = b;
>-        this.serviceFactory = serviceFactory;
>-        this.implInfo = serviceFactory.getJaxWsImplementorInfo();
>-        this.service = serviceFactory.getService();
>+        this.binding = bindingUri;
>+        this.serverFactory = new JaxWsServerFactoryBean(serviceFactory);
>         this.implementor = implementor;
>-        this.bindingId = bindingUri;
>-        
>-        if (this.service == null) {
>-            service = serviceFactory.create();
>-        }
>         
>         doInit = true;
>     }
>    
>+    public EndpointImpl(Bus b, Object implementor, 
>+                        JaxWsServerFactoryBean sf) {
>+        this.bus = b;
>+        this.serverFactory = sf;
>+        this.implementor = implementor;
>+        
>+        doInit = true;
>+    }
>+    
>     /**
>      * 
>      * @param b
>@@ -108,28 +137,16 @@
>     public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl) {
>         bus = b;
>         implementor = i;
>-        bindingId = bindingUri;
>-        // build up the Service model
>-        implInfo = new JaxWsImplementorInfo(implementor.getClass());
>-        serviceFactory = new JaxWsServiceFactoryBean(implInfo);
>-        serviceFactory.setBus(bus);
>-        if (null != wsdl) {
>-            serviceFactory.setWsdlURL(wsdl);
>-        }
>-        service = serviceFactory.create();
>-        
>-        configureObject(service);
>-        
>-        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
>-        
>-        service.setInvoker(new JAXWSMethodInvoker(i));
>+        binding = bindingUri;
>+        wsdlLocation = wsdl;
>+        serverFactory = new JaxWsServerFactoryBean();
>         
>         doInit = true; 
>     }
>     
>     
>-    public EndpointImpl(Bus b, Object i, String uri) {
>-        this(b, i, uri, (String)null);
>+    public EndpointImpl(Bus b, Object i, String bindingUri) {
>+        this(b, i, bindingUri, (String)null);
>     }
>    
>     public EndpointImpl(Bus bus, Object implementor) {
>@@ -141,13 +158,18 @@
>     }
> 
>     public void setExecutor(Executor executor) {
>-        service.setExecutor(executor);
>+        this.executor = executor;
>     }
> 
>     public Executor getExecutor() {
>-        return service.getExecutor();
>+        return executor;
>     }
> 
>+    public Service getService() {
>+        return service;
>+    }
>+
>+    
>     @Override
>     public Object getImplementor() {
>         return implementor;
>@@ -174,8 +196,8 @@
>     }
> 
>     @Override
>-    public void publish(String address) {
>-        doPublish(address);
>+    public void publish(String addr) {
>+        doPublish(addr);
>     }
> 
>     public void setMetadata(List<Source> metadata) {
>@@ -222,33 +244,70 @@
>         }
>     }
> 
>-    protected void doPublish(String address) {
>+    
>+    public String getBeanName() {
>+        return endpointName.toString();
>+    }
>+
>+    protected void doPublish(String addr) {
>         checkPublishPermission();
> 
>-        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(serviceFactory);
>+        // Initialize the endpointName so we can do configureObject
>+        if (endpointName == null) {
>+            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
>+            endpointName = implInfo.getEndpointName();
>+        }
>         
>-        svrFactory.setBus(bus);
>-        svrFactory.setBindingId(bindingId);
>-        svrFactory.setAddress(address);
>-        svrFactory.setStart(false);
>-        svrFactory.setServiceBean(implementor);
>-        configureObject(svrFactory);
>+        configureObject(this);
>+        
>+        // Set up the server factory
>+        serverFactory.setAddress(addr);
>+        serverFactory.setStart(false);
>+        serverFactory.setEndpointName(endpointName);
>+        serverFactory.setServiceBean(implementor);
>+        serverFactory.setBus(bus);
>+        
>+        // Be careful not to override any serverfactory settings as a user might
>+        // have supplied their own.
>+        if (getWsdlLocation() != null) {
>+            serverFactory.setWsdlURL(getWsdlLocation());
>+        }
>+        
>+        if (binding != null) {
>+            serverFactory.setBindingId(binding);
>+        }
>+        
>+        if (serviceName != null) {
>+            serverFactory.getServiceFactory().setServiceName(serviceName);
>+        }
>+        
>+        configureObject(serverFactory);
>+        
>+        server = serverFactory.create();
>         
>-        server = svrFactory.create();
>-
>         init();
>         
>         org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
>+        if (getInInterceptors() != null) {
>+            endpoint.getInInterceptors().addAll(getInInterceptors());
>+        }
>+        if (getOutInterceptors() != null) {
>+            endpoint.getOutInterceptors().addAll(getOutInterceptors());
>+        }
>+        if (getInFaultInterceptors() != null) {
>+            endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
>+        }
>+        if (getOutFaultInterceptors() != null) {
>+            endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors());
>+        }
>         
>         if (properties != null) {
>             endpoint.putAll(properties);
>         }
>         
>+        configureObject(endpoint.getService());
>         configureObject(endpoint);
>         
>-        if (endpoint.getEnableSchemaValidation()) {
>-            endpoint.put(Message.SCHEMA_VALIDATION_ENABLED, endpoint.getEnableSchemaValidation());
>-        }
>         server.start();
>     }
>     
>@@ -304,6 +363,78 @@
>         }
>     }
> 
>+    public void publish() {
>+        publish(getAddress());
>+    }
>+    
>+    public String getAddress() {
>+        return address;
>+    }
>+
>+    public void setAddress(String address) {
>+        this.address = address;
>+    }
>+
>+    public QName getEndpointName() {
>+        return endpointName;
>+    }
>+
>+    public void setEndpointName(QName endpointName) {
>+        this.endpointName = endpointName;
>+    }
>+
>+    public QName getServiceName() {
>+        return serviceName;
>+    }
>+
>+    public void setServiceName(QName serviceName) {
>+        this.serviceName = serviceName;
>+    }
>+
>+    public String getWsdlLocation() {
>+        return wsdlLocation;
>+    }
>+
>+    public void setWsdlLocation(String wsdlLocation) {
>+        this.wsdlLocation = wsdlLocation;
>+    }
>+
>+    public void setBinding(String binding) {
>+        this.binding = binding;
>+    }
>+
>+    public List<Interceptor> getOutFaultInterceptors() {
>+        return outFault;
>+    }
>+
>+    public List<Interceptor> getInFaultInterceptors() {
>+        return inFault;
>+    }
>+
>+    public List<Interceptor> getInInterceptors() {
>+        return in;
>+    }
>+
>+    public List<Interceptor> getOutInterceptors() {
>+        return out;
>+    }
>+
>+    public void setInInterceptors(List<Interceptor> interceptors) {
>+        in = interceptors;
>+    }
>+
>+    public void setInFaultInterceptors(List<Interceptor> interceptors) {
>+        inFault = interceptors;
>+    }
>+
>+    public void setOutInterceptors(List<Interceptor> interceptors) {
>+        out = interceptors;
>+    }
>+
>+    public void setOutFaultInterceptors(List<Interceptor> interceptors) {
>+        outFault = interceptors;
>+    }
>+    
>     /*
>     //TODO JAX-WS 2.1
>     public EndpointReference getEndpointReference(Element... referenceParameters) {
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -26,7 +26,7 @@
> import org.apache.cxf.binding.soap.SoapBindingFactory;
> import org.apache.cxf.binding.soap.model.SoapBindingInfo;
> import org.apache.cxf.frontend.ServerFactoryBean;
>-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
>+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> import org.apache.cxf.service.invoker.Invoker;
>@@ -48,8 +48,8 @@
>     }
>     public JaxWsServerFactoryBean(JaxWsServiceFactoryBean serviceFactory) {
>         setServiceFactory(serviceFactory);
>-        JaxWsSoapBindingInfoConfigBean defConfig 
>-            = new JaxWsSoapBindingInfoConfigBean(serviceFactory);
>+        JaxWsSoapBindingConfiguration defConfig 
>+            = new JaxWsSoapBindingConfiguration(serviceFactory);
>         setBindingConfig(defConfig);
>     }
> 
>@@ -75,7 +75,7 @@
>                 binding = "http://schemas.xmlsoap.org/soap/";
>                 
>                 if (getBindingConfig() == null) {
>-                    setBindingConfig(new JaxWsSoapBindingInfoConfigBean(sf));
>+                    setBindingConfig(new JaxWsSoapBindingConfiguration(sf));
>                 }
>             }
>             
>@@ -83,15 +83,15 @@
>         }
>         boolean messageMode = implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
>         
>-        if (getBindingConfig() instanceof JaxWsSoapBindingInfoConfigBean) {
>-            JaxWsSoapBindingInfoConfigBean conf = (JaxWsSoapBindingInfoConfigBean)getBindingConfig();
>+        if (getBindingConfig() instanceof JaxWsSoapBindingConfiguration) {
>+            JaxWsSoapBindingConfiguration conf = (JaxWsSoapBindingConfiguration)getBindingConfig();
>             
>             if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_BINDING))) {
>-                conf.setSoapVersion(Soap12.getInstance());
>+                conf.setVersion(Soap12.getInstance());
>             }
>             
>             if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING))) {
>-                conf.setSoapVersion(Soap12.getInstance());
>+                conf.setVersion(Soap12.getInstance());
>                 conf.setMtomEnabled(true);
>             }
>             
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -50,14 +50,13 @@
> 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.JaxWsSoapBindingInfoConfigBean;
>+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> import org.apache.cxf.jaxws.handler.HandlerResolverImpl;
> import org.apache.cxf.jaxws.handler.PortInfoImpl;
> import org.apache.cxf.jaxws.support.DummyImpl;
> import org.apache.cxf.jaxws.support.JaxWsClientEndpointImpl;
> import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
> 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.AbstractServiceFactoryBean;
> import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
>@@ -249,7 +248,6 @@
>         
>         // Configure the Service
>         Service service = serviceFactory.getService();
>-        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
>         service.setExecutor(new Executor() {
>             public void execute(Runnable command) {
>                 Executor ex = getExecutor();
>@@ -267,10 +265,7 @@
>         configureObject(jaxwsEndpoint);  
>         
>         QName pn = portName;
>-        if (jaxwsEndpoint.getEnableSchemaValidation()) {
>-            jaxwsEndpoint.put(Message.SCHEMA_VALIDATION_ENABLED, jaxwsEndpoint.getEnableSchemaValidation());
>-        }
>-
>+        
>         List<Handler> hc = jaxwsEndpoint.getJaxwsBinding().getHandlerChain();
>         hc.addAll(handlerResolver.getHandlerChain(portInfos.get(pn)));
> 
>@@ -295,7 +290,7 @@
>         
>         Object config = null;
>         if (serviceFactory instanceof JaxWsServiceFactoryBean) {
>-            config = new JaxWsSoapBindingInfoConfigBean((JaxWsServiceFactoryBean)serviceFactory);
>+            config = new JaxWsSoapBindingConfiguration((JaxWsServiceFactoryBean)serviceFactory);
>         }
>         BindingInfo bindingInfo = bus.getExtension(BindingFactoryManager.class).getBindingFactory(bindingID)
>                 .createBindingInfo(serviceFactory.getService(), bindingID, config);
>
>Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java (from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java&r1=526927&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -18,26 +18,21 @@
>  */
> package org.apache.cxf.jaxws.binding.soap;
> 
>-import java.lang.reflect.Method;
>-
> import javax.jws.soap.SOAPBinding;
> import javax.jws.soap.SOAPBinding.Style;
> import javax.jws.soap.SOAPBinding.Use;
> 
>-import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
>-import org.apache.cxf.frontend.MethodDispatcher;
>+import org.apache.cxf.binding.soap.SoapBindingConfiguration;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>-import org.apache.cxf.service.model.BindingOperationInfo;
>-import org.apache.cxf.service.model.MessagePartInfo;
> 
> /**
>  * Introspects the SOAPBinding annotation to provide to construct
>  * a {@link org.apache.cxf.service.model.BindingInfo}.
>  */
>-public class JaxWsSoapBindingInfoConfigBean extends SoapBindingInfoConfigBean {
>+public class JaxWsSoapBindingConfiguration extends SoapBindingConfiguration {
>     JaxWsServiceFactoryBean serviceFactory;
>     
>-    public JaxWsSoapBindingInfoConfigBean(JaxWsServiceFactoryBean sifb) {
>+    public JaxWsSoapBindingConfiguration(JaxWsServiceFactoryBean sifb) {
>         serviceFactory = sifb;
>     }
>     
>@@ -79,15 +74,4 @@
>         }
>         return super.getStyle();
>     }
>-
>-    @Override
>-    protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
>-        MethodDispatcher md = (MethodDispatcher)serviceFactory.getService()
>-                .get(MethodDispatcher.class.getName());
>-        Method method = md.getMethod(op);
>-        
>-        return getJaxWsServiceFactory().isHeader(method, part.getIndex());
>-    }
>-    
>-    
> }
>
>Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java (from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java&r1=526469&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java Mon Apr  9 16:05:51 2007
>@@ -31,25 +31,28 @@
> 
> import org.apache.cxf.common.classloader.ClassLoaderUtils;
> import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
>+import org.apache.cxf.jaxws.EndpointImpl;
> import org.springframework.beans.FatalBeanException;
> import org.springframework.beans.factory.support.BeanDefinitionBuilder;
> import org.springframework.beans.factory.xml.ParserContext;
> import org.springframework.util.StringUtils;
> 
>-public class EndpointFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
>+
>+public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
> 
>     private static final String IMPLEMENTOR = "implementor";
> 
>     @Override
>     protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
>+
>         NamedNodeMap atts = element.getAttributes();
>         for (int i = 0; i < atts.getLength(); i++) {
>             Attr node = (Attr) atts.item(i);
>             String val = node.getValue();
>             String pre = node.getPrefix();
>             String name = node.getLocalName();
>-            
>-            if (isAttribute(pre, name)) {
>+
>+            if (isAttribute(pre, name) && !"publish".equals(name)) {
>                 if ("endpointName".equals(name) || "serviceName".equals(name)) {
>                     QName q = parseQName(element, val);
>                     bean.addPropertyValue(name, q);
>@@ -58,6 +61,8 @@
>                 } else {
>                     mapToProperty(bean, name, val);
>                 }
>+            } else if ("abstract".equals(name)) {
>+                bean.setAbstract(true);
>             }
>         }
>         
>@@ -73,29 +78,29 @@
>                     || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)) {
>                     List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());
>                     bean.addPropertyValue(n.getLocalName(), list);
>+                } else if (IMPLEMENTOR.equals(name)) {
>+                    ctx.getDelegate()
>+                        .parseConstructorArgElement(getFirstChild(element), bean.getBeanDefinition());
>                 } else {
>                     setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
>                 }
>             }
>         }
>+
>+        bean.setInitMethodName("publish");
>         
>-        // We don't really want to delay the registration of our Server
>+        // We don't want to delay the registration of our Server
>         bean.setLazyInit(false);
>-        
>-//        PropertyValue idValue = bean.getBeanDefinition().getPropertyValues().getPropertyValue("id");
>-//        if (idValue == null) {
>-//            bean.addPropertyReference("id", arg1);
>-//        }
>     }
> 
>     private void loadImplementor(BeanDefinitionBuilder bean, String val) {
>         if (StringUtils.hasText(val)) {
>             if (val.startsWith("#")) {
>-                bean.addPropertyReference(IMPLEMENTOR, val.substring(1));
>+                bean.addConstructorArgReference(val.substring(1));
>             } else {
>                 try {
>-                    bean.addPropertyValue(IMPLEMENTOR,
>-                                          ClassLoaderUtils.loadClass(val, getClass()).newInstance());
>+                    Object obj = ClassLoaderUtils.loadClass(val, getClass()).newInstance();
>+                    bean.addConstructorArg(obj);
>                 } catch (Exception e) {
>                     throw new FatalBeanException("Could not load class: " + val, e);
>                 }
>@@ -105,7 +110,7 @@
> 
>     @Override
>     protected Class getBeanClass(Element arg0) {
>-        return EndpointFactoryBean.class;
>+        return EndpointImpl.class;
>     }
> 
> }
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java Mon Apr  9 16:05:51 2007
>@@ -23,7 +23,7 @@
> public class NamespaceHandler extends NamespaceHandlerSupport {
>     public void init() {
>         registerBeanDefinitionParser("client", new JaxWsProxyFactoryBeanDefinitionParser());        
>-        registerBeanDefinitionParser("endpoint", new EndpointFactoryBeanDefinitionParser());        
>+        registerBeanDefinitionParser("endpoint", new EndpointDefinitionParser());        
>         registerBeanDefinitionParser("server", new ServerBeanDefinitionParser());        
>     }
> }
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -161,7 +161,7 @@
>             return null;
>         }
>         
>-        return getPartName(op, method, paramNumber, "arg");
>+        return getPartName(op, method, paramNumber, op.getInput().size(), "arg");
>     }
> 
>     @Override
>@@ -170,10 +170,10 @@
>             return null;
>         }
>         
>-        return getParameterName(op, method, paramNumber, "arg");
>+        return getParameterName(op, method, paramNumber, op.getInput().size(), "arg");
>     }
> 
>-    private QName getPartName(OperationInfo op, Method method, int paramNumber, String prefix) {
>+    private QName getPartName(OperationInfo op, Method method, int paramNumber, int curSize, String prefix) {
>         WebParam param = getWebParam(method, paramNumber);
>         String tns = op.getName().getNamespaceURI();
>         if (param != null) {
>@@ -185,34 +185,38 @@
>                 local = param.name();
>             }
>             if (local.length() == 0) {
>-                getDefaultLocalName(op, method, paramNumber, prefix);
>+                getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>             }
>             return new QName(tns, local);
>         } else {
>-            return new QName(tns, getDefaultLocalName(op, method, paramNumber, prefix));
>+            return new QName(tns, getDefaultLocalName(op, method, paramNumber, curSize, prefix));
>         }        
>     }
> 
>-    private QName getParameterName(OperationInfo op, Method method, int paramNumber, String prefix) {
>+    private QName getParameterName(OperationInfo op, Method method, int paramNumber, 
>+                                   int curSize, String prefix) {
>+        method = getDeclaredMethod(method);
>         WebParam param = getWebParam(method, paramNumber);
>+        String tns = null;
>+        String local = null;
>         if (param != null) {
>-            String tns = param.targetNamespace();
>-            String local = param.name();
>-
>-            if (tns.length() == 0) {
>-                tns = op.getName().getNamespaceURI();
>-            }
>-
>-            if (local.length() == 0) {
>-                local = getDefaultLocalName(op, method, paramNumber, prefix);
>-            }
>+            tns = param.targetNamespace();
>+            local = param.name();
>+        }
>+        
>+        if (tns == null || tns.length() == 0) {
>+            tns = op.getName().getNamespaceURI();
>+        }
> 
>-            return new QName(tns, local);
>+        if (local == null || local.length() == 0) {
>+            local = getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>         }
>-        return null;
>+        
>+        return new QName(tns, local);
>     }
> 
>-    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, String prefix) {
>+    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, 
>+                                       int curSize, String prefix) {
>         Class<?> impl = implInfo.getImplementorClass(); 
>         // try to grab the implementation class so we can read the debug symbols from it
>         if (impl == null) {
>@@ -223,7 +227,7 @@
>             }
>         }
>         
>-        return DefaultServiceConfiguration.createName(method, paramNumber, paramNumber, false, prefix);
>+        return DefaultServiceConfiguration.createName(method, paramNumber, curSize, false, prefix);
>     }
> 
>     private WebParam getWebParam(Method method, int parameter) {
>@@ -248,33 +252,38 @@
> 
>     @Override
>     public QName getOutParameterName(OperationInfo op, Method method, int paramNumber) {
>+        method = getDeclaredMethod(method);
>+        
>         if (paramNumber >= 0) {
>-            return getParameterName(op, method, paramNumber, "return");
>+            return getParameterName(op, method, paramNumber, op.getOutput().size(), "return");
>         } else {
>             WebResult webResult = getWebResult(method);
> 
>+            String tns = null;
>+            String local = null;
>             if (webResult != null) {
>-                String tns = webResult.targetNamespace();
>-                String local = webResult.name();
>-
>-                if (tns.length() == 0) {
>-                    tns = op.getName().getNamespaceURI();
>-                }
>+                tns = webResult.targetNamespace();
>+                local = webResult.name();
>+            }
> 
>-                if (local.length() == 0) {
>-                    local = getDefaultLocalName(op, method, paramNumber, "return");
>-                }
>+            if (tns == null || tns.length() == 0) {
>+                tns = op.getName().getNamespaceURI();
>+            }
> 
>-                return new QName(tns, local);
>+            if (local == null || local.length() == 0) {
>+                local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>             }
>+            
>+            return new QName(tns, local);
>         }
>-        return super.getOutParameterName(op, method, paramNumber);
>     }
> 
>     @Override
>     public QName getOutPartName(OperationInfo op, Method method, int paramNumber) {
>+        method = getDeclaredMethod(method);
>+        
>         if (paramNumber >= 0) {
>-            return getPartName(op, method, paramNumber, "return");
>+            return getPartName(op, method, paramNumber, op.getOutput().size(), "return");
>         } else {
>             WebResult webResult = getWebResult(method);
>             String tns = op.getName().getNamespaceURI();
>@@ -287,7 +296,7 @@
>                     local = webResult.name();
>                 }
>                 if (local.length() == 0) {
>-                    local = getDefaultLocalName(op, method, paramNumber, "return");
>+                    local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>                 }
>                 return new QName(tns, local);
>             } else {
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Mon Apr  9 16:05:51 2007
>@@ -51,6 +51,7 @@
> import org.apache.cxf.service.factory.AbstractServiceConfiguration;
> import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
> import org.apache.cxf.service.factory.ServiceConstructionException;
>+import org.apache.cxf.service.invoker.Invoker;
> import org.apache.cxf.service.model.BindingInfo;
> import org.apache.cxf.service.model.EndpointInfo;
> import org.apache.cxf.service.model.FaultInfo;
>@@ -85,6 +86,11 @@
>         this.serviceClass = implInfo.getEndpointClass();
>     }
> 
>+    @Override
>+    protected Invoker createInvoker() {
>+        return null;
>+    }
>+    
>     protected SimpleMethodDispatcher getMethodDispatcher() {
>         return methodDispatcher;
>     }
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd Mon Apr  9 16:05:51 2007
>@@ -15,6 +15,7 @@
>       <xsd:complexContent>
>         <xsd:extension base="beans:identifiedType">
>           <xsd:sequence>
>+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="implementor" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
>@@ -25,7 +26,7 @@
>             <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
>           </xsd:sequence>
>           <xsd:attribute name="address" type="xsd:string" />
>-          <xsd:attribute name="binding" type="xsd:string" />
>+          <xsd:attribute name="bindingUri" type="xsd:string" />
>           <xsd:attribute name="bus" type="xsd:string" />
>           <xsd:attribute name="implementor" type="xsd:string"/>
>           <xsd:attribute name="publish" type="xsd:boolean" default="true"/>
>@@ -71,6 +72,7 @@
>       <xsd:complexContent>
>         <xsd:extension base="beans:identifiedType">
>           <xsd:sequence>
>+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
>@@ -78,7 +80,7 @@
>             <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
>           </xsd:sequence>
>           <xsd:attribute name="address" type="xsd:string" />
>-          <xsd:attribute name="binding" type="xsd:string" />
>+          <xsd:attribute name="bindingUri" type="xsd:string" />
>           <xsd:attribute name="bus" type="xsd:string" />
>           <xsd:attribute name="endpointName" type="xsd:QName" />
>           <xsd:attribute name="password" type="xsd:string" />
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java Mon Apr  9 16:05:51 2007
>@@ -94,8 +94,9 @@
>         JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>         Client client = eih.getClient();
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
>+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+        assertTrue("Unexpected value for property validating", 
>+                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>    
>         // System.out.println("endpoint interceptors");
>         List<Interceptor> interceptors = endpoint.getInInterceptors();
>@@ -160,28 +161,29 @@
>         JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>         Client client = eih.getClient();
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
>-        List<Interceptor> interceptors = endpoint.getInInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-in", 
>-                     findTestInterceptor(interceptors).getId());
>-        interceptors = endpoint.getOutInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-out", 
>-                     findTestInterceptor(interceptors).getId());
>-        interceptors = endpoint.getInFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>-                     findTestInterceptor(interceptors).getId());
>-        interceptors = endpoint.getOutFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>-                     findTestInterceptor(interceptors).getId());
>+//      The service shouldn't pick up the <jaxws:endpoint>...
>+//        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+//        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
>+//        List<Interceptor> interceptors = endpoint.getInInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-in", 
>+//                     findTestInterceptor(interceptors).getId());
>+//        interceptors = endpoint.getOutInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-out", 
>+//                     findTestInterceptor(interceptors).getId());
>+//        interceptors = endpoint.getInFaultInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>+//                     findTestInterceptor(interceptors).getId());
>+//        interceptors = endpoint.getOutFaultInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>+//                     findTestInterceptor(interceptors).getId());
>         
>         org.apache.cxf.service.ServiceImpl svc = (org.apache.cxf.service.ServiceImpl)endpoint.getService();
>         assertEquals("Unexpected bean name.", SERVICE_NAME.toString(), svc.getBeanName());
>-        interceptors = svc.getInInterceptors();
>+        List<Interceptor> interceptors = svc.getInInterceptors();
>         assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "service-in", 
>                      findTestInterceptor(interceptors).getId());
>@@ -226,8 +228,9 @@
>         ei.publish("http://localhost/greeter");
>         
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
>+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+        assertTrue("Unexpected value for property validating", 
>+                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>    
>         List<Interceptor> interceptors = endpoint.getInInterceptors();
>         assertNull("Unexpected test interceptor", findTestInterceptor(interceptors));
>@@ -283,22 +286,23 @@
>         ei.publish("http://localhost/greeter");
>         
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        assertTrue("Unexpected value for property validating", endpoint.getEnableSchemaValidation());
>+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+        assertTrue("Unexpected value for property validating", 
>+                   Boolean.valueOf((String) ei.getProperties().get(Message.SCHEMA_VALIDATION_ENABLED)));
>         List<Interceptor> interceptors = endpoint.getInInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 5, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-in", 
>                      findTestInterceptor(interceptors).getId());
>         interceptors = endpoint.getOutInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 6, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-out", 
>                      findTestInterceptor(interceptors).getId());
>         interceptors = endpoint.getInFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 2, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>                      findTestInterceptor(interceptors).getId());
>         interceptors = endpoint.getOutFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>                      findTestInterceptor(interceptors).getId());
>         
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -127,7 +127,7 @@
>             assertEquals(expeced, e.getMessage());
>         }
>     }
>-
>+    
>     @Test
>     public void testPublishEndpointPermission() throws Exception {
>         Hello service = new Hello();
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java Mon Apr  9 16:05:51 2007
>@@ -26,7 +26,7 @@
> 
> import org.apache.cxf.Bus;
> import org.apache.cxf.frontend.ServerFactoryBean;
>-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
>+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> import org.apache.cxf.service.Service;
> import org.apache.cxf.service.model.MessagePartInfo;
>@@ -76,8 +76,10 @@
>         ServerFactoryBean svr = new ServerFactoryBean();
>         svr.setBus(bus);
>         svr.setServiceFactory(bean);
>+        svr.setServiceBean(new TestHeaderImpl());
>         svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPort");
>-        svr.setBindingConfig(new JaxWsSoapBindingInfoConfigBean(bean));
>+        svr.setBindingConfig(new JaxWsSoapBindingConfiguration(bean));
>+
>         
>         svr.create();
>         
>
>
>  
>


Re: svn commit: r526945 [1/2] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/service/ common/common/src/main/java/org/apache/cxf/configuration/spring/ parent/...

Posted by Andrea Smyth <an...@iona.com>.
dandiep@apache.org wrote:

>Author: dandiep
>Date: Mon Apr  9 16:05:51 2007
>New Revision: 526945
>
>URL: http://svn.apache.org/viewvc?view=rev&rev=526945
>Log:
>o Enabled usage of <jaxws:endpoint> when using Endpoint.publish():
>  - Removed EndpointFactoryBean and just use EndpointImpl
>  - Added many getters/setters to configure the Endpointimpl
>  - Added constructor to pass in ServerFactoryBean instead of 
>    ServiceFactoryBean. Deprecated old constructors because this
>    is more correct and 99% of the people can probably just use
>    the getters/setters on EndpointImpl now.
>  
>
Hi Dan,

What do you mean with 'people can use the getters/setters on EndpointImpl'?
They suggest that if you cast the object returned from 
javax.xml.ws.Endpoint.publish(...) to org.apache.cxf.jaxws.EndpointImpl, 
you can use get/set[In|InFault|Out|OutFault]Interceptors to access the 
real endpoint's (i.e. org.apache.cxf.endpoint.Endpoint)  interceptors 
whereas in fact you are only accessing the interceptors of the wrapping 
implementation for javax.xml.ws.Endpoint - which has no effect.
The call to configure(this) in EndpointImpl seems to be necessary only 
in order to subsequently transfer properties to the 
JaxWsServerFactoryBean. Injection into a temporary object,  of type 
EndpointCfgHelper or similar (the class does not really matter as only 
the bean definition is needed), and subsequent transfer of required 
properties from there to the server factory, would have the same effect, 
and is IMO preferrable as it avoids the need for additional (public!) 
getters/setters on EndpointImpl.

Cheers,
Andrea.

>o Renamed BindingInfoConfigBean objects to *BindingConfiguration.
>  These all inherit from BindingConfiguration which has an abstract
>  method getBindingId().
>o Removed Endpoint/Service.enableSchemaValidation and made it a 
>  service property instead. I also changed the constant 
>  Message.ENABLE_SCHEMA_VALIDATION to be more amenable to config files.
>o Upgrade to Spring 2.0.3 and fix issues with SpringBeanMap in this
>  latest version.
>o Add a property editor for SoapVersions so we can specify "1.2" in 
>  the xml configuration for a <jaxws:endpoint>
>o Fix several bugs with the JaxWsServiceConfiguration
>o Don't create an Invoker inside JaxWsServiceFactoryBean, do it in the
>  JaxWsSERVERFactoryBean instead
>
>
>Added:
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java
>      - copied, changed from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java
>      - copied, changed from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java   (with props)
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java   (with props)
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java
>      - copied, changed from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
>      - copied, changed from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
>Removed:
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
>Modified:
>    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
>    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
>    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
>    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
>    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
>    incubator/cxf/trunk/parent/pom.xml
>    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/wrapped/WrappedServiceTest.java
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
>    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.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/SoapBindingInfoConfigBeanDefinitionParser.java
>    incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
>    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
>    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/NamespaceHandler.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.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/HeaderTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/configured-endpoints.xml
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderService.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderServiceImpl.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/provider/ProviderServiceFactoryTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/servers.xml
>    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceConfigurationTest.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/service/factory/ReflectionServiceFactoryBean.java
>    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java
>    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedService.java
>    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/schema_validation/cxf-config.xml
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/SpringServletTest.java
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/spring.xml
>    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/databinding-schema-validation.xml
>
>Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java (original)
>+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java Mon Apr  9 16:05:51 2007
>@@ -51,9 +51,5 @@
>     void setInFaultObserver(MessageObserver observer);
>     
>     void setOutFaultObserver(MessageObserver observer);
>-    
>-    boolean getEnableSchemaValidation();
>-    
>-    void setEnableSchemaValidation(boolean value);
> 
> }
>
>Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java (original)
>+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java Mon Apr  9 16:05:51 2007
>@@ -49,7 +49,7 @@
>     String PATH_INFO = Message.class.getName() + ".PATH_INFO";
>     String QUERY_STRING = Message.class.getName() + ".QUERY_STRING";
>     String MTOM_ENABLED = "mtom-enabled";
>-    String SCHEMA_VALIDATION_ENABLED = Message.class.getCanonicalName() + ".schemaValidationEnabled";
>+    String SCHEMA_VALIDATION_ENABLED = "schema-validation-enabled";
>     String FAULT_STACKTRACE_ENABLED = "faultStackTraceEnabled";
>     String CONTENT_TYPE = "Content-Type";
>     String BASE_PATH = Message.class.getName() + ".BASE_PATH";
>
>Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java (original)
>+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java Mon Apr  9 16:05:51 2007
>@@ -49,8 +49,4 @@
>     void setInvoker(Invoker invoker);
>     
>     Map<QName, Endpoint> getEndpoints();
>-    
>-    void setEnableSchemaValidationForAllPort(boolean value);
>-    
>-    boolean getEnableSchemaValidationForAllPort();
> }
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -40,11 +40,18 @@
> public abstract class AbstractBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
> 
>     protected void setFirstChildAsProperty(Element element, ParserContext ctx, 
>-                                         BeanDefinitionBuilder bean, String string) {
>+                                         BeanDefinitionBuilder bean, String propertyName) {
>+        String id = getAndRegisterFirstChild(element, ctx, bean, propertyName);
>+        bean.addPropertyReference(propertyName, id);
>+        
>+    }
>+
>+    protected String getAndRegisterFirstChild(Element element, ParserContext ctx, 
>+                                              BeanDefinitionBuilder bean, String propertyName) {
>         Element first = getFirstChild(element);
>         
>         if (first == null) {
>-            throw new IllegalStateException(string + " property must have child elements!");
>+            throw new IllegalStateException(propertyName + " property must have child elements!");
>         }
>         
>         // Seems odd that we have to do the registration, I wonder if there is a better way
>@@ -61,8 +68,7 @@
>         }
>        
>         ctx.getRegistry().registerBeanDefinition(id, child);
>-        bean.addPropertyReference(string, id);
>-        
>+        return id;
>     }
> 
>     protected Element getFirstChild(Element element) {
>
>Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java (original)
>+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java Mon Apr  9 16:05:51 2007
>@@ -24,6 +24,7 @@
> import java.util.ArrayList;
> import java.util.Collection;
> import java.util.HashSet;
>+import java.util.Iterator;
> import java.util.List;
> import java.util.Map;
> import java.util.Set;
>@@ -38,6 +39,9 @@
> import org.springframework.beans.factory.BeanIsAbstractException;
> import org.springframework.beans.factory.InitializingBean;
> import org.springframework.beans.factory.config.BeanDefinition;
>+import org.springframework.beans.factory.config.TypedStringValue;
>+import org.springframework.beans.factory.support.ManagedList;
>+import org.springframework.beans.factory.support.ManagedSet;
> import org.springframework.context.ApplicationContext;
> import org.springframework.context.ApplicationContextAware;
> import org.springframework.context.ConfigurableApplicationContext;
>@@ -100,6 +104,18 @@
>                     }
>                 }
>                 
>+                if (ids instanceof ManagedSet || ids instanceof ManagedList) {
>+                    List<String> newIds = new ArrayList<String>();
>+                    for (Iterator itr = ids.iterator(); itr.hasNext();) {
>+                        Object o = itr.next();
>+                        if (o instanceof TypedStringValue) {
>+                            newIds.add(((TypedStringValue) o).getValue());
>+                        } else {
>+                            newIds.add((String) o);
>+                        }
>+                    }
>+                    ids = newIds;
>+                }
>                 for (Object id : ids) {
>                     idToBeanName.put(id.toString(), beanNames[i]);
>                 }
>
>Modified: incubator/cxf/trunk/parent/pom.xml
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/parent/pom.xml?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/parent/pom.xml (original)
>+++ incubator/cxf/trunk/parent/pom.xml Mon Apr  9 16:05:51 2007
>@@ -46,7 +46,7 @@
>         <jaxws.version>2.0</jaxws.version>
>         <jetty.version>5.1.11</jetty.version>
>         <saaj.version>1.3</saaj.version>
>-        <spring.version>2.0</spring.version>
>+        <spring.version>2.0.3</spring.version>
>         <wsdl4j.version>1.6.1</wsdl4j.version>
>         <derby.version>10.1.1.0</derby.version>
>         <activemq.version>4.1.0-incubator</activemq.version>
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -48,7 +48,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(false);
>         sf.setAddress("http://localhost:9001/foo/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("contextMatchStrategy", "stem");
>         sf.setProperties(props);
>@@ -130,7 +131,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(false);
>         sf.setAddress("http://localhost:9001/foo/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("Content-Type", "text/plain");
>         sf.setProperties(props);
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -45,7 +45,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(false);
>         sf.setAddress("http://localhost:9001/foo/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("contextMatchStrategy", "stem");
>         sf.setProperties(props);
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -59,7 +59,8 @@
>         sf.setServiceClass(CustomerService.class);
>         sf.getServiceFactory().setWrapped(true);
>         sf.setAddress("http://localhost:9001/");
>-
>+        sf.setServiceBean(new CustomerService());
>+        
>         Map<String, Object> props = new HashMap<String, Object>();
>         props.put("contextMatchStrategy", "stem");
>         sf.setProperties(props);
>
>Copied: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java (from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java&r1=525926&p2=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java (original)
>+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -20,9 +20,16 @@
> 
> import java.util.Set;
> 
>-public class ObjectBindingConfigBean {
>+import org.apache.cxf.binding.BindingConfiguration;
>+
>+public class ObjectBindingConfiguration extends BindingConfiguration {
>     private boolean stopAfterLogicalPhases = true;
>     private Set<String> skipPhases;
>+    
>+    @Override
>+    public String getBindingId() {
>+        return ObjectBindingFactory.BINDING_ID;
>+    }
> 
>     public Set<String> getSkipPhases() {
>         return skipPhases;
>
>Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java (original)
>+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java Mon Apr  9 16:05:51 2007
>@@ -56,8 +56,8 @@
>     public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object config) {
>         BindingInfo info = super.createBindingInfo(si, bindingid, config);
>         
>-        if (config instanceof ObjectBindingConfigBean) {
>-            ObjectBindingConfigBean c = (ObjectBindingConfigBean) config;
>+        if (config instanceof ObjectBindingConfiguration) {
>+            ObjectBindingConfiguration c = (ObjectBindingConfiguration) config;
>             
>             info.setProperty(STOP_AFTER_LOGICAL, c.isStopAfterLogicalPhases());
>         }
>
>Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java (original)
>+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java Mon Apr  9 16:05:51 2007
>@@ -22,7 +22,7 @@
> import org.w3c.dom.Element;
> import org.w3c.dom.NamedNodeMap;
> 
>-import org.apache.cxf.binding.object.ObjectBindingConfigBean;
>+import org.apache.cxf.binding.object.ObjectBindingConfiguration;
> import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> import org.springframework.beans.factory.support.BeanDefinitionBuilder;
> import org.springframework.beans.factory.xml.ParserContext;
>@@ -41,7 +41,7 @@
> 
>     @Override
>     protected Class getBeanClass(Element arg0) {
>-        return ObjectBindingConfigBean.class;
>+        return ObjectBindingConfiguration.class;
>     }
> 
> }
>
>Copied: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java (from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java&r1=525649&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java (original)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -18,23 +18,27 @@
>  */
> package org.apache.cxf.binding.soap;
> 
>+import org.apache.cxf.binding.BindingConfiguration;
> import org.apache.cxf.service.model.BindingOperationInfo;
> import org.apache.cxf.service.model.MessagePartInfo;
> import org.apache.cxf.service.model.OperationInfo;
> 
>-public class SoapBindingInfoConfigBean {
>+public class SoapBindingConfiguration extends BindingConfiguration {
>     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 String getBindingId() {
>+        return "http://schemas.xmlsoap.org/soap/";
>+    }
> 
>     protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
>-        return false;
>+        Object isHeader = part.getProperty("messagepart.isheader");
>+        return Boolean.TRUE.equals(isHeader);
>     }
> 
>     public String getSoapAction(OperationInfo op) {
>@@ -57,12 +61,12 @@
>         return getStyle();
>     }
> 
>-    public SoapVersion getSoapVersion() {
>+    public SoapVersion getVersion() {
>         return soapVersion;
>     }
> 
>-    public void setSoapVersion(SoapVersion soapVersion) {
>-        this.soapVersion = soapVersion;
>+    public void setVersion(SoapVersion sv) {
>+        this.soapVersion = sv;
>     }
> 
>     public String getUse() {
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -90,16 +90,16 @@
>     }
> 
>     public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object conf) {
>-        SoapBindingInfoConfigBean config;
>-        if (conf instanceof SoapBindingInfoConfigBean) {
>-            config = (SoapBindingInfoConfigBean)conf;
>+        SoapBindingConfiguration config;
>+        if (conf instanceof SoapBindingConfiguration) {
>+            config = (SoapBindingConfiguration)conf;
>         } else {
>-            config = new SoapBindingInfoConfigBean();
>+            config = new SoapBindingConfiguration();
>         }
>         
>         SoapBindingInfo info = new SoapBindingInfo(si,
>                                                    "http://schemas.xmlsoap.org/wsdl/soap/",
>-                                                   config.getSoapVersion());
>+                                                   config.getVersion());
>         
>         info.setName(new QName(si.getName().getNamespaceURI(), 
>                                si.getName().getLocalPart() + "SoapBinding"));
>@@ -156,7 +156,7 @@
>                               BindingMessageInfo bMsg, 
>                               BindingMessageInfo unwrappedBMsg, 
>                               MessageInfo msg,
>-                              SoapBindingInfoConfigBean config) {
>+                              SoapBindingConfiguration config) {
>         List<MessagePartInfo> parts = new ArrayList<MessagePartInfo>();
>         for (MessagePartInfo part : msg.getMessageParts()) {
>             if (config.isHeader(op, part)) {
>
>Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java?view=auto&rev=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java (added)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java Mon Apr  9 16:05:51 2007
>@@ -0,0 +1,43 @@
>+/**
>+ * 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.
>+ */
>+package org.apache.cxf.binding.soap;
>+
>+import java.beans.PropertyEditorSupport;
>+
>+public class SoapVersionPropertyEditor extends PropertyEditorSupport {
>+
>+    private SoapVersion version;
>+
>+    @Override
>+    public Object getValue() {
>+        return version;
>+    }
>+
>+    @Override
>+    public void setAsText(String text) throws IllegalArgumentException {
>+        if ("1.2".equals(text)) {
>+            this.version = Soap12.getInstance();
>+        } else if ("1.1".equals(text)) {
>+            this.version = Soap11.getInstance();
>+        } else {
>+            super.setAsText(text);
>+        }
>+    }
>+
>+}
>
>Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>------------------------------------------------------------------------------
>    svn:eol-style = native
>
>Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>------------------------------------------------------------------------------
>    svn:executable = *
>
>Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
>------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
>Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.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=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java (original)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Mon Apr  9 16:05:51 2007
>@@ -22,7 +22,7 @@
> import org.w3c.dom.Element;
> import org.w3c.dom.NamedNodeMap;
> 
>-import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
>+import org.apache.cxf.binding.soap.SoapBindingConfiguration;
> import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> import org.springframework.beans.factory.support.BeanDefinitionBuilder;
> import org.springframework.beans.factory.xml.ParserContext;
>@@ -41,7 +41,7 @@
> 
>     @Override
>     protected Class getBeanClass(Element arg0) {
>-        return SoapBindingInfoConfigBean.class;
>+        return SoapBindingConfiguration.class;
>     }
> 
> }
>
>Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml (original)
>+++ incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml Mon Apr  9 16:05:51 2007
>@@ -44,4 +44,15 @@
>         </property>
>         <property name="bus" ref="cxf"/>
>     </bean>
>+        
>+	<bean id="org.apache.cxf.binding.soap.customEditorConfigurer"
>+		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
>+		<property name="customEditors">
>+			<map>
>+				<entry key="org.apache.cxf.binding.soap.SoapVersion">
>+					<bean class="org.apache.cxf.binding.soap.SoapVersionPropertyEditor"/>
>+				</entry>
>+			</map>
>+		</property>
>+	</bean>
> </beans>
>
>Added: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java?view=auto&rev=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java (added)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -0,0 +1,26 @@
>+/**
>+ * 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.
>+ */
>+package org.apache.cxf.binding;
>+
>+/**
>+ * A configuration for a binding.
>+ */
>+public abstract class BindingConfiguration {
>+    public abstract String getBindingId();
>+}
>
>Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>------------------------------------------------------------------------------
>    svn:eol-style = native
>
>Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>------------------------------------------------------------------------------
>    svn:executable = *
>
>Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
>------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java Mon Apr  9 16:05:51 2007
>@@ -19,6 +19,7 @@
> 
> package org.apache.cxf.endpoint;
> 
>+import java.util.Map;
> import java.util.ResourceBundle;
> import java.util.concurrent.Executor;
> import java.util.logging.Logger;
>@@ -55,7 +56,6 @@
>     private Bus bus;
>     private MessageObserver inFaultObserver;
>     private MessageObserver outFaultObserver;
>-    private boolean schemaValidation;
> 
>     public EndpointImpl(Bus bus, Service s, QName endpointName) throws EndpointException {
>         this(bus, s, s.getServiceInfo().getEndpoint(endpointName));
>@@ -84,7 +84,7 @@
>     }
>     
>     public String getBeanName() {
>-        return endpointInfo.getName().toString();
>+        return endpointInfo.getName().toString() + ".endpoint";
>     }
>     
>    
>@@ -141,13 +141,6 @@
>     public MessageObserver getOutFaultObserver() {
>         return outFaultObserver;
>     }
>-    
>-    public void setEnableSchemaValidation(boolean value) {
>-        schemaValidation = value;
>-    }
>-    public boolean getEnableSchemaValidation() {
>-        return schemaValidation;
>-    }
> 
>     public void setInFaultObserver(MessageObserver observer) {
>         inFaultObserver = observer;        
>@@ -157,7 +150,14 @@
>         outFaultObserver = observer;
>         
>     }
>-
>-   
>+    
>+    /**
>+     * Utility method to make it easy to set properties from Spring.
>+     * 
>+     * @param properties
>+     */
>+    public void setProperties(Map<String, Object> properties) {
>+        this.putAll(properties);
>+    }
>     
> }
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
>@@ -78,7 +78,8 @@
>     }
> 
>     private void setSchemaInMessage(Service service, Message message, DataReader<?> reader) {
>-        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
>+        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
>+        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>             Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>             reader.setSchema(schema);
>         }
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
>@@ -57,7 +57,8 @@
>     }
> 
>     private void setSchemaOutMessage(Service service, Message message, DataWriter<?> writer) {
>-        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
>+        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
>+        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>             Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>             writer.setSchema(schema);
>         }
>
>Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java (original)
>+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java Mon Apr  9 16:05:51 2007
>@@ -39,7 +39,6 @@
>     private Executor executor;
>     private Invoker invoker;
>     private Map<QName, Endpoint> endpoints = new HashMap<QName, Endpoint>();
>-    private boolean enableSchemaValidationForAllPort;
>     
>     public ServiceImpl() {
>         this(null);
>@@ -93,11 +92,8 @@
>     public void setEndpoints(Map<QName, Endpoint> endpoints) {
>         this.endpoints = endpoints;
>     }
>-    public void setEnableSchemaValidationForAllPort(boolean value) {
>-        enableSchemaValidationForAllPort = value;
>-    }
>-    
>-    public boolean getEnableSchemaValidationForAllPort() {
>-        return enableSchemaValidationForAllPort;
>+
>+    public void setProperties(Map<String, Object> properties) {
>+        this.putAll(properties);
>     }
> }
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -22,37 +22,40 @@
> import java.security.AccessController;
> import java.util.List;
> import java.util.Map;
>+import java.util.concurrent.CopyOnWriteArrayList;
> import java.util.concurrent.Executor;
> import java.util.logging.Logger;
> 
>+import javax.xml.namespace.QName;
> import javax.xml.transform.Source;
> import javax.xml.ws.Binding;
>-
>-//TODO JAX-WS 2.1
>-//import javax.xml.ws.EndpointReference;
> import javax.xml.ws.WebServiceException;
> import javax.xml.ws.WebServicePermission;
> import javax.xml.ws.handler.Handler;
> 
> import org.apache.cxf.Bus;
>+import org.apache.cxf.BusFactory;
> import org.apache.cxf.common.injection.ResourceInjector;
> import org.apache.cxf.common.logging.LogUtils;
>+import org.apache.cxf.configuration.Configurable;
> import org.apache.cxf.configuration.Configurer;
> import org.apache.cxf.endpoint.Server;
> import org.apache.cxf.endpoint.ServerImpl;
>+import org.apache.cxf.interceptor.Interceptor;
>+import org.apache.cxf.interceptor.InterceptorProvider;
> import org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
> import org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilder;
> import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
> import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>-import org.apache.cxf.message.Message;
> import org.apache.cxf.resource.DefaultResourceManager;
> import org.apache.cxf.resource.ResourceManager;
> import org.apache.cxf.resource.ResourceResolver;
> import org.apache.cxf.service.Service;
> 
>-public class EndpointImpl extends javax.xml.ws.Endpoint {
>-    /*
>+public class EndpointImpl extends javax.xml.ws.Endpoint 
>+    implements InterceptorProvider, Configurable {
>+    /**
>      * This property controls whether the 'publishEndpoint' permission is checked 
>      * using only the AccessController (i.e. when SecurityManager is not installed).
>      * By default this check is not done as the system property is not set.
>@@ -66,37 +69,63 @@
>         new WebServicePermission("publishEndpoint");
>     
>     protected boolean doInit;
>-
>     private Bus bus;
>     private Object implementor;
>     private Server server;
>+    private JaxWsServerFactoryBean serverFactory;
>     private Service service;
>-    private String bindingId;
>-    private JaxWsImplementorInfo implInfo;
>-    private JaxWsServiceFactoryBean serviceFactory;
>     private Map<String, Object> properties;
>     private List<Source> metadata;
>     
>+    private Executor executor;
>+    private String binding;
>+    private String wsdlLocation;
>+    private String address;
>+    private QName endpointName;
>+    private QName serviceName;
>+    
>+    private List<Interceptor> in = new CopyOnWriteArrayList<Interceptor>();
>+    private List<Interceptor> out = new CopyOnWriteArrayList<Interceptor>();
>+    private List<Interceptor> outFault  = new CopyOnWriteArrayList<Interceptor>();
>+    private List<Interceptor> inFault  = new CopyOnWriteArrayList<Interceptor>();
>+
>+    public EndpointImpl(Object implementor) {
>+        this(BusFactory.getDefaultBus(), implementor);
>+    }
>+    
>+    @Deprecated
>     public EndpointImpl(Bus b, Object implementor, JaxWsServiceFactoryBean serviceFactory) {
>         this(b, implementor, serviceFactory, null);
>     }
>     
>+    /**
>+     * If you're using this method you should switch to passing in a JaxWsServerFactoryBean
>+     * or using the new getters/setters on EndpointImpl before our next release.
>+     * @param b
>+     * @param implementor
>+     * @param serviceFactory
>+     * @param bindingUri
>+     */
>+    @Deprecated
>     public EndpointImpl(Bus b, Object implementor, 
>                         JaxWsServiceFactoryBean serviceFactory, String bindingUri) {
>         this.bus = b;
>-        this.serviceFactory = serviceFactory;
>-        this.implInfo = serviceFactory.getJaxWsImplementorInfo();
>-        this.service = serviceFactory.getService();
>+        this.binding = bindingUri;
>+        this.serverFactory = new JaxWsServerFactoryBean(serviceFactory);
>         this.implementor = implementor;
>-        this.bindingId = bindingUri;
>-        
>-        if (this.service == null) {
>-            service = serviceFactory.create();
>-        }
>         
>         doInit = true;
>     }
>    
>+    public EndpointImpl(Bus b, Object implementor, 
>+                        JaxWsServerFactoryBean sf) {
>+        this.bus = b;
>+        this.serverFactory = sf;
>+        this.implementor = implementor;
>+        
>+        doInit = true;
>+    }
>+    
>     /**
>      * 
>      * @param b
>@@ -108,28 +137,16 @@
>     public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl) {
>         bus = b;
>         implementor = i;
>-        bindingId = bindingUri;
>-        // build up the Service model
>-        implInfo = new JaxWsImplementorInfo(implementor.getClass());
>-        serviceFactory = new JaxWsServiceFactoryBean(implInfo);
>-        serviceFactory.setBus(bus);
>-        if (null != wsdl) {
>-            serviceFactory.setWsdlURL(wsdl);
>-        }
>-        service = serviceFactory.create();
>-        
>-        configureObject(service);
>-        
>-        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
>-        
>-        service.setInvoker(new JAXWSMethodInvoker(i));
>+        binding = bindingUri;
>+        wsdlLocation = wsdl;
>+        serverFactory = new JaxWsServerFactoryBean();
>         
>         doInit = true; 
>     }
>     
>     
>-    public EndpointImpl(Bus b, Object i, String uri) {
>-        this(b, i, uri, (String)null);
>+    public EndpointImpl(Bus b, Object i, String bindingUri) {
>+        this(b, i, bindingUri, (String)null);
>     }
>    
>     public EndpointImpl(Bus bus, Object implementor) {
>@@ -141,13 +158,18 @@
>     }
> 
>     public void setExecutor(Executor executor) {
>-        service.setExecutor(executor);
>+        this.executor = executor;
>     }
> 
>     public Executor getExecutor() {
>-        return service.getExecutor();
>+        return executor;
>     }
> 
>+    public Service getService() {
>+        return service;
>+    }
>+
>+    
>     @Override
>     public Object getImplementor() {
>         return implementor;
>@@ -174,8 +196,8 @@
>     }
> 
>     @Override
>-    public void publish(String address) {
>-        doPublish(address);
>+    public void publish(String addr) {
>+        doPublish(addr);
>     }
> 
>     public void setMetadata(List<Source> metadata) {
>@@ -222,33 +244,70 @@
>         }
>     }
> 
>-    protected void doPublish(String address) {
>+    
>+    public String getBeanName() {
>+        return endpointName.toString();
>+    }
>+
>+    protected void doPublish(String addr) {
>         checkPublishPermission();
> 
>-        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(serviceFactory);
>+        // Initialize the endpointName so we can do configureObject
>+        if (endpointName == null) {
>+            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
>+            endpointName = implInfo.getEndpointName();
>+        }
>         
>-        svrFactory.setBus(bus);
>-        svrFactory.setBindingId(bindingId);
>-        svrFactory.setAddress(address);
>-        svrFactory.setStart(false);
>-        svrFactory.setServiceBean(implementor);
>-        configureObject(svrFactory);
>+        configureObject(this);
>+        
>+        // Set up the server factory
>+        serverFactory.setAddress(addr);
>+        serverFactory.setStart(false);
>+        serverFactory.setEndpointName(endpointName);
>+        serverFactory.setServiceBean(implementor);
>+        serverFactory.setBus(bus);
>+        
>+        // Be careful not to override any serverfactory settings as a user might
>+        // have supplied their own.
>+        if (getWsdlLocation() != null) {
>+            serverFactory.setWsdlURL(getWsdlLocation());
>+        }
>+        
>+        if (binding != null) {
>+            serverFactory.setBindingId(binding);
>+        }
>+        
>+        if (serviceName != null) {
>+            serverFactory.getServiceFactory().setServiceName(serviceName);
>+        }
>+        
>+        configureObject(serverFactory);
>+        
>+        server = serverFactory.create();
>         
>-        server = svrFactory.create();
>-
>         init();
>         
>         org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
>+        if (getInInterceptors() != null) {
>+            endpoint.getInInterceptors().addAll(getInInterceptors());
>+        }
>+        if (getOutInterceptors() != null) {
>+            endpoint.getOutInterceptors().addAll(getOutInterceptors());
>+        }
>+        if (getInFaultInterceptors() != null) {
>+            endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
>+        }
>+        if (getOutFaultInterceptors() != null) {
>+            endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors());
>+        }
>         
>         if (properties != null) {
>             endpoint.putAll(properties);
>         }
>         
>+        configureObject(endpoint.getService());
>         configureObject(endpoint);
>         
>-        if (endpoint.getEnableSchemaValidation()) {
>-            endpoint.put(Message.SCHEMA_VALIDATION_ENABLED, endpoint.getEnableSchemaValidation());
>-        }
>         server.start();
>     }
>     
>@@ -304,6 +363,78 @@
>         }
>     }
> 
>+    public void publish() {
>+        publish(getAddress());
>+    }
>+    
>+    public String getAddress() {
>+        return address;
>+    }
>+
>+    public void setAddress(String address) {
>+        this.address = address;
>+    }
>+
>+    public QName getEndpointName() {
>+        return endpointName;
>+    }
>+
>+    public void setEndpointName(QName endpointName) {
>+        this.endpointName = endpointName;
>+    }
>+
>+    public QName getServiceName() {
>+        return serviceName;
>+    }
>+
>+    public void setServiceName(QName serviceName) {
>+        this.serviceName = serviceName;
>+    }
>+
>+    public String getWsdlLocation() {
>+        return wsdlLocation;
>+    }
>+
>+    public void setWsdlLocation(String wsdlLocation) {
>+        this.wsdlLocation = wsdlLocation;
>+    }
>+
>+    public void setBinding(String binding) {
>+        this.binding = binding;
>+    }
>+
>+    public List<Interceptor> getOutFaultInterceptors() {
>+        return outFault;
>+    }
>+
>+    public List<Interceptor> getInFaultInterceptors() {
>+        return inFault;
>+    }
>+
>+    public List<Interceptor> getInInterceptors() {
>+        return in;
>+    }
>+
>+    public List<Interceptor> getOutInterceptors() {
>+        return out;
>+    }
>+
>+    public void setInInterceptors(List<Interceptor> interceptors) {
>+        in = interceptors;
>+    }
>+
>+    public void setInFaultInterceptors(List<Interceptor> interceptors) {
>+        inFault = interceptors;
>+    }
>+
>+    public void setOutInterceptors(List<Interceptor> interceptors) {
>+        out = interceptors;
>+    }
>+
>+    public void setOutFaultInterceptors(List<Interceptor> interceptors) {
>+        outFault = interceptors;
>+    }
>+    
>     /*
>     //TODO JAX-WS 2.1
>     public EndpointReference getEndpointReference(Element... referenceParameters) {
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -26,7 +26,7 @@
> import org.apache.cxf.binding.soap.SoapBindingFactory;
> import org.apache.cxf.binding.soap.model.SoapBindingInfo;
> import org.apache.cxf.frontend.ServerFactoryBean;
>-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
>+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> import org.apache.cxf.service.invoker.Invoker;
>@@ -48,8 +48,8 @@
>     }
>     public JaxWsServerFactoryBean(JaxWsServiceFactoryBean serviceFactory) {
>         setServiceFactory(serviceFactory);
>-        JaxWsSoapBindingInfoConfigBean defConfig 
>-            = new JaxWsSoapBindingInfoConfigBean(serviceFactory);
>+        JaxWsSoapBindingConfiguration defConfig 
>+            = new JaxWsSoapBindingConfiguration(serviceFactory);
>         setBindingConfig(defConfig);
>     }
> 
>@@ -75,7 +75,7 @@
>                 binding = "http://schemas.xmlsoap.org/soap/";
>                 
>                 if (getBindingConfig() == null) {
>-                    setBindingConfig(new JaxWsSoapBindingInfoConfigBean(sf));
>+                    setBindingConfig(new JaxWsSoapBindingConfiguration(sf));
>                 }
>             }
>             
>@@ -83,15 +83,15 @@
>         }
>         boolean messageMode = implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
>         
>-        if (getBindingConfig() instanceof JaxWsSoapBindingInfoConfigBean) {
>-            JaxWsSoapBindingInfoConfigBean conf = (JaxWsSoapBindingInfoConfigBean)getBindingConfig();
>+        if (getBindingConfig() instanceof JaxWsSoapBindingConfiguration) {
>+            JaxWsSoapBindingConfiguration conf = (JaxWsSoapBindingConfiguration)getBindingConfig();
>             
>             if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_BINDING))) {
>-                conf.setSoapVersion(Soap12.getInstance());
>+                conf.setVersion(Soap12.getInstance());
>             }
>             
>             if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING))) {
>-                conf.setSoapVersion(Soap12.getInstance());
>+                conf.setVersion(Soap12.getInstance());
>                 conf.setMtomEnabled(true);
>             }
>             
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -50,14 +50,13 @@
> 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.JaxWsSoapBindingInfoConfigBean;
>+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> import org.apache.cxf.jaxws.handler.HandlerResolverImpl;
> import org.apache.cxf.jaxws.handler.PortInfoImpl;
> import org.apache.cxf.jaxws.support.DummyImpl;
> import org.apache.cxf.jaxws.support.JaxWsClientEndpointImpl;
> import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
> 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.AbstractServiceFactoryBean;
> import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
>@@ -249,7 +248,6 @@
>         
>         // Configure the Service
>         Service service = serviceFactory.getService();
>-        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
>         service.setExecutor(new Executor() {
>             public void execute(Runnable command) {
>                 Executor ex = getExecutor();
>@@ -267,10 +265,7 @@
>         configureObject(jaxwsEndpoint);  
>         
>         QName pn = portName;
>-        if (jaxwsEndpoint.getEnableSchemaValidation()) {
>-            jaxwsEndpoint.put(Message.SCHEMA_VALIDATION_ENABLED, jaxwsEndpoint.getEnableSchemaValidation());
>-        }
>-
>+        
>         List<Handler> hc = jaxwsEndpoint.getJaxwsBinding().getHandlerChain();
>         hc.addAll(handlerResolver.getHandlerChain(portInfos.get(pn)));
> 
>@@ -295,7 +290,7 @@
>         
>         Object config = null;
>         if (serviceFactory instanceof JaxWsServiceFactoryBean) {
>-            config = new JaxWsSoapBindingInfoConfigBean((JaxWsServiceFactoryBean)serviceFactory);
>+            config = new JaxWsSoapBindingConfiguration((JaxWsServiceFactoryBean)serviceFactory);
>         }
>         BindingInfo bindingInfo = bus.getExtension(BindingFactoryManager.class).getBindingFactory(bindingID)
>                 .createBindingInfo(serviceFactory.getService(), bindingID, config);
>
>Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java (from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java&r1=526927&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -18,26 +18,21 @@
>  */
> package org.apache.cxf.jaxws.binding.soap;
> 
>-import java.lang.reflect.Method;
>-
> import javax.jws.soap.SOAPBinding;
> import javax.jws.soap.SOAPBinding.Style;
> import javax.jws.soap.SOAPBinding.Use;
> 
>-import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
>-import org.apache.cxf.frontend.MethodDispatcher;
>+import org.apache.cxf.binding.soap.SoapBindingConfiguration;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>-import org.apache.cxf.service.model.BindingOperationInfo;
>-import org.apache.cxf.service.model.MessagePartInfo;
> 
> /**
>  * Introspects the SOAPBinding annotation to provide to construct
>  * a {@link org.apache.cxf.service.model.BindingInfo}.
>  */
>-public class JaxWsSoapBindingInfoConfigBean extends SoapBindingInfoConfigBean {
>+public class JaxWsSoapBindingConfiguration extends SoapBindingConfiguration {
>     JaxWsServiceFactoryBean serviceFactory;
>     
>-    public JaxWsSoapBindingInfoConfigBean(JaxWsServiceFactoryBean sifb) {
>+    public JaxWsSoapBindingConfiguration(JaxWsServiceFactoryBean sifb) {
>         serviceFactory = sifb;
>     }
>     
>@@ -79,15 +74,4 @@
>         }
>         return super.getStyle();
>     }
>-
>-    @Override
>-    protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
>-        MethodDispatcher md = (MethodDispatcher)serviceFactory.getService()
>-                .get(MethodDispatcher.class.getName());
>-        Method method = md.getMethod(op);
>-        
>-        return getJaxWsServiceFactory().isHeader(method, part.getIndex());
>-    }
>-    
>-    
> }
>
>Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java (from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java)
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java&r1=526469&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java Mon Apr  9 16:05:51 2007
>@@ -31,25 +31,28 @@
> 
> import org.apache.cxf.common.classloader.ClassLoaderUtils;
> import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
>+import org.apache.cxf.jaxws.EndpointImpl;
> import org.springframework.beans.FatalBeanException;
> import org.springframework.beans.factory.support.BeanDefinitionBuilder;
> import org.springframework.beans.factory.xml.ParserContext;
> import org.springframework.util.StringUtils;
> 
>-public class EndpointFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
>+
>+public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
> 
>     private static final String IMPLEMENTOR = "implementor";
> 
>     @Override
>     protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
>+
>         NamedNodeMap atts = element.getAttributes();
>         for (int i = 0; i < atts.getLength(); i++) {
>             Attr node = (Attr) atts.item(i);
>             String val = node.getValue();
>             String pre = node.getPrefix();
>             String name = node.getLocalName();
>-            
>-            if (isAttribute(pre, name)) {
>+
>+            if (isAttribute(pre, name) && !"publish".equals(name)) {
>                 if ("endpointName".equals(name) || "serviceName".equals(name)) {
>                     QName q = parseQName(element, val);
>                     bean.addPropertyValue(name, q);
>@@ -58,6 +61,8 @@
>                 } else {
>                     mapToProperty(bean, name, val);
>                 }
>+            } else if ("abstract".equals(name)) {
>+                bean.setAbstract(true);
>             }
>         }
>         
>@@ -73,29 +78,29 @@
>                     || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)) {
>                     List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());
>                     bean.addPropertyValue(n.getLocalName(), list);
>+                } else if (IMPLEMENTOR.equals(name)) {
>+                    ctx.getDelegate()
>+                        .parseConstructorArgElement(getFirstChild(element), bean.getBeanDefinition());
>                 } else {
>                     setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
>                 }
>             }
>         }
>+
>+        bean.setInitMethodName("publish");
>         
>-        // We don't really want to delay the registration of our Server
>+        // We don't want to delay the registration of our Server
>         bean.setLazyInit(false);
>-        
>-//        PropertyValue idValue = bean.getBeanDefinition().getPropertyValues().getPropertyValue("id");
>-//        if (idValue == null) {
>-//            bean.addPropertyReference("id", arg1);
>-//        }
>     }
> 
>     private void loadImplementor(BeanDefinitionBuilder bean, String val) {
>         if (StringUtils.hasText(val)) {
>             if (val.startsWith("#")) {
>-                bean.addPropertyReference(IMPLEMENTOR, val.substring(1));
>+                bean.addConstructorArgReference(val.substring(1));
>             } else {
>                 try {
>-                    bean.addPropertyValue(IMPLEMENTOR,
>-                                          ClassLoaderUtils.loadClass(val, getClass()).newInstance());
>+                    Object obj = ClassLoaderUtils.loadClass(val, getClass()).newInstance();
>+                    bean.addConstructorArg(obj);
>                 } catch (Exception e) {
>                     throw new FatalBeanException("Could not load class: " + val, e);
>                 }
>@@ -105,7 +110,7 @@
> 
>     @Override
>     protected Class getBeanClass(Element arg0) {
>-        return EndpointFactoryBean.class;
>+        return EndpointImpl.class;
>     }
> 
> }
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java Mon Apr  9 16:05:51 2007
>@@ -23,7 +23,7 @@
> public class NamespaceHandler extends NamespaceHandlerSupport {
>     public void init() {
>         registerBeanDefinitionParser("client", new JaxWsProxyFactoryBeanDefinitionParser());        
>-        registerBeanDefinitionParser("endpoint", new EndpointFactoryBeanDefinitionParser());        
>+        registerBeanDefinitionParser("endpoint", new EndpointDefinitionParser());        
>         registerBeanDefinitionParser("server", new ServerBeanDefinitionParser());        
>     }
> }
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java Mon Apr  9 16:05:51 2007
>@@ -161,7 +161,7 @@
>             return null;
>         }
>         
>-        return getPartName(op, method, paramNumber, "arg");
>+        return getPartName(op, method, paramNumber, op.getInput().size(), "arg");
>     }
> 
>     @Override
>@@ -170,10 +170,10 @@
>             return null;
>         }
>         
>-        return getParameterName(op, method, paramNumber, "arg");
>+        return getParameterName(op, method, paramNumber, op.getInput().size(), "arg");
>     }
> 
>-    private QName getPartName(OperationInfo op, Method method, int paramNumber, String prefix) {
>+    private QName getPartName(OperationInfo op, Method method, int paramNumber, int curSize, String prefix) {
>         WebParam param = getWebParam(method, paramNumber);
>         String tns = op.getName().getNamespaceURI();
>         if (param != null) {
>@@ -185,34 +185,38 @@
>                 local = param.name();
>             }
>             if (local.length() == 0) {
>-                getDefaultLocalName(op, method, paramNumber, prefix);
>+                getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>             }
>             return new QName(tns, local);
>         } else {
>-            return new QName(tns, getDefaultLocalName(op, method, paramNumber, prefix));
>+            return new QName(tns, getDefaultLocalName(op, method, paramNumber, curSize, prefix));
>         }        
>     }
> 
>-    private QName getParameterName(OperationInfo op, Method method, int paramNumber, String prefix) {
>+    private QName getParameterName(OperationInfo op, Method method, int paramNumber, 
>+                                   int curSize, String prefix) {
>+        method = getDeclaredMethod(method);
>         WebParam param = getWebParam(method, paramNumber);
>+        String tns = null;
>+        String local = null;
>         if (param != null) {
>-            String tns = param.targetNamespace();
>-            String local = param.name();
>-
>-            if (tns.length() == 0) {
>-                tns = op.getName().getNamespaceURI();
>-            }
>-
>-            if (local.length() == 0) {
>-                local = getDefaultLocalName(op, method, paramNumber, prefix);
>-            }
>+            tns = param.targetNamespace();
>+            local = param.name();
>+        }
>+        
>+        if (tns == null || tns.length() == 0) {
>+            tns = op.getName().getNamespaceURI();
>+        }
> 
>-            return new QName(tns, local);
>+        if (local == null || local.length() == 0) {
>+            local = getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>         }
>-        return null;
>+        
>+        return new QName(tns, local);
>     }
> 
>-    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, String prefix) {
>+    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, 
>+                                       int curSize, String prefix) {
>         Class<?> impl = implInfo.getImplementorClass(); 
>         // try to grab the implementation class so we can read the debug symbols from it
>         if (impl == null) {
>@@ -223,7 +227,7 @@
>             }
>         }
>         
>-        return DefaultServiceConfiguration.createName(method, paramNumber, paramNumber, false, prefix);
>+        return DefaultServiceConfiguration.createName(method, paramNumber, curSize, false, prefix);
>     }
> 
>     private WebParam getWebParam(Method method, int parameter) {
>@@ -248,33 +252,38 @@
> 
>     @Override
>     public QName getOutParameterName(OperationInfo op, Method method, int paramNumber) {
>+        method = getDeclaredMethod(method);
>+        
>         if (paramNumber >= 0) {
>-            return getParameterName(op, method, paramNumber, "return");
>+            return getParameterName(op, method, paramNumber, op.getOutput().size(), "return");
>         } else {
>             WebResult webResult = getWebResult(method);
> 
>+            String tns = null;
>+            String local = null;
>             if (webResult != null) {
>-                String tns = webResult.targetNamespace();
>-                String local = webResult.name();
>-
>-                if (tns.length() == 0) {
>-                    tns = op.getName().getNamespaceURI();
>-                }
>+                tns = webResult.targetNamespace();
>+                local = webResult.name();
>+            }
> 
>-                if (local.length() == 0) {
>-                    local = getDefaultLocalName(op, method, paramNumber, "return");
>-                }
>+            if (tns == null || tns.length() == 0) {
>+                tns = op.getName().getNamespaceURI();
>+            }
> 
>-                return new QName(tns, local);
>+            if (local == null || local.length() == 0) {
>+                local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>             }
>+            
>+            return new QName(tns, local);
>         }
>-        return super.getOutParameterName(op, method, paramNumber);
>     }
> 
>     @Override
>     public QName getOutPartName(OperationInfo op, Method method, int paramNumber) {
>+        method = getDeclaredMethod(method);
>+        
>         if (paramNumber >= 0) {
>-            return getPartName(op, method, paramNumber, "return");
>+            return getPartName(op, method, paramNumber, op.getOutput().size(), "return");
>         } else {
>             WebResult webResult = getWebResult(method);
>             String tns = op.getName().getNamespaceURI();
>@@ -287,7 +296,7 @@
>                     local = webResult.name();
>                 }
>                 if (local.length() == 0) {
>-                    local = getDefaultLocalName(op, method, paramNumber, "return");
>+                    local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>                 }
>                 return new QName(tns, local);
>             } else {
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Mon Apr  9 16:05:51 2007
>@@ -51,6 +51,7 @@
> import org.apache.cxf.service.factory.AbstractServiceConfiguration;
> import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
> import org.apache.cxf.service.factory.ServiceConstructionException;
>+import org.apache.cxf.service.invoker.Invoker;
> import org.apache.cxf.service.model.BindingInfo;
> import org.apache.cxf.service.model.EndpointInfo;
> import org.apache.cxf.service.model.FaultInfo;
>@@ -85,6 +86,11 @@
>         this.serviceClass = implInfo.getEndpointClass();
>     }
> 
>+    @Override
>+    protected Invoker createInvoker() {
>+        return null;
>+    }
>+    
>     protected SimpleMethodDispatcher getMethodDispatcher() {
>         return methodDispatcher;
>     }
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd Mon Apr  9 16:05:51 2007
>@@ -15,6 +15,7 @@
>       <xsd:complexContent>
>         <xsd:extension base="beans:identifiedType">
>           <xsd:sequence>
>+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="implementor" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
>@@ -25,7 +26,7 @@
>             <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
>           </xsd:sequence>
>           <xsd:attribute name="address" type="xsd:string" />
>-          <xsd:attribute name="binding" type="xsd:string" />
>+          <xsd:attribute name="bindingUri" type="xsd:string" />
>           <xsd:attribute name="bus" type="xsd:string" />
>           <xsd:attribute name="implementor" type="xsd:string"/>
>           <xsd:attribute name="publish" type="xsd:boolean" default="true"/>
>@@ -71,6 +72,7 @@
>       <xsd:complexContent>
>         <xsd:extension base="beans:identifiedType">
>           <xsd:sequence>
>+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
>             <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
>@@ -78,7 +80,7 @@
>             <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
>           </xsd:sequence>
>           <xsd:attribute name="address" type="xsd:string" />
>-          <xsd:attribute name="binding" type="xsd:string" />
>+          <xsd:attribute name="bindingUri" type="xsd:string" />
>           <xsd:attribute name="bus" type="xsd:string" />
>           <xsd:attribute name="endpointName" type="xsd:QName" />
>           <xsd:attribute name="password" type="xsd:string" />
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java Mon Apr  9 16:05:51 2007
>@@ -94,8 +94,9 @@
>         JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>         Client client = eih.getClient();
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
>+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+        assertTrue("Unexpected value for property validating", 
>+                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>    
>         // System.out.println("endpoint interceptors");
>         List<Interceptor> interceptors = endpoint.getInInterceptors();
>@@ -160,28 +161,29 @@
>         JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>         Client client = eih.getClient();
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
>-        List<Interceptor> interceptors = endpoint.getInInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-in", 
>-                     findTestInterceptor(interceptors).getId());
>-        interceptors = endpoint.getOutInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-out", 
>-                     findTestInterceptor(interceptors).getId());
>-        interceptors = endpoint.getInFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>-                     findTestInterceptor(interceptors).getId());
>-        interceptors = endpoint.getOutFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>-        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>-                     findTestInterceptor(interceptors).getId());
>+//      The service shouldn't pick up the <jaxws:endpoint>...
>+//        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+//        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
>+//        List<Interceptor> interceptors = endpoint.getInInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-in", 
>+//                     findTestInterceptor(interceptors).getId());
>+//        interceptors = endpoint.getOutInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-out", 
>+//                     findTestInterceptor(interceptors).getId());
>+//        interceptors = endpoint.getInFaultInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>+//                     findTestInterceptor(interceptors).getId());
>+//        interceptors = endpoint.getOutFaultInterceptors();
>+//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+//        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>+//                     findTestInterceptor(interceptors).getId());
>         
>         org.apache.cxf.service.ServiceImpl svc = (org.apache.cxf.service.ServiceImpl)endpoint.getService();
>         assertEquals("Unexpected bean name.", SERVICE_NAME.toString(), svc.getBeanName());
>-        interceptors = svc.getInInterceptors();
>+        List<Interceptor> interceptors = svc.getInInterceptors();
>         assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "service-in", 
>                      findTestInterceptor(interceptors).getId());
>@@ -226,8 +228,9 @@
>         ei.publish("http://localhost/greeter");
>         
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
>+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+        assertTrue("Unexpected value for property validating", 
>+                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>    
>         List<Interceptor> interceptors = endpoint.getInInterceptors();
>         assertNull("Unexpected test interceptor", findTestInterceptor(interceptors));
>@@ -283,22 +286,23 @@
>         ei.publish("http://localhost/greeter");
>         
>         JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
>-        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
>-        assertTrue("Unexpected value for property validating", endpoint.getEnableSchemaValidation());
>+        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
>+        assertTrue("Unexpected value for property validating", 
>+                   Boolean.valueOf((String) ei.getProperties().get(Message.SCHEMA_VALIDATION_ENABLED)));
>         List<Interceptor> interceptors = endpoint.getInInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 5, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-in", 
>                      findTestInterceptor(interceptors).getId());
>         interceptors = endpoint.getOutInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 6, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-out", 
>                      findTestInterceptor(interceptors).getId());
>         interceptors = endpoint.getInFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 2, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>                      findTestInterceptor(interceptors).getId());
>         interceptors = endpoint.getOutFaultInterceptors();
>-        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>+        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
>         assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>                      findTestInterceptor(interceptors).getId());
>         
>
>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=526945&r1=526944&r2=526945
>==============================================================================
>--- 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 Mon Apr  9 16:05:51 2007
>@@ -127,7 +127,7 @@
>             assertEquals(expeced, e.getMessage());
>         }
>     }
>-
>+    
>     @Test
>     public void testPublishEndpointPermission() throws Exception {
>         Hello service = new Hello();
>
>Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java
>URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java?view=diff&rev=526945&r1=526944&r2=526945
>==============================================================================
>--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java (original)
>+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java Mon Apr  9 16:05:51 2007
>@@ -26,7 +26,7 @@
> 
> import org.apache.cxf.Bus;
> import org.apache.cxf.frontend.ServerFactoryBean;
>-import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
>+import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
> import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> import org.apache.cxf.service.Service;
> import org.apache.cxf.service.model.MessagePartInfo;
>@@ -76,8 +76,10 @@
>         ServerFactoryBean svr = new ServerFactoryBean();
>         svr.setBus(bus);
>         svr.setServiceFactory(bean);
>+        svr.setServiceBean(new TestHeaderImpl());
>         svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPort");
>-        svr.setBindingConfig(new JaxWsSoapBindingInfoConfigBean(bean));
>+        svr.setBindingConfig(new JaxWsSoapBindingConfiguration(bean));
>+
>         
>         svr.create();
>         
>
>
>  
>


Re: svn commit: r526945 [1/2] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/service/ common/common/src/main/java/org/apache/cxf/configuration/spring/ parent/...

Posted by James Mao <ja...@iona.com>.
Hi Dan,

Can you also fix the build warnings in
rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\EndpointImplTest.java
due to the [deprecation] of EndpointImpl

C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\Endp
ointImplTest.java:[80,32] 警告:[deprecation] 
org.apache.cxf.jaxws.EndpointImpl
中的 
EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.suppo
rt.JaxWsServiceFactoryBean) 已过时

C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\Endp
ointImplTest.java:[104,32] 警告:[deprecation] 
org.apache.cxf.jaxws.EndpointImpl
 中的 
EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.supp
ort.JaxWsServiceFactoryBean) 已过时

C:\src\java\apache\cxf\rt\frontend\jaxws\src\test\java\org\apache\cxf\jaxws\Endp
ointImplTest.java:[124,12] 警告:[deprecation] 
org.apache.cxf.jaxws.EndpointImpl
 中的 
EndpointImpl(org.apache.cxf.Bus,java.lang.Object,org.apache.cxf.jaxws.supp
ort.JaxWsServiceFactoryBean) 已过时

Thanks,
James.

> Author: dandiep
> Date: Mon Apr  9 16:05:51 2007
> New Revision: 526945
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=526945
> Log:
> o Enabled usage of <jaxws:endpoint> when using Endpoint.publish():
>   - Removed EndpointFactoryBean and just use EndpointImpl
>   - Added many getters/setters to configure the Endpointimpl
>   - Added constructor to pass in ServerFactoryBean instead of 
>     ServiceFactoryBean. Deprecated old constructors because this
>     is more correct and 99% of the people can probably just use
>     the getters/setters on EndpointImpl now.
> o Renamed BindingInfoConfigBean objects to *BindingConfiguration.
>   These all inherit from BindingConfiguration which has an abstract
>   method getBindingId().
> o Removed Endpoint/Service.enableSchemaValidation and made it a 
>   service property instead. I also changed the constant 
>   Message.ENABLE_SCHEMA_VALIDATION to be more amenable to config files.
> o Upgrade to Spring 2.0.3 and fix issues with SpringBeanMap in this
>   latest version.
> o Add a property editor for SoapVersions so we can specify "1.2" in 
>   the xml configuration for a <jaxws:endpoint>
> o Fix several bugs with the JaxWsServiceConfiguration
> o Don't create an Invoker inside JaxWsServiceFactoryBean, do it in the
>   JaxWsSERVERFactoryBean instead
>
>
> Added:
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java
>       - copied, changed from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java
>       - copied, changed from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java   (with props)
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java   (with props)
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java
>       - copied, changed from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
>       - copied, changed from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
> Removed:
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java
> Modified:
>     incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
>     incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
>     incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
>     incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
>     incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
>     incubator/cxf/trunk/parent/pom.xml
>     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/wrapped/WrappedServiceTest.java
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
>     incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.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/SoapBindingInfoConfigBeanDefinitionParser.java
>     incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
>     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/NamespaceHandler.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.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/HeaderTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/configured-endpoints.xml
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderService.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderServiceImpl.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/provider/ProviderServiceFactoryTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/endpoints.xml
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/servers.xml
>     incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/support/JaxWsServiceConfigurationTest.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/service/factory/ReflectionServiceFactoryBean.java
>     incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedEndpoint.java
>     incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/WrappedService.java
>     incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/MtomServerTest.java
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/schema_validation/cxf-config.xml
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/SpringServletTest.java
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/spring.xml
>     incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/type_test/databinding-schema-validation.xml
>
> Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java (original)
> +++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/Endpoint.java Mon Apr  9 16:05:51 2007
> @@ -51,9 +51,5 @@
>      void setInFaultObserver(MessageObserver observer);
>      
>      void setOutFaultObserver(MessageObserver observer);
> -    
> -    boolean getEnableSchemaValidation();
> -    
> -    void setEnableSchemaValidation(boolean value);
>  
>  }
>
> Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java (original)
> +++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/Message.java Mon Apr  9 16:05:51 2007
> @@ -49,7 +49,7 @@
>      String PATH_INFO = Message.class.getName() + ".PATH_INFO";
>      String QUERY_STRING = Message.class.getName() + ".QUERY_STRING";
>      String MTOM_ENABLED = "mtom-enabled";
> -    String SCHEMA_VALIDATION_ENABLED = Message.class.getCanonicalName() + ".schemaValidationEnabled";
> +    String SCHEMA_VALIDATION_ENABLED = "schema-validation-enabled";
>      String FAULT_STACKTRACE_ENABLED = "faultStackTraceEnabled";
>      String CONTENT_TYPE = "Content-Type";
>      String BASE_PATH = Message.class.getName() + ".BASE_PATH";
>
> Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java (original)
> +++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/Service.java Mon Apr  9 16:05:51 2007
> @@ -49,8 +49,4 @@
>      void setInvoker(Invoker invoker);
>      
>      Map<QName, Endpoint> getEndpoints();
> -    
> -    void setEnableSchemaValidationForAllPort(boolean value);
> -    
> -    boolean getEnableSchemaValidationForAllPort();
>  }
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -40,11 +40,18 @@
>  public abstract class AbstractBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
>  
>      protected void setFirstChildAsProperty(Element element, ParserContext ctx, 
> -                                         BeanDefinitionBuilder bean, String string) {
> +                                         BeanDefinitionBuilder bean, String propertyName) {
> +        String id = getAndRegisterFirstChild(element, ctx, bean, propertyName);
> +        bean.addPropertyReference(propertyName, id);
> +        
> +    }
> +
> +    protected String getAndRegisterFirstChild(Element element, ParserContext ctx, 
> +                                              BeanDefinitionBuilder bean, String propertyName) {
>          Element first = getFirstChild(element);
>          
>          if (first == null) {
> -            throw new IllegalStateException(string + " property must have child elements!");
> +            throw new IllegalStateException(propertyName + " property must have child elements!");
>          }
>          
>          // Seems odd that we have to do the registration, I wonder if there is a better way
> @@ -61,8 +68,7 @@
>          }
>         
>          ctx.getRegistry().registerBeanDefinition(id, child);
> -        bean.addPropertyReference(string, id);
> -        
> +        return id;
>      }
>  
>      protected Element getFirstChild(Element element) {
>
> Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java (original)
> +++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java Mon Apr  9 16:05:51 2007
> @@ -24,6 +24,7 @@
>  import java.util.ArrayList;
>  import java.util.Collection;
>  import java.util.HashSet;
> +import java.util.Iterator;
>  import java.util.List;
>  import java.util.Map;
>  import java.util.Set;
> @@ -38,6 +39,9 @@
>  import org.springframework.beans.factory.BeanIsAbstractException;
>  import org.springframework.beans.factory.InitializingBean;
>  import org.springframework.beans.factory.config.BeanDefinition;
> +import org.springframework.beans.factory.config.TypedStringValue;
> +import org.springframework.beans.factory.support.ManagedList;
> +import org.springframework.beans.factory.support.ManagedSet;
>  import org.springframework.context.ApplicationContext;
>  import org.springframework.context.ApplicationContextAware;
>  import org.springframework.context.ConfigurableApplicationContext;
> @@ -100,6 +104,18 @@
>                      }
>                  }
>                  
> +                if (ids instanceof ManagedSet || ids instanceof ManagedList) {
> +                    List<String> newIds = new ArrayList<String>();
> +                    for (Iterator itr = ids.iterator(); itr.hasNext();) {
> +                        Object o = itr.next();
> +                        if (o instanceof TypedStringValue) {
> +                            newIds.add(((TypedStringValue) o).getValue());
> +                        } else {
> +                            newIds.add((String) o);
> +                        }
> +                    }
> +                    ids = newIds;
> +                }
>                  for (Object id : ids) {
>                      idToBeanName.put(id.toString(), beanNames[i]);
>                  }
>
> Modified: incubator/cxf/trunk/parent/pom.xml
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/parent/pom.xml?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/parent/pom.xml (original)
> +++ incubator/cxf/trunk/parent/pom.xml Mon Apr  9 16:05:51 2007
> @@ -46,7 +46,7 @@
>          <jaxws.version>2.0</jaxws.version>
>          <jetty.version>5.1.11</jetty.version>
>          <saaj.version>1.3</saaj.version>
> -        <spring.version>2.0</spring.version>
> +        <spring.version>2.0.3</spring.version>
>          <wsdl4j.version>1.6.1</wsdl4j.version>
>          <derby.version>10.1.1.0</derby.version>
>          <activemq.version>4.1.0-incubator</activemq.version>
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -48,7 +48,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(false);
>          sf.setAddress("http://localhost:9001/foo/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("contextMatchStrategy", "stem");
>          sf.setProperties(props);
> @@ -130,7 +131,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(false);
>          sf.setAddress("http://localhost:9001/foo/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("Content-Type", "text/plain");
>          sf.setProperties(props);
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -45,7 +45,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(false);
>          sf.setAddress("http://localhost:9001/foo/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("contextMatchStrategy", "stem");
>          sf.setProperties(props);
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -59,7 +59,8 @@
>          sf.setServiceClass(CustomerService.class);
>          sf.getServiceFactory().setWrapped(true);
>          sf.setAddress("http://localhost:9001/");
> -
> +        sf.setServiceBean(new CustomerService());
> +        
>          Map<String, Object> props = new HashMap<String, Object>();
>          props.put("contextMatchStrategy", "stem");
>          sf.setProperties(props);
>
> Copied: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java (from r525926, incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java&r1=525926&p2=incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfigBean.java (original)
> +++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -20,9 +20,16 @@
>  
>  import java.util.Set;
>  
> -public class ObjectBindingConfigBean {
> +import org.apache.cxf.binding.BindingConfiguration;
> +
> +public class ObjectBindingConfiguration extends BindingConfiguration {
>      private boolean stopAfterLogicalPhases = true;
>      private Set<String> skipPhases;
> +    
> +    @Override
> +    public String getBindingId() {
> +        return ObjectBindingFactory.BINDING_ID;
> +    }
>  
>      public Set<String> getSkipPhases() {
>          return skipPhases;
>
> Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java (original)
> +++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectBindingFactory.java Mon Apr  9 16:05:51 2007
> @@ -56,8 +56,8 @@
>      public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object config) {
>          BindingInfo info = super.createBindingInfo(si, bindingid, config);
>          
> -        if (config instanceof ObjectBindingConfigBean) {
> -            ObjectBindingConfigBean c = (ObjectBindingConfigBean) config;
> +        if (config instanceof ObjectBindingConfiguration) {
> +            ObjectBindingConfiguration c = (ObjectBindingConfiguration) config;
>              
>              info.setProperty(STOP_AFTER_LOGICAL, c.isStopAfterLogicalPhases());
>          }
>
> Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java (original)
> +++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java Mon Apr  9 16:05:51 2007
> @@ -22,7 +22,7 @@
>  import org.w3c.dom.Element;
>  import org.w3c.dom.NamedNodeMap;
>  
> -import org.apache.cxf.binding.object.ObjectBindingConfigBean;
> +import org.apache.cxf.binding.object.ObjectBindingConfiguration;
>  import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
>  import org.springframework.beans.factory.support.BeanDefinitionBuilder;
>  import org.springframework.beans.factory.xml.ParserContext;
> @@ -41,7 +41,7 @@
>  
>      @Override
>      protected Class getBeanClass(Element arg0) {
> -        return ObjectBindingConfigBean.class;
> +        return ObjectBindingConfiguration.class;
>      }
>  
>  }
>
> Copied: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java (from r525649, incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java&r1=525649&p2=incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingInfoConfigBean.java (original)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -18,23 +18,27 @@
>   */
>  package org.apache.cxf.binding.soap;
>  
> +import org.apache.cxf.binding.BindingConfiguration;
>  import org.apache.cxf.service.model.BindingOperationInfo;
>  import org.apache.cxf.service.model.MessagePartInfo;
>  import org.apache.cxf.service.model.OperationInfo;
>  
> -public class SoapBindingInfoConfigBean {
> +public class SoapBindingConfiguration extends BindingConfiguration {
>      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 String getBindingId() {
> +        return "http://schemas.xmlsoap.org/soap/";
> +    }
>  
>      protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
> -        return false;
> +        Object isHeader = part.getProperty("messagepart.isheader");
> +        return Boolean.TRUE.equals(isHeader);
>      }
>  
>      public String getSoapAction(OperationInfo op) {
> @@ -57,12 +61,12 @@
>          return getStyle();
>      }
>  
> -    public SoapVersion getSoapVersion() {
> +    public SoapVersion getVersion() {
>          return soapVersion;
>      }
>  
> -    public void setSoapVersion(SoapVersion soapVersion) {
> -        this.soapVersion = soapVersion;
> +    public void setVersion(SoapVersion sv) {
> +        this.soapVersion = sv;
>      }
>  
>      public String getUse() {
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -90,16 +90,16 @@
>      }
>  
>      public BindingInfo createBindingInfo(ServiceInfo si, String bindingid, Object conf) {
> -        SoapBindingInfoConfigBean config;
> -        if (conf instanceof SoapBindingInfoConfigBean) {
> -            config = (SoapBindingInfoConfigBean)conf;
> +        SoapBindingConfiguration config;
> +        if (conf instanceof SoapBindingConfiguration) {
> +            config = (SoapBindingConfiguration)conf;
>          } else {
> -            config = new SoapBindingInfoConfigBean();
> +            config = new SoapBindingConfiguration();
>          }
>          
>          SoapBindingInfo info = new SoapBindingInfo(si,
>                                                     "http://schemas.xmlsoap.org/wsdl/soap/",
> -                                                   config.getSoapVersion());
> +                                                   config.getVersion());
>          
>          info.setName(new QName(si.getName().getNamespaceURI(), 
>                                 si.getName().getLocalPart() + "SoapBinding"));
> @@ -156,7 +156,7 @@
>                                BindingMessageInfo bMsg, 
>                                BindingMessageInfo unwrappedBMsg, 
>                                MessageInfo msg,
> -                              SoapBindingInfoConfigBean config) {
> +                              SoapBindingConfiguration config) {
>          List<MessagePartInfo> parts = new ArrayList<MessagePartInfo>();
>          for (MessagePartInfo part : msg.getMessageParts()) {
>              if (config.isHeader(op, part)) {
>
> Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java?view=auto&rev=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java (added)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java Mon Apr  9 16:05:51 2007
> @@ -0,0 +1,43 @@
> +/**
> + * 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.
> + */
> +package org.apache.cxf.binding.soap;
> +
> +import java.beans.PropertyEditorSupport;
> +
> +public class SoapVersionPropertyEditor extends PropertyEditorSupport {
> +
> +    private SoapVersion version;
> +
> +    @Override
> +    public Object getValue() {
> +        return version;
> +    }
> +
> +    @Override
> +    public void setAsText(String text) throws IllegalArgumentException {
> +        if ("1.2".equals(text)) {
> +            this.version = Soap12.getInstance();
> +        } else if ("1.1".equals(text)) {
> +            this.version = Soap11.getInstance();
> +        } else {
> +            super.setAsText(text);
> +        }
> +    }
> +
> +}
>
> Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> ------------------------------------------------------------------------------
>     svn:executable = *
>
> Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersionPropertyEditor.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev Date
>
> Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.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=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java (original)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Mon Apr  9 16:05:51 2007
> @@ -22,7 +22,7 @@
>  import org.w3c.dom.Element;
>  import org.w3c.dom.NamedNodeMap;
>  
> -import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
> +import org.apache.cxf.binding.soap.SoapBindingConfiguration;
>  import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
>  import org.springframework.beans.factory.support.BeanDefinitionBuilder;
>  import org.springframework.beans.factory.xml.ParserContext;
> @@ -41,7 +41,7 @@
>  
>      @Override
>      protected Class getBeanClass(Element arg0) {
> -        return SoapBindingInfoConfigBean.class;
> +        return SoapBindingConfiguration.class;
>      }
>  
>  }
>
> Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml (original)
> +++ incubator/cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml Mon Apr  9 16:05:51 2007
> @@ -44,4 +44,15 @@
>          </property>
>          <property name="bus" ref="cxf"/>
>      </bean>
> +        
> +	<bean id="org.apache.cxf.binding.soap.customEditorConfigurer"
> +		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
> +		<property name="customEditors">
> +			<map>
> +				<entry key="org.apache.cxf.binding.soap.SoapVersion">
> +					<bean class="org.apache.cxf.binding.soap.SoapVersionPropertyEditor"/>
> +				</entry>
> +			</map>
> +		</property>
> +	</bean>
>  </beans>
>
> Added: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java?view=auto&rev=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java (added)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -0,0 +1,26 @@
> +/**
> + * 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.
> + */
> +package org.apache.cxf.binding;
> +
> +/**
> + * A configuration for a binding.
> + */
> +public abstract class BindingConfiguration {
> +    public abstract String getBindingId();
> +}
>
> Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> ------------------------------------------------------------------------------
>     svn:executable = *
>
> Propchange: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/binding/BindingConfiguration.java
> ------------------------------------------------------------------------------
>     svn:keywords = Rev Date
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/EndpointImpl.java Mon Apr  9 16:05:51 2007
> @@ -19,6 +19,7 @@
>  
>  package org.apache.cxf.endpoint;
>  
> +import java.util.Map;
>  import java.util.ResourceBundle;
>  import java.util.concurrent.Executor;
>  import java.util.logging.Logger;
> @@ -55,7 +56,6 @@
>      private Bus bus;
>      private MessageObserver inFaultObserver;
>      private MessageObserver outFaultObserver;
> -    private boolean schemaValidation;
>  
>      public EndpointImpl(Bus bus, Service s, QName endpointName) throws EndpointException {
>          this(bus, s, s.getServiceInfo().getEndpoint(endpointName));
> @@ -84,7 +84,7 @@
>      }
>      
>      public String getBeanName() {
> -        return endpointInfo.getName().toString();
> +        return endpointInfo.getName().toString() + ".endpoint";
>      }
>      
>     
> @@ -141,13 +141,6 @@
>      public MessageObserver getOutFaultObserver() {
>          return outFaultObserver;
>      }
> -    
> -    public void setEnableSchemaValidation(boolean value) {
> -        schemaValidation = value;
> -    }
> -    public boolean getEnableSchemaValidation() {
> -        return schemaValidation;
> -    }
>  
>      public void setInFaultObserver(MessageObserver observer) {
>          inFaultObserver = observer;        
> @@ -157,7 +150,14 @@
>          outFaultObserver = observer;
>          
>      }
> -
> -   
> +    
> +    /**
> +     * Utility method to make it easy to set properties from Spring.
> +     * 
> +     * @param properties
> +     */
> +    public void setProperties(Map<String, Object> properties) {
> +        this.putAll(properties);
> +    }
>      
>  }
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
> @@ -78,7 +78,8 @@
>      }
>  
>      private void setSchemaInMessage(Service service, Message message, DataReader<?> reader) {
> -        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
> +        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
> +        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>              Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>              reader.setSchema(schema);
>          }
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractOutDatabindingInterceptor.java Mon Apr  9 16:05:51 2007
> @@ -57,7 +57,8 @@
>      }
>  
>      private void setSchemaOutMessage(Service service, Message message, DataWriter<?> writer) {
> -        if (Boolean.TRUE.equals(message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED))) {
> +        Object en = message.getContextualProperty(Message.SCHEMA_VALIDATION_ENABLED);
> +        if (Boolean.TRUE.equals(en) || "true".equals(en)) {
>              Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfo());
>              writer.setSchema(schema);
>          }
>
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/ServiceImpl.java Mon Apr  9 16:05:51 2007
> @@ -39,7 +39,6 @@
>      private Executor executor;
>      private Invoker invoker;
>      private Map<QName, Endpoint> endpoints = new HashMap<QName, Endpoint>();
> -    private boolean enableSchemaValidationForAllPort;
>      
>      public ServiceImpl() {
>          this(null);
> @@ -93,11 +92,8 @@
>      public void setEndpoints(Map<QName, Endpoint> endpoints) {
>          this.endpoints = endpoints;
>      }
> -    public void setEnableSchemaValidationForAllPort(boolean value) {
> -        enableSchemaValidationForAllPort = value;
> -    }
> -    
> -    public boolean getEnableSchemaValidationForAllPort() {
> -        return enableSchemaValidationForAllPort;
> +
> +    public void setProperties(Map<String, Object> properties) {
> +        this.putAll(properties);
>      }
>  }
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -22,37 +22,40 @@
>  import java.security.AccessController;
>  import java.util.List;
>  import java.util.Map;
> +import java.util.concurrent.CopyOnWriteArrayList;
>  import java.util.concurrent.Executor;
>  import java.util.logging.Logger;
>  
> +import javax.xml.namespace.QName;
>  import javax.xml.transform.Source;
>  import javax.xml.ws.Binding;
> -
> -//TODO JAX-WS 2.1
> -//import javax.xml.ws.EndpointReference;
>  import javax.xml.ws.WebServiceException;
>  import javax.xml.ws.WebServicePermission;
>  import javax.xml.ws.handler.Handler;
>  
>  import org.apache.cxf.Bus;
> +import org.apache.cxf.BusFactory;
>  import org.apache.cxf.common.injection.ResourceInjector;
>  import org.apache.cxf.common.logging.LogUtils;
> +import org.apache.cxf.configuration.Configurable;
>  import org.apache.cxf.configuration.Configurer;
>  import org.apache.cxf.endpoint.Server;
>  import org.apache.cxf.endpoint.ServerImpl;
> +import org.apache.cxf.interceptor.Interceptor;
> +import org.apache.cxf.interceptor.InterceptorProvider;
>  import org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
>  import org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilder;
>  import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
>  import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> -import org.apache.cxf.message.Message;
>  import org.apache.cxf.resource.DefaultResourceManager;
>  import org.apache.cxf.resource.ResourceManager;
>  import org.apache.cxf.resource.ResourceResolver;
>  import org.apache.cxf.service.Service;
>  
> -public class EndpointImpl extends javax.xml.ws.Endpoint {
> -    /*
> +public class EndpointImpl extends javax.xml.ws.Endpoint 
> +    implements InterceptorProvider, Configurable {
> +    /**
>       * This property controls whether the 'publishEndpoint' permission is checked 
>       * using only the AccessController (i.e. when SecurityManager is not installed).
>       * By default this check is not done as the system property is not set.
> @@ -66,37 +69,63 @@
>          new WebServicePermission("publishEndpoint");
>      
>      protected boolean doInit;
> -
>      private Bus bus;
>      private Object implementor;
>      private Server server;
> +    private JaxWsServerFactoryBean serverFactory;
>      private Service service;
> -    private String bindingId;
> -    private JaxWsImplementorInfo implInfo;
> -    private JaxWsServiceFactoryBean serviceFactory;
>      private Map<String, Object> properties;
>      private List<Source> metadata;
>      
> +    private Executor executor;
> +    private String binding;
> +    private String wsdlLocation;
> +    private String address;
> +    private QName endpointName;
> +    private QName serviceName;
> +    
> +    private List<Interceptor> in = new CopyOnWriteArrayList<Interceptor>();
> +    private List<Interceptor> out = new CopyOnWriteArrayList<Interceptor>();
> +    private List<Interceptor> outFault  = new CopyOnWriteArrayList<Interceptor>();
> +    private List<Interceptor> inFault  = new CopyOnWriteArrayList<Interceptor>();
> +
> +    public EndpointImpl(Object implementor) {
> +        this(BusFactory.getDefaultBus(), implementor);
> +    }
> +    
> +    @Deprecated
>      public EndpointImpl(Bus b, Object implementor, JaxWsServiceFactoryBean serviceFactory) {
>          this(b, implementor, serviceFactory, null);
>      }
>      
> +    /**
> +     * If you're using this method you should switch to passing in a JaxWsServerFactoryBean
> +     * or using the new getters/setters on EndpointImpl before our next release.
> +     * @param b
> +     * @param implementor
> +     * @param serviceFactory
> +     * @param bindingUri
> +     */
> +    @Deprecated
>      public EndpointImpl(Bus b, Object implementor, 
>                          JaxWsServiceFactoryBean serviceFactory, String bindingUri) {
>          this.bus = b;
> -        this.serviceFactory = serviceFactory;
> -        this.implInfo = serviceFactory.getJaxWsImplementorInfo();
> -        this.service = serviceFactory.getService();
> +        this.binding = bindingUri;
> +        this.serverFactory = new JaxWsServerFactoryBean(serviceFactory);
>          this.implementor = implementor;
> -        this.bindingId = bindingUri;
> -        
> -        if (this.service == null) {
> -            service = serviceFactory.create();
> -        }
>          
>          doInit = true;
>      }
>     
> +    public EndpointImpl(Bus b, Object implementor, 
> +                        JaxWsServerFactoryBean sf) {
> +        this.bus = b;
> +        this.serverFactory = sf;
> +        this.implementor = implementor;
> +        
> +        doInit = true;
> +    }
> +    
>      /**
>       * 
>       * @param b
> @@ -108,28 +137,16 @@
>      public EndpointImpl(Bus b, Object i, String bindingUri, String wsdl) {
>          bus = b;
>          implementor = i;
> -        bindingId = bindingUri;
> -        // build up the Service model
> -        implInfo = new JaxWsImplementorInfo(implementor.getClass());
> -        serviceFactory = new JaxWsServiceFactoryBean(implInfo);
> -        serviceFactory.setBus(bus);
> -        if (null != wsdl) {
> -            serviceFactory.setWsdlURL(wsdl);
> -        }
> -        service = serviceFactory.create();
> -        
> -        configureObject(service);
> -        
> -        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
> -        
> -        service.setInvoker(new JAXWSMethodInvoker(i));
> +        binding = bindingUri;
> +        wsdlLocation = wsdl;
> +        serverFactory = new JaxWsServerFactoryBean();
>          
>          doInit = true; 
>      }
>      
>      
> -    public EndpointImpl(Bus b, Object i, String uri) {
> -        this(b, i, uri, (String)null);
> +    public EndpointImpl(Bus b, Object i, String bindingUri) {
> +        this(b, i, bindingUri, (String)null);
>      }
>     
>      public EndpointImpl(Bus bus, Object implementor) {
> @@ -141,13 +158,18 @@
>      }
>  
>      public void setExecutor(Executor executor) {
> -        service.setExecutor(executor);
> +        this.executor = executor;
>      }
>  
>      public Executor getExecutor() {
> -        return service.getExecutor();
> +        return executor;
>      }
>  
> +    public Service getService() {
> +        return service;
> +    }
> +
> +    
>      @Override
>      public Object getImplementor() {
>          return implementor;
> @@ -174,8 +196,8 @@
>      }
>  
>      @Override
> -    public void publish(String address) {
> -        doPublish(address);
> +    public void publish(String addr) {
> +        doPublish(addr);
>      }
>  
>      public void setMetadata(List<Source> metadata) {
> @@ -222,33 +244,70 @@
>          }
>      }
>  
> -    protected void doPublish(String address) {
> +    
> +    public String getBeanName() {
> +        return endpointName.toString();
> +    }
> +
> +    protected void doPublish(String addr) {
>          checkPublishPermission();
>  
> -        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(serviceFactory);
> +        // Initialize the endpointName so we can do configureObject
> +        if (endpointName == null) {
> +            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(implementor.getClass());
> +            endpointName = implInfo.getEndpointName();
> +        }
>          
> -        svrFactory.setBus(bus);
> -        svrFactory.setBindingId(bindingId);
> -        svrFactory.setAddress(address);
> -        svrFactory.setStart(false);
> -        svrFactory.setServiceBean(implementor);
> -        configureObject(svrFactory);
> +        configureObject(this);
> +        
> +        // Set up the server factory
> +        serverFactory.setAddress(addr);
> +        serverFactory.setStart(false);
> +        serverFactory.setEndpointName(endpointName);
> +        serverFactory.setServiceBean(implementor);
> +        serverFactory.setBus(bus);
> +        
> +        // Be careful not to override any serverfactory settings as a user might
> +        // have supplied their own.
> +        if (getWsdlLocation() != null) {
> +            serverFactory.setWsdlURL(getWsdlLocation());
> +        }
> +        
> +        if (binding != null) {
> +            serverFactory.setBindingId(binding);
> +        }
> +        
> +        if (serviceName != null) {
> +            serverFactory.getServiceFactory().setServiceName(serviceName);
> +        }
> +        
> +        configureObject(serverFactory);
> +        
> +        server = serverFactory.create();
>          
> -        server = svrFactory.create();
> -
>          init();
>          
>          org.apache.cxf.endpoint.Endpoint endpoint = getEndpoint();
> +        if (getInInterceptors() != null) {
> +            endpoint.getInInterceptors().addAll(getInInterceptors());
> +        }
> +        if (getOutInterceptors() != null) {
> +            endpoint.getOutInterceptors().addAll(getOutInterceptors());
> +        }
> +        if (getInFaultInterceptors() != null) {
> +            endpoint.getInFaultInterceptors().addAll(getInFaultInterceptors());
> +        }
> +        if (getOutFaultInterceptors() != null) {
> +            endpoint.getOutFaultInterceptors().addAll(getOutFaultInterceptors());
> +        }
>          
>          if (properties != null) {
>              endpoint.putAll(properties);
>          }
>          
> +        configureObject(endpoint.getService());
>          configureObject(endpoint);
>          
> -        if (endpoint.getEnableSchemaValidation()) {
> -            endpoint.put(Message.SCHEMA_VALIDATION_ENABLED, endpoint.getEnableSchemaValidation());
> -        }
>          server.start();
>      }
>      
> @@ -304,6 +363,78 @@
>          }
>      }
>  
> +    public void publish() {
> +        publish(getAddress());
> +    }
> +    
> +    public String getAddress() {
> +        return address;
> +    }
> +
> +    public void setAddress(String address) {
> +        this.address = address;
> +    }
> +
> +    public QName getEndpointName() {
> +        return endpointName;
> +    }
> +
> +    public void setEndpointName(QName endpointName) {
> +        this.endpointName = endpointName;
> +    }
> +
> +    public QName getServiceName() {
> +        return serviceName;
> +    }
> +
> +    public void setServiceName(QName serviceName) {
> +        this.serviceName = serviceName;
> +    }
> +
> +    public String getWsdlLocation() {
> +        return wsdlLocation;
> +    }
> +
> +    public void setWsdlLocation(String wsdlLocation) {
> +        this.wsdlLocation = wsdlLocation;
> +    }
> +
> +    public void setBinding(String binding) {
> +        this.binding = binding;
> +    }
> +
> +    public List<Interceptor> getOutFaultInterceptors() {
> +        return outFault;
> +    }
> +
> +    public List<Interceptor> getInFaultInterceptors() {
> +        return inFault;
> +    }
> +
> +    public List<Interceptor> getInInterceptors() {
> +        return in;
> +    }
> +
> +    public List<Interceptor> getOutInterceptors() {
> +        return out;
> +    }
> +
> +    public void setInInterceptors(List<Interceptor> interceptors) {
> +        in = interceptors;
> +    }
> +
> +    public void setInFaultInterceptors(List<Interceptor> interceptors) {
> +        inFault = interceptors;
> +    }
> +
> +    public void setOutInterceptors(List<Interceptor> interceptors) {
> +        out = interceptors;
> +    }
> +
> +    public void setOutFaultInterceptors(List<Interceptor> interceptors) {
> +        outFault = interceptors;
> +    }
> +    
>      /*
>      //TODO JAX-WS 2.1
>      public EndpointReference getEndpointReference(Element... referenceParameters) {
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -26,7 +26,7 @@
>  import org.apache.cxf.binding.soap.SoapBindingFactory;
>  import org.apache.cxf.binding.soap.model.SoapBindingInfo;
>  import org.apache.cxf.frontend.ServerFactoryBean;
> -import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
> +import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
>  import org.apache.cxf.jaxws.support.JaxWsImplementorInfo;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>  import org.apache.cxf.service.invoker.Invoker;
> @@ -48,8 +48,8 @@
>      }
>      public JaxWsServerFactoryBean(JaxWsServiceFactoryBean serviceFactory) {
>          setServiceFactory(serviceFactory);
> -        JaxWsSoapBindingInfoConfigBean defConfig 
> -            = new JaxWsSoapBindingInfoConfigBean(serviceFactory);
> +        JaxWsSoapBindingConfiguration defConfig 
> +            = new JaxWsSoapBindingConfiguration(serviceFactory);
>          setBindingConfig(defConfig);
>      }
>  
> @@ -75,7 +75,7 @@
>                  binding = "http://schemas.xmlsoap.org/soap/";
>                  
>                  if (getBindingConfig() == null) {
> -                    setBindingConfig(new JaxWsSoapBindingInfoConfigBean(sf));
> +                    setBindingConfig(new JaxWsSoapBindingConfiguration(sf));
>                  }
>              }
>              
> @@ -83,15 +83,15 @@
>          }
>          boolean messageMode = implInfo.getServiceMode().equals(javax.xml.ws.Service.Mode.MESSAGE);
>          
> -        if (getBindingConfig() instanceof JaxWsSoapBindingInfoConfigBean) {
> -            JaxWsSoapBindingInfoConfigBean conf = (JaxWsSoapBindingInfoConfigBean)getBindingConfig();
> +        if (getBindingConfig() instanceof JaxWsSoapBindingConfiguration) {
> +            JaxWsSoapBindingConfiguration conf = (JaxWsSoapBindingConfiguration)getBindingConfig();
>              
>              if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_BINDING))) {
> -                conf.setSoapVersion(Soap12.getInstance());
> +                conf.setVersion(Soap12.getInstance());
>              }
>              
>              if (jaxBid.equals(binding.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING))) {
> -                conf.setSoapVersion(Soap12.getInstance());
> +                conf.setVersion(Soap12.getInstance());
>                  conf.setMtomEnabled(true);
>              }
>              
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -50,14 +50,13 @@
>  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.JaxWsSoapBindingInfoConfigBean;
> +import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
>  import org.apache.cxf.jaxws.handler.HandlerResolverImpl;
>  import org.apache.cxf.jaxws.handler.PortInfoImpl;
>  import org.apache.cxf.jaxws.support.DummyImpl;
>  import org.apache.cxf.jaxws.support.JaxWsClientEndpointImpl;
>  import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
>  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.AbstractServiceFactoryBean;
>  import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
> @@ -249,7 +248,6 @@
>          
>          // Configure the Service
>          Service service = serviceFactory.getService();
> -        service.put(Message.SCHEMA_VALIDATION_ENABLED, service.getEnableSchemaValidationForAllPort());
>          service.setExecutor(new Executor() {
>              public void execute(Runnable command) {
>                  Executor ex = getExecutor();
> @@ -267,10 +265,7 @@
>          configureObject(jaxwsEndpoint);  
>          
>          QName pn = portName;
> -        if (jaxwsEndpoint.getEnableSchemaValidation()) {
> -            jaxwsEndpoint.put(Message.SCHEMA_VALIDATION_ENABLED, jaxwsEndpoint.getEnableSchemaValidation());
> -        }
> -
> +        
>          List<Handler> hc = jaxwsEndpoint.getJaxwsBinding().getHandlerChain();
>          hc.addAll(handlerResolver.getHandlerChain(portInfos.get(pn)));
>  
> @@ -295,7 +290,7 @@
>          
>          Object config = null;
>          if (serviceFactory instanceof JaxWsServiceFactoryBean) {
> -            config = new JaxWsSoapBindingInfoConfigBean((JaxWsServiceFactoryBean)serviceFactory);
> +            config = new JaxWsSoapBindingConfiguration((JaxWsServiceFactoryBean)serviceFactory);
>          }
>          BindingInfo bindingInfo = bus.getExtension(BindingFactoryManager.class).getBindingFactory(bindingID)
>                  .createBindingInfo(serviceFactory.getService(), bindingID, config);
>
> Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java (from r526927, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java&r1=526927&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingInfoConfigBean.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/JaxWsSoapBindingConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -18,26 +18,21 @@
>   */
>  package org.apache.cxf.jaxws.binding.soap;
>  
> -import java.lang.reflect.Method;
> -
>  import javax.jws.soap.SOAPBinding;
>  import javax.jws.soap.SOAPBinding.Style;
>  import javax.jws.soap.SOAPBinding.Use;
>  
> -import org.apache.cxf.binding.soap.SoapBindingInfoConfigBean;
> -import org.apache.cxf.frontend.MethodDispatcher;
> +import org.apache.cxf.binding.soap.SoapBindingConfiguration;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
> -import org.apache.cxf.service.model.BindingOperationInfo;
> -import org.apache.cxf.service.model.MessagePartInfo;
>  
>  /**
>   * Introspects the SOAPBinding annotation to provide to construct
>   * a {@link org.apache.cxf.service.model.BindingInfo}.
>   */
> -public class JaxWsSoapBindingInfoConfigBean extends SoapBindingInfoConfigBean {
> +public class JaxWsSoapBindingConfiguration extends SoapBindingConfiguration {
>      JaxWsServiceFactoryBean serviceFactory;
>      
> -    public JaxWsSoapBindingInfoConfigBean(JaxWsServiceFactoryBean sifb) {
> +    public JaxWsSoapBindingConfiguration(JaxWsServiceFactoryBean sifb) {
>          serviceFactory = sifb;
>      }
>      
> @@ -79,15 +74,4 @@
>          }
>          return super.getStyle();
>      }
> -
> -    @Override
> -    protected boolean isHeader(BindingOperationInfo op, MessagePartInfo part) {
> -        MethodDispatcher md = (MethodDispatcher)serviceFactory.getService()
> -                .get(MethodDispatcher.class.getName());
> -        Method method = md.getMethod(op);
> -        
> -        return getJaxWsServiceFactory().isHeader(method, part.getIndex());
> -    }
> -    
> -    
>  }
>
> Copied: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java (from r526469, incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java)
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?view=diff&rev=526945&p1=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java&r1=526469&p2=incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointFactoryBeanDefinitionParser.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java Mon Apr  9 16:05:51 2007
> @@ -31,25 +31,28 @@
>  
>  import org.apache.cxf.common.classloader.ClassLoaderUtils;
>  import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
> +import org.apache.cxf.jaxws.EndpointImpl;
>  import org.springframework.beans.FatalBeanException;
>  import org.springframework.beans.factory.support.BeanDefinitionBuilder;
>  import org.springframework.beans.factory.xml.ParserContext;
>  import org.springframework.util.StringUtils;
>  
> -public class EndpointFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
> +
> +public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
>  
>      private static final String IMPLEMENTOR = "implementor";
>  
>      @Override
>      protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
> +
>          NamedNodeMap atts = element.getAttributes();
>          for (int i = 0; i < atts.getLength(); i++) {
>              Attr node = (Attr) atts.item(i);
>              String val = node.getValue();
>              String pre = node.getPrefix();
>              String name = node.getLocalName();
> -            
> -            if (isAttribute(pre, name)) {
> +
> +            if (isAttribute(pre, name) && !"publish".equals(name)) {
>                  if ("endpointName".equals(name) || "serviceName".equals(name)) {
>                      QName q = parseQName(element, val);
>                      bean.addPropertyValue(name, q);
> @@ -58,6 +61,8 @@
>                  } else {
>                      mapToProperty(bean, name, val);
>                  }
> +            } else if ("abstract".equals(name)) {
> +                bean.setAbstract(true);
>              }
>          }
>          
> @@ -73,29 +78,29 @@
>                      || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)) {
>                      List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());
>                      bean.addPropertyValue(n.getLocalName(), list);
> +                } else if (IMPLEMENTOR.equals(name)) {
> +                    ctx.getDelegate()
> +                        .parseConstructorArgElement(getFirstChild(element), bean.getBeanDefinition());
>                  } else {
>                      setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
>                  }
>              }
>          }
> +
> +        bean.setInitMethodName("publish");
>          
> -        // We don't really want to delay the registration of our Server
> +        // We don't want to delay the registration of our Server
>          bean.setLazyInit(false);
> -        
> -//        PropertyValue idValue = bean.getBeanDefinition().getPropertyValues().getPropertyValue("id");
> -//        if (idValue == null) {
> -//            bean.addPropertyReference("id", arg1);
> -//        }
>      }
>  
>      private void loadImplementor(BeanDefinitionBuilder bean, String val) {
>          if (StringUtils.hasText(val)) {
>              if (val.startsWith("#")) {
> -                bean.addPropertyReference(IMPLEMENTOR, val.substring(1));
> +                bean.addConstructorArgReference(val.substring(1));
>              } else {
>                  try {
> -                    bean.addPropertyValue(IMPLEMENTOR,
> -                                          ClassLoaderUtils.loadClass(val, getClass()).newInstance());
> +                    Object obj = ClassLoaderUtils.loadClass(val, getClass()).newInstance();
> +                    bean.addConstructorArg(obj);
>                  } catch (Exception e) {
>                      throw new FatalBeanException("Could not load class: " + val, e);
>                  }
> @@ -105,7 +110,7 @@
>  
>      @Override
>      protected Class getBeanClass(Element arg0) {
> -        return EndpointFactoryBean.class;
> +        return EndpointImpl.class;
>      }
>  
>  }
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java Mon Apr  9 16:05:51 2007
> @@ -23,7 +23,7 @@
>  public class NamespaceHandler extends NamespaceHandlerSupport {
>      public void init() {
>          registerBeanDefinitionParser("client", new JaxWsProxyFactoryBeanDefinitionParser());        
> -        registerBeanDefinitionParser("endpoint", new EndpointFactoryBeanDefinitionParser());        
> +        registerBeanDefinitionParser("endpoint", new EndpointDefinitionParser());        
>          registerBeanDefinitionParser("server", new ServerBeanDefinitionParser());        
>      }
>  }
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java Mon Apr  9 16:05:51 2007
> @@ -161,7 +161,7 @@
>              return null;
>          }
>          
> -        return getPartName(op, method, paramNumber, "arg");
> +        return getPartName(op, method, paramNumber, op.getInput().size(), "arg");
>      }
>  
>      @Override
> @@ -170,10 +170,10 @@
>              return null;
>          }
>          
> -        return getParameterName(op, method, paramNumber, "arg");
> +        return getParameterName(op, method, paramNumber, op.getInput().size(), "arg");
>      }
>  
> -    private QName getPartName(OperationInfo op, Method method, int paramNumber, String prefix) {
> +    private QName getPartName(OperationInfo op, Method method, int paramNumber, int curSize, String prefix) {
>          WebParam param = getWebParam(method, paramNumber);
>          String tns = op.getName().getNamespaceURI();
>          if (param != null) {
> @@ -185,34 +185,38 @@
>                  local = param.name();
>              }
>              if (local.length() == 0) {
> -                getDefaultLocalName(op, method, paramNumber, prefix);
> +                getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>              }
>              return new QName(tns, local);
>          } else {
> -            return new QName(tns, getDefaultLocalName(op, method, paramNumber, prefix));
> +            return new QName(tns, getDefaultLocalName(op, method, paramNumber, curSize, prefix));
>          }        
>      }
>  
> -    private QName getParameterName(OperationInfo op, Method method, int paramNumber, String prefix) {
> +    private QName getParameterName(OperationInfo op, Method method, int paramNumber, 
> +                                   int curSize, String prefix) {
> +        method = getDeclaredMethod(method);
>          WebParam param = getWebParam(method, paramNumber);
> +        String tns = null;
> +        String local = null;
>          if (param != null) {
> -            String tns = param.targetNamespace();
> -            String local = param.name();
> -
> -            if (tns.length() == 0) {
> -                tns = op.getName().getNamespaceURI();
> -            }
> -
> -            if (local.length() == 0) {
> -                local = getDefaultLocalName(op, method, paramNumber, prefix);
> -            }
> +            tns = param.targetNamespace();
> +            local = param.name();
> +        }
> +        
> +        if (tns == null || tns.length() == 0) {
> +            tns = op.getName().getNamespaceURI();
> +        }
>  
> -            return new QName(tns, local);
> +        if (local == null || local.length() == 0) {
> +            local = getDefaultLocalName(op, method, paramNumber, curSize, prefix);
>          }
> -        return null;
> +        
> +        return new QName(tns, local);
>      }
>  
> -    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, String prefix) {
> +    private String getDefaultLocalName(OperationInfo op, Method method, int paramNumber, 
> +                                       int curSize, String prefix) {
>          Class<?> impl = implInfo.getImplementorClass(); 
>          // try to grab the implementation class so we can read the debug symbols from it
>          if (impl == null) {
> @@ -223,7 +227,7 @@
>              }
>          }
>          
> -        return DefaultServiceConfiguration.createName(method, paramNumber, paramNumber, false, prefix);
> +        return DefaultServiceConfiguration.createName(method, paramNumber, curSize, false, prefix);
>      }
>  
>      private WebParam getWebParam(Method method, int parameter) {
> @@ -248,33 +252,38 @@
>  
>      @Override
>      public QName getOutParameterName(OperationInfo op, Method method, int paramNumber) {
> +        method = getDeclaredMethod(method);
> +        
>          if (paramNumber >= 0) {
> -            return getParameterName(op, method, paramNumber, "return");
> +            return getParameterName(op, method, paramNumber, op.getOutput().size(), "return");
>          } else {
>              WebResult webResult = getWebResult(method);
>  
> +            String tns = null;
> +            String local = null;
>              if (webResult != null) {
> -                String tns = webResult.targetNamespace();
> -                String local = webResult.name();
> -
> -                if (tns.length() == 0) {
> -                    tns = op.getName().getNamespaceURI();
> -                }
> +                tns = webResult.targetNamespace();
> +                local = webResult.name();
> +            }
>  
> -                if (local.length() == 0) {
> -                    local = getDefaultLocalName(op, method, paramNumber, "return");
> -                }
> +            if (tns == null || tns.length() == 0) {
> +                tns = op.getName().getNamespaceURI();
> +            }
>  
> -                return new QName(tns, local);
> +            if (local == null || local.length() == 0) {
> +                local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>              }
> +            
> +            return new QName(tns, local);
>          }
> -        return super.getOutParameterName(op, method, paramNumber);
>      }
>  
>      @Override
>      public QName getOutPartName(OperationInfo op, Method method, int paramNumber) {
> +        method = getDeclaredMethod(method);
> +        
>          if (paramNumber >= 0) {
> -            return getPartName(op, method, paramNumber, "return");
> +            return getPartName(op, method, paramNumber, op.getOutput().size(), "return");
>          } else {
>              WebResult webResult = getWebResult(method);
>              String tns = op.getName().getNamespaceURI();
> @@ -287,7 +296,7 @@
>                      local = webResult.name();
>                  }
>                  if (local.length() == 0) {
> -                    local = getDefaultLocalName(op, method, paramNumber, "return");
> +                    local = getDefaultLocalName(op, method, paramNumber, op.getOutput().size(), "return");
>                  }
>                  return new QName(tns, local);
>              } else {
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Mon Apr  9 16:05:51 2007
> @@ -51,6 +51,7 @@
>  import org.apache.cxf.service.factory.AbstractServiceConfiguration;
>  import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
>  import org.apache.cxf.service.factory.ServiceConstructionException;
> +import org.apache.cxf.service.invoker.Invoker;
>  import org.apache.cxf.service.model.BindingInfo;
>  import org.apache.cxf.service.model.EndpointInfo;
>  import org.apache.cxf.service.model.FaultInfo;
> @@ -85,6 +86,11 @@
>          this.serviceClass = implInfo.getEndpointClass();
>      }
>  
> +    @Override
> +    protected Invoker createInvoker() {
> +        return null;
> +    }
> +    
>      protected SimpleMethodDispatcher getMethodDispatcher() {
>          return methodDispatcher;
>      }
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/apache/cxf/jaxws/spring/jaxws.xsd Mon Apr  9 16:05:51 2007
> @@ -15,6 +15,7 @@
>        <xsd:complexContent>
>          <xsd:extension base="beans:identifiedType">
>            <xsd:sequence>
> +            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="implementor" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
> @@ -25,7 +26,7 @@
>              <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
>            </xsd:sequence>
>            <xsd:attribute name="address" type="xsd:string" />
> -          <xsd:attribute name="binding" type="xsd:string" />
> +          <xsd:attribute name="bindingUri" type="xsd:string" />
>            <xsd:attribute name="bus" type="xsd:string" />
>            <xsd:attribute name="implementor" type="xsd:string"/>
>            <xsd:attribute name="publish" type="xsd:boolean" default="true"/>
> @@ -71,6 +72,7 @@
>        <xsd:complexContent>
>          <xsd:extension base="beans:identifiedType">
>            <xsd:sequence>
> +            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
>              <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
> @@ -78,7 +80,7 @@
>              <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
>            </xsd:sequence>
>            <xsd:attribute name="address" type="xsd:string" />
> -          <xsd:attribute name="binding" type="xsd:string" />
> +          <xsd:attribute name="bindingUri" type="xsd:string" />
>            <xsd:attribute name="bus" type="xsd:string" />
>            <xsd:attribute name="endpointName" type="xsd:QName" />
>            <xsd:attribute name="password" type="xsd:string" />
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java Mon Apr  9 16:05:51 2007
> @@ -94,8 +94,9 @@
>          JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>          Client client = eih.getClient();
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
> +        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +        assertTrue("Unexpected value for property validating", 
> +                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>     
>          // System.out.println("endpoint interceptors");
>          List<Interceptor> interceptors = endpoint.getInInterceptors();
> @@ -160,28 +161,29 @@
>          JaxWsClientProxy eih = (JaxWsClientProxy)Proxy.getInvocationHandler(greeter);
>          Client client = eih.getClient();
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)client.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
> -        List<Interceptor> interceptors = endpoint.getInInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-in", 
> -                     findTestInterceptor(interceptors).getId());
> -        interceptors = endpoint.getOutInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-out", 
> -                     findTestInterceptor(interceptors).getId());
> -        interceptors = endpoint.getInFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
> -                     findTestInterceptor(interceptors).getId());
> -        interceptors = endpoint.getOutFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> -        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
> -                     findTestInterceptor(interceptors).getId());
> +//      The service shouldn't pick up the <jaxws:endpoint>...
> +//        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +//        // assertTrue("Unexpected value for property validating", endpoint.getValidating());
> +//        List<Interceptor> interceptors = endpoint.getInInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-in", 
> +//                     findTestInterceptor(interceptors).getId());
> +//        interceptors = endpoint.getOutInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-out", 
> +//                     findTestInterceptor(interceptors).getId());
> +//        interceptors = endpoint.getInFaultInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
> +//                     findTestInterceptor(interceptors).getId());
> +//        interceptors = endpoint.getOutFaultInterceptors();
> +//        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +//        assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
> +//                     findTestInterceptor(interceptors).getId());
>          
>          org.apache.cxf.service.ServiceImpl svc = (org.apache.cxf.service.ServiceImpl)endpoint.getService();
>          assertEquals("Unexpected bean name.", SERVICE_NAME.toString(), svc.getBeanName());
> -        interceptors = svc.getInInterceptors();
> +        List<Interceptor> interceptors = svc.getInInterceptors();
>          assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "service-in", 
>                       findTestInterceptor(interceptors).getId());
> @@ -226,8 +228,9 @@
>          ei.publish("http://localhost/greeter");
>          
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        assertTrue("Unexpected value for property validating", !endpoint.getEnableSchemaValidation());
> +        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +        assertTrue("Unexpected value for property validating", 
> +                   !Boolean.TRUE.equals(endpoint.get(Message.SCHEMA_VALIDATION_ENABLED)));
>     
>          List<Interceptor> interceptors = endpoint.getInInterceptors();
>          assertNull("Unexpected test interceptor", findTestInterceptor(interceptors));
> @@ -283,22 +286,23 @@
>          ei.publish("http://localhost/greeter");
>          
>          JaxWsEndpointImpl endpoint = (JaxWsEndpointImpl)ei.getEndpoint();
> -        assertEquals("Unexpected bean name", PORT_NAME.toString(), endpoint.getBeanName());
> -        assertTrue("Unexpected value for property validating", endpoint.getEnableSchemaValidation());
> +        assertEquals("Unexpected bean name", PORT_NAME.toString() + ".endpoint", endpoint.getBeanName());
> +        assertTrue("Unexpected value for property validating", 
> +                   Boolean.valueOf((String) ei.getProperties().get(Message.SCHEMA_VALIDATION_ENABLED)));
>          List<Interceptor> interceptors = endpoint.getInInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 5, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-in", 
>                       findTestInterceptor(interceptors).getId());
>          interceptors = endpoint.getOutInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 6, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-out", 
>                       findTestInterceptor(interceptors).getId());
>          interceptors = endpoint.getInFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 2, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
>                       findTestInterceptor(interceptors).getId());
>          interceptors = endpoint.getOutFaultInterceptors();
> -        assertEquals("Unexpected number of interceptors.", 1, interceptors.size());
> +        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
>          assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
>                       findTestInterceptor(interceptors).getId());
>          
>
> 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=526945&r1=526944&r2=526945
> ==============================================================================
> --- 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 Mon Apr  9 16:05:51 2007
> @@ -127,7 +127,7 @@
>              assertEquals(expeced, e.getMessage());
>          }
>      }
> -
> +    
>      @Test
>      public void testPublishEndpointPermission() throws Exception {
>          Hello service = new Hello();
>
> Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java?view=diff&rev=526945&r1=526944&r2=526945
> ==============================================================================
> --- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java (original)
> +++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/HeaderTest.java Mon Apr  9 16:05:51 2007
> @@ -26,7 +26,7 @@
>  
>  import org.apache.cxf.Bus;
>  import org.apache.cxf.frontend.ServerFactoryBean;
> -import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingInfoConfigBean;
> +import org.apache.cxf.jaxws.binding.soap.JaxWsSoapBindingConfiguration;
>  import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
>  import org.apache.cxf.service.Service;
>  import org.apache.cxf.service.model.MessagePartInfo;
> @@ -76,8 +76,10 @@
>          ServerFactoryBean svr = new ServerFactoryBean();
>          svr.setBus(bus);
>          svr.setServiceFactory(bean);
> +        svr.setServiceBean(new TestHeaderImpl());
>          svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPort");
> -        svr.setBindingConfig(new JaxWsSoapBindingInfoConfigBean(bean));
> +        svr.setBindingConfig(new JaxWsSoapBindingConfiguration(bean));
> +
>          
>          svr.create();
>          
>
>
>
>