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); }
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 void Configure(this ContainerCustomizations customizations, IMessageBusContainer container, IMessageBusConfiguration configuration) { customizations.Settings.Set("MessageBusContainer", container); customizations.Settings.Set("MessageBusConfiguration", configuration); var nativeContainer = container.NativeContainer; if (nativeContainer is IKernel) { customizations.Settings.Set("ExistingKernel", nativeContainer); } else if (nativeContainer is IUnityContainer) { customizations.Settings.Set("ExistingContainer", nativeContainer); } }
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); } }