org.springframework.jms.core.support

## Class JmsGatewaySupport

- java.lang.Object
- - org.springframework.jms.core.support.JmsGatewaySupport

All Implemented Interfaces:
  InitializingBean

    public abstract class JmsGatewaySupport
    extends Object
    implements InitializingBean

Convenient super class for application classes that need JMS access.

Requires a ConnectionFactory or a JmsTemplate instance to be set. It will create its own JmsTemplate if a ConnectionFactory is passed in. A custom JmsTemplate instance can be created for a given ConnectionFactory through overriding the `createJmsTemplate(javax.jms.ConnectionFactory)` method.

Since:
  1.1.1
Author:
  Mark Pollack
See Also:
  `setConnectionFactory(javax.jms.ConnectionFactory)`, `setJmsTemplate(org.springframework.jms.core.JmsTemplate)`, `createJmsTemplate(javax.jms.ConnectionFactory)`, `JmsTemplate`

### Field Summary

Fields
`protected Log` `logger` Logger available to subclasses

### Constructor Summary

Constructors
Constructor and Description
`JmsGatewaySupport()`

### Method Summary

Methods
`void` `afterPropertiesSet()` Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
`protected JmsTemplate` `createJmsTemplate(ConnectionFactory connectionFactory)` Create a JmsTemplate for the given ConnectionFactory.
`ConnectionFactory` `getConnectionFactory()` Return the JMS ConnectionFactory used by the gateway.
`JmsTemplate` `getJmsTemplate()` Return the JmsTemplate for the gateway.
`protected void` `initGateway()` Subclasses can override this for custom initialization behavior.
`void` `setConnectionFactory(ConnectionFactory connectionFactory)` Set the JMS connection factory to be used by the gateway.
`void` `setJmsTemplate(JmsTemplate jmsTemplate)` Set the JmsTemplate for the gateway.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### logger

    protected final Log logger

Logger available to subclasses

### Constructor Detail

#### JmsGatewaySupport

    public JmsGatewaySupport()

### Method Detail

#### setConnectionFactory

    public final void setConnectionFactory(ConnectionFactory connectionFactory)

Set the JMS connection factory to be used by the gateway. Will automatically create a JmsTemplate for the given ConnectionFactory.

Parameters:
  `connectionFactory` -
See Also:
  `createJmsTemplate(javax.jms.ConnectionFactory)`, `setConnectionFactory(javax.jms.ConnectionFactory)`

#### createJmsTemplate

    protected JmsTemplate createJmsTemplate(ConnectionFactory connectionFactory)

Create a JmsTemplate for the given ConnectionFactory. Only invoked if populating the gateway with a ConnectionFactory reference.

Can be overridden in subclasses to provide a JmsTemplate instance with a different configuration or the JMS 1.0.2 version, JmsTemplate102.

Parameters:
  `connectionFactory` - the JMS ConnectionFactory to create a JmsTemplate for
Returns:
  the new JmsTemplate instance
See Also:
  `setConnectionFactory(javax.jms.ConnectionFactory)`, `JmsTemplate102`

#### getConnectionFactory

    public final ConnectionFactory getConnectionFactory()

Return the JMS ConnectionFactory used by the gateway.

#### setJmsTemplate

    public final void setJmsTemplate(JmsTemplate jmsTemplate)

Set the JmsTemplate for the gateway.

Parameters:
  `jmsTemplate` -
See Also:
  `setConnectionFactory(javax.jms.ConnectionFactory)`

#### getJmsTemplate

    public final JmsTemplate getJmsTemplate()

Return the JmsTemplate for the gateway.

#### afterPropertiesSet

    public final void afterPropertiesSet()
                                  throws IllegalArgumentException,
                                         BeanInitializationException

Description copied from interface: `InitializingBean`
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

Specified by:
  `afterPropertiesSet` in interface `InitializingBean`
Throws:
  `IllegalArgumentException`
  `BeanInitializationException`

#### initGateway

    protected void initGateway()
                        throws Exception

Subclasses can override this for custom initialization behavior. Gets called after population of this instance's bean properties.

Throws:
  `Exception` - if initialization fails