cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrea Smyth <andrea.sm...@iona.com>
Subject 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/...
Date Tue, 10 Apr 2007 13:17:39 GMT
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();
>         
>
>
>  
>


Mime
View raw message