Class AdaptrisConnectionImp
- java.lang.Object
-
- com.adaptris.core.AdaptrisConnectionImp
-
- All Implemented Interfaces:
AdaptrisComponent
,AdaptrisConnection
,ComponentLifecycle
,ComponentLifecycleExtension
,StateManagedComponent
- Direct Known Subclasses:
AllowsRetriesConnection
,CacheConnection
,EmbeddedConnection
,JettyConnection
,NoOpConnection
public abstract class AdaptrisConnectionImp extends java.lang.Object implements AdaptrisConnection, StateManagedComponent
Contains behaviour common to implementations of
AdaptrisConnection
.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.slf4j.Logger
log
-
Constructor Summary
Constructors Constructor Description AdaptrisConnectionImp()
Created a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addExceptionListener(StateManagedComponent c)
Add a component that will be notified upon exception.void
addMessageConsumer(AdaptrisMessageConsumer consumer)
Adds aAdaptrisMessageConsumer
to this connection's internal store of message consumers.void
addMessageProducer(AdaptrisMessageProducer producer)
Adds aAdaptrisMessageProducer
to this connection's internal store of message producers.void
changeState(ComponentState s)
Updates the state for the componentComponentState
.AdaptrisConnection
cloneForTesting()
Make a copy of this object for test purposes.void
close()
Closes the component.protected abstract void
closeConnection()
Close the underlying connection.ConnectionErrorHandler
connectionErrorHandler()
Returns the currently activeConnectionErrorHandler
ConnectionErrorHandler
getConnectionErrorHandler()
Returns the configuredConnectionErrorHandler
.java.lang.String
getUniqueId()
Get the unique-id that is associated with this component.java.lang.Boolean
getWorkersFirstOnShutdown()
void
init()
Initialises the component.protected abstract void
initConnection()
Initialise the underlying connection.void
prepare()
Prepare for initialisation.protected abstract void
prepareConnection()
void
requestClose()
Request this component is closed.void
requestInit()
Request this component is init'd.void
requestStart()
Request this component is started.void
requestStop()
Request this component is stopped.ComponentState
retrieveComponentState()
Returns the last recordeComponentState
.<T> T
retrieveConnection(java.lang.Class<T> type)
Return the connection as represented by this connectionjava.util.Set<StateManagedComponent>
retrieveExceptionListeners()
Return a collection of components that need to be restarted on exception.java.util.Set<AdaptrisMessageConsumer>
retrieveMessageConsumers()
Returns aList
of this connection'sAdaptrisMessageConsumer
s.java.util.Set<AdaptrisMessageProducer>
retrieveMessageProducers()
Returns aList
of this connection'sAdaptrisMessageProducer
s.void
setConnectionErrorHandler(ConnectionErrorHandler handler)
Sets theConnectionErrorHandler
to use.void
setUniqueId(java.lang.String s)
void
setWorkersFirstOnShutdown(java.lang.Boolean b)
Perform consumer and producer lifecycle shutdown prior to connection shutdown.void
start()
Starts the component.protected abstract void
startConnection()
Start the underlying connection.void
stop()
Stop the componentprotected abstract void
stopConnection()
Stop the underlying connection.boolean
workersFirstOnShutdown()
-
-
-
Method Detail
-
init
public final void init() throws CoreException
Description copied from interface:ComponentLifecycle
Initialises the component.Component initialisation includes config verification, creation of connections etc.
- Specified by:
init
in interfaceComponentLifecycle
- Throws:
CoreException
- wrapping any underlyingException
s- See Also:
ComponentLifecycle.init()
-
prepare
public final void prepare() throws CoreException
Description copied from interface:ComponentLifecycleExtension
Prepare for initialisation.- Specified by:
prepare
in interfaceComponentLifecycleExtension
- Throws:
CoreException
-
prepareConnection
protected abstract void prepareConnection() throws CoreException
- Throws:
CoreException
-
start
public final void start() throws CoreException
Description copied from interface:ComponentLifecycle
Starts the component.Once a component is started it should be ready to process messages. In the case of
AdaptrisMessageConsumer
, calling start will begin message delivery.- Specified by:
start
in interfaceComponentLifecycle
- Throws:
CoreException
- wrapping any underlyingException
s- See Also:
ComponentLifecycle.start()
-
close
public final void close()
Description copied from interface:ComponentLifecycle
Closes the component.A closed component should release any connections it uses, etc. and clean up completely. Throwing a
RuntimeException
may cause unintended consequences- Specified by:
close
in interfaceComponentLifecycle
- See Also:
ComponentLifecycle.close()
-
stop
public final void stop()
Description copied from interface:ComponentLifecycle
Stop the componentA stopped component is not expected to be ready to process messages. In the case of
AdaptrisMessageConsumer
, calling stop will pause message delivery. Throwing aRuntimeException
may cause unintended consequences- Specified by:
stop
in interfaceComponentLifecycle
- See Also:
ComponentLifecycle.stop()
-
initConnection
protected abstract void initConnection() throws CoreException
Initialise the underlying connection.- Throws:
CoreException
- wrapping any exception.
-
startConnection
protected abstract void startConnection() throws CoreException
Start the underlying connection.- Throws:
CoreException
- wrapping any exception.
-
stopConnection
protected abstract void stopConnection()
Stop the underlying connection.
-
closeConnection
protected abstract void closeConnection()
Close the underlying connection.
-
addExceptionListener
public void addExceptionListener(StateManagedComponent c)
Description copied from interface:AdaptrisConnection
Add a component that will be notified upon exception.- Specified by:
addExceptionListener
in interfaceAdaptrisConnection
- Parameters:
c
- the component that will be notified.
-
retrieveExceptionListeners
public java.util.Set<StateManagedComponent> retrieveExceptionListeners()
Description copied from interface:AdaptrisConnection
Return a collection of components that need to be restarted on exception.- Specified by:
retrieveExceptionListeners
in interfaceAdaptrisConnection
- Returns:
- a list of Components that need to be restarted of any exceptions.
- See Also:
ConnectionErrorHandler
-
addMessageProducer
public void addMessageProducer(AdaptrisMessageProducer producer) throws CoreException
Description copied from interface:AdaptrisConnection
Adds a
AdaptrisMessageProducer
to this connection's internal store of message producers.- Specified by:
addMessageProducer
in interfaceAdaptrisConnection
- Parameters:
producer
- theAdaptrisMessageProducer
to add- Throws:
CoreException
- wrapping any underlyingException
s- See Also:
#addMessageProducer(com.adaptris.core.AdaptrisMessageProducer)
-
retrieveMessageProducers
public java.util.Set<AdaptrisMessageProducer> retrieveMessageProducers()
Description copied from interface:AdaptrisConnection
Returns a
List
of this connection'sAdaptrisMessageProducer
s.- Specified by:
retrieveMessageProducers
in interfaceAdaptrisConnection
- Returns:
- a
List
of this connection'sAdaptrisMessageProducer
s - See Also:
AdaptrisConnection.retrieveMessageProducers()
-
addMessageConsumer
public void addMessageConsumer(AdaptrisMessageConsumer consumer) throws CoreException
Description copied from interface:AdaptrisConnection
Adds a
AdaptrisMessageConsumer
to this connection's internal store of message consumers.- Specified by:
addMessageConsumer
in interfaceAdaptrisConnection
- Parameters:
consumer
- theAdaptrisMessageConsumer
to add- Throws:
CoreException
- wrapping any underlyingException
s- See Also:
#addMessageConsumer(com.adaptris.core.AdaptrisMessageConsumer)
-
retrieveMessageConsumers
public java.util.Set<AdaptrisMessageConsumer> retrieveMessageConsumers()
Description copied from interface:AdaptrisConnection
Returns a
List
of this connection'sAdaptrisMessageConsumer
s.- Specified by:
retrieveMessageConsumers
in interfaceAdaptrisConnection
- Returns:
- a
List
of this connection'sAdaptrisMessageConsumer
s - See Also:
AdaptrisConnection.retrieveMessageConsumers()
-
setConnectionErrorHandler
public void setConnectionErrorHandler(ConnectionErrorHandler handler)
Description copied from interface:AdaptrisConnection
Sets theConnectionErrorHandler
to use.- Specified by:
setConnectionErrorHandler
in interfaceAdaptrisConnection
- See Also:
#setConnectionErrorHandler(com.adaptris.core.ConnectionErrorHandler)
-
getConnectionErrorHandler
public ConnectionErrorHandler getConnectionErrorHandler()
Description copied from interface:AdaptrisConnection
Returns the configuredConnectionErrorHandler
.- Specified by:
getConnectionErrorHandler
in interfaceAdaptrisConnection
- See Also:
AdaptrisConnection.getConnectionErrorHandler()
-
connectionErrorHandler
public ConnectionErrorHandler connectionErrorHandler()
Description copied from interface:AdaptrisConnection
Returns the currently activeConnectionErrorHandler
- Specified by:
connectionErrorHandler
in interfaceAdaptrisConnection
- Returns:
- the active
ConnectionErrorHandler
, which may not be the same as the configured...
-
getWorkersFirstOnShutdown
public java.lang.Boolean getWorkersFirstOnShutdown()
- Returns:
- the workerLifecycleFirstOnShutdown
-
workersFirstOnShutdown
public boolean workersFirstOnShutdown()
- Returns:
- the workerLifecycleFirstOnShutdown
-
setWorkersFirstOnShutdown
public void setWorkersFirstOnShutdown(java.lang.Boolean b)
Perform consumer and producer lifecycle shutdown prior to connection shutdown.When set to true, this method forces the AdaptrisConnection to stop and close any registered MessageConsumer and MessageProducer implementations before attempting to stop and close the underlying Connection. This is useful in cases where shutting down the Connection blocks until all attached workers are manually closed (WebsphereMQ)
When set to false, existing behaviour is preserved, and the consumers and producers are shutdown as part of the normal workflow lifecycle.
- Parameters:
b
- true to shutdown workers prior to connection shutdown, default is false.
-
retrieveConnection
public <T> T retrieveConnection(java.lang.Class<T> type)
Return the connection as represented by this connection- Specified by:
retrieveConnection
in interfaceAdaptrisConnection
- Parameters:
type
- the type of connection- Returns:
- the connection
-
getUniqueId
public java.lang.String getUniqueId()
Description copied from interface:AdaptrisComponent
Get the unique-id that is associated with this component.- Specified by:
getUniqueId
in interfaceAdaptrisComponent
- Returns:
- the unique-id
-
setUniqueId
public void setUniqueId(java.lang.String s)
-
changeState
public void changeState(ComponentState s)
Description copied from interface:StateManagedComponent
Updates the state for the component
ComponentState
.- Specified by:
changeState
in interfaceStateManagedComponent
-
requestInit
public void requestInit() throws CoreException
Description copied from interface:StateManagedComponent
Request this component is init'd.
- Specified by:
requestInit
in interfaceStateManagedComponent
- Throws:
CoreException
- wrapping any underlying Exceptions- See Also:
StateManagedComponent.requestInit()
-
requestStart
public void requestStart() throws CoreException
Description copied from interface:StateManagedComponent
Request this component is started.
- Specified by:
requestStart
in interfaceStateManagedComponent
- Throws:
CoreException
- wrapping any underlying Exceptions- See Also:
StateManagedComponent.requestStart()
-
requestStop
public void requestStop()
Description copied from interface:StateManagedComponent
Request this component is stopped.
- Specified by:
requestStop
in interfaceStateManagedComponent
- See Also:
StateManagedComponent.requestStop()
-
requestClose
public void requestClose()
Description copied from interface:StateManagedComponent
Request this component is closed.
- Specified by:
requestClose
in interfaceStateManagedComponent
- See Also:
StateManagedComponent.requestClose()
-
retrieveComponentState
public ComponentState retrieveComponentState()
Description copied from interface:StateManagedComponent
Returns the last recorde
ComponentState
.- Specified by:
retrieveComponentState
in interfaceStateManagedComponent
- Returns:
- the current
ComponentState
-
cloneForTesting
public AdaptrisConnection cloneForTesting() throws CoreException
Description copied from interface:AdaptrisConnection
Make a copy of this object for test purposes.- Specified by:
cloneForTesting
in interfaceAdaptrisConnection
- Returns:
- a copy of this object
- Throws:
CoreException
- wrapping any exceptions
-
-