@ComponentProfile(summary="Interceptor that adds Logging Context at the start of a workflow, removes it at the end", tag="interceptor") public class LoggingContextWorkflowInterceptor extends WorkflowInterceptorImpl
org.slf4j.MDC#put(String, String)
.
Because the diagnostic logging context is thread based; this will only be useful when used as part of a single threaded workflow
such as StandardWorkflow
; in PoolingWorkflow
the context will be lost as the message enters the threadpool for
processing. A better alternative might be AddLoggingContext
and RemoveLoggingContext
as part of the service
execution chain.
AddLoggingContext
,
RemoveLoggingContext
In the adapter configuration file this class is aliased as logging-context-workflow-interceptor which is the preferred alternative to the fully qualified classname when building your configuration.
WorkflowInterceptorImpl.WorkflowInterceptorException
log
Constructor and Description |
---|
LoggingContextWorkflowInterceptor() |
LoggingContextWorkflowInterceptor(java.lang.String uid) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the component.
|
java.lang.String |
getKey() |
java.lang.String |
getValue() |
void |
init()
Initialises the component.
|
void |
setKey(java.lang.String key)
Set the context key.
|
void |
setValue(java.lang.String val)
Set the context value.
|
void |
start()
Starts the component.
|
void |
stop()
Stop the component
|
void |
workflowEnd(AdaptrisMessage inputMsg,
AdaptrisMessage outputMsg)
Mark the end of a workflow.
|
void |
workflowStart(AdaptrisMessage inputMsg)
Mark the start of a workflow.
|
changeState, getUniqueId, parentChannel, parentWorkflow, prepare, registerParentChannel, registerParentWorkflow, requestClose, requestInit, requestStart, requestStop, retrieveComponentState, setUniqueId, wasSuccessful
public LoggingContextWorkflowInterceptor()
public LoggingContextWorkflowInterceptor(java.lang.String uid)
public void workflowStart(AdaptrisMessage inputMsg)
WorkflowInterceptor
inputMsg
- the message that will be processed by this workflow.public void workflowEnd(AdaptrisMessage inputMsg, AdaptrisMessage outputMsg)
WorkflowInterceptor
inputMsg
- the original message that was originally submitted to the workflow; in the event of an exception during
processing, the exception will be stored in object metadata in the inputMsgoutputMsg
- the message contaning any changes that may have been applied by the services within the workflow.CoreConstants.OBJ_METADATA_EXCEPTION
public void init() throws CoreException
ComponentLifecycle
Component initialisation includes config verification, creation of connections etc.
CoreException
- wrapping any underlying Exception
spublic void start() throws CoreException
ComponentLifecycle
Once a component is started it should be ready to process messages. In the case of
AdaptrisMessageConsumer
, calling start will begin message delivery.
CoreException
- wrapping any underlying Exception
spublic void stop()
ComponentLifecycle
A stopped component is not expected to be ready to process messages. In the case of
AdaptrisMessageConsumer
, calling stop will pause message delivery. Throwing a
RuntimeException
may cause unintended consequences
public void close()
ComponentLifecycle
A closed component should release any connections it uses, etc. and clean up completely.
Throwing a RuntimeException
may cause unintended consequences
public java.lang.String getKey()
public void setKey(java.lang.String key)
If not specified then we will try to use one of the following values in order of preference provided they are not null/blank
key
- the contextKey to set.public java.lang.String getValue()
public void setValue(java.lang.String val)
If not specified then we will try to use one of the following values in order of preference provided they are not null/blank
val
- the contextValue to set