protected override void RegisterComponents(PoorMansIoC container)
        {
            container.RegisterType<InProcessMessageStore>(ComponentLifetime.SingleInstance);

            container.RegisterType<InProcessQueueSender>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<InProcessTopicSender>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<InProcessQueueReceiver>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<InProcessSubscriptionReceiver>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<InProcessDelayedDeliveryService>(ComponentLifetime.SingleInstance, typeof (IDelayedDeliveryService));
            container.RegisterType<InProcessDeadLetterOffice>(ComponentLifetime.SingleInstance, typeof (IDeadLetterOffice));
            container.RegisterType<NamespaceCleanser>(ComponentLifetime.SingleInstance, typeof (INamespaceCleanser));
            container.RegisterType<UnsupportedLargeMessageBodyStore>(ComponentLifetime.SingleInstance, typeof (ILargeMessageBodyStore));
            container.RegisterType<InProcessTransport>(ComponentLifetime.SingleInstance, typeof (INimbusTransport));
        }
        public void RegisterWith(PoorMansIoC container)
        {
            container.Register(TypeProvider, typeof(ITypeProvider));
            container.Register(DependencyResolver, typeof(IDependencyResolver));
            container.Register(Logger, typeof(ILogger));
            container.Register(Serializer, typeof(ISerializer));
            container.Register(Compressor, typeof(ICompressor));
            container.Register(Router, typeof(IRouter));
            container.Register(DeliveryRetryStrategy, typeof(IDeliveryRetryStrategy));

            container.RegisterType<PathFactory>(ComponentLifetime.SingleInstance, typeof(IPathFactory));
            container.RegisterType<ReplyQueueNameSetting>(ComponentLifetime.SingleInstance);
            container.RegisterType<RequestResponseCorrelator>(ComponentLifetime.SingleInstance);
            container.RegisterType<CommandMessagePumpsFactory>(ComponentLifetime.SingleInstance);
            container.RegisterType<RequestMessagePumpsFactory>(ComponentLifetime.SingleInstance);
            container.RegisterType<ResponseMessagePumpFactory>(ComponentLifetime.SingleInstance);
            container.RegisterType<MulticastRequestMessagePumpsFactory>(ComponentLifetime.SingleInstance);
            container.RegisterType<MulticastEventMessagePumpsFactory>(ComponentLifetime.SingleInstance);
            container.RegisterType<CompetingEventMessagePumpsFactory>(ComponentLifetime.SingleInstance);
            container.RegisterType<SystemClock>(ComponentLifetime.SingleInstance, typeof(IClock));
            container.RegisterType<DispatchContextManager>(ComponentLifetime.SingleInstance, typeof(IDispatchContextManager));
            container.RegisterType<ResponseMessageDispatcher>(ComponentLifetime.SingleInstance);
            container.RegisterType<HandlerMapper>(ComponentLifetime.SingleInstance, typeof(IHandlerMapper));
            container.RegisterType<MessageDispatcherFactory>(ComponentLifetime.SingleInstance, typeof(IMessageDispatcherFactory));
            container.RegisterType<InboundInterceptorFactory>(ComponentLifetime.SingleInstance, typeof(IInboundInterceptorFactory));
            container.RegisterType<OutboundInterceptorFactory>(ComponentLifetime.SingleInstance, typeof(IOutboundInterceptorFactory));
            container.RegisterType<PropertyInjector>(ComponentLifetime.SingleInstance, typeof(IPropertyInjector), typeof(PropertyInjector));
            container.RegisterType<NimbusMessageFactory>(ComponentLifetime.SingleInstance, typeof(INimbusMessageFactory));
            container.RegisterType<BusCommandSender>(ComponentLifetime.SingleInstance, typeof(ICommandSender));
            container.RegisterType<BusRequestSender>(ComponentLifetime.SingleInstance, typeof(IRequestSender));
            container.RegisterType<BusMulticastRequestSender>(ComponentLifetime.SingleInstance, typeof(IMulticastRequestSender));
            container.RegisterType<BusEventSender>(ComponentLifetime.SingleInstance, typeof(IEventSender));
            container.RegisterType<KnownMessageTypeVerifier>(ComponentLifetime.SingleInstance, typeof(IKnownMessageTypeVerifier));
            container.RegisterType<Heartbeat>(ComponentLifetime.SingleInstance, typeof(IHeartbeat));
            container.RegisterType<Bus>(ComponentLifetime.SingleInstance);
            container.RegisterType<GlobalHandlerThrottle>(ComponentLifetime.SingleInstance, typeof(IGlobalHandlerThrottle));
            container.RegisterType<FilterConditionProvider>(ComponentLifetime.SingleInstance, typeof(IFilterConditionProvider));

            container.RegisterType<MessagePump>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<DefaultRetry>(ComponentLifetime.InstancePerDependency, typeof(IRetry));
        }
        protected override void RegisterComponents(PoorMansIoC container)
        {
            container.RegisterType<AzureServiceBusTransport>(ComponentLifetime.SingleInstance, typeof (INimbusTransport));

            container.RegisterType<BrokeredMessageFactory>(ComponentLifetime.SingleInstance, typeof (IBrokeredMessageFactory));
            container.RegisterType<NamespaceCleanser>(ComponentLifetime.SingleInstance);
            container.RegisterType<AzureQueueManager>(ComponentLifetime.SingleInstance, typeof (IQueueManager));
            container.RegisterType<DelayedDeliveryService>(ComponentLifetime.SingleInstance, typeof (IDelayedDeliveryService));
            container.RegisterType<AzureServiceBusDeadLetterOffice>(ComponentLifetime.SingleInstance, typeof (IDeadLetterOffice));
            container.RegisterType<NamespaceCleanser>(ComponentLifetime.SingleInstance, typeof (INamespaceCleanser));
            container.RegisterType<SqlFilterExpressionGenerator>(ComponentLifetime.SingleInstance, typeof(ISqlFilterExpressionGenerator));

            container.Register(c =>
                               {
                                   var namespaceManagerRoundRobin = new RoundRobin<NamespaceManager>(
                                       c.Resolve<ServerConnectionCountSetting>(),
                                       () =>
                                       {
                                           var namespaceManager = NamespaceManager.CreateFromConnectionString(c.Resolve<ConnectionStringSetting>());
                                           namespaceManager.Settings.OperationTimeout = c.Resolve<DefaultTimeoutSetting>();
                                           return namespaceManager;
                                       },
                                       nsm => false,
                                       nsm => { });

                                   return namespaceManagerRoundRobin;
                               },
                               ComponentLifetime.SingleInstance);

            container.Register<Func<NamespaceManager>>(c => c.Resolve<RoundRobin<NamespaceManager>>().GetNext, ComponentLifetime.InstancePerDependency);

            container.Register(c =>
                               {
                                   var messagingFactoryRoundRobin = new RoundRobin<MessagingFactory>(
                                       container.Resolve<ServerConnectionCountSetting>(),
                                       () =>
                                       {
                                           var messagingFactory = MessagingFactory.CreateFromConnectionString(c.Resolve<ConnectionStringSetting>());
                                           messagingFactory.PrefetchCount = c.Resolve<ConcurrentHandlerLimitSetting>();
                                           return messagingFactory;
                                       },
                                       mf => mf.IsBorked(),
                                       mf => mf.Dispose());

                                   return messagingFactoryRoundRobin;
                               },
                               ComponentLifetime.SingleInstance);

            container.Register<Func<MessagingFactory>>(c => c.Resolve<RoundRobin<MessagingFactory>>().GetNext, ComponentLifetime.InstancePerDependency);
        }
        protected override void RegisterComponents(PoorMansIoC container)
        {
            container.RegisterType<ConnectionMultiplexerFactory>(ComponentLifetime.SingleInstance);
            container.Register(c => new RoundRobin<ConnectionMultiplexer>(c.Resolve<ServerConnectionCountSetting>(),
                                                                          () => c.Resolve<ConnectionMultiplexerFactory>().Create(),
                                                                          multiplexer => false,
                                                                          multiplexer => multiplexer.Dispose()),
                               ComponentLifetime.SingleInstance);
            container.Register<Func<ConnectionMultiplexer>>(c => c.Resolve<RoundRobin<ConnectionMultiplexer>>().GetNext, ComponentLifetime.InstancePerDependency);
            container.Register<Func<IDatabase>>(c => () => c.Resolve<Func<ConnectionMultiplexer>>()().GetDatabase(), ComponentLifetime.InstancePerDependency);
            container.RegisterType<RedisMessageSender>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<RedisMessageReceiver>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<RedisTopicSender>(ComponentLifetime.InstancePerDependency);
            container.RegisterType<RedisSubscriptionReceiver>(ComponentLifetime.InstancePerDependency);

            container.RegisterType<RedisDelayedDeliveryService>(ComponentLifetime.SingleInstance, typeof (IDelayedDeliveryService));
            container.RegisterType<RedisDeadLetterOffice>(ComponentLifetime.SingleInstance, typeof (IDeadLetterOffice));
            container.RegisterType<NamespaceCleanser>(ComponentLifetime.SingleInstance, typeof (INamespaceCleanser));
            container.RegisterType<UnsupportedLargeMessageBodyStore>(ComponentLifetime.SingleInstance, typeof (ILargeMessageBodyStore));

            container.RegisterType<RedisTransport>(ComponentLifetime.SingleInstance, typeof (INimbusTransport));
        }
Example #5
0
 public override void Register <TLargeMessageBodyStore>(PoorMansIoC container)
 {
     container.RegisterType <UnsupportedLargeMessageBodyStore>(ComponentLifetime.SingleInstance, typeof(ILargeMessageBodyStore));
 }
Example #6
0
 public override void RegisterSupportingComponents(PoorMansIoC container)
 {
     container.RegisterType <AzureBlobStorageHttpClient>(ComponentLifetime.SingleInstance, typeof(IAzureBlobStorageHttpClient));
     container.RegisterType <AzureBlobStorageHttpLargeMessageBodyStore>(ComponentLifetime.SingleInstance);
 }