/** * @param OutgoingPublishContext $context * @param callable $next */ public function invoke($context, callable $next) { $context->setHeader(HeaderTypeEnum::MESSAGE_INTENT, MessageIntentEnum::PUBLISH); $logicalMesageContext = $this->contextFactory->createLogicalMessageContextFromPublishContext($context); $next($logicalMesageContext); }
/** * @param OutgoingPublishContext $parentContext * * @return OutgoingLogicalMessageContext */ public function createLogicalMessageContextFromPublishContext(OutgoingPublishContext $parentContext) { return new OutgoingLogicalMessageContext($parentContext->getMessageId(), $parentContext->getHeaders(), $parentContext->getLogicalMessage(), [new MulticastAddressTag($parentContext->getLogicalMessage()->getMessageClass())], $parentContext->getPublishOptions()->isImmediateDispatchEnabled(), $parentContext->getIncomingPhysicalMessage(), $parentContext->getPendingTransportOperations(), $parentContext); }