void BuildPipeline(PointToPointReceiverChannelSchema schema, ReceiveMessageCache messageCache) { MessagePipelineBuilder.Build() .With(messageReceiver) .ToProcessor(new BodyMessageFilter(schema.Address)) .ToProcessorIf(new NullMessageProcessor(), schema.BlockMessages) .ToProcessor(new ReceiverAuthenticationSessionVerifier(authenticationSessionCache, authenticatedServerRegistry)) .ToProcessor(new MessageRegisteredAddressReassigner(serverAddressRegistry)) .ToProcessor(new SequenceOriginApplier(messageCache)) .ToProcessor(new MessageSendTimeRemover()) .ToProcessor(new ReceiveChannelMessageCacher(messageCache)) .ToProcessor(new MessageAcknowledger(acknowledgementSender)) .ToSimpleMessageRepeater(messageCache, systemTime, taskRepeater) .ToProcessor(new ReceiveChannelMessageCacher(messageCache)) .Queue() .ToResequencerIfSequenced(messageCache, schema) .ToProcessor(new ExceptionHandler(schema.ContinueOnException)) .ToConverter(new MessagePayloadUnpackager(serialiser)) .ToProcessor(new MessageFilter(schema.FilterStrategy)) .ToProcessor(schema.UnitOfWorkRunnerCreator()) .ToProcessor(new BatchUnpackager()) .ToEndPoint(messageHandlerRouter); }
public void Build(PointToPointReceiverChannelSchema schema) { BuildPipeline(schema, CreateCache(schema)); NotifyPointToPointReceiveChannelBuilt(schema); }
ReceiveMessageCache CreateCache(PointToPointReceiverChannelSchema schema) { return messageCacheFactory.BuildReceiveCache(PersistenceUseType.PointToPointReceive, schema.Address, schema); }
static void NotifyPointToPointReceiveChannelBuilt(PointToPointReceiverChannelSchema schema) { Messenger.Send(new PointToPointReceiveChannelBuilt {Address = schema.Address}); }