public BusBuilder Configure(BusBuilder builder)
        {
            builder.Match <ServiceBusBuilder>(x =>
            {
                var settings = new ServiceBusSettings(builder.Settings);

                settings.InputAddress = _uri ?? builder.Settings.InputAddress.AppendToPath("_control");

                // the endpoint factory is already created, so we can't set the endpoint here
                // we really need this to be part of another step, but i don't have a clue how yet.
                //_configurator.ConfigureEndpoint(_uri, x => x.PurgeExistingMessages());

                if (_log.IsDebugEnabled)
                {
                    _log.DebugFormat("Configuring control bus for {0} at {1}", builder.Settings.InputAddress, settings.InputAddress);
                }

                settings.ConcurrentConsumerLimit = 1;
                settings.ConcurrentReceiverLimit = 1;
                settings.AutoStart = true;

                BusBuilder controlBusBuilder = new ControlBusBuilderImpl(settings);

                controlBusBuilder = _configurators
                                    .Aggregate(controlBusBuilder, (current, configurator) => configurator.Configure(current));

                IControlBus controlBus = controlBusBuilder.Build();

                x.UseControlBus(controlBus);
            });

            return(builder);
        }
Example #2
0
        protected override void TeardownContext()
        {
            RemoteBus.Dispose();
            RemoteBus = null;

            RemoteControlBus.Dispose();
            RemoteControlBus = null;

            LocalBus.Dispose();
            LocalBus = null;

            LocalControlBus.Dispose();
            LocalControlBus = null;

            SubscriptionService = null;

            base.TeardownContext();
        }
        protected override void ConfigureServiceBus(Uri uri, IServiceBusConfigurator configurator)
        {
            base.ConfigureServiceBus(uri, configurator);

            IControlBus controlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom(GetControlBusUri(uri));

                x.PurgeBeforeStarting();
            });

            configurator.ConfigureService <SubscriptionClientConfigurator>(y =>
            {
                // Subscription Endpoint
                y.SetSubscriptionServiceEndpoint(SubscriptionUri);
            });

            configurator.UseControlBus(controlBus);
        }
		public SubscriptionObserver Create(IServiceBus bus, SubscriptionRouter router)
		{
			string path = bus.ControlBus.Endpoint.Address.Uri.AbsolutePath;

			Uri uri = new UriBuilder("msmq-pgm", _multicastAddress.Address.ToString(), _multicastAddress.Port, path).Uri;
			Uri clientUri = uri.AppendToPath("_subscriptions");

			var builder = new ControlBusBuilderImpl(new ServiceBusSettings
				{
					ConcurrentConsumerLimit = 1,
					ConcurrentReceiverLimit = 1,
					EndpointCache = bus.EndpointCache,
					InputAddress = clientUri,
					ReceiveTimeout = 3.Seconds(),
					Network = router.Network,
					AutoStart = true,
				});

            _subscriptionBus = builder.Build();

            var service = new MulticastSubscriptionClient(_subscriptionBus, router, _group ?? router.PeerId.ToString());

			return service;
		}
Example #5
0
        protected override void EstablishContext()
        {
            base.EstablishContext();

            SetupSubscriptionService();

            LocalControlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom("loopback://localhost/mt_client_control");

                x.PurgeBeforeStarting();
            });

            RemoteControlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom("loopback://localhost/mt_server_control");

                x.PurgeBeforeStarting();
            });

            LocalBus = ServiceBusConfigurator.New(x =>
            {
                x.AddService <SubscriptionPublisher>();
                x.AddService <SubscriptionConsumer>();
                x.ReceiveFrom("loopback://localhost/mt_client");
                x.UseControlBus(LocalControlBus);
            });

            RemoteBus = ServiceBusConfigurator.New(x =>
            {
                x.AddService <SubscriptionPublisher>();
                x.AddService <SubscriptionConsumer>();
                x.ReceiveFrom("loopback://localhost/mt_server");
                x.UseControlBus(RemoteControlBus);
            });
        }
        public SubscriptionObserver Create(IServiceBus bus, SubscriptionRouter router)
        {
            string path = bus.ControlBus.Endpoint.Address.Uri.AbsolutePath;

            Uri uri       = new UriBuilder("msmq-pgm", _multicastAddress.Address.ToString(), _multicastAddress.Port, path).Uri;
            Uri clientUri = uri.AppendToPath("_subscriptions");

            var builder = new ControlBusBuilderImpl(new ServiceBusSettings
            {
                ConcurrentConsumerLimit = 1,
                ConcurrentReceiverLimit = 1,
                EndpointCache           = bus.EndpointCache,
                InputAddress            = clientUri,
                ReceiveTimeout          = 3.Seconds(),
                Network   = router.Network,
                AutoStart = true,
            });

            IControlBus subscriptionBus = builder.Build();

            var service = new MulticastSubscriptionClient(subscriptionBus, router);

            return(service);
        }
Example #7
0
 public void UseControlBus(IControlBus controlBus)
 {
     _postCreateActions.Add(bus => bus.ControlBus = controlBus);
 }
 public void UseControlBus(IControlBus bus)
 {
     ControlBus = bus;
 }