Author: dkulp
Date: Tue Mar 18 08:13:47 2008
New Revision: 638407
URL: http://svn.apache.org/viewvc?rev=638407&view=rev
Log:
Merged revisions 636821 via svnmerge from
https://svn.apache.org/repos/asf/incubator/cxf/trunk
........
r636821 | dkulp | 2008-03-13 14:27:48 -0400 (Thu, 13 Mar 2008) | 2 lines
[CXF-1293] Add ability to add handlers to jaxws:[client|endpoint|server]
stuff via spring config
........
Added:
incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/handlers/AddNumbersNoHandlers.java
- copied unchanged from r636821,
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/handlers/AddNumbersNoHandlers.java
incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/handlers/ModifyNumberHandler.java
- copied unchanged from r636821,
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/handlers/ModifyNumberHandler.java
incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/handlers/SpringConfiguredHandlerTest.java
- copied unchanged from r636821,
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/handlers/SpringConfiguredHandlerTest.java
incubator/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/handlers/beans.xml
- copied unchanged from r636821,
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/handlers/beans.xml
Modified:
incubator/cxf/branches/2.0.x-fixes/ (props changed)
incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFSpringTest.java
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/resources/schemas/jaxws.xsd
incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
Propchange: incubator/cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFSpringTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFSpringTest.java?rev=638407&r1=638406&r2=638407&view=diff
==============================================================================
---
incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFSpringTest.java
(original)
+++
incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFSpringTest.java
Tue Mar 18 08:13:47 2008
@@ -1,112 +1,115 @@
-/**
- * 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.test;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusException;
-import org.junit.After;
-import org.junit.Before;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.DefaultResourceLoader;
-import org.springframework.core.io.Resource;
-
-/**
- * Base class for tests that use a Spring bean specification to load up
components for testing.
- * Unlike the classes that come with Spring, it doesn't drag in the JUnit 3
hierarchy, and it
- * doesn't inject into the test itself from the beans.
- */
-public abstract class AbstractCXFSpringTest extends AbstractCXFTest {
- // subvert JUnit. We want to set up the application context ONCE, since it
- // is likely to include a Jetty or something else that we can't get rid of.
- private static GenericApplicationContext applicationContext;
- private DefaultResourceLoader resourceLoader;
-
- /**
- * Load up all the beans from the XML files returned by the
getConfigLocations method.
- * @throws Exception
- */
- protected AbstractCXFSpringTest() throws Exception {
- }
-
- @Before
- public void setupBeans() throws Exception {
- if (applicationContext != null) {
- return;
- }
- applicationContext = new GenericApplicationContext();
- resourceLoader = new
DefaultResourceLoader(getClass().getClassLoader());
- for (String beanDefinitionPath : getConfigLocations()) {
- XmlBeanDefinitionReader reader = new
XmlBeanDefinitionReader(applicationContext);
- Resource resource = resourceLoader.getResource(beanDefinitionPath);
- reader.loadBeanDefinitions(resource);
- }
- additionalSpringConfiguration(applicationContext);
- applicationContext.refresh();
- super.setUpBus();
- }
-
- @Before
- public void setUpBus() throws Exception {
- // override the super before method
- }
-
- public Bus createBus() throws BusException {
- return getBean(Bus.class, "cxf");
- }
-
- @After
- public void teardownBeans() {
- applicationContext.close();
- applicationContext.destroy();
- applicationContext = null;
- }
-
- /**
- * Return an array of resource specifications.
- * @see org.springframework.core.io.DefaultResourceLoader for the syntax.
- * @return array of resource specifications.
- */
- protected abstract String[] getConfigLocations();
-
- protected ApplicationContext getApplicationContext() {
- return applicationContext;
- }
-
- /**
- * subclasses may override this.
- * @param context
- * @throws Exception
- */
- protected abstract void
additionalSpringConfiguration(GenericApplicationContext context) throws
Exception;
-
- /**
- * Convenience method for the common case of retrieving a bean from the
context.
- * One would expect Spring to have this.
- * @param <T> Type of the bean object.
- * @param type Type of the bean object.
- * @param beanName ID of the bean.
- * @return The Bean.
- */
- protected <T> T getBean(Class<T> type, String beanName) {
- return type.cast(applicationContext.getBean(beanName));
- }
+/**
+ * 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.test;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusException;
+import org.junit.After;
+import org.junit.Before;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.GenericApplicationContext;
+import org.springframework.core.io.DefaultResourceLoader;
+import org.springframework.core.io.Resource;
+
+/**
+ * Base class for tests that use a Spring bean specification to load up
components for testing.
+ * Unlike the classes that come with Spring, it doesn't drag in the JUnit 3
hierarchy, and it
+ * doesn't inject into the test itself from the beans.
+ */
+public abstract class AbstractCXFSpringTest extends AbstractCXFTest {
+ // subvert JUnit. We want to set up the application context ONCE, since it
+ // is likely to include a Jetty or something else that we can't get rid of.
+ private static GenericApplicationContext applicationContext;
+ private DefaultResourceLoader resourceLoader;
+
+ /**
+ * Load up all the beans from the XML files returned by the
getConfigLocations method.
+ * @throws Exception
+ */
+ protected AbstractCXFSpringTest() {
+ }
+
+ @Before
+ public void setupBeans() throws Exception {
+ if (applicationContext != null) {
+ return;
+ }
+ applicationContext = new GenericApplicationContext();
+ resourceLoader = new
DefaultResourceLoader(getClass().getClassLoader());
+ for (String beanDefinitionPath : getConfigLocations()) {
+ XmlBeanDefinitionReader reader = new
XmlBeanDefinitionReader(applicationContext);
+ Resource resource = resourceLoader.getResource(beanDefinitionPath);
+ reader.loadBeanDefinitions(resource);
+ }
+ additionalSpringConfiguration(applicationContext);
+ applicationContext.refresh();
+ super.setUpBus();
+ }
+
+ @Before
+ public void setUpBus() throws Exception {
+ // override the super before method
+ }
+
+ public Bus createBus() throws BusException {
+ return getBean(Bus.class, "cxf");
+ }
+
+ @After
+ public void teardownBeans() {
+ applicationContext.close();
+ applicationContext.destroy();
+ applicationContext = null;
+ }
+
+ /**
+ * Return an array of resource specifications.
+ * @see org.springframework.core.io.DefaultResourceLoader for the syntax.
+ * @return array of resource specifications.
+ */
+ protected abstract String[] getConfigLocations();
+
+ protected ApplicationContext getApplicationContext() {
+ return applicationContext;
+ }
+
+ /**
+ * subclasses may override this.
+ * @param context
+ * @throws Exception
+ */
+ protected void additionalSpringConfiguration(GenericApplicationContext
context) throws Exception {
+ //default - do nothing
+ }
+
+ /**
+ * Convenience method for the common case of retrieving a bean from the
context.
+ * One would expect Spring to have this.
+ * @param <T> Type of the bean object.
+ * @param type Type of the bean object.
+ * @param beanName ID of the bean.
+ * @return The Bean.
+ */
+ protected <T> T getBean(Class<T> type, String beanName) {
+ return type.cast(applicationContext.getBean(beanName));
+ }
}
+
Modified:
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java?rev=638407&r1=638406&r2=638407&view=diff
==============================================================================
---
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
(original)
+++
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
Tue Mar 18 08:13:47 2008
@@ -29,6 +29,7 @@
import javax.xml.transform.Source;
import javax.xml.ws.Binding;
import javax.xml.ws.WebServicePermission;
+import javax.xml.ws.handler.Handler;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
@@ -85,6 +86,7 @@
private List<Interceptor> out = new
ModCountCopyOnWriteArrayList<Interceptor>();
private List<Interceptor> outFault = new
ModCountCopyOnWriteArrayList<Interceptor>();
private List<Interceptor> inFault = new
ModCountCopyOnWriteArrayList<Interceptor>();
+ private List<Handler> handlers = new
ModCountCopyOnWriteArrayList<Handler>();
public EndpointImpl(Object implementor) {
this(BusFactory.getThreadDefaultBus(), implementor);
@@ -293,7 +295,10 @@
if (executor != null) {
serverFactory.getServiceFactory().setExecutor(executor);
}
-
+ if (handlers.size() > 0) {
+ serverFactory.addHandlers(handlers);
+ }
+
configureObject(serverFactory);
server = serverFactory.create();
@@ -435,6 +440,13 @@
public void setOutFaultInterceptors(List<Interceptor> interceptors) {
outFault = interceptors;
+ }
+ public void setHandlers(List<Handler> h) {
+ handlers.clear();
+ handlers.addAll(h);
+ }
+ public List<Handler> getHandlers() {
+ return handlers;
}
public List<AbstractFeature> getFeatures() {
Modified:
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java?rev=638407&r1=638406&r2=638407&view=diff
==============================================================================
---
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
(original)
+++
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
Tue Mar 18 08:13:47 2008
@@ -18,25 +18,80 @@
*/
package org.apache.cxf.jaxws;
+import java.lang.reflect.Proxy;
+import java.util.ArrayList;
+import java.util.List;
+
import javax.xml.ws.BindingProvider;
+import javax.xml.ws.handler.Handler;
+import org.apache.cxf.common.injection.ResourceInjector;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.frontend.ClientProxyFactoryBean;
+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.JaxWsServiceFactoryBean;
+import org.apache.cxf.resource.DefaultResourceManager;
+import org.apache.cxf.resource.ResourceManager;
+import org.apache.cxf.resource.ResourceResolver;
public class JaxWsProxyFactoryBean extends ClientProxyFactoryBean {
+ List<Handler> handlers = new ArrayList<Handler>();
+
public JaxWsProxyFactoryBean() {
super(new JaxWsClientFactoryBean());
}
+ public void setHandlers(List<Handler> h) {
+ handlers.clear();
+ handlers.addAll(h);
+ }
+ public List<Handler> getHandlers() {
+ return handlers;
+ }
+
+
@Override
protected ClientProxy clientClientProxy(Client c) {
- return new JaxWsClientProxy(c, ((JaxWsEndpointImpl)
c.getEndpoint()).getJaxwsBinding());
+ JaxWsClientProxy cp = new JaxWsClientProxy(c,
+
((JaxWsEndpointImpl)c.getEndpoint()).getJaxwsBinding());
+ buildHandlerChain(cp);
+ return cp;
}
protected Class[] getImplementingClasses() {
Class cls = getClientFactoryBean().getServiceClass();
return new Class[] {cls, BindingProvider.class};
+ }
+
+ private void buildHandlerChain(JaxWsClientProxy cp) {
+ AnnotationHandlerChainBuilder builder = new
AnnotationHandlerChainBuilder();
+ JaxWsServiceFactoryBean sf =
(JaxWsServiceFactoryBean)getServiceFactory();
+ List<Handler> chain = new ArrayList<Handler>(handlers);
+ chain.addAll(builder.buildHandlerChainFromClass(sf.getServiceClass(),
+
sf.getEndpointInfo().getName()));
+
+
+
+ if (!chain.isEmpty()) {
+ ResourceManager resourceManager =
getBus().getExtension(ResourceManager.class);
+ List<ResourceResolver> resolvers =
resourceManager.getResourceResolvers();
+ resourceManager = new DefaultResourceManager(resolvers);
+ resourceManager.addResourceResolver(new
WebServiceContextResourceResolver());
+ ResourceInjector injector = new ResourceInjector(resourceManager);
+ for (Handler h : chain) {
+ if (Proxy.isProxyClass(h.getClass()) && getServiceClass() !=
null) {
+ injector.inject(h, getServiceClass());
+ injector.construct(h, getServiceClass());
+ } else {
+ injector.inject(h);
+ injector.construct(h);
+ }
+ }
+ }
+
+ cp.getBinding().setHandlerChain(chain);
}
}
Modified:
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java?rev=638407&r1=638406&r2=638407&view=diff
==============================================================================
---
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
(original)
+++
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsServerFactoryBean.java
Tue Mar 18 08:13:47 2008
@@ -21,6 +21,7 @@
import java.lang.reflect.Proxy;
+import java.util.ArrayList;
import java.util.List;
import javax.xml.ws.WebServiceException;
@@ -58,6 +59,7 @@
*/
public class JaxWsServerFactoryBean extends ServerFactoryBean {
protected boolean doInit;
+ protected List<Handler> handlers = new ArrayList<Handler>();
public JaxWsServerFactoryBean() {
this(new JaxWsServiceFactoryBean());
@@ -71,6 +73,17 @@
setBindingConfig(defConfig);
doInit = true;
}
+
+ public void setHandlers(List<Handler> h) {
+ handlers.clear();
+ handlers.addAll(h);
+ }
+ public void addHandlers(List<Handler> h) {
+ handlers.addAll(h);
+ }
+ public List<Handler> getHandlers() {
+ return handlers;
+ }
/**
* Add annotationed Interceptors and Features to the Endpoint
@@ -171,13 +184,14 @@
*/
private void buildHandlerChain() {
AnnotationHandlerChainBuilder builder = new
AnnotationHandlerChainBuilder();
-
- List<Handler> chain =
builder.buildHandlerChainFromClass(getServiceBeanClass(),
-
getEndpointName());
+ JaxWsServiceFactoryBean sf =
(JaxWsServiceFactoryBean)getServiceFactory();
+ List<Handler> chain = new ArrayList<Handler>(handlers);
+
+ chain.addAll(builder.buildHandlerChainFromClass(getServiceBeanClass(),
+
sf.getEndpointInfo().getName()));
for (Handler h : chain) {
injectResources(h);
}
-
((JaxWsEndpointImpl)getServer().getEndpoint()).getJaxwsBinding().setHandlerChain(chain);
}
Modified:
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?rev=638407&r1=638406&r2=638407&view=diff
==============================================================================
---
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
(original)
+++
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
Tue Mar 18 08:13:47 2008
@@ -107,7 +107,8 @@
setFirstChildAsProperty((Element) n, ctx, bean,
"bindingConfig");
} else if ("inInterceptors".equals(name) ||
"inFaultInterceptors".equals(name)
|| "outInterceptors".equals(name) ||
"outFaultInterceptors".equals(name)
- || "features".equals(name) ||
"schemaLocations".equals(name)) {
+ || "features".equals(name) ||
"schemaLocations".equals(name)
+ || "handlers".equals(name)) {
List list = ctx.getDelegate().parseListElement((Element)
n, bean.getBeanDefinition());
bean.addPropertyValue(name, list);
} else if (IMPLEMENTOR.equals(name)) {
Modified:
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/resources/schemas/jaxws.xsd
URL:
http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/resources/schemas/jaxws.xsd?rev=638407&r1=638406&r2=638407&view=diff
==============================================================================
---
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/resources/schemas/jaxws.xsd
(original)
+++
incubator/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/resources/schemas/jaxws.xsd
Tue Mar 18 08:13:47 2008
@@ -38,6 +38,7 @@
<xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+ <xsd:element name="handlers" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="implementor" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="inInterceptors" type="xsd:anyType"
minOccurs="0"/>
<xsd:element name="inFaultInterceptors" type="xsd:anyType"
minOccurs="0"/>
@@ -73,6 +74,7 @@
<xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+ <xsd:element name="handlers" 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="invoker" type="xsd:anyType" minOccurs="0"/>
@@ -107,6 +109,7 @@
<xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+ <xsd:element name="handlers" 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"/>
Modified:
incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java?rev=638407&r1=638406&r2=638407&view=diff
==============================================================================
---
incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
(original)
+++
incubator/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
Tue Mar 18 08:13:47 2008
@@ -72,7 +72,7 @@
setFirstChildAsProperty(e, ctx, bean, "bindingConfig");
} else if ("inInterceptors".equals(name) ||
"inFaultInterceptors".equals(name)
|| "outInterceptors".equals(name) ||
"outFaultInterceptors".equals(name)
- || "features".equals(name)) {
+ || "features".equals(name) || "handlers".equals(name)) {
List list = ctx.getDelegate().parseListElement(e,
bean.getBeanDefinition());
bean.addPropertyValue(name, list);
} else {