Example #1
0
        protected virtual Uri CreateCompensateReceiveEndpoint(IServiceConfigurator configurator)
        {
            Uri inputAddress = null;

            configurator.ReceiveEndpoint(_compensateQueueName, _compensateConsumerLimit, x =>
            {
                inputAddress = x.InputAddress;
                x.CompensateActivityHost(_compensateActivityFactory);
            });

            return(inputAddress);
        }
Example #2
0
        protected virtual void CreateExecuteReceiveEndpoint(IServiceConfigurator configurator, Uri compensateAddress)
        {
            if (_log.IsInfoEnabled)
            {
                _log.InfoFormat("Creating Execute {0} Receive Endpoint", _activityName);
            }

            configurator.ReceiveEndpoint(_executeQueueName, _executeConsumerLimit, x =>
            {
                x.ExecuteActivityHost <TActivity, TArguments>(compensateAddress, _executeActivityFactory);
            });
        }
        public void InitializeHostedService([NotNull] IServiceConfigurator <DirectoryMonitor> cfg)
        {
            if (cfg == null)
            {
                throw new ArgumentNullException("cfg");
            }

            cfg.ConstructUsing((d, name, channel) => new DirectoryMonitor(GetServicesDirectory(), channel));

            cfg.WhenStarted(dm => dm.Start());
            cfg.WhenStopped(dm => dm.Stop());
        }
        void ConfigureBusObservers(IServiceConfigurator configurator)
        {
            var observers = _lifetimeScope.ResolveOptional <IEnumerable <IBusObserver> >();

            if (observers != null)
            {
                foreach (var observer in observers)
                {
                    configurator.BusObserver(observer);
                }
            }
        }
        void ConfigureBusObservers(IServiceConfigurator configurator)
        {
            var observers = _lifetimeScope.ResolveOptional<IEnumerable<IBusObserver>>();
            if (observers != null)
            {
                foreach (var observer in observers)
                {
                    _log.Info($"Configuring Bus Observer: {observer.GetType().GetTypeName()}");

                    configurator.BusObserver(observer);
                }
            }
        }
Example #6
0
        public ExecuteActivityService(IConfigurationProvider configuration, IServiceConfigurator serviceFactory,
                                      IActivityQueueNameProvider activityUriProvider, ExecuteActivityFactory <TArguments> executeActivityFactory)
        {
            _log = Logger.Get(GetType());

            _serviceFactory         = serviceFactory;
            _executeActivityFactory = executeActivityFactory;

            _activityName = GetActivityName();

            _executeQueueName     = activityUriProvider.GetExecuteActivityQueueName(_activityName);
            _executeConsumerLimit = GetExecuteConsumerLimit(configuration);
        }
Example #7
0
 public void InitializeHostedService(IServiceConfigurator <TheClock> cfg)
 {
     cfg.HowToBuildService(n => new TheClock());
     cfg.WhenStarted(s =>
     {
         XmlConfigurator.Configure(new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "clock.log4net.config")));
         s.Start();
     });
     cfg.WhenStopped(s =>
     {
         s.Stop();
         LogManager.Shutdown();
     });
 }
Example #8
0
        void ConfigureBusObservers(IServiceConfigurator configurator)
        {
            var observers = _lifetimeScope.ResolveOptional <IEnumerable <IBusObserver> >();

            if (observers != null)
            {
                foreach (var observer in observers)
                {
                    _log.Info($"Configuring Bus Observer: {observer.GetType().GetTypeName()}");

                    configurator.BusObserver(observer);
                }
            }
        }
Example #9
0
        private static void ConfigureService <TService, TRegistry>(IServiceConfigurator <TService> service, Action <TService> start, Action <TService> stop)
            where TRegistry : Registry
        {
            var registry = FastActivator <TRegistry> .Create(ObjectFactory.Container);

            ObjectFactory.Configure(cfg =>
            {
                cfg.For <IConfiguration>().Singleton().Use <Configuration>();
                cfg.AddRegistry(registry);
            });
            service.HowToBuildService(builder => ObjectFactory.GetInstance <TService>());

            service.WhenStarted(start);
            service.WhenStopped(stop);
        }
Example #10
0
        private void ConfigureIoC(IServiceConfigurator configurator)
        {
            configurator.AddSingleton(typeof(IMongoClient), IServiceProvider => new MongoClient(_connectionString));
            configurator.AddSingleton <IInitializeDbRepository, MongoDbInitializeDbRepository>();
            configurator.AddSingleton <INamespaceRepository, MongoDbNamespaceRepository>();
            configurator.AddSingleton <IEnvironmentRepository, MongoDbEnvironmentRepository>();
            configurator.AddSingleton <IFeatureGroupRepository, MongoDbFeatureGroupRepository>();
            configurator.AddSingleton <IFeatureToggleRepository, MongoDbFeatureToggleRepository>();

            configurator.AddSingleton <ICommandHandler <InitializeTogglOnCommand, VoidResult>, InitializeTogglOnCommandHandler>();
            configurator.AddSingleton <ICommandHandler <IncrementUsageStatisticsCommand, VoidResult>, IncrementUsageStatisticsCommandHandler>();

            configurator.AddSingleton <IQueryHandler <GetAllFeatureTogglesQuery, IList <FeatureToggleDto> >, GetAllFeatureTogglesQueryHandler>();
            configurator.AddSingleton <IQueryHandler <GetAllFeatureGroupsQuery, IList <FeatureGroupDto> >, GetAllFeatureGroupsQueryHandler>();
        }
Example #11
0
        protected virtual Uri CreateCompensateReceiveEndpoint(IServiceConfigurator configurator)
        {
            if (_log.IsInfoEnabled)
            {
                _log.InfoFormat("Creating Compensate {0} Receive Endpoint", _activityName);
            }

            Uri inputAddress = null;

            configurator.ReceiveEndpoint(_compensateQueueName, _compensateConsumerLimit, x =>
            {
                inputAddress = x.InputAddress;
                x.CompensateActivityHost <TActivity, TLog>(_compensateActivityFactory);
            });

            return(inputAddress);
        }
Example #12
0
        private static void ConfigureHealthService(IServiceConfigurator<HealthService> configurator)
        {
            configurator.CreateServiceLocator(() =>
                {
                    var container = new DefaultMassTransitContainer();

                    container.AddComponent<HealthService>(typeof (HealthService).Name);
                    container.AddComponent("sagaRepository", typeof (ISagaRepository<>), typeof (InMemorySagaRepository<>));

                    var endpointFactory = EndpointFactoryConfigurator.New(x =>
                        {
                            // the default
                            x.SetObjectBuilder(container.Resolve<IObjectBuilder>());
                            x.RegisterTransport<MsmqEndpoint>();
                        });

                    container.Kernel.AddComponentInstance("endpointFactory", typeof (IEndpointFactory), endpointFactory);

                    var bus = ServiceBusConfigurator.New(x =>
                        {
                            x.SetObjectBuilder(container.Resolve<IObjectBuilder>());
                            x.ReceiveFrom("msmq://localhost/mt_health");
                            x.ConfigureService<SubscriptionClientConfigurator>(client =>
                                {
                                    // need to add the ability to read from configuratino settings somehow
                                    client.SetSubscriptionServiceEndpoint("msmq://localhost/mt_subscriptions");
                                });
                        });

                    container.Kernel.AddComponentInstance("bus", typeof (IServiceBus), bus);

                    return container.Resolve<IObjectBuilder>();
                });

            configurator.WhenStarted(service => { service.Start(); });

            configurator.WhenStopped(service =>
                {
                    service.Stop();
                    service.Dispose();
                });
        }
Example #13
0
        private static void ConfigureHealthService(IServiceConfigurator <HealthService> configurator)
        {
            configurator.CreateServiceLocator(() =>
            {
                var container = new DefaultMassTransitContainer();

                container.AddComponent <HealthService>(typeof(HealthService).Name);
                container.AddComponent("sagaRepository", typeof(ISagaRepository <>), typeof(InMemorySagaRepository <>));

                var endpointFactory = EndpointFactoryConfigurator.New(x =>
                {
                    // the default
                    x.SetObjectBuilder(container.Resolve <IObjectBuilder>());
                    x.RegisterTransport <MsmqEndpoint>();
                });

                container.Kernel.AddComponentInstance("endpointFactory", typeof(IEndpointFactory), endpointFactory);

                var bus = ServiceBusConfigurator.New(x =>
                {
                    x.SetObjectBuilder(container.Resolve <IObjectBuilder>());
                    x.ReceiveFrom("msmq://localhost/mt_health");
                    x.ConfigureService <SubscriptionClientConfigurator>(client =>
                    {
                        // need to add the ability to read from configuratino settings somehow
                        client.SetSubscriptionServiceEndpoint("msmq://localhost/mt_subscriptions");
                    });
                });

                container.Kernel.AddComponentInstance("bus", typeof(IServiceBus), bus);

                return(container.Resolve <IObjectBuilder>());
            });

            configurator.WhenStarted(service => { service.Start(); });

            configurator.WhenStopped(service =>
            {
                service.Stop();
                service.Dispose();
            });
        }
        void IBusServiceConfigurator.Configure(IServiceConfigurator configurator)
        {
            _log.Info($"Configuring Service: {_serviceSpecification.GetType().GetTypeName()}");

            _serviceSpecification.Configure(configurator);

            foreach (var specification in _endpointSpecifications)
            {
                string queueName;
                int    consumerLimit;
                GetEndpointSettings(specification, out queueName, out consumerLimit);

                _log.Info($"Configuring Endpoint: {specification.GetType().GetTypeName()} (queue-name: {queueName}, consumer-limit: {consumerLimit})");

                configurator.ReceiveEndpoint(queueName, consumerLimit, x =>
                {
                    specification.Configure(x);
                });
            }
        }
        void IBusServiceConfigurator.Configure(IServiceConfigurator configurator)
        {
            _log.Info($"Configuring Service: {_serviceSpecification.GetType().GetTypeName()}");

            _serviceSpecification.Configure(configurator);

            foreach (var specification in _endpointSpecifications)
            {
                string queueName;
                int consumerLimit;
                GetEndpointSettings(specification, out queueName, out consumerLimit);

                _log.Info($"Configuring Endpoint: {specification.GetType().GetTypeName()} (queue-name: {queueName}, consumer-limit: {consumerLimit})");

                configurator.ReceiveEndpoint(queueName, consumerLimit, x =>
                {
                    specification.Configure(x);
                });
            }
        }
Example #16
0
        private static void ConfigureSubscriptionService(IServiceConfigurator<SubscriptionService> configurator)
        {
            configurator.CreateServiceLocator(() =>
                {
                    var container = new DefaultMassTransitContainer();

                    container.AddComponent("sagaRepository", typeof (ISagaRepository<>), typeof (InMemorySagaRepository<>));

                    container.AddComponent<ISubscriptionRepository, InMemorySubscriptionRepository>();
                    container.AddComponent<SubscriptionService, SubscriptionService>(typeof (SubscriptionService).Name);

                    var endpointFactory = EndpointFactoryConfigurator.New(x =>
                        {
                            // the default
                            x.SetObjectBuilder(container.Resolve<IObjectBuilder>());
                            x.RegisterTransport<MsmqEndpoint>();
                        });

                    container.Kernel.AddComponentInstance("endpointFactory", typeof (IEndpointFactory), endpointFactory);

                    var bus = ServiceBusConfigurator.New(servicesBus =>
                        {
                            servicesBus.SetObjectBuilder(container.Resolve<IObjectBuilder>());
                            servicesBus.ReceiveFrom("msmq://localhost/mt_subscriptions");
                            servicesBus.SetConcurrentConsumerLimit(1);
                        });

                    container.Kernel.AddComponentInstance("bus", typeof (IServiceBus), bus);

                    return container.ObjectBuilder;
                });

            configurator.WhenStarted(service => service.Start());

            configurator.WhenStopped(service =>
                {
                    service.Stop();
                    service.Dispose();
                });
        }
Example #17
0
        private static void ConfigureSubscriptionService(IServiceConfigurator <SubscriptionService> configurator)
        {
            configurator.CreateServiceLocator(() =>
            {
                var container = new DefaultMassTransitContainer();

                container.AddComponent("sagaRepository", typeof(ISagaRepository <>), typeof(InMemorySagaRepository <>));

                container.AddComponent <ISubscriptionRepository, InMemorySubscriptionRepository>();
                container.AddComponent <SubscriptionService, SubscriptionService>(typeof(SubscriptionService).Name);

                var endpointFactory = EndpointFactoryConfigurator.New(x =>
                {
                    // the default
                    x.SetObjectBuilder(container.Resolve <IObjectBuilder>());
                    x.RegisterTransport <MsmqEndpoint>();
                });

                container.Kernel.AddComponentInstance("endpointFactory", typeof(IEndpointFactory), endpointFactory);

                var bus = ServiceBusConfigurator.New(servicesBus =>
                {
                    servicesBus.SetObjectBuilder(container.Resolve <IObjectBuilder>());
                    servicesBus.ReceiveFrom("msmq://localhost/mt_subscriptions");
                    servicesBus.SetConcurrentConsumerLimit(1);
                });

                container.Kernel.AddComponentInstance("bus", typeof(IServiceBus), bus);

                return(container.ObjectBuilder);
            });

            configurator.WhenStarted(service => service.Start());

            configurator.WhenStopped(service =>
            {
                service.Stop();
                service.Dispose();
            });
        }
Example #18
0
        private static void ConfigureService <TService, TRegistry>(IServiceConfigurator <TService> service, Action <TService> start, Action <TService> stop)
            where TRegistry : Registry
        {
            var container = new Container(x =>
            {
                x.For <IConfiguration>()
                .Singleton()
                .Add <Configuration>();

                x.For <TService>()
                .Singleton()
                .Use <TService>();
            });

            TRegistry registry = FastActivator <TRegistry> .Create(container);

            container.Configure(x => x.AddRegistry(registry));

            service.HowToBuildService(builder => container.GetInstance <TService>());
            service.WhenStarted(start);
            service.WhenStopped(stop);
        }
Example #19
0
 public TogglOnBuilder(IServiceConfigurator services)
 {
     Services = services;
 }
Example #20
0
 public void Configure(IServiceConfigurator configurator)
 {
     configurator.UseRetry(Retry.None);
 }
Example #21
0
 public void Configure(IServiceConfigurator configurator)
 {
     ConfigureDb();
     ConfigureIoC(configurator);
 }
Example #22
0
        public void Configure(IServiceConfigurator configurator)
        {
            _configureMessageScheduler.Configurator = configurator;

            configurator.UseRetry(r => r.Interval(5, TimeSpan.FromMilliseconds(100)));
        }
Example #23
0
 public void Configure(IServiceConfigurator configurator)
 {
     configurator.UseRetry(Retry.Interval(5, TimeSpan.FromMilliseconds(100)));
 }
 public void InitializeHostedService(IServiceConfigurator <RRServer> cfg)
 {
     cfg.HowToBuildService(s => new RRServer());
     cfg.WhenStarted(s => s.Start());
     cfg.WhenStopped(s => s.Stop());
 }
Example #25
0
 public void InitializeHostedService(IServiceConfigurator <string> cfg)
 {
     throw new NotImplementedException();
 }
Example #26
0
 public void Configure(IServiceConfigurator configurator)
 {
     configurator.UseRetry(Retry.None);
 }
 public TogglOnClientOptions(IServiceConfigurator services)
 {
     _services = services;
 }
Example #28
0
 public ServiceInterception(IServiceConfigurator configuration)
 {
     this.configuration = configuration;
 }
Example #29
0
        public virtual void Configure(IServiceConfigurator configurator)
        {
            var compensateAddress = CreateCompensateReceiveEndpoint(configurator);

            CreateExecuteReceiveEndpoint(configurator, compensateAddress);
        }
        /// <summary>
        /// Configures the service collection using the given <see cref="IServiceConfigurator"/>.
        /// </summary>
        /// <param name="services">The service collection</param>
        /// <param name="configurator">The service configurator</param>
        /// <returns>The service collection after changes</returns>
        /// <exception cref="ArgumentNullException"></exception>
        public static IServiceCollection ConfigureUsing(this IServiceCollection services, IServiceConfigurator configurator)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            configurator.Configure(services);

            return(services);
        }
Example #31
0
 public void InitializeHostedService(IServiceConfigurator <BottleService> cfg)
 {
     cfg.HowToBuildService(name => new BottleService());
     cfg.WhenStarted(s => s.Start());
     cfg.WhenStopped(s => s.Stop());
 }
 public void Configure(IServiceConfigurator configurator)
 {
     // configuration for the entire bus can be specified here
     // such as configurator.UseRetry(Retry.Interval(5, TimeSpan.FromMilliseconds(100)));
 }
Example #33
0
 public void Configure(IServiceConfigurator configurator)
 {
     configurator.UseRetry(Retry.Interval(5, TimeSpan.FromMilliseconds(100)));
 }
 public void Configure(IServiceConfigurator configurator)
 {
 }
Example #35
0
        public void Configure(IServiceConfigurator configurator)
        {
            _configureMessageScheduler.Configurator = configurator;

            configurator.UseRetry(Retry.Interval(5, TimeSpan.FromMilliseconds(100)));
        }
 public void Configure(IServiceConfigurator configurator)
 {
     // configuration for the entire bus can be specified here
     // such as configurator.UseRetry(Retry.Interval(5, TimeSpan.FromMilliseconds(100)));
 }
 public void Configure(IServiceConfigurator configurator)
 {
     // YAY!
 }
Example #38
0
 public abstract void InitializeHostedService(IServiceConfigurator <T> cfg);