test_class.declarator: timeoutManager
test_class.modifier: private
test_class.original_string: private TimeoutManager timeoutManager;
test_class.type: TimeoutManager
test_class.var_name: timeoutManager
test_class.declarator: storage
test_class.modifier: private
test_class.original_string: private StateStorage storage;
test_class.type: StateStorage
test_class.var_name: storage
test_class.declarator: sut
test_class.modifier: private
test_class.original_string: private SagaMessageStream sut;
test_class.type: SagaMessageStream
test_class.var_name: sut
test_class.declarator: instanceResolver
test_class.modifier: private
test_class.original_string: private InstanceResolver instanceResolver;
test_class.type: InstanceResolver
test_class.var_name: instanceResolver
test_class.declarator: invoker
test_class.modifier: private
test_class.original_string: private HandlerInvoker invoker;
test_class.type: HandlerInvoker
test_class.var_name: invoker
test_class.declarator: executorService
test_class.modifier: private
test_class.original_string: private ExecutorService executorService;
test_class.type: ExecutorService
test_class.var_name: executorService
test_class.file: saga-lib/src/test/java/com/codebullets/sagalib/processing/SagaMessageStreamTest.java
test_class.identifier: SagaMessageStreamTest
test_case.body: @Test
      public void close_always_executorShutdown() {
          // when
          sut.close();
  
          // then
          verify(executorService).shutdown();
      }
test_case.class_method_signature: SagaMessageStreamTest.close_always_executorShutdown()
test_case.full_signature: @Test public void close_always_executorShutdown()
test_case.identifier: close_always_executorShutdown
test_case.invocations: close shutdown verify
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void close_always_executorShutdown()
focal_class.declarator: LOG = LoggerFactory.getLogger(SagaMessageStream.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOG = LoggerFactory.getLogger(SagaMessageStream.class);
focal_class.type: Logger
focal_class.var_name: LOG
focal_class.declarator: EMPTY_HEADERS = Collections.emptyMap()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<HeaderName<?>, Object> EMPTY_HEADERS = Collections.emptyMap();
focal_class.type: Map<HeaderName<?>, Object>
focal_class.var_name: EMPTY_HEADERS
focal_class.declarator: environment
focal_class.modifier: private final
focal_class.original_string: private final SagaEnvironment environment;
focal_class.type: SagaEnvironment
focal_class.var_name: environment
focal_class.declarator: invoker
focal_class.modifier: private final
focal_class.original_string: private final HandlerInvoker invoker;
focal_class.type: HandlerInvoker
focal_class.var_name: invoker
focal_class.declarator: executor
focal_class.modifier: private final
focal_class.original_string: private final Executor executor;
focal_class.type: Executor
focal_class.var_name: executor
focal_class.file: saga-lib/src/main/java/com/codebullets/sagalib/processing/SagaMessageStream.java
focal_class.identifier: SagaMessageStream
focal_class.interfaces: implements MessageStream
focal_class.class_method_signature: SagaMessageStream.SagaMessageStream(
              final HandlerInvoker invoker,
              final SagaEnvironment environment,
              final Executor executor)
focal_class.full_signature: @Inject public  SagaMessageStream(
              final HandlerInvoker invoker,
              final SagaEnvironment environment,
              final Executor executor)
focal_class.identifier: SagaMessageStream
focal_class.modifiers: @Inject public
focal_class.parameters: (
              final HandlerInvoker invoker,
              final SagaEnvironment environment,
              final Executor executor)
focal_class.signature:  SagaMessageStream(
              final HandlerInvoker invoker,
              final SagaEnvironment environment,
              final Executor executor)
focal_class.class_method_signature: SagaMessageStream.add(@Nonnull final Object message)
focal_class.full_signature: @Override public void add(@Nonnull final Object message)
focal_class.identifier: add
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message)
focal_class.return: void
focal_class.signature: void add(@Nonnull final Object message)
focal_class.class_method_signature: SagaMessageStream.add(@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.full_signature: @Override public void add(@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.identifier: add
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.return: void
focal_class.signature: void add(@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.class_method_signature: SagaMessageStream.addMessage(@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.full_signature: @Override public void addMessage(@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.identifier: addMessage
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.return: void
focal_class.signature: void addMessage(@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.class_method_signature: SagaMessageStream.handle(@Nonnull final Object message)
focal_class.full_signature: @Override public void handle(@Nonnull final Object message)
focal_class.identifier: handle
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message)
focal_class.return: void
focal_class.signature: void handle(@Nonnull final Object message)
focal_class.class_method_signature: SagaMessageStream.handle(@Nonnull final Object message, @Nullable final ExecutionContext parentContext)
focal_class.full_signature: @Override public void handle(@Nonnull final Object message, @Nullable final ExecutionContext parentContext)
focal_class.identifier: handle
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message, @Nullable final ExecutionContext parentContext)
focal_class.return: void
focal_class.signature: void handle(@Nonnull final Object message, @Nullable final ExecutionContext parentContext)
focal_class.class_method_signature: SagaMessageStream.handle(@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.full_signature: @Override public void handle(@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.identifier: handle
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.return: void
focal_class.signature: void handle(@Nonnull final Object message, @Nullable final Map<String, Object> headers)
focal_class.class_method_signature: SagaMessageStream.handleMessage(@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.full_signature: @Override public void handleMessage(@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.identifier: handleMessage
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.return: void
focal_class.signature: void handleMessage(@Nonnull final Object message, @Nullable final Map<HeaderName<?>, Object> headers)
focal_class.class_method_signature: SagaMessageStream.handle(@Nonnull final Object message, @Nullable final Map<String, Object> headers, @Nullable final ExecutionContext parentContext)
focal_class.full_signature: @Override public void handle(@Nonnull final Object message, @Nullable final Map<String, Object> headers, @Nullable final ExecutionContext parentContext)
focal_class.identifier: handle
focal_class.modifiers: @Override public
focal_class.parameters: (@Nonnull final Object message, @Nullable final Map<String, Object> headers, @Nullable final ExecutionContext parentContext)
focal_class.return: void
focal_class.signature: void handle(@Nonnull final Object message, @Nullable final Map<String, Object> headers, @Nullable final ExecutionContext parentContext)
focal_class.class_method_signature: SagaMessageStream.handleMessage(
              @Nonnull final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.full_signature: @Override public void handleMessage(
              @Nonnull final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.identifier: handleMessage
focal_class.modifiers: @Override public
focal_class.parameters: (
              @Nonnull final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.return: void
focal_class.signature: void handleMessage(
              @Nonnull final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.class_method_signature: SagaMessageStream.timeoutHasExpired(final Timeout timeout, final TimeoutExpirationContext context)
focal_class.full_signature: private void timeoutHasExpired(final Timeout timeout, final TimeoutExpirationContext context)
focal_class.identifier: timeoutHasExpired
focal_class.modifiers: private
focal_class.parameters: (final Timeout timeout, final TimeoutExpirationContext context)
focal_class.return: void
focal_class.signature: void timeoutHasExpired(final Timeout timeout, final TimeoutExpirationContext context)
focal_class.class_method_signature: SagaMessageStream.createTaskToExecute(
              final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.full_signature: private SagaExecutionTask createTaskToExecute(
              final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.identifier: createTaskToExecute
focal_class.modifiers: private
focal_class.parameters: (
              final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.return: SagaExecutionTask
focal_class.signature: SagaExecutionTask createTaskToExecute(
              final Object message,
              @Nullable final Map<HeaderName<?>, Object> headers,
              @Nullable final ExecutionContext parentContext)
focal_class.class_method_signature: SagaMessageStream.mergeHeaders(
              final @Nullable Map<HeaderName<?>, Object> headers,
              final @Nullable ExecutionContext parentContext)
focal_class.full_signature: private Map<HeaderName<?>, Object> mergeHeaders(
              final @Nullable Map<HeaderName<?>, Object> headers,
              final @Nullable ExecutionContext parentContext)
focal_class.identifier: mergeHeaders
focal_class.modifiers: private
focal_class.parameters: (
              final @Nullable Map<HeaderName<?>, Object> headers,
              final @Nullable ExecutionContext parentContext)
focal_class.return: Map<HeaderName<?>, Object>
focal_class.signature: Map<HeaderName<?>, Object> mergeHeaders(
              final @Nullable Map<HeaderName<?>, Object> headers,
              final @Nullable ExecutionContext parentContext)
focal_class.class_method_signature: SagaMessageStream.toTypedHeaders(@Nullable final Map<String, Object> untypedHeaders)
focal_class.full_signature: private Map<HeaderName<?>, Object> toTypedHeaders(@Nullable final Map<String, Object> untypedHeaders)
focal_class.identifier: toTypedHeaders
focal_class.modifiers: private
focal_class.parameters: (@Nullable final Map<String, Object> untypedHeaders)
focal_class.return: Map<HeaderName<?>, Object>
focal_class.signature: Map<HeaderName<?>, Object> toTypedHeaders(@Nullable final Map<String, Object> untypedHeaders)
focal_class.class_method_signature: SagaMessageStream.close()
focal_class.full_signature: @Override public void close()
focal_class.identifier: close
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: SagaMessageStream.shutDownExecutor(final ExecutorService executorService)
focal_class.full_signature: private void shutDownExecutor(final ExecutorService executorService)
focal_class.identifier: shutDownExecutor
focal_class.modifiers: private
focal_class.parameters: (final ExecutorService executorService)
focal_class.return: void
focal_class.signature: void shutDownExecutor(final ExecutorService executorService)
focal_method.body: @Override
      public void close() {
          if (executor instanceof ExecutorService) {
              shutDownExecutor((ExecutorService) executor);
          }
  
          AutoCloseables.closeQuietly(environment);
          AutoCloseables.closeQuietly(invoker);
      }
focal_method.class_method_signature: SagaMessageStream.close()
focal_method.full_signature: @Override public void close()
focal_method.identifier: close
focal_method.invocations: shutDownExecutor closeQuietly closeQuietly
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void close()