Class DelegatingConnectionFactory
- All Implemented Interfaces:
ConnectionFactory
,QueueConnectionFactory
,TopicConnectionFactory
,InitializingBean
,SmartConnectionFactory
ConnectionFactory
implementation that delegates all calls
to a given target ConnectionFactory
, adapting specific
create(Queue/Topic)Connection
calls to the target ConnectionFactory
if necessary (for example, when running JMS 1.0.2 API based code against a generic
JMS 1.1 ConnectionFactory, such as ActiveMQ's PooledConnectionFactory).
As of Spring Framework 5, this class supports JMS 2.0 JMSContext
calls and therefore requires the JMS 2.0 API to be present at runtime.
It may nevertheless run against a JMS 1.1 driver (bound to the JMS 2.0 API)
as long as no actual JMS 2.0 calls are triggered by the application's setup.
This class allows for being subclassed, with subclasses overriding only
those methods (such as createConnection()
) that should not simply
delegate to the target ConnectionFactory.
Can also be defined as-is, wrapping a specific target ConnectionFactory, using the "shouldStopConnections" flag to indicate whether Connections obtained from the target factory are supposed to be stopped before closed. The latter may be necessary for some connection pools that simply return released connections to the pool, not stopping them while they sit in the pool.
- Since:
- 2.0.2
- Author:
- Juergen Hoeller
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Invoked by the containingBeanFactory
after it has set all bean properties and satisfiedBeanFactoryAware
,ApplicationContextAware
etc.createConnection
(String username, String password) createContext
(int sessionMode) createContext
(String userName, String password) createContext
(String userName, String password, int sessionMode) createQueueConnection
(String username, String password) createTopicConnection
(String username, String password) Return the target ConnectionFactory that this ConnectionFactory delegates to.void
setShouldStopConnections
(boolean shouldStopConnections) Indicate whether Connections obtained from the target factory are supposed to be stopped before closed ("true") or simply closed ("false").void
setTargetConnectionFactory
(ConnectionFactory targetConnectionFactory) Set the target ConnectionFactory that this ConnectionFactory should delegate to.boolean
shouldStop
(Connection con) Should we stop the Connection, obtained from this ConnectionFactory?
-
Constructor Details
-
DelegatingConnectionFactory
public DelegatingConnectionFactory()
-
-
Method Details
-
setTargetConnectionFactory
Set the target ConnectionFactory that this ConnectionFactory should delegate to. -
getTargetConnectionFactory
Return the target ConnectionFactory that this ConnectionFactory delegates to. -
setShouldStopConnections
public void setShouldStopConnections(boolean shouldStopConnections) Indicate whether Connections obtained from the target factory are supposed to be stopped before closed ("true") or simply closed ("false"). An extra stop call may be necessary for some connection pools that simply return released connections to the pool, not stopping them while they sit in the pool.Default is "false", simply closing Connections.
-
afterPropertiesSet
public void afterPropertiesSet()Description copied from interface:InitializingBean
Invoked by the containingBeanFactory
after it has set all bean properties and satisfiedBeanFactoryAware
,ApplicationContextAware
etc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- Specified by:
afterPropertiesSet
in interfaceInitializingBean
-
createConnection
- Specified by:
createConnection
in interfaceConnectionFactory
- Throws:
JMSException
-
createConnection
- Specified by:
createConnection
in interfaceConnectionFactory
- Throws:
JMSException
-
createQueueConnection
- Specified by:
createQueueConnection
in interfaceQueueConnectionFactory
- Throws:
JMSException
-
createQueueConnection
- Specified by:
createQueueConnection
in interfaceQueueConnectionFactory
- Throws:
JMSException
-
createTopicConnection
- Specified by:
createTopicConnection
in interfaceTopicConnectionFactory
- Throws:
JMSException
-
createTopicConnection
- Specified by:
createTopicConnection
in interfaceTopicConnectionFactory
- Throws:
JMSException
-
createContext
- Specified by:
createContext
in interfaceConnectionFactory
-
createContext
- Specified by:
createContext
in interfaceConnectionFactory
-
createContext
- Specified by:
createContext
in interfaceConnectionFactory
-
createContext
- Specified by:
createContext
in interfaceConnectionFactory
-
shouldStop
Description copied from interface:SmartConnectionFactory
Should we stop the Connection, obtained from this ConnectionFactory?- Specified by:
shouldStop
in interfaceSmartConnectionFactory
- Parameters:
con
- the Connection to check- Returns:
- whether a stop call is necessary
- See Also:
-