test_class.file: services/connectivity/messaging/src/test/java/org/eclipse/ditto/services/connectivity/messaging/MessageMappingProcessorActorTest.java
test_class.identifier: MessageMappingProcessorActorTest
test_class.superclass: extends AbstractMessageMappingProcessorActorTest
test_case.body: @Test
      public void testRequestedAcknowledgementFilter() {
          // GIVEN
          final String requestedAcks = DittoHeaderDefinition.REQUESTED_ACKS.getKey();
          final AcknowledgementRequest twinPersistedAckRequest =
                  AcknowledgementRequest.of(DittoAcknowledgementLabel.TWIN_PERSISTED);
          final Signal<?> signal = DeleteThing.of(ThingId.of("thing:id"), DittoHeaders.empty());
          final Signal<?> signalWithRequestedAcks = DeleteThing.of(ThingId.of("thing:id"), DittoHeaders.newBuilder()
                  .acknowledgementRequest(twinPersistedAckRequest)
                  .build());
  
          // WHEN/THEN
  
          final Signal<?> notFilteredSignal =
                  filterAcknowledgements(signal, "fn:filter('2+2','ne','5')");
          assertThat(notFilteredSignal.getDittoHeaders()).doesNotContainKey(requestedAcks);
  
          final Signal<?> filteredSignal =
                  filterAcknowledgements(signal, "fn:filter('2+2','eq','5')");
          assertThat(filteredSignal.getDittoHeaders()).contains(Map.entry(requestedAcks, "[]"));
  
          assertThatExceptionOfType(PlaceholderFunctionSignatureInvalidException.class).isThrownBy(() ->
                  filterAcknowledgements(signal, "fn:filter('2','+','2','eq','5')")
          );
  
          final Signal<?> defaultValueSetSignal =
                  filterAcknowledgements(signal, "fn:default('[\"twin-persisted\"]')");
          assertThat(defaultValueSetSignal.getDittoHeaders().getAcknowledgementRequests())
                  .containsExactly(twinPersistedAckRequest);
  
          final Signal<?> transformedSignal =
                  filterAcknowledgements(signalWithRequestedAcks, "fn:filter('2+2','eq','5')|fn:default('[\"custom\"]')");
          assertThat(transformedSignal.getDittoHeaders().getAcknowledgementRequests())
                  .containsExactly(AcknowledgementRequest.parseAcknowledgementRequest("custom"));
      }
test_case.class_method_signature: MessageMappingProcessorActorTest.testRequestedAcknowledgementFilter()
test_case.full_signature: @Test public void testRequestedAcknowledgementFilter()
test_case.identifier: testRequestedAcknowledgementFilter
test_case.invocations: getKey of of of empty of of build acknowledgementRequest newBuilder filterAcknowledgements doesNotContainKey assertThat getDittoHeaders filterAcknowledgements contains assertThat getDittoHeaders entry isThrownBy assertThatExceptionOfType filterAcknowledgements filterAcknowledgements containsExactly assertThat getAcknowledgementRequests getDittoHeaders filterAcknowledgements containsExactly assertThat getAcknowledgementRequests getDittoHeaders parseAcknowledgementRequest
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRequestedAcknowledgementFilter()
focal_class.declarator: ACTOR_NAME = "messageMappingProcessor"
focal_class.modifier: public static final
focal_class.original_string: public static final String ACTOR_NAME = "messageMappingProcessor";
focal_class.type: String
focal_class.var_name: ACTOR_NAME
focal_class.declarator: MESSAGE_MAPPING_PROCESSOR_DISPATCHER = "message-mapping-processor-dispatcher"
focal_class.modifier: private static final
focal_class.original_string: private static final String MESSAGE_MAPPING_PROCESSOR_DISPATCHER = "message-mapping-processor-dispatcher";
focal_class.type: String
focal_class.var_name: MESSAGE_MAPPING_PROCESSOR_DISPATCHER
focal_class.declarator: logger
focal_class.modifier: private final
focal_class.original_string: private final ThreadSafeDittoLogger logger;
focal_class.type: ThreadSafeDittoLogger
focal_class.var_name: logger
focal_class.declarator: clientActor
focal_class.modifier: private final
focal_class.original_string: private final ActorRef clientActor;
focal_class.type: ActorRef
focal_class.var_name: clientActor
focal_class.declarator: messageMappingProcessor
focal_class.modifier: private final
focal_class.original_string: private final MessageMappingProcessor messageMappingProcessor;
focal_class.type: MessageMappingProcessor
focal_class.var_name: messageMappingProcessor
focal_class.declarator: connectionId
focal_class.modifier: private final
focal_class.original_string: private final ConnectionId connectionId;
focal_class.type: ConnectionId
focal_class.var_name: connectionId
focal_class.declarator: proxyActor
focal_class.modifier: private final
focal_class.original_string: private final ActorRef proxyActor;
focal_class.type: ActorRef
focal_class.var_name: proxyActor
focal_class.declarator: connectionActor
focal_class.modifier: private final
focal_class.original_string: private final ActorRef connectionActor;
focal_class.type: ActorRef
focal_class.var_name: connectionActor
focal_class.declarator: mappingConfig
focal_class.modifier: private final
focal_class.original_string: private final MappingConfig mappingConfig;
focal_class.type: MappingConfig
focal_class.var_name: mappingConfig
focal_class.declarator: connectionMonitorRegistry
focal_class.modifier: private final
focal_class.original_string: private final DefaultConnectionMonitorRegistry connectionMonitorRegistry;
focal_class.type: DefaultConnectionMonitorRegistry
focal_class.var_name: connectionMonitorRegistry
focal_class.declarator: responseDispatchedMonitor
focal_class.modifier: private final
focal_class.original_string: private final ConnectionMonitor responseDispatchedMonitor;
focal_class.type: ConnectionMonitor
focal_class.var_name: responseDispatchedMonitor
focal_class.declarator: responseDroppedMonitor
focal_class.modifier: private final
focal_class.original_string: private final ConnectionMonitor responseDroppedMonitor;
focal_class.type: ConnectionMonitor
focal_class.var_name: responseDroppedMonitor
focal_class.declarator: responseMappedMonitor
focal_class.modifier: private final
focal_class.original_string: private final ConnectionMonitor responseMappedMonitor;
focal_class.type: ConnectionMonitor
focal_class.var_name: responseMappedMonitor
focal_class.declarator: signalEnrichmentFacade
focal_class.modifier: private final
focal_class.original_string: private final SignalEnrichmentFacade signalEnrichmentFacade;
focal_class.type: SignalEnrichmentFacade
focal_class.var_name: signalEnrichmentFacade
focal_class.declarator: processorPoolSize
focal_class.modifier: private final
focal_class.original_string: private final int processorPoolSize;
focal_class.type: int
focal_class.var_name: processorPoolSize
focal_class.declarator: inboundSourceQueue
focal_class.modifier: private final
focal_class.original_string: private final SourceQueue<ExternalMessageWithSender> inboundSourceQueue;
focal_class.type: SourceQueue<ExternalMessageWithSender>
focal_class.var_name: inboundSourceQueue
focal_class.declarator: toErrorResponseFunction
focal_class.modifier: private final
focal_class.original_string: private final DittoRuntimeExceptionToErrorResponseFunction toErrorResponseFunction;
focal_class.type: DittoRuntimeExceptionToErrorResponseFunction
focal_class.var_name: toErrorResponseFunction
focal_class.declarator: ackregatorStarter
focal_class.modifier: private final
focal_class.original_string: private final AcknowledgementAggregatorActorStarter ackregatorStarter;
focal_class.type: AcknowledgementAggregatorActorStarter
focal_class.var_name: ackregatorStarter
focal_class.file: services/connectivity/messaging/src/main/java/org/eclipse/ditto/services/connectivity/messaging/MessageMappingProcessorActor.java
focal_class.identifier: MessageMappingProcessorActor
focal_class.class_method_signature: MessageMappingProcessorActor.MessageMappingProcessorActor(final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor messageMappingProcessor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.full_signature: @SuppressWarnings("unused") private  MessageMappingProcessorActor(final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor messageMappingProcessor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.identifier: MessageMappingProcessorActor
focal_class.modifiers: @SuppressWarnings("unused") private
focal_class.parameters: (final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor messageMappingProcessor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.signature:  MessageMappingProcessorActor(final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor messageMappingProcessor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.class_method_signature: MessageMappingProcessorActor.determinePoolSize(final int connectionPoolSize, final int maxPoolSize)
focal_class.full_signature: private int determinePoolSize(final int connectionPoolSize, final int maxPoolSize)
focal_class.identifier: determinePoolSize
focal_class.modifiers: private
focal_class.parameters: (final int connectionPoolSize, final int maxPoolSize)
focal_class.return: int
focal_class.signature: int determinePoolSize(final int connectionPoolSize, final int maxPoolSize)
focal_class.class_method_signature: MessageMappingProcessorActor.props(final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor processor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.full_signature: public static Props props(final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor processor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.identifier: props
focal_class.modifiers: public static
focal_class.parameters: (final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor processor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.return: Props
focal_class.signature: Props props(final ActorRef proxyActor,
              final ActorRef clientActor,
              final MessageMappingProcessor processor,
              final Connection connection,
              final ActorRef connectionActor,
              final int processorPoolSize)
focal_class.class_method_signature: MessageMappingProcessorActor.getBufferSize()
focal_class.full_signature: @Override protected int getBufferSize()
focal_class.identifier: getBufferSize
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getBufferSize()
focal_class.class_method_signature: MessageMappingProcessorActor.preEnhancement(final ReceiveBuilder receiveBuilder)
focal_class.full_signature: @Override protected void preEnhancement(final ReceiveBuilder receiveBuilder)
focal_class.identifier: preEnhancement
focal_class.modifiers: @Override protected
focal_class.parameters: (final ReceiveBuilder receiveBuilder)
focal_class.return: void
focal_class.signature: void preEnhancement(final ReceiveBuilder receiveBuilder)
focal_class.class_method_signature: MessageMappingProcessorActor.handleNotExpectedAcknowledgement(final Acknowledgement acknowledgement)
focal_class.full_signature: private void handleNotExpectedAcknowledgement(final Acknowledgement acknowledgement)
focal_class.identifier: handleNotExpectedAcknowledgement
focal_class.modifiers: private
focal_class.parameters: (final Acknowledgement acknowledgement)
focal_class.return: void
focal_class.signature: void handleNotExpectedAcknowledgement(final Acknowledgement acknowledgement)
focal_class.class_method_signature: MessageMappingProcessorActor.materializeInboundStream(final int processorPoolSize)
focal_class.full_signature: private SourceQueue<ExternalMessageWithSender> materializeInboundStream(final int processorPoolSize)
focal_class.identifier: materializeInboundStream
focal_class.modifiers: private
focal_class.parameters: (final int processorPoolSize)
focal_class.return: SourceQueue<ExternalMessageWithSender>
focal_class.signature: SourceQueue<ExternalMessageWithSender> materializeInboundStream(final int processorPoolSize)
focal_class.class_method_signature: MessageMappingProcessorActor.dispatchIncomingSignal(final IncomingSignal incomingSignal)
focal_class.full_signature: private void dispatchIncomingSignal(final IncomingSignal incomingSignal)
focal_class.identifier: dispatchIncomingSignal
focal_class.modifiers: private
focal_class.parameters: (final IncomingSignal incomingSignal)
focal_class.return: void
focal_class.signature: void dispatchIncomingSignal(final IncomingSignal incomingSignal)
focal_class.class_method_signature: MessageMappingProcessorActor.isLive(final Signal<?> signal)
focal_class.full_signature: private static boolean isLive(final Signal<?> signal)
focal_class.identifier: isLive
focal_class.modifiers: private static
focal_class.parameters: (final Signal<?> signal)
focal_class.return: boolean
focal_class.signature: boolean isLive(final Signal<?> signal)
focal_class.class_method_signature: MessageMappingProcessorActor.handleErrorDuringStartingOfAckregator(final DittoRuntimeException e, final DittoHeaders dittoHeaders,
              final ActorRef sender)
focal_class.full_signature: private void handleErrorDuringStartingOfAckregator(final DittoRuntimeException e, final DittoHeaders dittoHeaders,
              final ActorRef sender)
focal_class.identifier: handleErrorDuringStartingOfAckregator
focal_class.modifiers: private
focal_class.parameters: (final DittoRuntimeException e, final DittoHeaders dittoHeaders,
              final ActorRef sender)
focal_class.return: void
focal_class.signature: void handleErrorDuringStartingOfAckregator(final DittoRuntimeException e, final DittoHeaders dittoHeaders,
              final ActorRef sender)
focal_class.class_method_signature: MessageMappingProcessorActor.startAckregatorAndForwardSignal(final Signal<?> signal, final ActorRef sender)
focal_class.full_signature: private void startAckregatorAndForwardSignal(final Signal<?> signal, final ActorRef sender)
focal_class.identifier: startAckregatorAndForwardSignal
focal_class.modifiers: private
focal_class.parameters: (final Signal<?> signal, final ActorRef sender)
focal_class.return: void
focal_class.signature: void startAckregatorAndForwardSignal(final Signal<?> signal, final ActorRef sender)
focal_class.class_method_signature: MessageMappingProcessorActor.handleIncomingMappedSignal(
              final Pair<Source<Signal<?>, ?>, ActorRef> mappedSignalsWithSender)
focal_class.full_signature: private Source<IncomingSignal, ?> handleIncomingMappedSignal(
              final Pair<Source<Signal<?>, ?>, ActorRef> mappedSignalsWithSender)
focal_class.identifier: handleIncomingMappedSignal
focal_class.modifiers: private
focal_class.parameters: (
              final Pair<Source<Signal<?>, ?>, ActorRef> mappedSignalsWithSender)
focal_class.return: Source<IncomingSignal, ?>
focal_class.signature: Source<IncomingSignal, ?> handleIncomingMappedSignal(
              final Pair<Source<Signal<?>, ?>, ActorRef> mappedSignalsWithSender)
focal_class.class_method_signature: MessageMappingProcessorActor.onIncomingMappedSignal(final ActorRef sender)
focal_class.full_signature: private PartialFunction<Signal<?>, Source<IncomingSignal, NotUsed>> onIncomingMappedSignal(final ActorRef sender)
focal_class.identifier: onIncomingMappedSignal
focal_class.modifiers: private
focal_class.parameters: (final ActorRef sender)
focal_class.return: PartialFunction<Signal<?>, Source<IncomingSignal, NotUsed>>
focal_class.signature: PartialFunction<Signal<?>, Source<IncomingSignal, NotUsed>> onIncomingMappedSignal(final ActorRef sender)
focal_class.class_method_signature: MessageMappingProcessorActor.forwardToConnectionActor(final Signal<?> signal, final ActorRef sender)
focal_class.full_signature: private Source<T, NotUsed> forwardToConnectionActor(final Signal<?> signal, final ActorRef sender)
focal_class.identifier: forwardToConnectionActor
focal_class.modifiers: private
focal_class.parameters: (final Signal<?> signal, final ActorRef sender)
focal_class.return: Source<T, NotUsed>
focal_class.signature: Source<T, NotUsed> forwardToConnectionActor(final Signal<?> signal, final ActorRef sender)
focal_class.class_method_signature: MessageMappingProcessorActor.getReturnAddress(final Signal<?> signal)
focal_class.full_signature: private ActorRef getReturnAddress(final Signal<?> signal)
focal_class.identifier: getReturnAddress
focal_class.modifiers: private
focal_class.parameters: (final Signal<?> signal)
focal_class.return: ActorRef
focal_class.signature: ActorRef getReturnAddress(final Signal<?> signal)
focal_class.class_method_signature: MessageMappingProcessorActor.appendConnectionAcknowledgementsToSignal(final ExternalMessage message,
              final Signal<?> signal)
focal_class.full_signature: private static Signal<?> appendConnectionAcknowledgementsToSignal(final ExternalMessage message,
              final Signal<?> signal)
focal_class.identifier: appendConnectionAcknowledgementsToSignal
focal_class.modifiers: private static
focal_class.parameters: (final ExternalMessage message,
              final Signal<?> signal)
focal_class.return: Signal<?>
focal_class.signature: Signal<?> appendConnectionAcknowledgementsToSignal(final ExternalMessage message,
              final Signal<?> signal)
focal_class.class_method_signature: MessageMappingProcessorActor.filterAcknowledgements(final Signal<?> signal, final @Nullable String filter)
focal_class.full_signature: static Signal<?> filterAcknowledgements(final Signal<?> signal, final @Nullable String filter)
focal_class.identifier: filterAcknowledgements
focal_class.modifiers: static
focal_class.parameters: (final Signal<?> signal, final @Nullable String filter)
focal_class.return: Signal<?>
focal_class.signature: Signal<?> filterAcknowledgements(final Signal<?> signal, final @Nullable String filter)
focal_class.class_method_signature: MessageMappingProcessorActor.handleDittoRuntimeException(final DittoRuntimeException exception)
focal_class.full_signature: @Override protected void handleDittoRuntimeException(final DittoRuntimeException exception)
focal_class.identifier: handleDittoRuntimeException
focal_class.modifiers: @Override protected
focal_class.parameters: (final DittoRuntimeException exception)
focal_class.return: void
focal_class.signature: void handleDittoRuntimeException(final DittoRuntimeException exception)
focal_class.class_method_signature: MessageMappingProcessorActor.mapMessage(final OutboundSignal message)
focal_class.full_signature: @Override protected OutboundSignalWithId mapMessage(final OutboundSignal message)
focal_class.identifier: mapMessage
focal_class.modifiers: @Override protected
focal_class.parameters: (final OutboundSignal message)
focal_class.return: OutboundSignalWithId
focal_class.signature: OutboundSignalWithId mapMessage(final OutboundSignal message)
focal_class.class_method_signature: MessageMappingProcessorActor.processMessageFlow()
focal_class.full_signature: @Override protected Flow<OutboundSignalWithId, OutboundSignalWithId, NotUsed> processMessageFlow()
focal_class.identifier: processMessageFlow
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: Flow<OutboundSignalWithId, OutboundSignalWithId, NotUsed>
focal_class.signature: Flow<OutboundSignalWithId, OutboundSignalWithId, NotUsed> processMessageFlow()
focal_class.class_method_signature: MessageMappingProcessorActor.processedMessageSink()
focal_class.full_signature: @Override protected Sink<OutboundSignalWithId, ?> processedMessageSink()
focal_class.identifier: processedMessageSink
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: Sink<OutboundSignalWithId, ?>
focal_class.signature: Sink<OutboundSignalWithId, ?> processedMessageSink()
focal_class.class_method_signature: MessageMappingProcessorActor.splitByTargetExtraFieldsFlow()
focal_class.full_signature: private static Flow<OutboundSignalWithId, Pair<OutboundSignalWithId, FilteredTopic>, NotUsed> splitByTargetExtraFieldsFlow()
focal_class.identifier: splitByTargetExtraFieldsFlow
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: Flow<OutboundSignalWithId, Pair<OutboundSignalWithId, FilteredTopic>, NotUsed>
focal_class.signature: Flow<OutboundSignalWithId, Pair<OutboundSignalWithId, FilteredTopic>, NotUsed> splitByTargetExtraFieldsFlow()
focal_class.class_method_signature: MessageMappingProcessorActor.enrichAndFilterSignal(
              final Pair<OutboundSignalWithId, FilteredTopic> outboundSignalWithExtraFields)
focal_class.full_signature: private CompletionStage<Collection<OutboundSignalWithId>> enrichAndFilterSignal(
              final Pair<OutboundSignalWithId, FilteredTopic> outboundSignalWithExtraFields)
focal_class.identifier: enrichAndFilterSignal
focal_class.modifiers: private
focal_class.parameters: (
              final Pair<OutboundSignalWithId, FilteredTopic> outboundSignalWithExtraFields)
focal_class.return: CompletionStage<Collection<OutboundSignalWithId>>
focal_class.signature: CompletionStage<Collection<OutboundSignalWithId>> enrichAndFilterSignal(
              final Pair<OutboundSignalWithId, FilteredTopic> outboundSignalWithExtraFields)
focal_class.class_method_signature: MessageMappingProcessorActor.recoverFromEnrichmentError(final OutboundSignalWithId outboundSignal,
              final Target target, final Throwable error)
focal_class.full_signature: private OutboundSignalWithId recoverFromEnrichmentError(final OutboundSignalWithId outboundSignal,
              final Target target, final Throwable error)
focal_class.identifier: recoverFromEnrichmentError
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignalWithId outboundSignal,
              final Target target, final Throwable error)
focal_class.return: OutboundSignalWithId
focal_class.signature: OutboundSignalWithId recoverFromEnrichmentError(final OutboundSignalWithId outboundSignal,
              final Target target, final Throwable error)
focal_class.class_method_signature: MessageMappingProcessorActor.logEnrichmentFailure(final OutboundSignal outboundSignal, final ConnectionId connectionId,
              final Throwable error)
focal_class.full_signature: private void logEnrichmentFailure(final OutboundSignal outboundSignal, final ConnectionId connectionId,
              final Throwable error)
focal_class.identifier: logEnrichmentFailure
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignal outboundSignal, final ConnectionId connectionId,
              final Throwable error)
focal_class.return: void
focal_class.signature: void logEnrichmentFailure(final OutboundSignal outboundSignal, final ConnectionId connectionId,
              final Throwable error)
focal_class.class_method_signature: MessageMappingProcessorActor.handleInboundMessage(final ExternalMessage externalMessage)
focal_class.full_signature: private void handleInboundMessage(final ExternalMessage externalMessage)
focal_class.identifier: handleInboundMessage
focal_class.modifiers: private
focal_class.parameters: (final ExternalMessage externalMessage)
focal_class.return: void
focal_class.signature: void handleInboundMessage(final ExternalMessage externalMessage)
focal_class.class_method_signature: MessageMappingProcessorActor.mapInboundMessage(final ExternalMessageWithSender withSender)
focal_class.full_signature: private Pair<Source<Signal<?>, ?>, ActorRef> mapInboundMessage(final ExternalMessageWithSender withSender)
focal_class.identifier: mapInboundMessage
focal_class.modifiers: private
focal_class.parameters: (final ExternalMessageWithSender withSender)
focal_class.return: Pair<Source<Signal<?>, ?>, ActorRef>
focal_class.signature: Pair<Source<Signal<?>, ?>, ActorRef> mapInboundMessage(final ExternalMessageWithSender withSender)
focal_class.class_method_signature: MessageMappingProcessorActor.getCorrelationIdOrNull(final ExternalMessage externalMessage)
focal_class.full_signature: @Nullable private static String getCorrelationIdOrNull(final ExternalMessage externalMessage)
focal_class.identifier: getCorrelationIdOrNull
focal_class.modifiers: @Nullable private static
focal_class.parameters: (final ExternalMessage externalMessage)
focal_class.return: String
focal_class.signature: String getCorrelationIdOrNull(final ExternalMessage externalMessage)
focal_class.class_method_signature: MessageMappingProcessorActor.handleInboundException(final Exception e,
              final ExternalMessageWithSender withSender,
              @Nullable final TopicPath topicPath,
              @Nullable final AuthorizationContext authorizationContext)
focal_class.full_signature: private void handleInboundException(final Exception e,
              final ExternalMessageWithSender withSender,
              @Nullable final TopicPath topicPath,
              @Nullable final AuthorizationContext authorizationContext)
focal_class.identifier: handleInboundException
focal_class.modifiers: private
focal_class.parameters: (final Exception e,
              final ExternalMessageWithSender withSender,
              @Nullable final TopicPath topicPath,
              @Nullable final AuthorizationContext authorizationContext)
focal_class.return: void
focal_class.signature: void handleInboundException(final Exception e,
              final ExternalMessageWithSender withSender,
              @Nullable final TopicPath topicPath,
              @Nullable final AuthorizationContext authorizationContext)
focal_class.class_method_signature: MessageMappingProcessorActor.mapExternalMessageToSignal(final ExternalMessageWithSender withSender)
focal_class.full_signature: private Source<Signal<?>, ?> mapExternalMessageToSignal(final ExternalMessageWithSender withSender)
focal_class.identifier: mapExternalMessageToSignal
focal_class.modifiers: private
focal_class.parameters: (final ExternalMessageWithSender withSender)
focal_class.return: Source<Signal<?>, ?>
focal_class.signature: Source<Signal<?>, ?> mapExternalMessageToSignal(final ExternalMessageWithSender withSender)
focal_class.class_method_signature: MessageMappingProcessorActor.handleMappingResult(final ExternalMessageWithSender withSender,
              final AuthorizationContext authorizationContext)
focal_class.full_signature: private InboundMappingResultHandler handleMappingResult(final ExternalMessageWithSender withSender,
              final AuthorizationContext authorizationContext)
focal_class.identifier: handleMappingResult
focal_class.modifiers: private
focal_class.parameters: (final ExternalMessageWithSender withSender,
              final AuthorizationContext authorizationContext)
focal_class.return: InboundMappingResultHandler
focal_class.signature: InboundMappingResultHandler handleMappingResult(final ExternalMessageWithSender withSender,
              final AuthorizationContext authorizationContext)
focal_class.class_method_signature: MessageMappingProcessorActor.handleErrorResponse(final DittoRuntimeException exception, final ErrorResponse<?> errorResponse,
              final ActorRef sender)
focal_class.full_signature: private void handleErrorResponse(final DittoRuntimeException exception, final ErrorResponse<?> errorResponse,
              final ActorRef sender)
focal_class.identifier: handleErrorResponse
focal_class.modifiers: private
focal_class.parameters: (final DittoRuntimeException exception, final ErrorResponse<?> errorResponse,
              final ActorRef sender)
focal_class.return: void
focal_class.signature: void handleErrorResponse(final DittoRuntimeException exception, final ErrorResponse<?> errorResponse,
              final ActorRef sender)
focal_class.class_method_signature: MessageMappingProcessorActor.handleCommandResponse(final CommandResponse<?> response,
              @Nullable final DittoRuntimeException exception, final ActorRef sender)
focal_class.full_signature: private void handleCommandResponse(final CommandResponse<?> response,
              @Nullable final DittoRuntimeException exception, final ActorRef sender)
focal_class.identifier: handleCommandResponse
focal_class.modifiers: private
focal_class.parameters: (final CommandResponse<?> response,
              @Nullable final DittoRuntimeException exception, final ActorRef sender)
focal_class.return: void
focal_class.signature: void handleCommandResponse(final CommandResponse<?> response,
              @Nullable final DittoRuntimeException exception, final ActorRef sender)
focal_class.class_method_signature: MessageMappingProcessorActor.recordResponse(final CommandResponse<?> response, @Nullable final DittoRuntimeException exception)
focal_class.full_signature: private void recordResponse(final CommandResponse<?> response, @Nullable final DittoRuntimeException exception)
focal_class.identifier: recordResponse
focal_class.modifiers: private
focal_class.parameters: (final CommandResponse<?> response, @Nullable final DittoRuntimeException exception)
focal_class.return: void
focal_class.signature: void recordResponse(final CommandResponse<?> response, @Nullable final DittoRuntimeException exception)
focal_class.class_method_signature: MessageMappingProcessorActor.handleOutboundSignal(final OutboundSignalWithId outbound)
focal_class.full_signature: private Source<OutboundSignalWithId, ?> handleOutboundSignal(final OutboundSignalWithId outbound)
focal_class.identifier: handleOutboundSignal
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignalWithId outbound)
focal_class.return: Source<OutboundSignalWithId, ?>
focal_class.signature: Source<OutboundSignalWithId, ?> handleOutboundSignal(final OutboundSignalWithId outbound)
focal_class.class_method_signature: MessageMappingProcessorActor.forwardToPublisherActor(final OutboundSignal.MultiMapped mappedEnvelop)
focal_class.full_signature: private void forwardToPublisherActor(final OutboundSignal.MultiMapped mappedEnvelop)
focal_class.identifier: forwardToPublisherActor
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignal.MultiMapped mappedEnvelop)
focal_class.return: void
focal_class.signature: void forwardToPublisherActor(final OutboundSignal.MultiMapped mappedEnvelop)
focal_class.class_method_signature: MessageMappingProcessorActor.handleSignal(final Signal<?> signal, final ActorRef sender)
focal_class.full_signature: private void handleSignal(final Signal<?> signal, final ActorRef sender)
focal_class.identifier: handleSignal
focal_class.modifiers: private
focal_class.parameters: (final Signal<?> signal, final ActorRef sender)
focal_class.return: void
focal_class.signature: void handleSignal(final Signal<?> signal, final ActorRef sender)
focal_class.class_method_signature: MessageMappingProcessorActor.mapToExternalMessage(final OutboundSignalWithId outbound)
focal_class.full_signature: private Source<OutboundSignalWithId, ?> mapToExternalMessage(final OutboundSignalWithId outbound)
focal_class.identifier: mapToExternalMessage
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignalWithId outbound)
focal_class.return: Source<OutboundSignalWithId, ?>
focal_class.signature: Source<OutboundSignalWithId, ?> mapToExternalMessage(final OutboundSignalWithId outbound)
focal_class.class_method_signature: MessageMappingProcessorActor.getMonitorsForDroppedSignal(final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.full_signature: private Set<ConnectionMonitor> getMonitorsForDroppedSignal(final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.identifier: getMonitorsForDroppedSignal
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.return: Set<ConnectionMonitor>
focal_class.signature: Set<ConnectionMonitor> getMonitorsForDroppedSignal(final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.class_method_signature: MessageMappingProcessorActor.getMonitorsForMappedSignal(final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.full_signature: private Set<ConnectionMonitor> getMonitorsForMappedSignal(final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.identifier: getMonitorsForMappedSignal
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.return: Set<ConnectionMonitor>
focal_class.signature: Set<ConnectionMonitor> getMonitorsForMappedSignal(final OutboundSignal outbound,
              final ConnectionId connectionId)
focal_class.class_method_signature: MessageMappingProcessorActor.getMonitorsForOutboundSignal(final OutboundSignal outbound,
              final ConnectionId connectionId,
              final MetricType metricType,
              final LogType logType,
              final ConnectionMonitor responseMonitor)
focal_class.full_signature: private Set<ConnectionMonitor> getMonitorsForOutboundSignal(final OutboundSignal outbound,
              final ConnectionId connectionId,
              final MetricType metricType,
              final LogType logType,
              final ConnectionMonitor responseMonitor)
focal_class.identifier: getMonitorsForOutboundSignal
focal_class.modifiers: private
focal_class.parameters: (final OutboundSignal outbound,
              final ConnectionId connectionId,
              final MetricType metricType,
              final LogType logType,
              final ConnectionMonitor responseMonitor)
focal_class.return: Set<ConnectionMonitor>
focal_class.signature: Set<ConnectionMonitor> getMonitorsForOutboundSignal(final OutboundSignal outbound,
              final ConnectionId connectionId,
              final MetricType metricType,
              final LogType logType,
              final ConnectionMonitor responseMonitor)
focal_class.class_method_signature: MessageMappingProcessorActor.applySignalIdEnforcement(final ExternalMessage externalMessage, final Signal<?> signal)
focal_class.full_signature: private void applySignalIdEnforcement(final ExternalMessage externalMessage, final Signal<?> signal)
focal_class.identifier: applySignalIdEnforcement
focal_class.modifiers: private
focal_class.parameters: (final ExternalMessage externalMessage, final Signal<?> signal)
focal_class.return: void
focal_class.signature: void applySignalIdEnforcement(final ExternalMessage externalMessage, final Signal<?> signal)
focal_class.class_method_signature: MessageMappingProcessorActor.applyInboundHeaderMapping(final Signal<?> signal,
              final ExternalMessage externalMessage,
              @Nullable final AuthorizationContext authorizationContext,
              @Nullable final TopicPath topicPath,
              final DittoHeaders extraInternalHeaders)
focal_class.full_signature: private DittoHeaders applyInboundHeaderMapping(final Signal<?> signal,
              final ExternalMessage externalMessage,
              @Nullable final AuthorizationContext authorizationContext,
              @Nullable final TopicPath topicPath,
              final DittoHeaders extraInternalHeaders)
focal_class.identifier: applyInboundHeaderMapping
focal_class.modifiers: private
focal_class.parameters: (final Signal<?> signal,
              final ExternalMessage externalMessage,
              @Nullable final AuthorizationContext authorizationContext,
              @Nullable final TopicPath topicPath,
              final DittoHeaders extraInternalHeaders)
focal_class.return: DittoHeaders
focal_class.signature: DittoHeaders applyInboundHeaderMapping(final Signal<?> signal,
              final ExternalMessage externalMessage,
              @Nullable final AuthorizationContext authorizationContext,
              @Nullable final TopicPath topicPath,
              final DittoHeaders extraInternalHeaders)
focal_class.class_method_signature: MessageMappingProcessorActor.appendInternalHeaders(final DittoHeadersBuilder<?, ?> builder,
              @Nullable final AuthorizationContext authorizationContext,
              final DittoHeaders extraInternalHeaders,
              final boolean appendRandomCorrelationId)
focal_class.full_signature: private DittoHeadersBuilder<?, ?> appendInternalHeaders(final DittoHeadersBuilder<?, ?> builder,
              @Nullable final AuthorizationContext authorizationContext,
              final DittoHeaders extraInternalHeaders,
              final boolean appendRandomCorrelationId)
focal_class.identifier: appendInternalHeaders
focal_class.modifiers: private
focal_class.parameters: (final DittoHeadersBuilder<?, ?> builder,
              @Nullable final AuthorizationContext authorizationContext,
              final DittoHeaders extraInternalHeaders,
              final boolean appendRandomCorrelationId)
focal_class.return: DittoHeadersBuilder<?, ?>
focal_class.signature: DittoHeadersBuilder<?, ?> appendInternalHeaders(final DittoHeadersBuilder<?, ?> builder,
              @Nullable final AuthorizationContext authorizationContext,
              final DittoHeaders extraInternalHeaders,
              final boolean appendRandomCorrelationId)
focal_class.class_method_signature: MessageMappingProcessorActor.toMultiMappedOutboundSignal(
              final Source<OutboundSignalWithId, T> source)
focal_class.full_signature: private CompletionStage<Collection<OutboundSignal.MultiMapped>> toMultiMappedOutboundSignal(
              final Source<OutboundSignalWithId, T> source)
focal_class.identifier: toMultiMappedOutboundSignal
focal_class.modifiers: private
focal_class.parameters: (
              final Source<OutboundSignalWithId, T> source)
focal_class.return: CompletionStage<Collection<OutboundSignal.MultiMapped>>
focal_class.signature: CompletionStage<Collection<OutboundSignal.MultiMapped>> toMultiMappedOutboundSignal(
              final Source<OutboundSignalWithId, T> source)
focal_class.class_method_signature: MessageMappingProcessorActor.appendConnectionIdToAcknowledgementOrResponse(final T commandResponse,
              final ConnectionId connectionId)
focal_class.full_signature: static T appendConnectionIdToAcknowledgementOrResponse(final T commandResponse,
              final ConnectionId connectionId)
focal_class.identifier: appendConnectionIdToAcknowledgementOrResponse
focal_class.modifiers: static
focal_class.parameters: (final T commandResponse,
              final ConnectionId connectionId)
focal_class.return: T
focal_class.signature: T appendConnectionIdToAcknowledgementOrResponse(final T commandResponse,
              final ConnectionId connectionId)
focal_class.class_method_signature: MessageMappingProcessorActor.appendConnectionIdToAcknowledgements(final Acknowledgements acknowledgements,
              final ConnectionId connectionId)
focal_class.full_signature: static Acknowledgements appendConnectionIdToAcknowledgements(final Acknowledgements acknowledgements,
              final ConnectionId connectionId)
focal_class.identifier: appendConnectionIdToAcknowledgements
focal_class.modifiers: static
focal_class.parameters: (final Acknowledgements acknowledgements,
              final ConnectionId connectionId)
focal_class.return: Acknowledgements
focal_class.signature: Acknowledgements appendConnectionIdToAcknowledgements(final Acknowledgements acknowledgements,
              final ConnectionId connectionId)
focal_class.class_method_signature: MessageMappingProcessorActor.applyFilter(final OutboundSignalWithId outboundSignalWithExtra,
              final FilteredTopic filteredTopic)
focal_class.full_signature: private static Collection<OutboundSignalWithId> applyFilter(final OutboundSignalWithId outboundSignalWithExtra,
              final FilteredTopic filteredTopic)
focal_class.identifier: applyFilter
focal_class.modifiers: private static
focal_class.parameters: (final OutboundSignalWithId outboundSignalWithExtra,
              final FilteredTopic filteredTopic)
focal_class.return: Collection<OutboundSignalWithId>
focal_class.signature: Collection<OutboundSignalWithId> applyFilter(final OutboundSignalWithId outboundSignalWithExtra,
              final FilteredTopic filteredTopic)
focal_class.class_method_signature: MessageMappingProcessorActor.stackTraceAsString(final DittoRuntimeException exception)
focal_class.full_signature: private static String stackTraceAsString(final DittoRuntimeException exception)
focal_class.identifier: stackTraceAsString
focal_class.modifiers: private static
focal_class.parameters: (final DittoRuntimeException exception)
focal_class.return: String
focal_class.signature: String stackTraceAsString(final DittoRuntimeException exception)
focal_class.class_method_signature: MessageMappingProcessorActor.isSuccessResponse(final CommandResponse<?> response)
focal_class.full_signature: private static boolean isSuccessResponse(final CommandResponse<?> response)
focal_class.identifier: isSuccessResponse
focal_class.modifiers: private static
focal_class.parameters: (final CommandResponse<?> response)
focal_class.return: boolean
focal_class.signature: boolean isSuccessResponse(final CommandResponse<?> response)
focal_class.class_method_signature: MessageMappingProcessorActor.getAuthorizationContextOrThrow(final ExternalMessage externalMessage)
focal_class.full_signature: private static AuthorizationContext getAuthorizationContextOrThrow(final ExternalMessage externalMessage)
focal_class.identifier: getAuthorizationContextOrThrow
focal_class.modifiers: private static
focal_class.parameters: (final ExternalMessage externalMessage)
focal_class.return: AuthorizationContext
focal_class.signature: AuthorizationContext getAuthorizationContextOrThrow(final ExternalMessage externalMessage)
focal_class.class_method_signature: MessageMappingProcessorActor.getAuthorizationContext(final ExternalMessage externalMessage)
focal_class.full_signature: private static Optional<AuthorizationContext> getAuthorizationContext(final ExternalMessage externalMessage)
focal_class.identifier: getAuthorizationContext
focal_class.modifiers: private static
focal_class.parameters: (final ExternalMessage externalMessage)
focal_class.return: Optional<AuthorizationContext>
focal_class.signature: Optional<AuthorizationContext> getAuthorizationContext(final ExternalMessage externalMessage)
focal_class.class_method_signature: MessageMappingProcessorActor.getAuthorizationContextAsEither(
              final ExternalMessage externalMessage)
focal_class.full_signature: private static Either<RuntimeException, AuthorizationContext> getAuthorizationContextAsEither(
              final ExternalMessage externalMessage)
focal_class.identifier: getAuthorizationContextAsEither
focal_class.modifiers: private static
focal_class.parameters: (
              final ExternalMessage externalMessage)
focal_class.return: Either<RuntimeException, AuthorizationContext>
focal_class.signature: Either<RuntimeException, AuthorizationContext> getAuthorizationContextAsEither(
              final ExternalMessage externalMessage)
focal_class.class_method_signature: MessageMappingProcessorActor.splitTargetsByExtraFields(
              final OutboundSignal outboundSignal)
focal_class.full_signature: private static Pair<List<Target>, List<Pair<Target, FilteredTopic>>> splitTargetsByExtraFields(
              final OutboundSignal outboundSignal)
focal_class.identifier: splitTargetsByExtraFields
focal_class.modifiers: private static
focal_class.parameters: (
              final OutboundSignal outboundSignal)
focal_class.return: Pair<List<Target>, List<Pair<Target, FilteredTopic>>>
focal_class.signature: Pair<List<Target>, List<Pair<Target, FilteredTopic>>> splitTargetsByExtraFields(
              final OutboundSignal outboundSignal)
focal_class.class_method_signature: MessageMappingProcessorActor.isTwinCommandResponseWithReplyTarget(final Signal<?> signal)
focal_class.full_signature: private static boolean isTwinCommandResponseWithReplyTarget(final Signal<?> signal)
focal_class.identifier: isTwinCommandResponseWithReplyTarget
focal_class.modifiers: private static
focal_class.parameters: (final Signal<?> signal)
focal_class.return: boolean
focal_class.signature: boolean isTwinCommandResponseWithReplyTarget(final Signal<?> signal)
focal_class.class_method_signature: MessageMappingProcessorActor.canRequestAcks(final Signal<?> signal)
focal_class.full_signature: private static boolean canRequestAcks(final Signal<?> signal)
focal_class.identifier: canRequestAcks
focal_class.modifiers: private static
focal_class.parameters: (final Signal<?> signal)
focal_class.return: boolean
focal_class.signature: boolean canRequestAcks(final Signal<?> signal)
focal_class.class_method_signature: MessageMappingProcessorActor.isApplicable(
              final AbstractCommandAckRequestSetter<C> setter, final Signal<?> signal)
focal_class.full_signature: private static boolean isApplicable(
              final AbstractCommandAckRequestSetter<C> setter, final Signal<?> signal)
focal_class.identifier: isApplicable
focal_class.modifiers: private static
focal_class.parameters: (
              final AbstractCommandAckRequestSetter<C> setter, final Signal<?> signal)
focal_class.return: boolean
focal_class.signature: boolean isApplicable(
              final AbstractCommandAckRequestSetter<C> setter, final Signal<?> signal)
focal_class.superclass: extends AbstractGraphActor<MessageMappingProcessorActor.OutboundSignalWithId, OutboundSignal>
focal_method.body: static Signal<?> filterAcknowledgements(final Signal<?> signal, final @Nullable String filter) {
          if (filter != null) {
              final String requestedAcks = DittoHeaderDefinition.REQUESTED_ACKS.getKey();
              final boolean headerDefined = signal.getDittoHeaders().containsKey(requestedAcks);
              final String fullFilter = "header:" + requestedAcks + "|fn:default('[]')|" + filter;
              final ExpressionResolver resolver = Resolvers.forSignal(signal);
              final Optional<String> resolverResult = resolver.resolveAsPipelineElement(fullFilter).toOptional();
              if (resolverResult.isEmpty()) {
                  // filter tripped: set requested-acks to []
                  return signal.setDittoHeaders(DittoHeaders.newBuilder(signal.getDittoHeaders())
                          .acknowledgementRequests(Collections.emptySet())
                          .build());
              } else if (headerDefined) {
                  // filter not tripped, header defined
                  return signal.setDittoHeaders(DittoHeaders.newBuilder(signal.getDittoHeaders())
                          .putHeader(requestedAcks, resolverResult.orElseThrow())
                          .build());
              } else {
                  // filter not tripped, header not defined:
                  // - evaluate filter again against unresolved and set requested-acks accordingly
                  // - if filter is not resolved, then keep requested-acks undefined for the default behavior
                  final Optional<String> unsetFilterResult =
                          resolver.resolveAsPipelineElement(filter).toOptional();
                  return unsetFilterResult.<Signal<?>>map(newAckRequests ->
                          signal.setDittoHeaders(DittoHeaders.newBuilder(signal.getDittoHeaders())
                                  .putHeader(requestedAcks, newAckRequests)
                                  .build()))
                          .orElse(signal);
              }
          }
          return signal;
      }
focal_method.class_method_signature: MessageMappingProcessorActor.filterAcknowledgements(final Signal<?> signal, final @Nullable String filter)
focal_method.full_signature: static Signal<?> filterAcknowledgements(final Signal<?> signal, final @Nullable String filter)
focal_method.identifier: filterAcknowledgements
focal_method.invocations: getKey containsKey getDittoHeaders forSignal toOptional resolveAsPipelineElement isEmpty setDittoHeaders build acknowledgementRequests newBuilder getDittoHeaders emptySet setDittoHeaders build putHeader newBuilder getDittoHeaders orElseThrow toOptional resolveAsPipelineElement orElse map setDittoHeaders build putHeader newBuilder getDittoHeaders
focal_method.modifiers: static
focal_method.parameters: (final Signal<?> signal, final @Nullable String filter)
focal_method.return: Signal<?>
focal_method.signature: Signal<?> filterAcknowledgements(final Signal<?> signal, final @Nullable String filter)