public static IObjectBuilder InitializeContainer(IWindsorContainer container) { var wob = new WindsorObjectBuilder(container.Kernel); container.Kernel.AddComponentInstance("kernel", typeof(IKernel), container.Kernel); container.Kernel.AddComponentInstance("objectBuilder", typeof(IObjectBuilder), wob); container.Register( Component.For<IObjectBuilder>() .ImplementedBy<WindsorObjectBuilder>() .LifeStyle.Singleton, // The subscription client Component.For<SubscriptionClient>() .ImplementedBy<SubscriptionClient>() .LifeStyle.Transient, // Message Serializers Component.For<BinaryMessageSerializer>() .ImplementedBy<BinaryMessageSerializer>() .LifeStyle.Singleton, Component.For<DotNotXmlMessageSerializer>() .ImplementedBy<DotNotXmlMessageSerializer>() .LifeStyle.Singleton, Component.For<XmlMessageSerializer>() .ImplementedBy<XmlMessageSerializer>() .LifeStyle.Singleton ); ServiceBusConfigurator.Defaults(x => x.SetObjectBuilder(wob)); return wob; }
private static void Main(string[] args) { _log.Info("InternalInventoryService Loading..."); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("InternalInventoryService"); c.SetDisplayName("Internal Inventory Service"); c.SetDescription("Handles inventory for internal systems"); c.RunAsLocalSystem(); c.DependencyOnMsmq(); c.BeforeStartingServices(a => { var container = new DefaultMassTransitContainer("InternalInventoryService.Castle.xml"); container.AddComponent<InventoryLevelService>(); container.AddComponent<InternalInventoryServiceLifeCycle>(typeof (InternalInventoryServiceLifeCycle).Name); var wob = new WindsorObjectBuilder(container.Kernel); ServiceLocator.SetLocatorProvider(() => wob); }); c.ConfigureService<InternalInventoryServiceLifeCycle>(typeof(InternalInventoryServiceLifeCycle).Name, s => { s.WhenStarted(o => o.Start()); s.WhenStopped(o => o.Stop()); }); }); Runner.Host(cfg, args); }
public void Externally_owned_container_should_not_be_disposed() { var fakeContainer = new FakeContainer(); var container = new WindsorObjectBuilder(fakeContainer, false); container.Dispose(); Assert.False(fakeContainer.Disposed); }
public void Owned_container_should_be_disposed() { var fakeContainer = new FakeContainer(); var container = new WindsorObjectBuilder(fakeContainer, true); container.Dispose(); Assert.True(fakeContainer.Disposed); }
public void Should_be_able_to_resolve_base_when_child_registered_first() { using (var builder = new WindsorObjectBuilder()) { var instance = new Child(); builder.RegisterSingleton(typeof(Child), instance); builder.RegisterSingleton(typeof(Base), instance); Assert.IsNotNull(builder.Build(typeof(Child))); Assert.IsNotNull(builder.Build(typeof(Base))); } }
private static void Main(string[] args) { _log.Info("subscription_mgr Loading..."); Console.WriteLine("MSMQ Subscription Service"); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("subscription_mgr"); c.SetDisplayName("Subscription Service"); c.SetDescription("Coordinates subscriptions between multiple systems"); c.DependencyOnMsmq(); c.RunAsLocalSystem(); c.BeforeStartingServices(s => { var container = new DefaultMassTransitContainer(); IEndpointFactory endpointFactory = EndpointFactoryConfigurator.New(e => { e.SetObjectBuilder(container.Resolve <IObjectBuilder>()); e.RegisterTransport <MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof(IEndpointFactory), endpointFactory); _wob = new WindsorObjectBuilder(container.Kernel); ServiceLocator.SetLocatorProvider(() => _wob); }); c.ConfigureService <SubscriptionService>(ConfigureSubscriptionService); c.ConfigureService <TimeoutService>(ConfigureTimeoutService); c.ConfigureService <HealthService>(ConfigureHealthService); }); try { Runner.Host(cfg, args); } catch (Exception ex) { Console.WriteLine("Error trying to run service: " + ex); Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } }
public void Registering_the_same_singleton_for_different_interfaces_should_only_build_one_result_when_building_all() { using (var builder = new WindsorObjectBuilder()) { var singleton = new SingletonThatImplementsToInterfaces(); builder.RegisterSingleton(typeof(ISingleton1), singleton); builder.RegisterSingleton(typeof(ISingleton2), singleton); builder.Configure(typeof(ComponentThatDependsOnMultiSingletons), DependencyLifecycle.InstancePerCall); var dependency = (ComponentThatDependsOnMultiSingletons)builder.Build(typeof(ComponentThatDependsOnMultiSingletons)); Assert.NotNull(dependency.Singleton1); Assert.NotNull(dependency.Singleton2); var builtTypes = builder.BuildAll(typeof(ISingleton1)); Assert.AreEqual(builtTypes.Count(), 1); } //Not supported by,typeof(SpringObjectBuilder)); }
private static void Main(string[] args) { _log.Info("SubscriptionManagerGUI Loading..."); var cfg = RunnerConfigurator.New(x => { x.SetServiceName("SubscriptionManagerGUI"); x.SetDisplayName("Sample GUI Subscription Service"); x.SetDescription("Coordinates subscriptions between multiple systems"); x.DependencyOnMsmq(); x.RunAsLocalSystem(); x.UseWinFormHost <SubscriptionManagerForm>(); x.BeforeStart(s => { var container = new DefaultMassTransitContainer(); IEndpointFactory endpointFactory = EndpointFactoryConfigurator.New(e => { e.SetObjectBuilder(container.Resolve <IObjectBuilder>()); e.RegisterTransport <MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof(IEndpointFactory), endpointFactory); container.AddComponent <SubscriptionManagerForm>(); var wob = new WindsorObjectBuilder(container.Kernel); ServiceLocator.SetLocatorProvider(() => wob); }); x.ConfigureService <SubscriptionService>(ConfigureSubscriptionService); x.ConfigureService <TimeoutService>(ConfigureTimeoutService); x.ConfigureService <HealthService>(ConfigureHealthService); }); Runner.Host(cfg, args); }
private static void Main(string[] args) { _log.Info("SubscriptionManagerGUI Loading..."); var cfg = RunnerConfigurator.New(x => { x.SetServiceName("SubscriptionManagerGUI"); x.SetDisplayName("Sample GUI Subscription Service"); x.SetDescription("Coordinates subscriptions between multiple systems"); x.DependencyOnMsmq(); x.RunAsLocalSystem(); x.UseWinFormHost<SubscriptionManagerForm>(); x.BeforeStartingServices(s => { var container = new DefaultMassTransitContainer(); IEndpointFactory endpointFactory = EndpointFactoryConfigurator.New(e => { e.SetObjectBuilder(container.Resolve<IObjectBuilder>()); e.RegisterTransport<MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof (IEndpointFactory), endpointFactory); container.AddComponent<SubscriptionManagerForm>(); var wob = new WindsorObjectBuilder(container.Kernel); ServiceLocator.SetLocatorProvider(() => wob); }); x.ConfigureService<SubscriptionService>(typeof(SubscriptionService).Name, ConfigureSubscriptionService); x.ConfigureService<TimeoutService>(typeof(TimeoutService).Name, ConfigureTimeoutService); x.ConfigureService<HealthService>(typeof(HealthService).Name, ConfigureHealthService); }); Runner.Host(cfg, args); }
private static void Main(string[] args) { _log.Info("subscription_mgr Loading..."); Console.WriteLine("MSMQ Subscription Service"); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("subscription_mgr"); c.SetDisplayName("Subscription Service"); c.SetDescription("Coordinates subscriptions between multiple systems"); c.DependencyOnMsmq(); c.RunAsLocalSystem(); c.BeforeStartingServices(s => { var container = new DefaultMassTransitContainer(); IEndpointFactory endpointFactory = EndpointFactoryConfigurator.New(e => { e.SetObjectBuilder(container.Resolve<IObjectBuilder>()); e.RegisterTransport<MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof(IEndpointFactory), endpointFactory); _wob = new WindsorObjectBuilder(container.Kernel); ServiceLocator.SetLocatorProvider(() => _wob); }); c.ConfigureService<SubscriptionService>(ConfigureSubscriptionService); c.ConfigureService<TimeoutService>(ConfigureTimeoutService); c.ConfigureService<HealthService>(ConfigureHealthService); }); try { Runner.Host(cfg, args); } catch (Exception ex) { Console.WriteLine("Error trying to run service: " + ex); Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } }