applied patch from Jason Carreira for AMQ-853 with thanks!

git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@427542 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
James Strachan 2006-08-01 11:40:57 +00:00
parent 3badddac87
commit 5fbf634cfb
1 changed files with 10 additions and 2 deletions

View File

@ -24,6 +24,8 @@ import org.springframework.beans.BeansException;
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.apache.xbean.spring.context.ResourceXmlApplicationContext; import org.apache.xbean.spring.context.ResourceXmlApplicationContext;
import org.apache.xbean.spring.context.impl.URIEditor; import org.apache.xbean.spring.context.impl.URIEditor;
@ -39,7 +41,7 @@ import java.net.URI;
* *
* @version $Revision: 1.1 $ * @version $Revision: 1.1 $
*/ */
public class BrokerFactoryBean implements FactoryBean, InitializingBean, DisposableBean { public class BrokerFactoryBean implements FactoryBean, InitializingBean, DisposableBean, ApplicationContextAware {
private static final Log log = LogFactory.getLog(BrokerFactoryBean.class); private static final Log log = LogFactory.getLog(BrokerFactoryBean.class);
static { static {
@ -50,6 +52,7 @@ public class BrokerFactoryBean implements FactoryBean, InitializingBean, Disposa
private XBeanBrokerService broker; private XBeanBrokerService broker;
private boolean start = false; private boolean start = false;
private ResourceXmlApplicationContext context; private ResourceXmlApplicationContext context;
private ApplicationContext parentContext;
public BrokerFactoryBean() { public BrokerFactoryBean() {
} }
@ -70,11 +73,15 @@ public class BrokerFactoryBean implements FactoryBean, InitializingBean, Disposa
return true; return true;
} }
public void setApplicationContext(ApplicationContext parentContext) throws BeansException {
this.parentContext = parentContext;
}
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
if (config == null) { if (config == null) {
throw new IllegalArgumentException("config property must be set"); throw new IllegalArgumentException("config property must be set");
} }
context = new ResourceXmlApplicationContext(config); context = new ResourceXmlApplicationContext(config, parentContext);
try { try {
broker = (XBeanBrokerService) context.getBean("broker"); broker = (XBeanBrokerService) context.getBean("broker");
@ -131,4 +138,5 @@ public class BrokerFactoryBean implements FactoryBean, InitializingBean, Disposa
this.start = start; this.start = start;
} }
} }