Ejemplo n.º 1
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.ASB.Polymorphic.Subscriber");
        busConfiguration.ScaleOut().UseSingleBrokerQueue();
        busConfiguration.UseTransport<AzureServiceBusTransport>()
            .ConnectionString(Environment.GetEnvironmentVariable("AzureServiceBus.ConnectionString"));

        #region DisableAutoSubscripton

        busConfiguration.DisableFeature<AutoSubscribe>();

        #endregion


        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.EnableInstallers();
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.DisableFeature<SecondLevelRetries>();


        using (IBus bus = Bus.Create(busConfiguration).Start())
        {
            #region ControledSubscriptions

            bus.Subscribe<BaseEvent>();

            #endregion

            Console.WriteLine("Subscriber is ready to receive events");
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
Ejemplo n.º 2
0
 protected override void OnStart(string[] args)
 {
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.EndpointName("EndpointName");
     busConfiguration.EnableInstallers();
     bus = Bus.Create(busConfiguration).Start();
 }
 public void Customize(BusConfiguration configuration)
 {
     configuration.UseTransport<RabbitMQTransport>();
     configuration.UsePersistence<InMemoryPersistence>();
     configuration.RijndaelEncryptionService();
     UnobtrusiveMessageConventions.Init(configuration.Conventions());
 }
 public void Customize(BusConfiguration configuration)
 {
     configuration.UsePersistence<DatabaseRoutingInMemoryPersistence>();
     configuration.DisableFeature<AutoSubscribe>();
     configuration.Pipeline.Register<DatabaseRouting.DatabaseRoutingStepInPipeline>();
     configuration.CustomConfigurationSource(new DatabaseRoutingConfiguration());
 }
Ejemplo n.º 5
0
    protected void Application_Start()
    {
        #region ApplicationStart

        ContainerBuilder builder = new ContainerBuilder();

        // Register your MVC controllers.
        builder.RegisterControllers(typeof(MvcApplication).Assembly);

        // Set the dependency resolver to be Autofac.
        IContainer container = builder.Build();

        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.MvcInjection.WebApplication");
        // ExistingLifetimeScope() ensures that IBus is added to the container as well,
        // allowing you to resolve IBus from your own components.
        busConfiguration.UseContainer<AutofacBuilder>(c => c.ExistingLifetimeScope(container));
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.EnableInstallers();

        bus = Bus.CreateSendOnly(busConfiguration);

        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

        AreaRegistration.RegisterAllAreas();
        RegisterRoutes(RouteTable.Routes);

        #endregion
    }
Ejemplo n.º 6
0
    static void Main()
    {
        Console.Title = "Samples.MongoDB.Client";
        var busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.MongoDB.Client");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.EnableInstallers();
        busConfiguration.UsePersistence<InMemoryPersistence>();

        using (var bus = Bus.Create(busConfiguration).Start())
        {
            Console.WriteLine("Press 'enter' to send a StartOrder messages");
            Console.WriteLine("Press any other key to exit");

            while (true)
            {
                var key = Console.ReadKey();
                Console.WriteLine();

                if (key.Key != ConsoleKey.Enter)
                {
                    return;
                }

                var orderId = Guid.NewGuid();
                var startOrder = new StartOrder
                {
                    OrderId = orderId
                };
                bus.Send("Samples.MongoDB.Server", startOrder);
                Console.WriteLine($"StartOrder Message sent with OrderId {orderId}");
            }
        }
    }
Ejemplo n.º 7
0
    static async Task AsyncMain()
    {
        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.RavenDB.Client");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.EnableInstallers();
        busConfiguration.UsePersistence<InMemoryPersistence>();

        IEndpointInstance endpoint = await Endpoint.Start(busConfiguration);

        Console.WriteLine("Press 'enter' to send a StartOrder messages");
        Console.WriteLine("Press any other key to exit");

        while (true)
        {
            ConsoleKeyInfo key = Console.ReadKey();
            Console.WriteLine();

            if (key.Key != ConsoleKey.Enter)
            {
                break;
            }

            Guid orderId = Guid.NewGuid();
            await endpoint.Send(new StartOrder
            {
                OrderId = orderId
            });
            Console.WriteLine("StartOrder Message sent with OrderId  " + orderId);
        }

        await endpoint.Stop();
    }
 void DisableFeature()
 {
     #region DisableBestPracticeEnforcementPerEndpoint
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.DisableFeature<BestPracticeEnforcement>();
     #endregion
 }
Ejemplo n.º 9
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.DataBus.Sender");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.UseDataBus<FileShareDataBus>().BasePath(BasePath);
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        using (IBus bus = Bus.Create(busConfiguration).Start())
        {
            Console.WriteLine("Press 'D' to send a databus large message");
            Console.WriteLine("Press 'N' to send a normal large message exceed the size limit and throw");
            Console.WriteLine("Press any other key to exit");

            while (true)
            {
                ConsoleKeyInfo key = Console.ReadKey();
                Console.WriteLine();

                if (key.Key == ConsoleKey.N)
                {
                    SendMessageTooLargePayload(bus);
                    continue;
                }

                if (key.Key == ConsoleKey.D)
                {
                    SendMessageLargePayload(bus);
                    continue;
                }
                return;
            }
        }
    }
        static void Main()
        {
            var busConfiguration = new BusConfiguration();
            busConfiguration.EndpointName( "UserInterface" );
        
            busConfiguration.UseSerialization<JsonSerializer>();
            busConfiguration.UsePersistence<NHibernatePersistence>();

            busConfiguration.Conventions()
                .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.EndsWith(".Commands"))
                .DefiningEventsAs(t => t.Namespace != null && t.Namespace.EndsWith(".Events"));

                //TODO: talk about encryption of sensitive data
                //.DefiningEncryptedPropertiesAs(t => t.Name.Equals("Password"));

            if( Environment.UserInteractive && Debugger.IsAttached )
            {
                busConfiguration.EnableInstallers();
            }

            using( var bus = Bus.Create( busConfiguration ).Start() )
            {
                Console.ReadKey();
            }
        }
Ejemplo n.º 11
0
        protected override void OnStart(string[] args)
        {
            try
            {
                container = new Container(x => x.AddRegistry<DependencyRegistry>());
                var myDocumentStore = new DocumentStore { ConnectionStringName = "EpiFlowDB" };

                var busConfiguration = new BusConfiguration();
                busConfiguration.EndpointName("EpiFlow.Messages");
                busConfiguration.UseContainer<StructureMapBuilder>(c => c.ExistingContainer(container));
                busConfiguration.UseSerialization<JsonSerializer>();
                busConfiguration.UsePersistence<RavenDBPersistence>()
                    .UseDocumentStoreForSubscriptions(myDocumentStore)
                    .UseDocumentStoreForSagas(myDocumentStore)
                    .UseDocumentStoreForTimeouts(myDocumentStore);
                busConfiguration.UseTransport<RabbitMQTransport>();
                busConfiguration.DefineCriticalErrorAction(OnCriticalError);
                busConfiguration.Transactions().DisableDistributedTransactions();

                if (Environment.UserInteractive && Debugger.IsAttached)
                {
                    busConfiguration.EnableInstallers();
                }
                var startableBus = Bus.Create(busConfiguration);
                bus = startableBus.Start();
            }
            catch (Exception exception)
            {
                OnCriticalError("Failed to start the bus.", exception);
            }
        }
 public void Simple()
 {
     #region MutatorRegistration
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.RegisterComponents(c => c.ConfigureComponent<MyMutator>(DependencyLifecycle.InstancePerCall));
     #endregion
 }
Ejemplo n.º 13
0
    static async Task AsyncMain()
    {
        #region ContainerConfiguration
        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.Unity");

        UnityContainer container = new UnityContainer();
        container.RegisterInstance(new MyService());
        busConfiguration.UseContainer<UnityBuilder>(c => c.UseExistingContainer(container));
        #endregion
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        busConfiguration.SendFailedMessagesTo("error");

        IEndpointInstance endpoint = await Endpoint.Start(busConfiguration);
        try
        {
            IBusSession busSession = endpoint.CreateBusSession();
            await busSession.SendLocal(new MyMessage());
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
        finally
        {
            await endpoint.Stop();
        }
    }
Ejemplo n.º 14
0
    static void Main()
    {
        LogManager.Use<DefaultFactory>()
            .Level(LogLevel.Warn);

        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.ErrorHandling.WithSLR");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        using (IBus bus = Bus.Create(busConfiguration).Start())
        {
            Console.WriteLine("Press enter to send a message that will throw an exception.");
            Console.WriteLine("Press any key to exit");

            while (true)
            {
                ConsoleKeyInfo key = Console.ReadKey();
                if (key.Key != ConsoleKey.Enter)
                {
                    return;
                }
                MyMessage m = new MyMessage
                {
                    Id = Guid.NewGuid()
                };
                bus.SendLocal(m);
            }
        }
    }
Ejemplo n.º 15
0
 Usage(BusConfiguration busConfiguration)
 {
     #region DefiningEncryptedPropertiesAs
     ConventionsBuilder conventions = busConfiguration.Conventions();
     conventions.DefiningEncryptedPropertiesAs(info => info.Name.EndsWith("EncryptedProperty"));
     #endregion
 }
 EndpointNameRequired()
 {
     #region 5to6-endpointNameRequired
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.EndpointName("MyEndpointName");
     #endregion
 }
Ejemplo n.º 17
0
    static async Task AsyncMain()
    {
        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.MessageMutators");
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.SendFailedMessagesTo("error");

        #region ComponentRegistartion
        busConfiguration.RegisterComponents(components =>
        {
            components.ConfigureComponent<ValidationMessageMutator>(DependencyLifecycle.InstancePerCall);
            components.ConfigureComponent<TransportMessageCompressionMutator>(DependencyLifecycle.InstancePerCall);
        });
        #endregion

        IEndpointInstance endpoint = await Endpoint.Start(busConfiguration);
        try
        {
            IBusSession busSession = endpoint.CreateBusSession();
            await Runner.Run(busSession);
        }
        finally
        {
            await endpoint.Stop();
        }
    }
Ejemplo n.º 18
0
 public void Unreliable()
 {
     #region TransactionsDisable
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.Transactions().Disable();
     #endregion
 }
Ejemplo n.º 19
0
    static void Main()
    {
        LogManager.Use<DefaultFactory>().Level(LogLevel.Error);
        #region Program
        Logger.WriteLine("Starting configuration");
        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.StartupShutdown");
        busConfiguration.EnableInstallers();
        busConfiguration.EnableFeature<MyFeature>();
        busConfiguration.UsePersistence<InMemoryPersistence>();

        Logger.WriteLine("Calling Bus.Create");
        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            Logger.WriteLine("Calling IStartableBus.Create");
            bus.Start();

            //simulate some bus activity
            Thread.Sleep(500);

            Logger.WriteLine("Bus is processing messages");
            Logger.WriteLine("Calling IStartableBus.Dispose");
        }
        Logger.WriteLine("Finished");
        #endregion
        Console.WriteLine("Press any key to exit");
        Console.ReadKey();
    }
Ejemplo n.º 20
0
 public void CustomTransactionTimeout()
 {
     #region CustomTransactionTimeout
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.Transactions().DefaultTimeout(TimeSpan.FromSeconds(30));
     #endregion
 }
Ejemplo n.º 21
0
 public void CustomTransactionIsolationLevel()
 {
     #region CustomTransactionIsolationLevel
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.Transactions().IsolationLevel(IsolationLevel.RepeatableRead);
     #endregion
 }
Ejemplo n.º 22
0
 public void Customize(BusConfiguration config)
 {
     config.Conventions()
         .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.StartsWith("Example2.Internal.Commands"))
         .DefiningEventsAs(t => t.Namespace != null && t.Namespace.StartsWith("Example2.Contracts"))
         .DefiningMessagesAs(t => t.Namespace != null && t.Namespace.StartsWith("Example2.Internal.Messages"));
 }
Ejemplo n.º 23
0
    static async Task AsyncMain()
    {
        using (new RavenHost())
        {
            BusConfiguration busConfiguration = new BusConfiguration();
            busConfiguration.EndpointName("Samples.RavenDBCustomSagaFinder");
            busConfiguration.UseSerialization<JsonSerializer>();
            busConfiguration.EnableInstallers();
            busConfiguration.SendFailedMessagesTo("error");

            DocumentStore documentStore = new DocumentStore
            {
                Url = "http://localhost:32076",
                DefaultDatabase = "NServiceBus"
            };
            documentStore.RegisterListener(new UniqueConstraintsStoreListener());
            documentStore.Initialize();

            busConfiguration.UsePersistence<RavenDBPersistence>()
                .DoNotSetupDatabasePermissions() //Only required to simplify the sample setup
                .SetDefaultDocumentStore(documentStore);

            IEndpointInstance endpoint = await Endpoint.Start(busConfiguration);
            await endpoint.SendLocal(new StartOrder
            {
                OrderId = "123"
            });

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();

            await endpoint.Stop();
        }
    }
Ejemplo n.º 24
0
    static async Task AsyncMain()
    {
        #region ContainerConfiguration

        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.Castle");

        WindsorContainer container = new WindsorContainer();
        container.Register(Component.For<MyService>().Instance(new MyService()));

        busConfiguration.UseContainer<WindsorBuilder>(c => c.ExistingContainer(container));

        #endregion

        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.SendFailedMessagesTo("error");
        busConfiguration.EnableInstallers();

        IEndpointInstance endpoint = await Endpoint.Start(busConfiguration);
        try
        {
            await endpoint.SendLocal(new MyMessage());
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
        finally
        {
            await endpoint.Stop();
        }
    }
        public void Config_file_connection_string_convention_has_precedence_over_code_configured_endpoint_connection_info()
        {
            var busConfig = new BusConfiguration();
            busConfig.UseTransport<SqlServerTransport>().UseSpecificConnectionInformation(
                EndpointConnectionInfo.For("Endpoint1").UseConnectionString("Source=Code").UseSchema("CodeSchema"),
                EndpointConnectionInfo.For("Endpoint2").UseConnectionString("Source=Code").UseSchema("CodeSchema"));

            var connectionConfig = new ConnectionConfig(new List<ConnectionStringSettings>()
            {
                new ConnectionStringSettings("NServiceBus/Transport/Endpoint1", "Source=Config; Queue Schema=ConfigSchema")
            });

            var builder = Activate(busConfig, connectionConfig);
            var connectionProvider = builder.Build<IConnectionStringProvider>();

            //Config
            var connectionParams = connectionProvider.GetForDestination(Address.Parse("Endpoint1"));
            Assert.IsTrue("Source=Config".Equals(connectionParams.ConnectionString, StringComparison.InvariantCultureIgnoreCase));
            Assert.AreEqual("ConfigSchema", connectionParams.Schema);

            //Fallback - code
            connectionParams = connectionProvider.GetForDestination(Address.Parse("Endpoint2"));
            Assert.IsTrue("Source=Code".Equals(connectionParams.ConnectionString, StringComparison.InvariantCultureIgnoreCase));
            Assert.AreEqual("CodeSchema", connectionParams.Schema);
        }
Ejemplo n.º 26
0
    static async Task AsyncMain()
    {
        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.WcfCallbacks");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.UsePersistence<InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        busConfiguration.SendFailedMessagesTo("error");

        #region startbus


        IEndpointInstance endpoint = await Endpoint.Start(busConfiguration);
        try
        {
            IBusSession busSession = endpoint.CreateBusSession();

            using (StartWcfHost(busSession))
            {
                Console.WriteLine("Press any key to exit");
                Console.ReadKey();
            }
        }
        finally
        {
            await endpoint.Stop();
        }

        #endregion
    }
Ejemplo n.º 27
0
        public static void Run(
            int maximumNumberOfTweetsPerCatchUp,
            TimeSpan defaultTransactionTimeout,
            string nserviceBusConnectionString,
            string endpointName,
            string consumerKey,
            string consumerSecret,
            string accessToken,
            string accessTokenSecret)
        {
            var busConfiguration = new BusConfiguration();
            busConfiguration.Transactions().DoNotWrapHandlersExecutionInATransactionScope();
            busConfiguration.Transactions().DefaultTimeout(defaultTransactionTimeout);
            busConfiguration.EndpointName(endpointName);
            busConfiguration.UseSerialization<JsonSerializer>();
            busConfiguration.EnableInstallers();
            busConfiguration.UsePersistence<NHibernatePersistence>().ConnectionString(nserviceBusConnectionString);
            busConfiguration.ApplyMessageConventions();
            busConfiguration.RegisterComponents(c=>c.RegisterSingleton<ITweetService>(
                new TweetService(maximumNumberOfTweetsPerCatchUp, consumerKey, consumerSecret, accessToken, accessTokenSecret)));

            using (Bus.Create(busConfiguration).Start())
            {
                Console.ReadLine();
            }
        }
        public void Customize(BusConfiguration config)
        {
            config.DisableFeature<TimeoutManager>();
            config.DisableFeature<SecondLevelRetries>();
            config.DisableFeature<Sagas>();

        }
Ejemplo n.º 29
0
    static void Main()
    {
        Console.Title = "Samples.CustomNhMappings.XmlMapping";
        var nhConfiguration = new Configuration();

        nhConfiguration.SetProperty(Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
        nhConfiguration.SetProperty(Environment.ConnectionDriver, "NHibernate.Driver.Sql2008ClientDriver");
        nhConfiguration.SetProperty(Environment.Dialect, "NHibernate.Dialect.MsSql2008Dialect");
        nhConfiguration.SetProperty(Environment.ConnectionStringName, "NServiceBus/Persistence");

        AddMappingsFromFilesystem(nhConfiguration);

        var busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Samples.CustomNhMappings.XmlMapping");
        busConfiguration.UseSerialization<JsonSerializer>();
        busConfiguration.EnableInstallers();

        var persistence = busConfiguration.UsePersistence<NHibernatePersistence>();
        persistence.UseConfiguration(nhConfiguration);

        using (var bus = Bus.Create(busConfiguration).Start())
        {
            var startOrder = new StartOrder
            {
                OrderId = "123"
            };
            bus.SendLocal(startOrder);
            
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
Ejemplo n.º 30
0
 public void TransportTransactionsWithScope()
 {
     #region TransactionsWrapHandlersExecutionInATransactionScope
     BusConfiguration busConfiguration = new BusConfiguration();
     busConfiguration.Transactions().DisableDistributedTransactions().WrapHandlersExecutionInATransactionScope();
     #endregion
 }
Ejemplo n.º 31
0
 public void Customize(BusConfiguration busConfiguration)
 {
     busConfiguration.EnableInstallers();
     busConfiguration.UsePersistence <InMemoryPersistence>();
 }
Ejemplo n.º 32
0
    static async Task AsyncMain()
    {
        Configuration hibernateConfig = new Configuration();

        hibernateConfig.DataBaseIntegration(x =>
        {
            x.ConnectionStringName = "NServiceBus/Persistence";
            x.Dialect <MsSql2012Dialect>();
        });

        #region NHibernate

        hibernateConfig.SetProperty("default_schema", "receiver");

        #endregion

        ModelMapper mapper = new ModelMapper();
        mapper.AddMapping <OrderMap>();
        hibernateConfig.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());

        new SchemaExport(hibernateConfig).Execute(false, true, false);

        #region ReceiverConfiguration

        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.SendFailedMessagesTo("error");
        busConfiguration.AuditProcessedMessagesTo("audit");
        busConfiguration.EnableInstallers();
        busConfiguration.UseTransport <SqlServerTransport>()
        .DefaultSchema("receiver")
        .UseSpecificSchema(e =>
        {
            switch (e)
            {
            case "error":
                return("dbo");

            case "audit":
                return("dbo");

            default:
                string schema = e.Split(new[]
                {
                    '.'
                }, StringSplitOptions.RemoveEmptyEntries)[0].ToLowerInvariant();
                return(schema);
            }
        });

        busConfiguration.UsePersistence <NHibernatePersistence>()
        .UseConfiguration(hibernateConfig)
        .RegisterManagedSessionInTheContainer();

        #endregion

        IEndpointInstance endpoint = await Endpoint.Start(busConfiguration);

        try
        {
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
        finally
        {
            await endpoint.Stop();
        }
    }
Ejemplo n.º 33
0
        public void Customize(BusConfiguration configuration)
        {
            configuration.UsePersistence <InMemoryPersistence>();

            Console.WriteLine("Ready to place orders");
        }
Ejemplo n.º 34
0
 public void Customize(BusConfiguration configuration)
 {
     configuration.UsePersistence <InMemoryPersistence>();
 }
Ejemplo n.º 35
0
    static void Main()
    {
        Console.Title = "Samples.MultiTenant.Receiver";

        Configuration hibernateConfig = CreateBasicNHibernateConfig();
        ModelMapper   mapper          = new ModelMapper();

        mapper.AddMapping <OrderMap>();
        hibernateConfig.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());

        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.EndpointName("Samples.MultiTenant.Receiver");

        #region ReceiverConfiguration

        var persistence = busConfiguration.UsePersistence <NHibernatePersistence>();
        persistence.RegisterManagedSessionInTheContainer();
        persistence.UseConfiguration(hibernateConfig);
        persistence.UseSubscriptionStorageConfiguration(CreateBasicNHibernateConfig());
        persistence.UseTimeoutStorageConfiguration(CreateBasicNHibernateConfig());
        persistence.DisableSchemaUpdate();

        busConfiguration.EnableOutbox();

        SettingsHolder settingsHolder = busConfiguration.GetSettings();
        settingsHolder.Set("NHibernate.Timeouts.AutoUpdateSchema", true);
        settingsHolder.Set("NHibernate.Subscriptions.AutoUpdateSchema", true);

        #endregion

        #region ReplaceOpenSqlConnection

        busConfiguration.Pipeline.Replace("OpenSqlConnection", typeof(MultiTenantOpenSqlConnectionBehavior));

        #endregion

        #region RegisterPropagateTenantIdBehavior

        busConfiguration.Pipeline.Register <PropagateTenantIdBehavior.Registration>();

        #endregion

        busConfiguration.DisableFeature <SecondLevelRetries>();

        #region CreateSchema

        IStartableBus startableBus = Bus.Create(busConfiguration);

        CreateSchema(hibernateConfig, "A");
        CreateSchema(hibernateConfig, "B");

        #endregion

        #region CapturePipelineExecutor

        PipelineExecutor = ((UnicastBus)startableBus).Builder.Build <PipelineExecutor>();

        #endregion

        using (startableBus.Start())
        {
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
 // ... the config
 #endregion
 public void Customize(BusConfiguration busConfiguration)
 {
 }
Ejemplo n.º 37
0
 Usage(BusConfiguration busConfiguration)
 {
     #region FLRConfigurationSourceUsage
     busConfiguration.CustomConfigurationSource(new ConfigurationSource());
     #endregion
 }
Ejemplo n.º 38
0
 public void Customize(BusConfiguration configuration)
 {
     configuration.RegisterComponents(Registration);
 }
Ejemplo n.º 39
0
 public void Customize(BusConfiguration busConfiguration)
 {
     busConfiguration.ExecuteTheseHandlersFirst(typeof(HandlerB), typeof(HandlerA), typeof(HandlerC));
 }
Ejemplo n.º 40
0
 public void ProfileActivated(BusConfiguration busConfiguration)
 {
     // set something else in dependency injection
 }
 public void ProfileActivated(BusConfiguration busConfiguration)
 {
     // set something else in the container
 }
Ejemplo n.º 42
0
 public void Customize(BusConfiguration configuration)
 {
     configuration.UsePersistence <RavenDBPersistence>();
     configuration.ApplyCustomMessageConventions();
 }
Ejemplo n.º 43
0
        public static BusConfiguration GetBusConfiguration(IBusSettings settings,
                                                           bool useDefaultAutofacContainer = false, IContainer autofacContainer          = null,
                                                           Action <BusConfiguration> registerIocContainer = null, string licenseFilePath = null)
        {
            var busConfiguration = new BusConfiguration();

            busConfiguration.EndpointName(settings.EndpointName);

            //busConfiguration.UseSerialization(settings.SerializerType ?? typeof(JsonSerializer));
            busConfiguration.UseSerialization(settings.SerializerType ?? typeof(NewtonsoftSerializer));

            var transport = busConfiguration.UseTransport <RabbitMQTransport>();

            transport.ConnectionString(settings.MqConnectionString);

            licenseFilePath = licenseFilePath ?? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "License.xml");
            busConfiguration.LicensePath(licenseFilePath);

            busConfiguration.EnableInstallers();
            busConfiguration.UsePersistence <NHibernatePersistence>()
            .ConnectionString(settings.PersistenceStoreConnectionString);

            busConfiguration.Conventions().DefiningCommandsAs(commandType =>
                                                              commandType.Namespace != null && BusCommandType.IsAssignableFrom(commandType));
            busConfiguration.Conventions().DefiningEventsAs(
                eventType => eventType.Namespace != null && BusEventType.IsAssignableFrom(eventType));
            busConfiguration.Conventions().DefiningMessagesAs(messageType =>
                                                              messageType.Namespace != null && BusMessageType.IsAssignableFrom(messageType));

            busConfiguration.PurgeOnStartup(settings.PurgeOnStartup);

            busConfiguration.DisableFeature <SecondLevelRetries>();

            if (registerIocContainer == null)
            {
                if (useDefaultAutofacContainer)
                {
                    busConfiguration.RegisterWithAutofac();
                }
                else if (autofacContainer != null)
                {
                    busConfiguration.RegisterWithAutofac(autofacContainer);
                }
            }
            else
            {
                registerIocContainer(busConfiguration);
            }

            var loggingFactory = LogManager.Use <DefaultFactory>();

            var logFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, settings.LogFolderRelativePath);

            if (!Directory.Exists(logFolder))
            {
                Directory.CreateDirectory(logFolder);
            }

            loggingFactory.Directory(logFolder);
            loggingFactory.Level(LogLevel.Debug);

            return(busConfiguration);
        }
Ejemplo n.º 44
0
    static void Main()
    {
        var connectionString = @"Data Source=.\SqlExpress;Initial Catalog=nservicebus;Integrated Security=True;Max Pool Size=100;Min Pool Size=10";

        Console.Title = "Samples.ServiceControl.SqlServerTransportAdapter.Shipping";
        var endpointConfiguration = new BusConfiguration();

        endpointConfiguration.EndpointName("Samples.ServiceControl.SqlServerTransportAdapter.Shipping");

        var transport = endpointConfiguration.UseTransport <SqlServerTransport>();

        transport.ConnectionString(connectionString);

        SqlHelper.EnsureDatabaseExists(connectionString);
        SqlHelper.CreateSchema(connectionString, "shipping");
        SqlHelper.CreateSchema(connectionString, "adapter");

        #region SchemaV5

        //Use custom schema shipping for this endpoint
        transport.DefaultSchema("shipping");

        transport.UseSpecificConnectionInformation(
            //Configure schema for sales endpoint so that the subscribe message is sent to the correct address
            EndpointConnectionInfo.For("Samples.ServiceControl.SqlServerTransportAdapter.Sales").UseSchema("sales"),
            //Configure schemas for ServiceControl queues to point to the adapter
            EndpointConnectionInfo.For("audit").UseSchema("adapter"),
            EndpointConnectionInfo.For("error").UseSchema("adapter"),
            EndpointConnectionInfo.For("Particular.ServiceControl").UseSchema("adapter")
            );

        #endregion

        endpointConfiguration.UsePersistence <InMemoryPersistence>();

        var chaos = new ChaosGenerator();
        endpointConfiguration.RegisterComponents(
            registration: components =>
        {
            components.ConfigureComponent(() => chaos, DependencyLifecycle.SingleInstance);
        });

        endpointConfiguration.DisableFeature <SecondLevelRetries>();

        var conventions = endpointConfiguration.Conventions();
        conventions.DefiningEventsAs(t => t == typeof(OrderAccepted) || t == typeof(OrderShipped));

        endpointConfiguration.EnableInstallers();

        using (var endpointInstance = Bus.Create(endpointConfiguration).Start())
        {
            Console.WriteLine("Press enter to exit");
            Console.WriteLine("Press 'f' to toggle simulating of message processing failure");
            while (true)
            {
                var key = Console.ReadKey();
                Console.WriteLine();
                if (key.Key == ConsoleKey.Enter)
                {
                    break;
                }
                var lowerInvariant = char.ToLowerInvariant(key.KeyChar);
                if (lowerInvariant == 'f')
                {
                    chaos.IsFailing = !chaos.IsFailing;
                    Console.WriteLine($"Failure simulation is now turned {(chaos.IsFailing ? "on" : "off")}");
                }
            }
        }
    }
Ejemplo n.º 45
0
    static void Main()
    {
        Console.Title = "Samples.SqlNHibernate.Sender";
        const string letters          = "ABCDEFGHIJKLMNOPQRSTUVXYZ";
        var          random           = new Random();
        var          busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.SqlNHibernate.Sender");
        busConfiguration.EnableInstallers();
        var hibernateConfig = new Configuration();

        hibernateConfig.DataBaseIntegration(x =>
        {
            x.ConnectionStringName = "NServiceBus/Persistence";
            x.Dialect <MsSql2012Dialect>();
        });
        hibernateConfig.SetProperty("default_schema", "sender");

        #region SenderConfiguration

        var transport = busConfiguration.UseTransport <SqlServerTransport>();
        transport.DefaultSchema("sender");
        transport.UseSpecificConnectionInformation(endpoint =>
        {
            if (endpoint == "error" || endpoint == "audit")
            {
                return(ConnectionInfo.Create().UseSchema("dbo"));
            }
            if (endpoint == "Samples.SqlNHibernate.Receiver")
            {
                return(ConnectionInfo.Create().UseSchema("receiver"));
            }
            return(null);
        });
        var persistence = busConfiguration.UsePersistence <NHibernatePersistence>();
        persistence.UseConfiguration(hibernateConfig);

        #endregion

        using (var bus = Bus.Create(busConfiguration).Start())
        {
            Console.WriteLine("Press enter to send a message");
            Console.WriteLine("Press any key to exit");

            while (true)
            {
                var key = Console.ReadKey();
                Console.WriteLine();

                if (key.Key != ConsoleKey.Enter)
                {
                    return;
                }

                var orderId        = new string(Enumerable.Range(0, 4).Select(x => letters[random.Next(letters.Length)]).ToArray());
                var orderSubmitted = new OrderSubmitted
                {
                    OrderId = orderId,
                    Value   = random.Next(100)
                };
                bus.Publish(orderSubmitted);
            }
        }
    }
Ejemplo n.º 46
0
 public void Run(BusConfiguration busConfiguration)
 {
     log.Info("Setting serializer to XML in an extension");
     busConfiguration.UseSerialization <XmlSerializer>();
 }
Ejemplo n.º 47
0
 public void Customize(BusConfiguration builder)
 {
     builder.UseTransport <AzureServiceBusTransport>();
     builder.UsePersistence <AzureStoragePersistence>();
 }
 public void Customize(BusConfiguration configuration)
 {
     configuration.RegisterComponents(c => c.ConfigureComponent <GetValueOfIncomingCorrelationId>(DependencyLifecycle.InstancePerCall));
 }
Ejemplo n.º 49
0
 public void ProfileActivated(BusConfiguration busConfiguration)
 {
     // set the NullEmailSender in the container
 }
Ejemplo n.º 50
0
 public void Customize(BusConfiguration configuration)
 {
     configuration.UsePersistence <InMemoryPersistence>();
     configuration.Pipeline.Register <RegisterOriginalSenderCheckStep>();
     configuration.EndpointName(ConfigurationManager.AppSettings["IntegrationPointName"]);
 }
Ejemplo n.º 51
0
 /// <summary>
 /// Provides config options for the mailer feature.
 /// </summary>
 public static MailerConfigurationSettings EnableMailer(this BusConfiguration config)
 {
     config.EnableFeature <MailerFeature>();
     return(new MailerConfigurationSettings(config));
 }
Ejemplo n.º 52
0
        private void InitializeServiceControl(ScenarioContext context)
        {
            LogManager.Use <NLogFactory>();
            NLog.LogManager.Configuration = SetupLogging(Settings.DEFAULT_SERVICE_NAME);

            var settings = new Settings
            {
                Port   = port,
                DbPath = ravenPath,
                ForwardErrorMessages         = false,
                ForwardAuditMessages         = false,
                TransportType                = transportToUse.TypeName,
                TransportConnectionString    = transportToUse.ConnectionString,
                ProcessRetryBatchesFrequency = TimeSpan.FromSeconds(2),
                MaximumConcurrencyLevel      = 2,
                HttpDefaultConnectionLimit   = int.MaxValue
            };

            SetSettings(settings);

            var configuration = new BusConfiguration();

            configuration.TypesToScan(GetTypesScopedByTestClass(transportToUse).Concat(new[]
            {
                typeof(MessageMapperInterceptor),
                typeof(RegisterWrappers),
                typeof(SessionCopInBehavior),
                typeof(SessionCopInBehaviorForMainPipe),
                typeof(TraceIncomingBehavior),
                typeof(TraceOutgoingBehavior)
            }));
            configuration.EnableInstallers();

            configuration.GetSettings().SetDefault("ScaleOut.UseSingleBrokerQueue", true);
            configuration.GetSettings().Set("SC.ScenarioContext", context);

            // This is a hack to ensure ServiceControl picks the correct type for the messages that come from plugins otherwise we pick the type from the plugins assembly and that is not the type we want, we need to pick the type from ServiceControl assembly.
            // This is needed because we no longer use the AppDomain separation.
            configuration.EnableFeature <MessageMapperInterceptor>();
            configuration.RegisterComponents(r => { configuration.GetSettings().Set("SC.ConfigureComponent", r); });

            configuration.RegisterComponents(r =>
            {
                r.RegisterSingleton(context.GetType(), context);
                r.RegisterSingleton(typeof(ScenarioContext), context);
            });

            configuration.Pipeline.Register <SessionCopInBehavior.Registration>();
            configuration.Pipeline.Register <SessionCopInBehaviorForMainPipe.Registration>();
            configuration.Pipeline.Register <TraceIncomingBehavior.Registration>();
            configuration.Pipeline.Register <TraceOutgoingBehavior.Registration>();

            CustomConfiguration(configuration);

            using (new DiagnosticTimer("Initializing Bootstrapper"))
            {
                bootstrapper = new Bootstrapper(settings, configuration);
            }
            using (new DiagnosticTimer("Initializing AppBuilder"))
            {
                var app = new AppBuilder();
                bootstrapper.Startup.Configuration(app);
                var appFunc = app.Build();

                Handler = new OwinHttpMessageHandler(appFunc)
                {
                    UseCookies        = false,
                    AllowAutoRedirect = false
                };
                httpClient = new HttpClient(Handler);
            }

            using (new DiagnosticTimer("Creating and starting Bus"))
            {
                bus = bootstrapper.Start(true);
            }
        }
Ejemplo n.º 53
0
 public void Customize(BusConfiguration configuration)
 {
     configuration.RegisterComponents(c => c.ConfigureComponent <KnownEndpointsCache>(DependencyLifecycle.SingleInstance));
 }
Ejemplo n.º 54
0
 Usage(BusConfiguration busConfiguration)
 {
     #region UseCustomConfigurationSourceForGatewayChannelsConfig
     busConfiguration.CustomConfigurationSource(new ConfigurationSource());
     #endregion
 }
Ejemplo n.º 55
0
 public static void Msmq(BusConfiguration endpointConfiguration)
 {
     endpointConfiguration.UsePersistence <MsmqPersistence>();
 }
Ejemplo n.º 56
0
 public void Customize(BusConfiguration configuration)
 {
     configuration.EndpointName(EndpointName);
 }
Ejemplo n.º 57
0
 public static void None(BusConfiguration endpointConfiguration)
 {
     // Having no persistence configured is only suitable for transports which support native publish-subscribe
     // http://docs.particular.net/nservicebus/messaging/publish-subscribe/#mechanics-native-based
 }
Ejemplo n.º 58
0
 public static void NHibernate(BusConfiguration endpointConfiguration)
 {
     //# throw new NotImplementedException("You need to configure your connection string");
     endpointConfiguration.UsePersistence <NHibernatePersistence>().ConnectionString("Connection_string_goes_here");
 }
Ejemplo n.º 59
0
 public void Customize(BusConfiguration configuration)
 {
     configuration.UsePersistence <NHibernatePersistence>();
 }
Ejemplo n.º 60
0
 public static void InMemory(BusConfiguration endpointConfiguration)
 {
     // This is not suitable for production use
     endpointConfiguration.UsePersistence <InMemoryPersistence>();
 }