static void Main(string[] args) { IKernel kernel = new StandardKernel(); IMessageBusConfiguration configuration = MessageBusConfiguration.Create() .EndpointName("TestSubscriber") .ErrorQueueName("SubscriberErrors") .AddMessageDefinition <TestMessage>(d => { d.MessageAction = MessageAction.Event; d.QueueName = "TestService"; d.HandlerType = typeof(TestMessageHandler); }); kernel.Bind <IMessageBusSerialiser>().To <JsonSerialiser>(); kernel.Bind <IMessageBusConfiguration>().ToConstant(configuration).InSingletonScope(); IMessageBusContainer container = new NinjectContainer(kernel); //var bus = new NSBMessageBus(container, configuration); //var bus = new RMQMessageBus(container, configuration); //var bus = new AMQMessageBus(container, configuration); var bus = new WSBMessageBus(container, configuration.HostName("campc-df7.bradyplc.com").ServiceNamespace("TheMagicBus")); bus.Start(); Console.WriteLine("Press Enter to quit"); Console.ReadLine(); }
void RegisterMintRequestProjector(IMessageBusConfiguration configuration) { configuration.EventReceivers.Register <MintRequested>(() => mintRequestProjector); configuration.EventReceivers.Register <Minted>(() => mintRequestProjector); configuration.EventReceivers.Register <MintCanceling>(() => mintRequestProjector); configuration.EventReceivers.Register <MintCanceled>(() => mintRequestProjector); }
public NSBMessageBus(IMessageBusContainer container, IMessageBusConfiguration configuration) { NSBGlobalConfiguration.Config = configuration; _nsbConfiguration = new BusConfiguration(); _nsbConfiguration.UseContainer <NSBContainer>(c => c.Configure(container, configuration)); _nsbConfiguration.UseSerialization(typeof(NSBSerialiser)); _nsbConfiguration.EndpointName(configuration.EndpointName); _nsbConfiguration.EnableInstallers(); _nsbConfiguration.DisableFeature <AutoSubscribe>(); _nsbConfiguration.UsePersistence <InMemoryPersistence>(); //_nsbConfiguration.LoadMessageHandlers(configuration); _nsbConfiguration.CustomConfigurationSource(new NSBRouteConfiguration(configuration)); _nsbConfiguration.RegisterComponents(c => c.ConfigureComponents(this, configuration)); ConventionsBuilder builder = _nsbConfiguration.Conventions(); builder.DefiningCommandsAs(t => configuration.MessageDefinitions.SingleOrDefault(md => md.MessageType == t && md.MessageAction == Core.MessageAction.Command) != null); builder.DefiningEventsAs(t => configuration.MessageDefinitions.SingleOrDefault(md => md.MessageType == t && md.MessageAction == Core.MessageAction.Event) != null); builder.DefiningMessagesAs(t => configuration.MessageDefinitions.SingleOrDefault(md => md.MessageType == t && md.MessageAction == Core.MessageAction.Message) != null); builder.DefiningExpressMessagesAs(t => configuration.MessageDefinitions.SingleOrDefault(md => md.MessageType == t && md.ExpressMe == true) != null); _factory = Bus.Create(_nsbConfiguration); _factory.Subscribe(configuration.MessageDefinitions); }
internal MessageDispatcher(IMessageBusConfiguration configuration, ISagaActivator sagaActivator) { Contract.Requires(configuration != null); Contract.Requires(sagaActivator != null); commands = new CommandDispatcher(configuration, sagaActivator); events = new EventDispatcher(configuration, sagaActivator); }
protected MessageDispatcher(IMessageBusConfiguration configuration, ISagaActivator saga) { Contract.Requires(configuration != null); Contract.Requires(saga != null); Configuration = configuration; Saga = saga; }
internal InMemoryMessageBusConfiguration(IMessageBusConfiguration configuration, PendingOperations pendingOperations) { Arg.NotNull(configuration, nameof(configuration)); Arg.NotNull(pendingOperations, nameof(pendingOperations)); inner = configuration; PendingOperations = pendingOperations; }
void RegisterOrderProjector(IMessageBusConfiguration configuration) { configuration.EventReceivers.Register <OrderPlaced>(() => orderProjector); configuration.EventReceivers.Register <OrderFulfilled>(() => orderProjector); configuration.EventReceivers.Register <OrderCanceled>(() => orderProjector); configuration.EventReceivers.Register <TokenReserved>(() => orderProjector); configuration.EventReceivers.Register <TokenUnreserved>(() => orderProjector); }
public AzureMessagePublisher(IMessageBusConfiguration configuration, IMessageSerializer serializer, ILogger <AzureMessagePublisher> logger) { _configuration = configuration; _serializer = serializer; _logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="MessageBus"/> class. /// </summary> /// <param name="configuration">The associated <see cref="IMessageBusConfiguration">configuration</see>.</param> public MessageBus(IMessageBusConfiguration configuration) { Arg.NotNull(configuration, nameof(configuration)); Configuration = configuration; SagaActivator = new SagaActivator(configuration); dispatcher = new MessageDispatcher(configuration, SagaActivator); commandSender = new QueuedCommandSender(configuration.MessageSender); }
void RegisterOrderSaga(IMessageBusConfiguration configuration) { Func <Order> activateSaga = () => new Order(); configuration.CommandHandlers.Register <PlaceOrder>(activateSaga); configuration.CommandHandlers.Register <CancelOrder>(activateSaga); configuration.EventReceivers.Register <OrderPlaced>(activateSaga); configuration.EventReceivers.Register <OrderTookTooLongToFulfill>(activateSaga); }
void RegisterMintingSaga(IMessageBusConfiguration configuration) { Func <MintRequest> activateSaga = () => new MintRequest(); configuration.CommandHandlers.Register <Mint>(activateSaga); configuration.CommandHandlers.Register <StartMintJob>(activateSaga); configuration.CommandHandlers.Register <CancelMint>(activateSaga); configuration.CommandHandlers.Register <StopMintJob>(activateSaga); }
public ActiveMQMessagePublisher(IMessageBusConfiguration configuration, IMessageSerializer serializer, ILogger <ActiveMQMessagePublisher> logger) { _configuration = configuration; _serializer = serializer; _factory = new ConnectionFactory(_configuration.ConnectionString); _logger = logger; }
public static IMessageBusConfiguration MessageDefinition(this IMessageBusConfiguration config, MessageMetadata definition) { if (config.MessageDefinitions == null) { config.MessageDefinitions = new List <MessageMetadata>(); } config.MessageDefinitions.Add(definition); return(config); }
internal SagaActivator(IMessageBusConfiguration configuration) { Contract.Requires(configuration != null); var sagas = configuration.Sagas; this.configuration = configuration; clock = configuration.Clock; storage = sagas.Storage; sagaMetadata = sagas.Metadata; }
void RegisterTokenProjector(IMessageBusConfiguration configuration) { configuration.EventReceivers.Register <TokenMinted>(() => tokenProjector); configuration.EventReceivers.Register <TokenCirculated>(() => tokenProjector); configuration.EventReceivers.Register <TokenReserved>(() => tokenProjector); configuration.EventReceivers.Register <TokenActivated>(() => tokenProjector); configuration.EventReceivers.Register <TokenRedeemed>(() => tokenProjector); configuration.EventReceivers.Register <TokenDeactivated>(() => tokenProjector); configuration.EventReceivers.Register <TokenUnreserved>(() => tokenProjector); configuration.EventReceivers.Register <TokenVoided>(() => tokenProjector); }
public ActiveMQMessageHandler(IServiceProvider serviceProvider, IMessageBusConfiguration configuration, IMessageSerializer serializer, IActiveMQMessageFilterFactory filterFactory, ILogger <ActiveMQMessageHandler> logger) { _serviceProvider = serviceProvider; _configuration = configuration; _serializer = serializer; _filterFactory = filterFactory; _factory = new ConnectionFactory(_configuration.ConnectionString); _logger = logger; }
public static IMessageBusConfiguration AddMessageDefinition <T_message>(this IMessageBusConfiguration config, Action <MessageMetadata <T_message> > configureDefinition) { if (config.MessageDefinitions == null) { config.MessageDefinitions = new List <MessageMetadata>(); } var definition = new MessageMetadata <T_message>(); configureDefinition(definition); config.MessageDefinitions.Add(definition); return(config); }
void RegisterTokenCommandHandlers(IMessageBusConfiguration configuration) { var tokens = (IRepository <string, Token>)configuration.GetService(typeof(IRepository <string, Token>)); var tokenVault = (ITokenVault)configuration.GetService(typeof(ITokenVault)); var handler = new TokenStateMediator(tokens, tokenVault); configuration.CommandHandlers.Register <ReserveToken>(() => handler); configuration.CommandHandlers.Register <RedeemToken>(() => handler); configuration.CommandHandlers.Register <VoidToken>(() => handler); configuration.CommandHandlers.Register <DeactivateToken>(() => handler); configuration.CommandHandlers.Register <UnreserveToken>(() => handler); configuration.CommandHandlers.Register <ActivateToken>(() => handler); }
public NSBMessageHandlerTypes(IMessageBusConfiguration config) { _config = config; var nsbHandlerType = typeof(NSBMessageHandler <,>); var bmfHandlerType = typeof(MessageHandler <>); _handlers = _config.MessageDefinitions.Select(md => { var bmfMessageHandlerType = bmfHandlerType.MakeGenericType(md.MessageType); var nsbMessageHandlerType = nsbHandlerType.MakeGenericType(md.MessageType, bmfMessageHandlerType); return(nsbMessageHandlerType); }).ToArray(); }
public AMQMessageBus(IMessageBusContainer container, IMessageBusConfiguration configuration) { _container = container; _configuration = configuration; _serialiser = container.ResolveType <IMessageBusSerialiser>(); var hostName = string.IsNullOrEmpty(configuration.HostName) ? _defaultHost : configuration.HostName; var brokerUri = string.Format(_brokerUriTemplate, hostName); _factory = new ConnectionFactory(brokerUri); _connection = _factory.CreateConnection(); _connection.ClientId = _configuration.EndpointName; _session = _connection.CreateSession(); }
public static IMessageBusConfiguration TcpPort(this IMessageBusConfiguration config, int port) { if (config.ExtendedConfiguration == null) { config.ExtendedConfiguration = new WSBExtendedConfiguration(); } var wsbConf = config.ExtendedConfiguration as WSBExtendedConfiguration; if (wsbConf != null) { wsbConf.TcpPort = port; } return(config); }
public static IMessageBusConfiguration ServiceNamespace(this IMessageBusConfiguration config, string serviceNamespace) { if (config.ExtendedConfiguration == null) { config.ExtendedConfiguration = new WSBExtendedConfiguration(); } var wsbConf = config.ExtendedConfiguration as WSBExtendedConfiguration; if (wsbConf != null) { wsbConf.ServiceNamespace = serviceNamespace; } return(config); }
public RMQMessageBus(IMessageBusContainer container, IMessageBusConfiguration configuration) { _container = container; _configuration = configuration; _serialiser = container.ResolveType <IMessageBusSerialiser>(); _factory = new ConnectionFactory() { HostName = string.IsNullOrEmpty(configuration.HostName) ? _defaultHost : configuration.HostName }; _connection = _factory.CreateConnection(); _channel = _connection.CreateModel(); foreach (var exchange in _configuration.MessageDefinitions.Where(md => md.MessageAction == Core.MessageAction.Event).Select(md => md.QueueName).Distinct()) { _channel.ExchangeDeclare(exchange, "fanout", true); } }
public WSBMessageBus(IMessageBusContainer container, IMessageBusConfiguration configuration) { _container = container; _configuration = configuration; _serialiser = container.ResolveType <IMessageBusSerialiser>(); var extendedConfig = configuration.ExtendedConfiguration as WSBExtendedConfiguration; if (extendedConfig == null) { extendedConfig = new WSBExtendedConfiguration(); } var connectStringBuilder = new ServiceBusConnectionStringBuilder(); var hostName = string.IsNullOrEmpty(_configuration.HostName) ? _defaultHost : _configuration.HostName; var managementPort = extendedConfig.HttpPort == 0 ? _defaultManagementPort : extendedConfig.HttpPort; var runtimePort = extendedConfig.TcpPort == 0 ? _defaultRuntimePort : extendedConfig.TcpPort; connectStringBuilder.ManagementPort = managementPort; connectStringBuilder.RuntimePort = runtimePort; connectStringBuilder.Endpoints.Add((new UriBuilder() { Scheme = "sb", Host = hostName, Path = extendedConfig.ServiceNamespace }).Uri); connectStringBuilder.StsEndpoints.Add((new UriBuilder() { Scheme = "https", Host = hostName, Port = managementPort, Path = extendedConfig.ServiceNamespace }).Uri); var connectionString = connectStringBuilder.ToString(); _messageFactory = MessagingFactory.CreateFromConnectionString(connectionString); _namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString); foreach (var queueName in _configuration.MessageDefinitions.Where(md => md.MessageAction == Core.MessageAction.Event).Select(md => md.QueueName).Distinct()) { CreateTopic(queueName); } }
static void Main(string[] args) { IKernel kernel = new StandardKernel(); IMessageBusConfiguration configuration = MessageBusConfiguration.Create() .EndpointName("TestClient") .ErrorQueueName("ClientErrors") .AddMessageDefinition <TestRequest>(d => d.MessageAction = MessageAction.Command); kernel.Bind <IMessageBusSerialiser>().To <JsonSerialiser>(); kernel.Bind <IMessageBusConfiguration>().ToConstant(configuration).InSingletonScope(); IMessageBusContainer container = new NinjectContainer(kernel); //var bus = new NSBMessageBus(container, configuration); //var bus = new RMQMessageBus(container, configuration); //var bus = new AMQMessageBus(container, configuration); var bus = new WSBMessageBus(container, configuration.HostName("campc-df7.bradyplc.com").ServiceNamespace("TheMagicBus")); bus.Start(); SendMessages(bus); }
internal CommandDispatcher(IMessageBusConfiguration configuration, ISagaActivator saga) : base(configuration, saga) => commandHandlers = configuration.CommandHandlers;
public static IMessageBusConfiguration EndpointName(this IMessageBusConfiguration config, string endpoint) { config.EndpointName = endpoint; return(config); }
public static IMessageBusConfiguration ErrorQueueName(this IMessageBusConfiguration config, string errorQueue) { config.ErrorQueueName = errorQueue; return(config); }
public MessageBus(IHandler handler, IMessageBusConfiguration configuration) { this.configuration = configuration; this.handler = handler; }
public NSBRouteConfiguration(IMessageBusConfiguration configuration) { _messageDefinitions = configuration.MessageDefinitions; }