mirror of https://github.com/apache/activemq.git
https://issues.apache.org/activemq/browse/AMQ-2574 - stop osgi bundle on application context close
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@901171 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e5d134d4c0
commit
0a3c0e5300
|
@ -97,6 +97,11 @@
|
|||
<artifactId>org.osgi.core</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.osgi</groupId>
|
||||
<artifactId>spring-osgi-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.activemq</groupId>
|
||||
|
|
|
@ -20,12 +20,16 @@ import java.io.IOException;
|
|||
|
||||
import org.apache.activemq.broker.BrokerService;
|
||||
import org.apache.activemq.usage.SystemUsage;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.osgi.framework.BundleException;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext;
|
||||
|
||||
/**
|
||||
* An ActiveMQ Message Broker. It consists of a number of transport
|
||||
|
@ -42,7 +46,8 @@ import org.springframework.context.ConfigurableApplicationContext;
|
|||
* @version $Revision: 1.1 $
|
||||
*/
|
||||
public class XBeanBrokerService extends BrokerService implements InitializingBean, DisposableBean, ApplicationContextAware {
|
||||
|
||||
private static final transient Log LOG = LogFactory.getLog(XBeanBrokerService.class);
|
||||
|
||||
private boolean start = true;
|
||||
private ApplicationContext applicationContext = null;
|
||||
private boolean destroyApplicationContextOnShutdown = false;
|
||||
|
@ -61,6 +66,14 @@ public class XBeanBrokerService extends BrokerService implements InitializingBea
|
|||
if (applicationContext instanceof ConfigurableApplicationContext) {
|
||||
((ConfigurableApplicationContext) applicationContext).close();
|
||||
}
|
||||
if (applicationContext instanceof OsgiBundleXmlApplicationContext){
|
||||
try {
|
||||
((OsgiBundleXmlApplicationContext)applicationContext).getBundle().stop();
|
||||
} catch (BundleException e) {
|
||||
LOG.info("Error stopping OSGi bundle " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
6
pom.xml
6
pom.xml
|
@ -37,6 +37,7 @@
|
|||
<!-- base url for site deployment. See distribution management for full url. Override this in settings.xml for staging -->
|
||||
<staging.siteURL>scp://people.apache.org/x1/www/activemq.apache.org</staging.siteURL>
|
||||
<spring-version>2.5.6</spring-version>
|
||||
<spring-osgi-version>1.2.1</spring-osgi-version>
|
||||
<activesoap-version>1.3</activesoap-version>
|
||||
<annogen-version>0.1.0</annogen-version>
|
||||
<ant-version>1.7.1</ant-version>
|
||||
|
@ -582,6 +583,11 @@
|
|||
<artifactId>spring-oxm-tiger</artifactId>
|
||||
<version>${spring-oxm-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.osgi</groupId>
|
||||
<artifactId>spring-osgi-core</artifactId>
|
||||
<version>${spring-osgi-version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Optional Derby support-->
|
||||
<dependency>
|
||||
|
|
Loading…
Reference in New Issue