Class ThreadContextWorkflow

  • All Implemented Interfaces:
    AdaptrisComponent, AdaptrisMessageListener, ComponentLifecycle, ComponentLifecycleExtension, ConfigComment, EventHandlerAware, StateManagedComponent, Workflow

    @ComponentProfile(summary="Workflow that executes within the current thread context.",
                      tag="workflow",
                      since="3.12.0")
    public class ThreadContextWorkflow
    extends WorkflowWithObjectPool
    Workflow that executes services in the current thread.

    This is different to StandardWorkflow in the sense that it does not synchronize on the onAdaptrisMessage() method and processes the message in the same thread as the caller. This is useful if you have a consumer that may be triggered by multiple threads (e.g. Jetty or JMS) but you don't want to use PoolingWorkflow. It is probably of little or no benefit where the consumer is a polling implementation.

    Since services cannot be guaranteed to be thread-safe; it maintains an internal object pool that is independently sizeable.

    In the adapter configuration file this class is aliased as thread-context-workflow which is the preferred alternative to the fully qualified classname when building your configuration.

    • Constructor Detail

      • ThreadContextWorkflow

        public ThreadContextWorkflow()
    • Method Detail

      • getAddCurrentThreadName

        public java.lang.Boolean getAddCurrentThreadName()
        Append the current thread name to any generated friendly name.

        If you are using this workflow, then there may be thread naming in play (by jetty or otherwise) which you may wish to preserve. Setting this flag to true means that the current thread name from Thread.currentThread().currentName() is appended to any generated friendly name.

        It defaults to true if not explicitly configured

      • setAddCurrentThreadName

        public void setAddCurrentThreadName​(java.lang.Boolean addCurrentThreadName)
        Append the current thread name to any generated friendly name.

        If you are using this workflow, then there may be thread naming in play (by jetty or otherwise) which you may wish to preserve. Setting this flag to true means that the current thread name from Thread.currentThread().currentName() is appended to any generated friendly name.

        It defaults to true if not explicitly configured

      • getAdditionalDebug

        public java.lang.Boolean getAdditionalDebug()
        Log the internal object pool state.
      • setAdditionalDebug

        public void setAdditionalDebug​(java.lang.Boolean additionalDebug)
        Log the internal object pool state.