/**
  * @param OutgoingLogicalMessageContext $context
  * @param callable                      $next
  */
 public function invoke($context, callable $next)
 {
     $correlationId = null;
     if ($context->getIncomingPhysicalMessage()) {
         $incomingHeaders = $context->getIncomingPhysicalMessage()->getHeaders();
         if (isset($incomingHeaders[HeaderTypeEnum::CORRELATION_ID])) {
             $correlationId = $incomingHeaders[HeaderTypeEnum::CORRELATION_ID];
         }
         if (!$correlationId && isset($incomingHeaders[HeaderTypeEnum::MESSAGE_ID])) {
             $correlationId = $incomingHeaders[HeaderTypeEnum::MESSAGE_ID];
         }
     }
     if (!$correlationId) {
         $correlationId = $context->getMessageId();
     }
     $context->setHeader(HeaderTypeEnum::CORRELATION_ID, $correlationId);
     $next();
 }
Ejemplo n.º 2
0
 /**
  * @param string                        $body
  * @param OutgoingLogicalMessageContext $parentContext
  *
  * @return OutgoingPhysicalMessageContext
  */
 public function createPhysicalMessageContext($body, OutgoingLogicalMessageContext $parentContext)
 {
     return new OutgoingPhysicalMessageContext($parentContext->getMessageId(), $parentContext->getHeaders(), new OutgoingPhysicalMessage($parentContext->getMessageId(), $parentContext->getHeaders(), $body), $parentContext->getAddressTags(), $parentContext->isImmediateDispatchEnabled(), $parentContext->getIncomingPhysicalMessage(), $parentContext->getPendingTransportOperations(), $parentContext);
 }