/** * @param IncomingPhysicalMessage|null $incomingPhysicalMessage * * @return string */ private function getReplyToAddressFromIncomingMessage(IncomingPhysicalMessage $incomingPhysicalMessage = null) { if (!$incomingPhysicalMessage) { throw new RoutingException("No incoming message found, replies are only valid to call from a message handler."); } $replyToAddress = $incomingPhysicalMessage->getReplyToAddress(); if ($replyToAddress === null || $replyToAddress === '') { $messageType = $incomingPhysicalMessage->getHeaders()[HeaderTypeEnum::ENCLOSED_CLASS]; throw new RoutingException("No 'ReplyToAddress' found on the '{$messageType}' being processed"); } return $incomingPhysicalMessage->getReplyToAddress(); }
/** * @param IncomingPhysicalMessage $physicalMessage * * @return IncomingLogicalMessage|null */ private function extractMessage(IncomingPhysicalMessage $physicalMessage) { $body = $physicalMessage->getBody(); if ($body === null || $body === '') { return null; } if (!isset($physicalMessage->getHeaders()[HeaderTypeEnum::ENCLOSED_CLASS])) { return null; } $messageClass = $physicalMessage->getHeaders()[HeaderTypeEnum::ENCLOSED_CLASS]; $serializer = $this->deserializerResolver->resolve($physicalMessage->getHeaders()); $instanceMessage = $serializer->deserialize($body, $messageClass); return $this->logicalMessageFactory->createFromObject($instanceMessage); }