mirror of https://github.com/apache/activemq.git
AMQ-2601 Make amq more blueprint-friendly, move away from spring lifecycle interfaces
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@908182 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f585d881bc
commit
09fab742ff
|
@ -49,6 +49,10 @@
|
|||
<groupId>${pom.groupId}</groupId>
|
||||
<artifactId>kahadb</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-annotation_1.0_spec</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -78,6 +82,7 @@
|
|||
<include>org.apache.geronimo.specs:geronimo-jms_1.1_spec</include>
|
||||
<include>org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec</include>
|
||||
<include>org.apache.geronimo.specs:geronimo-j2ee-management_1.0_spec</include>
|
||||
<include>org.apache.geronimo.specs:geronimo-annotation_1.0_spec</include>
|
||||
<include>commons-logging:commons-logging-api</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
|
|
|
@ -106,6 +106,11 @@
|
|||
<groupId>${pom.groupId}</groupId>
|
||||
<artifactId>activemq-pool</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-annotation_1.0_spec</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- testing helpers -->
|
||||
<dependency>
|
||||
|
|
|
@ -19,6 +19,8 @@ package org.apache.activemq.camel.component;
|
|||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
import javax.jms.Connection;
|
||||
import javax.jms.ConnectionFactory;
|
||||
|
||||
|
@ -37,15 +39,14 @@ import org.apache.camel.component.jms.JmsQueueEndpoint;
|
|||
import org.apache.camel.util.ObjectHelper;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* A helper bean which populates a {@link CamelContext} with ActiveMQ Queue endpoints
|
||||
*
|
||||
* @version $Revision: 1.1 $
|
||||
* @org.apache.xbean.XBean
|
||||
*/
|
||||
public class CamelEndpointLoader implements InitializingBean, DisposableBean, CamelContextAware {
|
||||
public class CamelEndpointLoader implements CamelContextAware {
|
||||
private static final transient Log LOG = LogFactory.getLog(CamelEndpointLoader.class);
|
||||
private CamelContext camelContext;
|
||||
private EnhancedConnection connection;
|
||||
|
@ -59,6 +60,12 @@ public class CamelEndpointLoader implements InitializingBean, DisposableBean, Ca
|
|||
this.camelContext = camelContext;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
ObjectHelper.notNull(camelContext, "camelContext");
|
||||
if (connection == null) {
|
||||
|
@ -112,6 +119,13 @@ public class CamelEndpointLoader implements InitializingBean, DisposableBean, Ca
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.DestroyMethod
|
||||
*/
|
||||
@PreDestroy
|
||||
public void destroy() throws Exception {
|
||||
if (connection != null) {
|
||||
connection.close();
|
||||
|
|
|
@ -135,6 +135,11 @@
|
|||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-annotation_1.0_spec</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-jacc_1.1_spec</artifactId>
|
||||
|
|
|
@ -31,6 +31,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
import javax.management.MalformedObjectNameException;
|
||||
import javax.management.ObjectName;
|
||||
import org.apache.activemq.ActiveMQConnectionMetaData;
|
||||
|
@ -99,6 +102,7 @@ import org.apache.commons.logging.LogFactory;
|
|||
* which can be used to configure the broker as its lazily created.
|
||||
*
|
||||
* @version $Revision: 1.1 $
|
||||
* @org.apache.xbean.XBean
|
||||
*/
|
||||
public class BrokerService implements Service {
|
||||
protected CountDownLatch slaveStartSignal = new CountDownLatch(1);
|
||||
|
@ -432,6 +436,13 @@ public class BrokerService implements Service {
|
|||
|
||||
// Service interface
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org. apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void start() throws Exception {
|
||||
if (stopped.get() || !started.compareAndSet(false, true)) {
|
||||
// lets just ignore redundant start() calls
|
||||
|
@ -507,6 +518,12 @@ public class BrokerService implements Service {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache .xbean.DestroyMethod
|
||||
*/
|
||||
@PreDestroy
|
||||
public void stop() throws Exception {
|
||||
if (!started.get()) {
|
||||
return;
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
*/
|
||||
package org.apache.activemq.broker.util;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
import javax.jms.Connection;
|
||||
import javax.jms.ConnectionFactory;
|
||||
import javax.jms.Destination;
|
||||
|
@ -23,16 +25,12 @@ import javax.jms.ExceptionListener;
|
|||
import javax.jms.JMSException;
|
||||
import javax.jms.MessageConsumer;
|
||||
import javax.jms.Session;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
import org.apache.activemq.Service;
|
||||
import org.apache.activemq.advisory.AdvisorySupport;
|
||||
import org.apache.activemq.util.ServiceStopper;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.FactoryBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* An agent which listens to commands on a JMS destination
|
||||
|
@ -40,7 +38,7 @@ import org.springframework.beans.factory.InitializingBean;
|
|||
* @version $Revision$
|
||||
* @org.apache.xbean.XBean
|
||||
*/
|
||||
public class CommandAgent implements Service, InitializingBean, DisposableBean, FactoryBean, ExceptionListener {
|
||||
public class CommandAgent implements Service, ExceptionListener {
|
||||
private static final Log LOG = LogFactory.getLog(CommandAgent.class);
|
||||
|
||||
private String brokerUrl = "vm://localhost";
|
||||
|
@ -53,6 +51,12 @@ public class CommandAgent implements Service, InitializingBean, DisposableBean,
|
|||
private Session session;
|
||||
private MessageConsumer consumer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void start() throws Exception {
|
||||
session = getConnection().createSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
listener = new CommandMessageListener(session);
|
||||
|
@ -64,6 +68,12 @@ public class CommandAgent implements Service, InitializingBean, DisposableBean,
|
|||
consumer.setMessageListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.DestroyMethod
|
||||
*/
|
||||
@PreDestroy
|
||||
public void stop() throws Exception {
|
||||
ServiceStopper stopper = new ServiceStopper();
|
||||
if (consumer != null) {
|
||||
|
@ -93,29 +103,6 @@ public class CommandAgent implements Service, InitializingBean, DisposableBean,
|
|||
stopper.throwFirstException();
|
||||
}
|
||||
|
||||
// the following methods ensure that we are created on startup and the
|
||||
// lifecycles respected
|
||||
// TODO there must be a simpler way?
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
start();
|
||||
}
|
||||
|
||||
public void destroy() throws Exception {
|
||||
stop();
|
||||
}
|
||||
|
||||
public Object getObject() throws Exception {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Class getObjectType() {
|
||||
return getClass();
|
||||
}
|
||||
|
||||
public boolean isSingleton() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Properties
|
||||
// -------------------------------------------------------------------------
|
||||
public String getBrokerUrl() {
|
||||
|
|
|
@ -18,6 +18,8 @@ package org.apache.activemq.broker.util;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import org.apache.activemq.broker.BrokerPluginSupport;
|
||||
import org.apache.activemq.broker.Connection;
|
||||
import org.apache.activemq.broker.ConnectionContext;
|
||||
|
@ -44,7 +46,6 @@ import org.apache.activemq.command.TransactionId;
|
|||
import org.apache.activemq.usage.Usage;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* A simple Broker intercepter which allows you to enable/disable logging.
|
||||
|
@ -52,8 +53,7 @@ import org.springframework.beans.factory.InitializingBean;
|
|||
* @org.apache.xbean.XBean
|
||||
*/
|
||||
|
||||
public class LoggingBrokerPlugin extends BrokerPluginSupport implements
|
||||
InitializingBean {
|
||||
public class LoggingBrokerPlugin extends BrokerPluginSupport {
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(LoggingBrokerPlugin.class);
|
||||
|
||||
|
@ -65,6 +65,12 @@ public class LoggingBrokerPlugin extends BrokerPluginSupport implements
|
|||
private boolean logProducerEvents = false;
|
||||
private boolean logInternalEvents = false;
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
LOG.info("Created LoggingBrokerPlugin: " + this.toString());
|
||||
}
|
||||
|
|
|
@ -16,18 +16,19 @@
|
|||
*/
|
||||
package org.apache.activemq.filter;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import org.apache.activemq.command.ActiveMQDestination;
|
||||
import org.apache.activemq.command.ActiveMQQueue;
|
||||
import org.apache.activemq.command.ActiveMQTopic;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* A base class for entry objects used to construct a destination based policy
|
||||
* map.
|
||||
*
|
||||
* @version $Revision: 1.1 $
|
||||
* @org.apache.xbean.XBean
|
||||
*/
|
||||
public abstract class DestinationMapEntry implements InitializingBean, Comparable {
|
||||
public abstract class DestinationMapEntry implements Comparable {
|
||||
|
||||
private ActiveMQDestination destination;
|
||||
|
||||
|
@ -64,6 +65,12 @@ public abstract class DestinationMapEntry implements InitializingBean, Comparabl
|
|||
this.destination = destination;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
if (destination == null) {
|
||||
throw new IllegalArgumentException("You must specify the 'destination' property");
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
*/
|
||||
package org.apache.activemq.spring;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import org.springframework.beans.factory.BeanNameAware;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* A <a href="http://www.springframework.org/">Spring</a> enhanced connection
|
||||
|
@ -29,11 +29,17 @@ import org.springframework.beans.factory.InitializingBean;
|
|||
*
|
||||
* @version $Revision: $
|
||||
*/
|
||||
public class ActiveMQConnectionFactory extends org.apache.activemq.ActiveMQConnectionFactory implements InitializingBean, BeanNameAware {
|
||||
public class ActiveMQConnectionFactory extends org.apache.activemq.ActiveMQConnectionFactory implements BeanNameAware {
|
||||
|
||||
private String beanName;
|
||||
private boolean useBeanNameAsClientIdPrefix;
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
if (isUseBeanNameAsClientIdPrefix() && getClientIDPrefix() == null) {
|
||||
setClientIDPrefix(getBeanName());
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
*/
|
||||
package org.apache.activemq.spring;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import org.springframework.beans.factory.BeanNameAware;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* A <a href="http://www.springframework.org/">Spring</a> enhanced XA connection
|
||||
|
@ -29,11 +29,17 @@ import org.springframework.beans.factory.InitializingBean;
|
|||
*
|
||||
* @version $Revision: $
|
||||
*/
|
||||
public class ActiveMQXAConnectionFactory extends org.apache.activemq.ActiveMQXAConnectionFactory implements InitializingBean, BeanNameAware {
|
||||
public class ActiveMQXAConnectionFactory extends org.apache.activemq.ActiveMQXAConnectionFactory implements BeanNameAware {
|
||||
|
||||
private String beanName;
|
||||
private boolean useBeanNameAsClientIdPrefix;
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
if (isUseBeanNameAsClientIdPrefix() && getClientIDPrefix() == null) {
|
||||
setClientIDPrefix(getBeanName());
|
||||
|
|
|
@ -24,13 +24,12 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.net.ssl.KeyManager;
|
||||
import javax.net.ssl.KeyManagerFactory;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.TrustManagerFactory;
|
||||
|
||||
import org.apache.activemq.broker.SslContext;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
/**
|
||||
|
@ -40,7 +39,7 @@ import org.springframework.core.io.Resource;
|
|||
*
|
||||
* @version $Revision$
|
||||
*/
|
||||
public class SpringSslContext extends SslContext implements InitializingBean {
|
||||
public class SpringSslContext extends SslContext {
|
||||
|
||||
private String keyStoreType="jks";
|
||||
private String trustStoreType="jks";
|
||||
|
@ -55,6 +54,12 @@ public class SpringSslContext extends SslContext implements InitializingBean {
|
|||
private String keyStorePassword;
|
||||
private String trustStorePassword;
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
keyManagers.addAll(createKeyManagers());
|
||||
trustManagers.addAll(createTrustManagers());
|
||||
|
|
|
@ -39,7 +39,7 @@ import org.osgi.framework.SynchronousBundleListener;
|
|||
|
||||
/**
|
||||
* An OSGi bundle activator for ActiveMQ which adapts the {@link org.apache.activemq.util.FactoryFinder}
|
||||
* to the OSGi enviorment.
|
||||
* to the OSGi environment.
|
||||
*
|
||||
*/
|
||||
public class Activator implements BundleActivator, SynchronousBundleListener, ObjectFactory {
|
||||
|
@ -50,6 +50,15 @@ public class Activator implements BundleActivator, SynchronousBundleListener, Ob
|
|||
private final ConcurrentMap<Long, BundleWrapper> bundleWrappers = new ConcurrentHashMap<Long, BundleWrapper>();
|
||||
private BundleContext bundleContext;
|
||||
|
||||
/**
|
||||
* constructor for use as a blueprint bean rather than bundle activator
|
||||
* @param bundleContext
|
||||
*/
|
||||
public Activator(BundleContext bundleContext) throws Exception {
|
||||
start(bundleContext);
|
||||
}
|
||||
|
||||
|
||||
// ================================================================
|
||||
// BundleActivator interface impl
|
||||
// ================================================================
|
||||
|
|
|
@ -18,6 +18,8 @@ package org.apache.activemq.xbean;
|
|||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
import org.apache.activemq.broker.BrokerService;
|
||||
import org.apache.activemq.usage.SystemUsage;
|
||||
import org.apache.commons.logging.Log;
|
||||
|
@ -45,7 +47,7 @@ import org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext;
|
|||
* {code}
|
||||
* @version $Revision: 1.1 $
|
||||
*/
|
||||
public class XBeanBrokerService extends BrokerService implements InitializingBean, DisposableBean, ApplicationContextAware {
|
||||
public class XBeanBrokerService extends BrokerService implements ApplicationContextAware {
|
||||
private static final transient Log LOG = LogFactory.getLog(XBeanBrokerService.class);
|
||||
|
||||
private boolean start = true;
|
||||
|
@ -55,6 +57,12 @@ public class XBeanBrokerService extends BrokerService implements InitializingBea
|
|||
public XBeanBrokerService() {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
ensureSystemUsageHasStore();
|
||||
if (start) {
|
||||
|
@ -89,6 +97,12 @@ public class XBeanBrokerService extends BrokerService implements InitializingBea
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.DestroyMethod
|
||||
*/
|
||||
@PreDestroy
|
||||
public void destroy() throws Exception {
|
||||
stop();
|
||||
}
|
||||
|
|
|
@ -70,6 +70,11 @@
|
|||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-jta_1.0.1B_spec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-annotation_1.0_spec</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-pool</groupId>
|
||||
<artifactId>commons-pool</artifactId>
|
||||
|
|
|
@ -16,15 +16,13 @@
|
|||
*/
|
||||
package org.apache.activemq.pool;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
import javax.jms.ConnectionFactory;
|
||||
import javax.transaction.TransactionManager;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.commons.pool.ObjectPoolFactory;
|
||||
import org.springframework.beans.factory.FactoryBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
|
||||
/**
|
||||
* Simple factory bean used to create a jencks connection pool.
|
||||
|
@ -43,8 +41,9 @@ import org.springframework.beans.factory.DisposableBean;
|
|||
* the same value than its <code>resourceName</code> property. This will make sure the transaction manager
|
||||
* maps correctly the connection factory to the recovery process.
|
||||
*
|
||||
* @org.apache.xbean.XBean
|
||||
*/
|
||||
public class PooledConnectionFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
|
||||
public class PooledConnectionFactoryBean {
|
||||
|
||||
private static final Log LOGGER = LogFactory.getLog(PooledConnectionFactoryBean.class);
|
||||
|
||||
|
@ -56,18 +55,6 @@ public class PooledConnectionFactoryBean implements FactoryBean, InitializingBea
|
|||
private String resourceName;
|
||||
private ObjectPoolFactory poolFactory;
|
||||
|
||||
public Object getObject() throws Exception {
|
||||
return pooledConnectionFactory;
|
||||
}
|
||||
|
||||
public Class getObjectType() {
|
||||
return ConnectionFactory.class;
|
||||
}
|
||||
|
||||
public boolean isSingleton() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getMaxConnections() {
|
||||
return maxConnections;
|
||||
}
|
||||
|
@ -116,6 +103,12 @@ public class PooledConnectionFactoryBean implements FactoryBean, InitializingBea
|
|||
this.poolFactory = poolFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.InitMethod
|
||||
*/
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
if (pooledConnectionFactory == null && transactionManager != null && resourceName != null) {
|
||||
try {
|
||||
|
@ -164,6 +157,12 @@ public class PooledConnectionFactoryBean implements FactoryBean, InitializingBea
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception
|
||||
* @org.apache.xbean.DestroyMethod
|
||||
*/
|
||||
@PreDestroy
|
||||
public void destroy() throws Exception {
|
||||
if (pooledConnectionFactory != null) {
|
||||
pooledConnectionFactory.stop();
|
||||
|
|
6
pom.xml
6
pom.xml
|
@ -368,6 +368,12 @@
|
|||
<artifactId>geronimo-servlet_2.5_spec</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-annotation_1.0_spec</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- =============================== -->
|
||||
|
|
Loading…
Reference in New Issue