Author: dkulp
Date: Thu Jun 12 19:07:49 2008
New Revision: 667315
URL: http://svn.apache.org/viewvc?rev=667315&view=rev
Log:
Merged revisions 667313 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r667313 | dkulp | 2008-06-12 22:02:03 -0400 (Thu, 12 Jun 2008) | 2 lines
[CXF-1633] If no bus found in the application context so the default bus
needs to be used, we'll wire the application context into the Configurer in the
default bus so configuration will be picked up.
........
Modified:
cxf/branches/2.0.x-fixes/ (props changed)
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusWiringBeanFactoryPostProcessor.java
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineFactoryBeanDefinitionParser.java
Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusWiringBeanFactoryPostProcessor.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusWiringBeanFactoryPostProcessor.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusWiringBeanFactoryPostProcessor.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusWiringBeanFactoryPostProcessor.java
Thu Jun 12 19:07:49 2008
@@ -26,8 +26,10 @@
import org.apache.cxf.Bus;
import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.configuration.Configurer;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
import org.apache.cxf.configuration.spring.BusWiringType;
+import org.apache.cxf.configuration.spring.ConfigurerImpl;
import org.apache.cxf.helpers.CastUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
@@ -36,6 +38,8 @@
import org.springframework.beans.factory.config.ConstructorArgumentValues;
import
org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder;
import org.springframework.beans.factory.config.RuntimeBeanReference;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ConfigurableApplicationContext;
/**
* BeanFactoryPostProcessor that looks for any bean definitions that have the
@@ -51,25 +55,34 @@
public class BusWiringBeanFactoryPostProcessor implements
BeanFactoryPostProcessor {
private static final Logger LOG =
LogUtils.getL7dLogger(BusWiringBeanFactoryPostProcessor.class);
+ Bus bus;
+
+ public BusWiringBeanFactoryPostProcessor() {
+ }
+ public BusWiringBeanFactoryPostProcessor(Bus b) {
+ bus = b;
+ }
public void postProcessBeanFactory(ConfigurableListableBeanFactory
factory) throws BeansException {
+ Object inject = bus;
if (factory.containsBeanDefinition(Bus.DEFAULT_BUS_ID)) {
- for (String beanName : factory.getBeanDefinitionNames()) {
- LOG.fine("Checking bean " + beanName);
- BeanDefinition beanDefinition =
factory.getBeanDefinition(beanName);
- if (BusWiringType.PROPERTY == beanDefinition
-
.getAttribute(AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE)) {
- LOG.fine("Found " +
AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE + " attribute "
- + BusWiringType.PROPERTY + " on bean " +
beanName);
- beanDefinition.getPropertyValues()
- .addPropertyValue("bus", new
RuntimeBeanReference(Bus.DEFAULT_BUS_ID));
- } else if (BusWiringType.CONSTRUCTOR == beanDefinition
-
.getAttribute(AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE)) {
- LOG.fine("Found " +
AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE + " attribute "
- + BusWiringType.CONSTRUCTOR + " on bean " +
beanName);
- ConstructorArgumentValues constructorArgs =
beanDefinition.getConstructorArgumentValues();
- insertConstructorArg(constructorArgs, new
RuntimeBeanReference(Bus.DEFAULT_BUS_ID));
- }
+ inject = new RuntimeBeanReference(Bus.DEFAULT_BUS_ID);
+ }
+ for (String beanName : factory.getBeanDefinitionNames()) {
+ LOG.fine("Checking bean " + beanName);
+ BeanDefinition beanDefinition =
factory.getBeanDefinition(beanName);
+ if (BusWiringType.PROPERTY == beanDefinition
+
.getAttribute(AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE)) {
+ LOG.fine("Found " +
AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE + " attribute "
+ + BusWiringType.PROPERTY + " on bean " + beanName);
+ beanDefinition.getPropertyValues()
+ .addPropertyValue("bus", inject);
+ } else if (BusWiringType.CONSTRUCTOR == beanDefinition
+
.getAttribute(AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE)) {
+ LOG.fine("Found " +
AbstractBeanDefinitionParser.WIRE_BUS_ATTRIBUTE + " attribute "
+ + BusWiringType.CONSTRUCTOR + " on bean " + beanName);
+ ConstructorArgumentValues constructorArgs =
beanDefinition.getConstructorArgumentValues();
+ insertConstructorArg(constructorArgs, inject);
}
}
}
@@ -98,4 +111,15 @@
}
constructorArgs.addIndexedArgumentValue(0, valueToInsert);
}
+
+ public static void updateBusReferencesInContext(Bus bus,
ApplicationContext ctx) {
+ Configurer conf = bus.getExtension(Configurer.class);
+ if (conf instanceof ConfigurerImpl) {
+ ((ConfigurerImpl)conf).addApplicationContext(ctx);
+ }
+ if (ctx instanceof ConfigurableApplicationContext) {
+ ConfigurableApplicationContext cctx =
(ConfigurableApplicationContext)ctx;
+ new
BusWiringBeanFactoryPostProcessor(bus).postProcessBeanFactory(cctx.getBeanFactory());
+ }
+ }
}
Modified:
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
Thu Jun 12 19:07:49 2008
@@ -22,6 +22,8 @@
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -44,7 +46,7 @@
private static final Logger LOG =
LogUtils.getL7dLogger(ConfigurerImpl.class);
- private ApplicationContext appContext;
+ private Set<ApplicationContext> appContexts;
private final Map<String, String> wildCardBeanDefinitions = new
HashMap<String, String>();
public ConfigurerImpl() {
@@ -56,24 +58,26 @@
}
private void initWildcardDefinitionMap() {
- if (null != appContext) {
- for (String n : appContext.getBeanDefinitionNames()) {
- if (isWildcardBeanName(n)) {
- AutowireCapableBeanFactory bf =
appContext.getAutowireCapableBeanFactory();
- BeanDefinitionRegistry bdr = (BeanDefinitionRegistry) bf;
- BeanDefinition bd = bdr.getBeanDefinition(n);
- String className = bd.getBeanClassName();
- if (null != className) {
- if (!wildCardBeanDefinitions.containsKey(className)) {
- wildCardBeanDefinitions.put(className, n);
+ if (null != appContexts) {
+ for (ApplicationContext appContext : appContexts) {
+ for (String n : appContext.getBeanDefinitionNames()) {
+ if (isWildcardBeanName(n)) {
+ AutowireCapableBeanFactory bf =
appContext.getAutowireCapableBeanFactory();
+ BeanDefinitionRegistry bdr = (BeanDefinitionRegistry)
bf;
+ BeanDefinition bd = bdr.getBeanDefinition(n);
+ String className = bd.getBeanClassName();
+ if (null != className) {
+ if
(!wildCardBeanDefinitions.containsKey(className)) {
+ wildCardBeanDefinitions.put(className, n);
+ } else {
+ LogUtils.log(LOG, Level.WARNING,
"ONE_WILDCARD_BEAN_ID_PER_CLASS_MSG",
+ new
String[]{wildCardBeanDefinitions.get(className),
+ className,
+ n});
+ }
} else {
- LogUtils.log(LOG, Level.WARNING,
"ONE_WILDCARD_BEAN_ID_PER_CLASS_MSG",
- new
String[]{wildCardBeanDefinitions.get(className),
- className,
- n});
+ LogUtils.log(LOG, Level.WARNING,
"WILDCARD_BEAN_ID_WITH_NO_CLASS_MSG", n);
}
- } else {
- LogUtils.log(LOG, Level.WARNING,
"WILDCARD_BEAN_ID_WITH_NO_CLASS_MSG", n);
}
}
}
@@ -84,9 +88,9 @@
configureBean(null, beanInstance);
}
- public void configureBean(String bn, Object beanInstance) {
+ public synchronized void configureBean(String bn, Object beanInstance) {
- if (null == appContext) {
+ if (null == appContexts) {
return;
}
@@ -110,6 +114,12 @@
}
});
+ for (ApplicationContext appContext : appContexts) {
+ if (appContext.containsBean(bn)) {
+
this.setBeanFactory(appContext.getAutowireCapableBeanFactory());
+ }
+ }
+
try {
super.configureBean(beanInstance);
if (LOG.isLoggable(Level.FINE)) {
@@ -177,9 +187,15 @@
}
public final void setApplicationContext(ApplicationContext ac) {
- appContext = ac;
- setBeanFactory(appContext.getAutowireCapableBeanFactory());
- initWildcardDefinitionMap();
+ appContexts = new CopyOnWriteArraySet<ApplicationContext>();
+ addApplicationContext(ac);
+ setBeanFactory(ac.getAutowireCapableBeanFactory());
+ }
+ public final void addApplicationContext(ApplicationContext ac) {
+ if (!appContexts.contains(ac)) {
+ appContexts.add(ac);
+ initWildcardDefinitionMap();
+ }
}
public Class<?> getRegistrationType() {
Modified:
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java
Thu Jun 12 19:07:49 2008
@@ -126,6 +126,13 @@
this(bus, implementor, (String) null);
}
+ public void setBus(Bus b) {
+ bus = b;
+ }
+ public Bus getBus() {
+ return bus;
+ }
+
public Binding getBinding() {
return ((JaxWsEndpointImpl) getEndpoint()).getJaxwsBinding();
}
Modified:
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
Thu Jun 12 19:07:49 2008
@@ -27,6 +27,7 @@
import org.apache.cxf.common.injection.ResourceInjector;
import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.frontend.ClientFactoryBean;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.frontend.ClientProxyFactoryBean;
import org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
@@ -44,6 +45,9 @@
public JaxWsProxyFactoryBean() {
super(new JaxWsClientFactoryBean());
}
+ public JaxWsProxyFactoryBean(ClientFactoryBean fact) {
+ super(fact);
+ }
public void setHandlers(List<Handler> h) {
handlers.clear();
Modified:
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/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/EndpointDefinitionParser.java
Thu Jun 12 19:07:49 2008
@@ -29,16 +29,22 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
import org.apache.cxf.configuration.spring.BusWiringType;
import org.apache.cxf.jaxws.EndpointImpl;
+import org.springframework.beans.BeansException;
import org.springframework.beans.FatalBeanException;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
@@ -47,7 +53,7 @@
public EndpointDefinitionParser() {
super();
- setBeanClass(EndpointImpl.class);
+ setBeanClass(SpringEndpointImpl.class);
}
@Override
@@ -144,10 +150,31 @@
throws BeanDefinitionStoreException {
String id = super.resolveId(elem, definition, ctx);
if (StringUtils.isEmpty(id)) {
- id = getBeanClass().getName() + "--" + definition.hashCode();
+ id = EndpointImpl.class.getName() + "--" + definition.hashCode();
}
return id;
}
+
+
+ public static class SpringEndpointImpl extends EndpointImpl
+ implements ApplicationContextAware {
+
+ public SpringEndpointImpl(Object implementor) {
+ super((Bus)null, implementor);
+ }
+ public SpringEndpointImpl(Bus bus, Object implementor) {
+ super(bus, implementor);
+ }
+
+
+ public void setApplicationContext(ApplicationContext ctx) throws
BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ }
+ }
+ }
}
Modified:
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
Thu Jun 12 19:07:49 2008
@@ -18,14 +18,22 @@
*/
package org.apache.cxf.jaxws.spring;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
+import org.apache.cxf.frontend.ClientFactoryBean;
import org.apache.cxf.frontend.spring.ClientProxyFactoryBeanDefinitionParser;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+
public class JaxWsProxyFactoryBeanDefinitionParser extends
ClientProxyFactoryBeanDefinitionParser {
@Override
protected Class getFactoryClass() {
- return JaxWsProxyFactoryBean.class;
+ return JAXWSSpringClientProxyFactoryBean.class;
}
@Override
@@ -33,4 +41,23 @@
return ".jaxws-client";
}
+
+ public static class JAXWSSpringClientProxyFactoryBean extends
JaxWsProxyFactoryBean
+ implements ApplicationContextAware {
+
+ public JAXWSSpringClientProxyFactoryBean() {
+ super();
+ }
+ public JAXWSSpringClientProxyFactoryBean(ClientFactoryBean fact) {
+ super(fact);
+ }
+
+ public void setApplicationContext(ApplicationContext ctx) throws
BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ }
+ }
+ }
}
Modified:
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
Thu Jun 12 19:07:49 2008
@@ -18,10 +18,17 @@
*/
package org.apache.cxf.jaxws.spring;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
import org.apache.cxf.configuration.spring.StringBeanDefinitionParser;
import org.apache.cxf.frontend.spring.ServerFactoryBeanDefinitionParser;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
+import org.springframework.beans.BeansException;
import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
public class NamespaceHandler extends NamespaceHandlerSupport {
public void init() {
@@ -33,4 +40,23 @@
parser.setBeanClass(JaxWsServerFactoryBean.class);
registerBeanDefinitionParser("server", parser);
}
+
+ public static class SpringServerFactoryBean extends JaxWsServerFactoryBean
+ implements ApplicationContextAware {
+
+ public SpringServerFactoryBean() {
+ super();
+ }
+ public SpringServerFactoryBean(JaxWsServiceFactoryBean fact) {
+ super(fact);
+ }
+
+ public void setApplicationContext(ApplicationContext ctx) throws
BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ }
+ }
+ }
}
Modified:
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
Thu Jun 12 19:07:49 2008
@@ -158,7 +158,7 @@
boolean found = false;
String[] names = ctx.getBeanNamesForType(EndpointImpl.class);
for (String n : names) {
- if (n.startsWith(EndpointImpl.class.getName())) {
+ if (n.startsWith(EndpointImpl.class.getPackage().getName())) {
found = true;
}
}
Modified:
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/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
Thu Jun 12 19:07:49 2008
@@ -25,10 +25,17 @@
import org.w3c.dom.Element;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
import org.apache.cxf.configuration.spring.AbstractFactoryBeanDefinitionParser;
+import org.apache.cxf.frontend.ClientFactoryBean;
import org.apache.cxf.frontend.ClientProxyFactoryBean;
+import org.springframework.beans.BeansException;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
public class ClientProxyFactoryBeanDefinitionParser
extends AbstractFactoryBeanDefinitionParser {
@@ -40,7 +47,7 @@
@Override
protected Class getFactoryClass() {
- return ClientProxyFactoryBean.class;
+ return SpringClientProxyFactoryBean.class;
}
@Override
@@ -79,4 +86,23 @@
setFirstChildAsProperty(e, ctx, bean, name);
}
}
+
+ public static class SpringClientProxyFactoryBean extends
ClientProxyFactoryBean
+ implements ApplicationContextAware {
+
+ public SpringClientProxyFactoryBean() {
+ super();
+ }
+ public SpringClientProxyFactoryBean(ClientFactoryBean fact) {
+ super(fact);
+ }
+
+ public void setApplicationContext(ApplicationContext ctx) throws
BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ }
+ }
+ }
}
Modified:
cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
Thu Jun 12 19:07:49 2008
@@ -25,14 +25,21 @@
import org.w3c.dom.Element;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
import org.apache.cxf.frontend.ServerFactoryBean;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
+import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
public class ServerFactoryBeanDefinitionParser extends
AbstractBeanDefinitionParser {
@@ -40,7 +47,7 @@
public ServerFactoryBeanDefinitionParser() {
super();
- setBeanClass(ServerFactoryBean.class);
+ setBeanClass(SpringServerFactoryBean.class);
}
@Override
@@ -103,4 +110,22 @@
return true;
}
+ public static class SpringServerFactoryBean extends ServerFactoryBean
+ implements ApplicationContextAware {
+
+ public SpringServerFactoryBean() {
+ super();
+ }
+ public SpringServerFactoryBean(ReflectionServiceFactoryBean fact) {
+ super(fact);
+ }
+
+ public void setApplicationContext(ApplicationContext ctx) throws
BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ }
+ }
+ }
}
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
Thu Jun 12 19:07:49 2008
@@ -120,7 +120,7 @@
/**
* This constructor is called by the JettyHTTPServerEngineFactory.
*/
- JettyHTTPServerEngine(
+ public JettyHTTPServerEngine(
JettyHTTPServerEngineFactory fac,
Bus bus,
int port) {
@@ -148,6 +148,10 @@
bus = b;
}
+ public Bus getBus() {
+ return bus;
+ }
+
/**
* Returns the protocol "http" or "https" for which this engine
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
Thu Jun 12 19:07:49 2008
@@ -92,6 +92,10 @@
this.bus = bus;
}
+ public Bus getBus() {
+ return bus;
+ }
+
@PostConstruct
public void registerWithBus() {
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
Thu Jun 12 19:07:49 2008
@@ -26,20 +26,27 @@
import org.w3c.dom.NodeList;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
import org.apache.cxf.configuration.jsse.TLSServerParameters;
import org.apache.cxf.configuration.jsse.spring.TLSServerParametersConfig;
import org.apache.cxf.configuration.security.TLSServerParametersType;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
import org.apache.cxf.configuration.spring.BusWiringType;
import org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine;
+import org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory;
import org.apache.cxf.transport.http_jetty.ThreadingParameters;
import
org.apache.cxf.transports.http_jetty.configuration.TLSServerParametersIdentifiedType;
import
org.apache.cxf.transports.http_jetty.configuration.ThreadingParametersIdentifiedType;
import
org.apache.cxf.transports.http_jetty.configuration.ThreadingParametersType;
+import org.springframework.beans.BeansException;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.PropertyValue;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
public class JettyHTTPServerEngineBeanDefinitionParser extends
AbstractBeanDefinitionParser {
@@ -193,5 +200,30 @@
protected Class getBeanClass(Element arg0) {
return JettyHTTPServerEngine.class;
}
+
+ public static class SpringJettyHTTPServerEngine extends
JettyHTTPServerEngine
+ implements ApplicationContextAware {
+
+ public SpringJettyHTTPServerEngine(
+ JettyHTTPServerEngineFactory fac,
+ Bus bus,
+ int port) {
+ super(fac, bus, port);
+ }
+
+ public SpringJettyHTTPServerEngine() {
+ super();
+ }
+
+
+ public void setApplicationContext(ApplicationContext ctx) throws
BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ }
+ }
+ }
+
}
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineFactoryBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineFactoryBeanDefinitionParser.java?rev=667315&r1=667314&r2=667315&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineFactoryBeanDefinitionParser.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineFactoryBeanDefinitionParser.java
Thu Jun 12 19:07:49 2008
@@ -29,6 +29,9 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.configuration.jsse.TLSServerParameters;
import org.apache.cxf.configuration.jsse.spring.TLSServerParametersConfig;
@@ -42,9 +45,12 @@
import
org.apache.cxf.transports.http_jetty.configuration.ThreadingParametersType;
+import org.springframework.beans.BeansException;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.ManagedList;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
public class JettyHTTPServerEngineFactoryBeanDefinitionParser
extends AbstractBeanDefinitionParser {
@@ -159,7 +165,24 @@
@Override
protected Class getBeanClass(Element arg0) {
- return JettyHTTPServerEngineFactory.class;
+ return SpringJettyHTTPServerEngineFactory.class;
+ }
+
+ public static class SpringJettyHTTPServerEngineFactory extends
JettyHTTPServerEngineFactory
+ implements ApplicationContextAware {
+
+ public SpringJettyHTTPServerEngineFactory() {
+ super();
+ }
+
+ public void setApplicationContext(ApplicationContext ctx) throws
BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+
BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ registerWithBus();
+ }
+ }
}
}