public ScanningPublicApi() { IEnumerable <Assembly> myListOfAssemblies = null; Assembly assembly2 = null; Assembly assembly1 = null; IEnumerable <Type> myTypes = null; #region ScanningDefault var configuration = new BusConfiguration(); #endregion #region ScanningListOfAssemblies configuration.AssembliesToScan(myListOfAssemblies); #endregion #region ScanningParamArrayOfAssemblies configuration.AssembliesToScan(assembly1, assembly2); #endregion #region ScanningCustomDirectory configuration.ScanAssembliesInDirectory(@"c:\my-custom-dir"); #endregion #region ScanningListOfTypes configuration.TypesToScan(myTypes); #endregion #region ScanningExcludeByName configuration.AssembliesToScan(AllAssemblies.Except("MyAssembly.dll").And("MyAssembly.dll")); #endregion #region ScanningIncludeByPattern configuration.AssembliesToScan(AllAssemblies.Matching("MyCompany.").And("SomethingElse")); #endregion #region ScanningMixingIncludeAndExclude configuration.AssembliesToScan(AllAssemblies.Matching("MyCompany.").Except("BadAssembly.dll")); #endregion }
void ScanningListOfAssemblies(BusConfiguration busConfiguration, IEnumerable <Assembly> myListOfAssemblies, Assembly assembly2, Assembly assembly1) { #region ScanningListOfAssemblies busConfiguration.AssembliesToScan(myListOfAssemblies); // or busConfiguration.AssembliesToScan(assembly1, assembly2); #endregion }
void ScanningListOfAssemblies(BusConfiguration busConfiguration, IEnumerable<Assembly> myListOfAssemblies, Assembly assembly2, Assembly assembly1) { #region ScanningListOfAssemblies busConfiguration.AssembliesToScan(myListOfAssemblies); // or busConfiguration.AssembliesToScan(assembly1, assembly2); #endregion }
public ScanningPublicApi() { IEnumerable<Assembly> myListOfAssemblies = null; Assembly assembly2 = null; Assembly assembly1 = null; IEnumerable<Type> myTypes = null; #region ScanningDefault BusConfiguration busConfiguration = new BusConfiguration(); #endregion #region ScanningExcludeByName busConfiguration.AssembliesToScan(AllAssemblies.Except("MyAssembly1.dll").And("MyAssembly2.dll")); #endregion #region ScanningListOfTypes busConfiguration.TypesToScan(myTypes); #endregion #region ScanningListOfAssemblies busConfiguration.AssembliesToScan(myListOfAssemblies); // or busConfiguration.AssembliesToScan(assembly1, assembly2); #endregion #region ScanningIncludeByPattern busConfiguration.AssembliesToScan(AllAssemblies.Matching("NServiceBus").And("MyCompany.").And("SomethingElse")); #endregion #region ScanningCustomDirectory busConfiguration.ScanAssembliesInDirectory(@"c:\my-custom-dir"); #endregion #region ScanningMixingIncludeAndExclude busConfiguration.AssembliesToScan(AllAssemblies.Matching("NServiceBus").And("MyCompany.").Except("BadAssembly.dll")); #endregion }
public void ScanningListOfAssemblies() { IEnumerable <Assembly> myListOfAssemblies = null; Assembly assembly2 = null; Assembly assembly1 = null; BusConfiguration busConfiguration = new BusConfiguration(); #region ScanningListOfAssemblies busConfiguration.AssembliesToScan(myListOfAssemblies); // or busConfiguration.AssembliesToScan(assembly1, assembly2); #endregion }
private static void ConfigureAssembliesToScan(BusConfiguration busConfiguration) { busConfiguration.AssembliesToScan( AllAssemblies.Matching("NServiceBus") .And("Messages") .And("Ui")); }
void RunAndWait(HostArguments args) { var busConfiguration = new BusConfiguration(); busConfiguration.AssembliesToScan(AllAssemblies.Except("ServiceControl.Plugin")); var settings = new Settings { IngestAuditMessages = false, IngestErrorMessages = false }; var tokenSource = new CancellationTokenSource(); var loggingSettings = new LoggingSettings(settings.ServiceName, LogLevel.Info, LogLevel.Info); var bootstrapper = new Bootstrapper(() => { tokenSource.Cancel(); }, settings, busConfiguration, loggingSettings); var bus = (UnicastBus)bootstrapper.Start().Bus; Console.CancelKeyPress += (sender, eventArgs) => { tokenSource.Cancel(); }; var importTask = bus.Builder.Build <ImportFailedAudits>().Run(tokenSource); Console.WriteLine("Press Ctrl+C to exit"); importTask.GetAwaiter().GetResult(); }
public void Run(string username) { var configuration = new BusConfiguration(); configuration.AssembliesToScan(AllAssemblies.Except("ServiceControl.Plugin")); configuration.EnableInstallers(username); var containerBuilder = new ContainerBuilder(); var loggingSettings = new LoggingSettings(settings.ServiceName); containerBuilder.RegisterInstance(loggingSettings); var documentStore = new EmbeddableDocumentStore(); containerBuilder.RegisterInstance(documentStore).As <IDocumentStore>().ExternallyOwned(); containerBuilder.RegisterInstance(settings); containerBuilder.RegisterModule <MigrationsModule>(); using (documentStore) using (var container = containerBuilder.Build()) using (NServiceBusFactory.Create(settings, container, null, documentStore, configuration)) { container.Resolve <MigrationsManager>().ApplyMigrations(); } }
public static BusConfiguration GetConfiguration(string someConnectionString, string someOtherConnectionString, string serviceBusConnectionString) { if (_config == null) { var config = new BusConfiguration(); config.UseContainer <UnityBuilder>(c => c.UseExistingContainer(getContainer(config, someConnectionString, someOtherConnectionString))); config.CustomConfigurationSource(new MyConfigSource(serviceBusConnectionString)); config.AssembliesToScan(getAssembliesToScan()); config.EndpointName("NSBUnityError.Sender"); config.DisableFeature <TimeoutManager>(); config.UseSerialization <JsonSerializer>(); config.UseTransport <AzureServiceBusTransport>(); config.UsePersistence <AzureStoragePersistence>(); config.ScaleOut().UseSingleBrokerQueue(); config.Conventions() .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.StartsWith("NSBUnityError.Commands")); if (Debugger.IsAttached) { config.EnableInstallers(); } _config = config; } return(_config); }
public static void ConfigureBus(IWindsorContainer container) { // Use NLog for logging NServiceBus.Logging.LogManager.Use<NLogFactory>(); var configuration = new BusConfiguration(); // Only scan known Messages assemblies rather than all assemblies in 'bin' - faster startup time. var messages = AppDomain.CurrentDomain.GetAssemblies() .Where(a => a.GetName().Name.EndsWith(".Messages")); configuration.AssembliesToScan(messages); // Use NServiceBus Unobtrusive Mode configuration.Conventions() .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.EndsWith("Commands")) .DefiningEventsAs(t => t.Namespace != null && t.Namespace.EndsWith("Events")) .DefiningMessagesAs(t => t.Namespace != null && t.Namespace == "Messages") .DefiningDataBusPropertiesAs(p => p.Name.EndsWith("DataBus")) .DefiningExpressMessagesAs(t => t.Name.EndsWith("Express")) .DefiningTimeToBeReceivedAs(t => t.Name.EndsWith("Expires") ? TimeSpan.FromSeconds(30) : TimeSpan.MaxValue); // Use existing Castle Windsor container configuration.UseContainer<WindsorBuilder>(c => c.ExistingContainer(container)); // Use JSON for serialisation configuration.UseSerialization<JsonSerializer>(); // Use MSMQ for transport configuration.UseTransport<MsmqTransport>(); // Use InMemory persistence only configuration.UsePersistence<InMemoryPersistence>(); configuration.EnableInstallers(); // Start the bus var bus = Bus.Create(configuration); bus.Start(); }
private static void ConfigureAssembliesToScan(BusConfiguration busConfiguration) { busConfiguration.AssembliesToScan( AllAssemblies.Matching("NServiceBus") .And("Messages") .And("DocumentDownloader")); }
public void SetUp() { Builder = new FuncBuilder(); InMemoryFaultManager = new Faults.InMemory.FaultManager(); FakeReceiver = new FakeReceiver(); var configurationBuilder = new BusConfiguration(); configurationBuilder.EndpointName("xyz"); configurationBuilder.AssembliesToScan(new Assembly[0]); Transport = new TransportReceiver(new TransactionSettings(true, TimeSpan.FromSeconds(30), IsolationLevel.ReadCommitted, 5, false, false), 1, 0, FakeReceiver, InMemoryFaultManager, new SettingsHolder(), configurationBuilder.BuildConfiguration()); RegisterTypes(); Builder.Register <IManageMessageFailures>(() => InMemoryFaultManager); Builder.Register <TransportReceiver>(() => Transport); //var configurer = new SatelliteConfigurer(); //configurer.Customize(configure); var launcher = new SatelliteLauncher(Builder); BeforeRun(); launcher.Start(); }
private void Initialize() { var loggingSettings = new LoggingSettings(settings.ServiceName); ConfigureLogging(loggingSettings); // .NET default limit is 10. RavenDB in conjunction with transports that use HTTP exceeds that limit. ServicePointManager.DefaultConnectionLimit = settings.HttpDefaultConnectionLimit; timeKeeper = new TimeKeeper(); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterType <MessageStreamerConnection>().SingleInstance(); containerBuilder.RegisterInstance(loggingSettings); containerBuilder.RegisterInstance(settings); containerBuilder.RegisterInstance(notifier).ExternallyOwned(); containerBuilder.RegisterInstance(timeKeeper).ExternallyOwned(); containerBuilder.RegisterType <SubscribeToOwnEvents>().PropertiesAutowired().SingleInstance(); containerBuilder.RegisterInstance(documentStore).As <IDocumentStore>().ExternallyOwned(); if (configuration == null) { configuration = new BusConfiguration(); configuration.AssembliesToScan(AllAssemblies.Except("ServiceControl.Plugin")); } container = containerBuilder.Build(); Startup = new Startup(container); DomainEvents.Container = container; }
public void Run(string username) { var configuration = new BusConfiguration(); configuration.AssembliesToScan(AllAssemblies.Except("ServiceControl.Plugin")); configuration.EnableInstallers(username); if (settings.SkipQueueCreation) { log.Info("Skipping queue creation"); configuration.DoNotCreateQueues(); } var containerBuilder = new ContainerBuilder(); var domainEvents = new DomainEvents(); containerBuilder.RegisterInstance(domainEvents).As <IDomainEvents>(); var loggingSettings = new LoggingSettings(settings.ServiceName); containerBuilder.RegisterInstance(loggingSettings); var documentStore = new EmbeddableDocumentStore(); containerBuilder.RegisterInstance(documentStore).As <IDocumentStore>().ExternallyOwned(); containerBuilder.RegisterInstance(settings); using (documentStore) using (var container = containerBuilder.Build()) using (NServiceBusFactory.Create(settings, container, null, documentStore, configuration, false)) { } }
public void SetUp() { Builder = new FuncBuilder(); InMemoryFaultManager = new NServiceBus.Faults.InMemory.FaultManager(); FakeReceiver = new FakeReceiver(); var configurationBuilder = new BusConfiguration(); configurationBuilder.EndpointName("xyz"); configurationBuilder.AssembliesToScan(new Assembly[0]); Transport = new TransportReceiver(new TransactionSettings(true, TimeSpan.FromSeconds(30), IsolationLevel.ReadCommitted, 5, false, false), 1, 0, FakeReceiver, InMemoryFaultManager, new SettingsHolder(), configurationBuilder.BuildConfiguration()); RegisterTypes(); Builder.Register<IManageMessageFailures>(() => InMemoryFaultManager); Builder.Register<TransportReceiver>(() => Transport); //var configurer = new SatelliteConfigurer(); //configurer.Customize(configure); var launcher = new SatelliteLauncher(Builder); BeforeRun(); launcher.Start(); }
private static void ConfigureAssembliesToScan(BusConfiguration busConfiguration) { busConfiguration.AssembliesToScan( AllAssemblies.Matching("NServiceBus") .And("Messages") .And("Audit")); }
public void Should_always_include_the_core_nservicebus_types() { var builder = new BusConfiguration(); builder.AssembliesToScan(Assembly.GetExecutingAssembly()); Assert.True(builder.BuildConfiguration().Settings.GetAvailableTypes().Any(a => a.Assembly.GetName().Name.Equals("NServiceBus.Core"))); }
public void Should_always_include_the_core_nservicebus_types() { var builder = new BusConfiguration(); builder.AssembliesToScan(Assembly.GetExecutingAssembly()); Assert.True(builder.BuildConfiguration().Settings.GetAvailableTypes().Any(a => a.Assembly.GetName().Name.Equals("NServiceBus.Core"))); }
public void Customize(BusConfiguration configuration) { configuration.AssembliesToScan(Assembly.GetExecutingAssembly(), typeof(AxisMessage).Assembly, typeof(ReportStoreMessage).Assembly, typeof(AzureStorageQueueTransport).Assembly); configuration.UseTransport<AzureStorageQueueTransport>(); configuration.UsePersistence<InMemoryPersistence>(); configuration.EndpointName("50000"); configuration.Transactions().DoNotWrapHandlersExecutionInATransactionScope(); configuration.Transactions().Disable(); }
private static IBus CreateNServiceBus() { var configuration = new BusConfiguration(); configuration.UsePersistence <InMemoryPersistence>(); // limits the search for handlers to this specific assembly, otherwiese it will traverse all referenced assemblies looking for handlers. configuration.AssembliesToScan(Assembly.Load("NServiceBusReceiver")); return(NServiceBus.Bus.Create(configuration)); }
public static IStartableBus Create(Settings.Settings settings, IContainer container, Action onCriticalError, IDocumentStore documentStore, BusConfiguration configuration, bool isRunningAcceptanceTests) { if (configuration == null) { configuration = new BusConfiguration(); configuration.AssembliesToScan(AllAssemblies.Except("ServiceControl.Plugin")); } // HACK: Yes I know, I am hacking it to pass it to RavenBootstrapper! configuration.GetSettings().Set("ServiceControl.EmbeddableDocumentStore", documentStore); configuration.GetSettings().Set("ServiceControl.Settings", settings); configuration.GetSettings().Set("ServiceControl.MarkerFileService", new MarkerFileService(new LoggingSettings(settings.ServiceName).LogPath)); // Disable Auditing for the service control endpoint configuration.DisableFeature <Audit>(); configuration.DisableFeature <AutoSubscribe>(); configuration.DisableFeature <SecondLevelRetries>(); configuration.DisableFeature <TimeoutManager>(); configuration.DisableFeature <Outbox>(); configuration.UseSerialization <JsonSerializer>(); configuration.Transactions() .DisableDistributedTransactions() .DoNotWrapHandlersExecutionInATransactionScope(); configuration.ScaleOut().UseSingleBrokerQueue(); var transportType = DetermineTransportType(settings); configuration.Conventions().DefiningEventsAs(t => typeof(IEvent).IsAssignableFrom(t) || IsExternalContract(t)); configuration.EndpointName(settings.ServiceName); if (!isRunningAcceptanceTests) { configuration.ReportCustomChecksTo(settings.ServiceName); } configuration.UseContainer <AutofacBuilder>(c => c.ExistingLifetimeScope(container)); var transport = configuration.UseTransport(transportType); if (settings.TransportConnectionString != null) { transport.ConnectionString(settings.TransportConnectionString); } configuration.DefineCriticalErrorAction((s, exception) => { onCriticalError(); }); if (Environment.UserInteractive && Debugger.IsAttached) { configuration.EnableInstallers(); } return(Bus.Create(configuration)); }
void CustomConfigOverrides(BusConfiguration busConfiguration) { #region 4to5CustomConfigOverrides busConfiguration.AssembliesToScan(AllAssemblies.Except("NotThis.dll")); busConfiguration.Conventions().DefiningEventsAs(type => type.Name.EndsWith("Event")); busConfiguration.EndpointName("MyEndpointName"); #endregion }
public void Start() { DynamicHostControllerConfig configSection = null; var o = new BusConfiguration(); o.AssembliesToScan(GetType().Assembly); o.AzureConfigurationSource(); o.RegisterComponents(Configurer => { Configurer.ConfigureComponent<DynamicEndpointLoader>(DependencyLifecycle.SingleInstance); Configurer.ConfigureComponent<DynamicEndpointProvisioner>(DependencyLifecycle.SingleInstance); Configurer.ConfigureComponent<DynamicEndpointRunner>(DependencyLifecycle.SingleInstance); Configurer.ConfigureComponent<DynamicHostMonitor>(DependencyLifecycle.SingleInstance); configSection = o.GetSettings().GetConfigSection<DynamicHostControllerConfig>() ?? new DynamicHostControllerConfig(); Configurer.ConfigureProperty<DynamicEndpointLoader>(t => t.ConnectionString, configSection.ConnectionString); Configurer.ConfigureProperty<DynamicEndpointLoader>(t => t.Container, configSection.Container); Configurer.ConfigureProperty<DynamicEndpointProvisioner>(t => t.LocalResource, configSection.LocalResource); Configurer.ConfigureProperty<DynamicEndpointProvisioner>(t => t.RecycleRoleOnError, configSection.RecycleRoleOnError); Configurer.ConfigureProperty<DynamicEndpointRunner>(t => t.RecycleRoleOnError, configSection.RecycleRoleOnError); Configurer.ConfigureProperty<DynamicEndpointRunner>(t => t.TimeToWaitUntilProcessIsKilled, configSection.TimeToWaitUntilProcessIsKilled); Configurer.ConfigureProperty<DynamicHostMonitor>(t => t.Interval, configSection.UpdateInterval); }); o.UsePersistence<AzureStoragePersistence>(); o.DiscardFailedMessagesInsteadOfSendingToErrorQueue(); profileManager.ActivateProfileHandlers(o); specifier.Customize(o); var bus = (UnicastBus)Bus.CreateSendOnly(o); loader = bus.Builder.Build<DynamicEndpointLoader>(); provisioner = bus.Builder.Build<DynamicEndpointProvisioner>(); runner = bus.Builder.Build<DynamicEndpointRunner>(); var endpointsToHost = loader.LoadEndpoints(); if (endpointsToHost == null) return; runningServices = new List<EndpointToHost>(endpointsToHost); provisioner.Provision(runningServices); runner.Start(runningServices); if (!configSection.AutoUpdate) return; monitor = bus.Builder.Build<DynamicHostMonitor>(); monitor.UpdatedEndpoints += UpdatedEndpoints; monitor.NewEndpoints += NewEndpoints; monitor.RemovedEndpoints += RemovedEndpoints; monitor.Monitor(runningServices); monitor.Start(); }
void ScanningExcludeByName(BusConfiguration busConfiguration) { #region ScanningExcludeByName var excludesBuilder = AllAssemblies .Except("MyAssembly1.dll") .And("MyAssembly2.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
void ScanningExcludeByName(BusConfiguration busConfiguration) { #region ScanningExcludeByName var excludesBuilder = AllAssemblies .Except("MyAssembly1.dll") .And("MyAssembly2.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
static IBus StartInstance2() { var busConfiguration = new BusConfiguration(); busConfiguration.EndpointName("Samples.MultiHosting.Instance2"); busConfiguration.AssembliesToScan(AllAssemblies.Matching("Instance2.").And("Shared")); busConfiguration.EnableInstallers(); busConfiguration.UsePersistence <InMemoryPersistence>(); return(Bus.Create(busConfiguration).Start()); }
public void Customize(BusConfiguration configuration) { configuration.DisableFeature<TimeoutManager>(); configuration.AssembliesToScan(typeof(NHibernatePersistence).Assembly, typeof(OrderSaga).Assembly, typeof(OrderPlaced).Assembly); //configuration.UsePersistence<InMemoryPersistence>(); configuration.UsePersistence<NHibernatePersistence>(); configuration.UseSerialization<JsonSerializer>(); //configuration.DisableFeature<NHibernateTimeoutStorage>(); }
protected override void OnStart(string[] args) { var busConfiguration = new BusConfiguration(); busConfiguration.AssembliesToScan(AllAssemblies.Except("ServiceControl.Plugin")); var loggingSettings = new LoggingSettings(ServiceName); bootstrapper = new Bootstrapper(Stop, new Settings(ServiceName), busConfiguration, loggingSettings); bootstrapper.Start(); }
void ScanningMixingIncludeAndExclude(BusConfiguration busConfiguration) { #region ScanningMixingIncludeAndExclude var excludesBuilder = AllAssemblies .Matching("NServiceBus") .And("MyCompany.") .Except("BadAssembly.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
public void Simple() { #region CustomConfigOverrides BusConfiguration busConfiguration = new BusConfiguration(); busConfiguration.AssembliesToScan(AllAssemblies.Except("NotThis.dll")); busConfiguration.Conventions().DefiningEventsAs(type => type.Name.EndsWith("Event")); busConfiguration.EndpointName("MyEndpointName"); #endregion }
void ScanningIncludeByPattern(BusConfiguration busConfiguration) { #region ScanningIncludeByPattern var includesBuilder = AllAssemblies .Matching("NServiceBus") .And("MyCompany.") .And("SomethingElse"); busConfiguration.AssembliesToScan(includesBuilder); #endregion }
static IBus StartInstance2() { BusConfiguration busConfig = new BusConfiguration(); busConfig.EndpointName("Samples.MultiHosting-2"); busConfig.AssembliesToScan(AllAssemblies.Matching("Instance2.")); busConfig.UseSerialization <XmlSerializer>(); busConfig.EnableInstallers(); busConfig.UsePersistence <InMemoryPersistence>(); return(Bus.Create(busConfig).Start()); }
public void Simple() { #region CustomConfigOverrides BusConfiguration busConfiguration = new BusConfiguration(); busConfiguration.AssembliesToScan(AllAssemblies.Except("NotThis.dll")); busConfiguration.Conventions().DefiningEventsAs(type => type.Name.EndsWith("Event")); busConfiguration.EndpointName("MyEndpointName"); #endregion }
static IBus StartInstance2() { BusConfiguration busConfiguration = new BusConfiguration(); busConfiguration.EndpointName("Samples.MultiHosting.Instance2"); busConfiguration.AssembliesToScan(AllAssemblies.Matching("Instance2.").And("Shared")); busConfiguration.UseSerialization<JsonSerializer>(); busConfiguration.EnableInstallers(); busConfiguration.UsePersistence<InMemoryPersistence>(); return Bus.Create(busConfiguration).Start(); }
void ScanningIncludeByPattern(BusConfiguration busConfiguration) { #region ScanningIncludeByPattern var includesBuilder = AllAssemblies .Matching("NServiceBus") .And("MyCompany.") .And("SomethingElse"); busConfiguration.AssembliesToScan(includesBuilder); #endregion }
public void ScanningExcludeByName() { BusConfiguration busConfiguration = new BusConfiguration(); #region ScanningExcludeByName IExcludesBuilder excludesBuilder = AllAssemblies .Except("MyAssembly1.dll") .And("MyAssembly2.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
void ScanningMixingIncludeAndExclude(BusConfiguration busConfiguration) { #region ScanningMixingIncludeAndExclude var excludesBuilder = AllAssemblies .Matching("NServiceBus") .And("MyCompany.") .Except("BadAssembly.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
void ScanningUpgrade(BusConfiguration busConfiguration) { #region 5to6ScanningUpgrade IExcludesBuilder excludesBuilder = AllAssemblies.Matching("NServiceBus") .And("MyCompany.") .Except("BadAssembly1.dll") .And("BadAssembly2.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
public void ScanningExcludeByName() { BusConfiguration busConfiguration = new BusConfiguration(); #region ScanningExcludeByName IExcludesBuilder excludesBuilder = AllAssemblies .Except("MyAssembly1.dll") .And("MyAssembly2.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
public BusConfiguration GetConfiguration(RunDescriptor runDescriptor, EndpointConfiguration endpointConfiguration, IConfigurationSource configSource, Action <BusConfiguration> configurationBuilderCustomization) { var settings = runDescriptor.Settings; LogManager.Use <CommonLoggingFactory>(); var config = new BusConfiguration(); Container container = new Container(c => c.AddRegistry <T>()); config.UseContainer <StructureMapBuilder>(c => c.ExistingContainer(container)); config.EndpointName(endpointConfiguration.EndpointName); config.AssembliesToScan(Enumerable.Repeat(typeof(T).Assembly, 1) .Concat(Enumerable.Repeat(this.GetType().Assembly, 1)) .Concat(endpointConfiguration.TypesToInclude.Select(o => o.Assembly)) .Distinct()); config.CustomConfigurationSource(configSource); config.UsePersistence <InMemoryPersistence>(); config.EnableFeature <MsmqSubscriptionPersistence>(); config.PurgeOnStartup(true); config.DiscardFailedMessagesInsteadOfSendingToErrorQueue(); config.UseSerialization <JsonSerializer>(); config.UseTransport <MsmqTransport>(); config.DisableFeature <TimeoutManager>(); //if not disabled there is null reference exception config.EnableInstallers(); config.EnableFeature <AutoSubscribe>(); // Plug-in a behavior that listens for subscription messages config.Pipeline.Register <SubscriptionForIncomingBehavior.Registration>(); config.Pipeline.Register <OutgoingSubscription.Registration>(); config.RegisterComponents(c => c.ConfigureComponent <OutgoingSubscription>(DependencyLifecycle.InstancePerCall)); config.RegisterComponents(c => c.ConfigureComponent <SubscriptionForIncomingBehavior>(DependencyLifecycle.InstancePerCall)); // Important: you need to make sure that the correct ScenarioContext class is available to your endpoints and tests config.RegisterComponents(r => { r.RegisterSingleton(runDescriptor.ScenarioContext.GetType(), runDescriptor.ScenarioContext); r.RegisterSingleton(typeof(ScenarioContext), runDescriptor.ScenarioContext); }); config.Conventions() .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.StartsWith("EzBobApi.Commands")); // Call extra custom action if provided if (configurationBuilderCustomization != null) { configurationBuilderCustomization(config); } return(config); }
public IBus CreateBusWithInMemoryPersistence() { var configuration = new BusConfiguration(); configuration.UseTransport<RabbitMQTransport>(); configuration.UsePersistence<InMemoryPersistence>(); configuration.DisableFeature<TimeoutManager>(); configuration.EndpointName(_endpointName); configuration.AssembliesToScan(_assembliesToScan); configuration.Conventions() .DefiningCommandsAs( c => c.Namespace != null && c.Namespace.EndsWith(_namespace)); var bus = Bus.Create(configuration); return bus; }
public void Install(IWindsorContainer container, IConfigurationStore store) { container.Register(Component.For <ISendOnlyBus>().UsingFactoryMethod((kernel, componentModel) => { var configuration = new BusConfiguration(); configuration.EndpointName("CleanAir.UI"); configuration.EnableInstallers(); configuration.Transactions().DisableDistributedTransactions(); configuration.UseSerialization <NServiceBus.JsonSerializer>(); configuration.UseTransport <RabbitMQTransport>(); configuration.UsePersistence <InMemoryPersistence>(); configuration.AssembliesToScan(AllAssemblies.Except("ClearScript")); return(Bus.CreateSendOnly(configuration)); })); }
static IBus StartInstance1() { #region multi-hosting-assembly-scan BusConfiguration busConfiguration = new BusConfiguration(); busConfiguration.EndpointName("Samples.MultiHosting.Instance1"); busConfiguration.AssembliesToScan(AllAssemblies.Matching("Instance1.").And("Shared")); busConfiguration.UseSerialization <JsonSerializer>(); busConfiguration.EnableInstallers(); busConfiguration.UsePersistence <InMemoryPersistence>(); return(Bus.Create(busConfiguration).Start()); #endregion }
static IBus StartInstance1() { #region multi-hosting-assembly-scan var busConfiguration = new BusConfiguration(); busConfiguration.EndpointName("Samples.MultiHosting.Instance1"); // only include Instance1.dll and dependent assemblies busConfiguration.AssembliesToScan(AllAssemblies.Matching("Instance1.").And("Shared")); busConfiguration.EnableInstallers(); busConfiguration.UsePersistence <InMemoryPersistence>(); return(Bus.Create(busConfiguration).Start()); #endregion }
public void Install(IWindsorContainer container, IConfigurationStore store) { container.Register(Component.For<ISendOnlyBus>().UsingFactoryMethod((kernel, componentModel) => { var configuration = new BusConfiguration(); configuration.EndpointName("CleanAir.UI"); configuration.EnableInstallers(); configuration.Transactions().DisableDistributedTransactions(); configuration.UseSerialization<NServiceBus.JsonSerializer>(); configuration.UseTransport<RabbitMQTransport>(); configuration.UsePersistence<InMemoryPersistence>(); configuration.AssembliesToScan(AllAssemblies.Except("ClearScript")); return Bus.CreateSendOnly(configuration); })); }
static IBus StartInstance1() { #region multi-hosting-assembly-scan BusConfiguration busConfiguration = new BusConfiguration(); busConfiguration.EndpointName("Samples.MultiHosting.Instance1"); //only include Instance1.dll and dependent assemblies busConfiguration.AssembliesToScan(AllAssemblies.Matching("Instance1.").And("Shared")); busConfiguration.UseSerialization<JsonSerializer>(); busConfiguration.EnableInstallers(); busConfiguration.UsePersistence<InMemoryPersistence>(); return Bus.Create(busConfiguration).Start(); #endregion }
public static BusConfiguration CreateAzureBusConfiguration(string azureSBConnection, bool useOutbox, bool disableTx) { if (disableTx && useOutbox) { throw new ArgumentException("Cannot use Outbox when transactions are disabled"); } BusConfiguration busConfiguration = CreateAmbientTxConfiguration(); if (useOutbox) { busConfiguration.EnableOutbox(); Console.WriteLine("Default Configuration overridden: Using Outbox"); } if (disableTx) { // A validation error will occur if NServiceBus detects SQL Transport, even if it not being used. // Explicitly remove NServiceBus SQL Transport from the assembly scanning busConfiguration.Transactions().DisableDistributedTransactions(); IExcludesBuilder excludesBuilder = AllAssemblies .Except("NServiceBus.Transports.SQLServer.dll"); busConfiguration.AssembliesToScan(excludesBuilder); // Using different databases only work when transaction are disabled ConfigureHibernate(busConfiguration, DB_SHARED_CONNECTION); Console.WriteLine("Default Configuration overridden: Using Transport transaction only"); } else { ConfigureHibernate(busConfiguration, DB_BUSINESS_CONNECTION); busConfiguration.Transactions().Enable().EnableDistributedTransactions(); Console.WriteLine("Default Configuration: Using Ambient Transactions"); } busConfiguration.UseTransport <AzureServiceBusTransport>() .ConnectionString(azureSBConnection); Console.WriteLine("Default Configuration overridden: Using Azure Tranport"); return(busConfiguration); }
public static IBus Setup(ILifetimeScope container) { LogManager.Use<DefaultFactory>(); var configuration = new BusConfiguration(); configuration.EndpointName("APIComparer.Website"); configuration.UseContainer<AutofacBuilder>(x => x.ExistingLifetimeScope(container)); configuration.AssembliesToScan(AllAssemblies.Except("Microsoft.Windows.Azure.Storage")); configuration.UseTransport<AzureStorageQueueTransport>() .ConnectionString(AzureEnvironment.GetConnectionString); configuration.UsePersistence<AzureStoragePersistence>(); configuration.DisableFeature<SecondLevelRetries>(); configuration.DisableFeature<Sagas>(); configuration.DisableFeature<TimeoutManager>(); configuration.EnableInstallers(); return Bus.Create(configuration).Start(); }
private IBus ConfigureNServiceBus() { var configuration = new BusConfiguration(); configuration.AssembliesToScan(AllAssemblies.Except("MediaLoanLIbrary.Fines.Common")); configuration.EndpointName("IntegrationTesting"); configuration.DisableFeature <Sagas>(); configuration.DisableFeature <TimeoutManager>(); configuration.DisableFeature <AutoSubscribe>(); configuration.DisableFeature <InMemorySubscriptionPersistence>(); configuration.DisableFeature <StorageDrivenPublishing>(); configuration.UsePersistence <InMemoryPersistence>(); configuration.PurgeOnStartup(true); configuration.Conventions() .DefiningCommandsAs(type => UnobtrusiveMessageConventions.CommandsDefinition(type) || (UnobtrusiveMessageConventions.EventsDefinition(type) && type.Namespace.Contains(".Loans."))) .DefiningEventsAs(type => UnobtrusiveMessageConventions.EventsDefinition(type) && !type.Namespace.Contains(".Loans.")); configuration.EnableInstallers(); return(Bus.Create(configuration).Start()); }
public static IBus Setup(ILifetimeScope container) { LogManager.Use <DefaultFactory>(); var configuration = new BusConfiguration(); configuration.EndpointName("APIComparer.Website"); configuration.UseContainer <AutofacBuilder>(x => x.ExistingLifetimeScope(container)); configuration.AssembliesToScan(AllAssemblies.Except("Microsoft.Windows.Azure.Storage")); configuration.UseTransport <AzureStorageQueueTransport>() .ConnectionString(AzureEnvironment.GetConnectionString); configuration.UsePersistence <AzureStoragePersistence>(); configuration.DisableFeature <SecondLevelRetries>(); configuration.DisableFeature <Sagas>(); configuration.DisableFeature <TimeoutManager>(); configuration.EnableInstallers(); return(Bus.Create(configuration).Start()); }
public void Start() { var assemblies = AllAssemblies.Except("IKVM.OpenJDK.Core.dll"); var config = new BusConfiguration(); config.UsePersistence<InMemoryPersistence>(); config.Conventions().DefiningMessagesAs(x => (x.Namespace != null && x.Namespace.Contains("Contracts"))); config.EndpointName(ConfigurationManager.AppSettings["EndpointName"]); config.EnableDurableMessages(); config.UseSerialization<XmlSerializer>(); config.UseTransport<RabbitMQTransport>().DisableCallbackReceiver(); config.UseContainer<StructureMapBuilder>(c => c.ExistingContainer(StructureMapBuilderConfig.GetStructureMapContainer())); config.DisableFeature<SecondLevelRetries>(); config.DisableFeature<StorageDrivenPublishing>(); config.DisableFeature<TimeoutManager>(); config.AssembliesToScan(assemblies); var buz = Bus.CreateSendOnly(config); var uri = ConfigurationManager.AppSettings["Uri"]; WebApp.Start<Startup>(uri); }
public void Simple() { // Autofac var listOfAssemblies = new List<Assembly>(); var listOfTypes = new List<Type>(); string directoryToProbe = null; #region TypeScanningV4 var configuration = new BusConfiguration(); configuration.AssembliesToScan(listOfAssemblies); // or configuration.TypesToScan(listOfTypes); //or configuration.ScanAssembliesInDirectory(directoryToProbe); #endregion }
public void Customize(BusConfiguration configuration) { // NServiceBus provides the following durable storage options // To use RavenDB, install-package NServiceBus.RavenDB and then use configuration.UsePersistence<RavenDBPersistence>(); // To use SQLServer, install-package NServiceBus.NHibernate and then use configuration.UsePersistence<NHibernatePersistence>(); // If you don't need a durable storage you can also use, configuration.UsePersistence<InMemoryPersistence>(); // more details on persistence can be found here: http://docs.particular.net/nservicebus/persistence-in-nservicebus //Also note that you can mix and match storages to fit you specific needs. //http://docs.particular.net/nservicebus/persistence-order // For this example we are using InMemoryPersistence only. configuration.UsePersistence<InMemoryPersistence>(); // Log using NLog NServiceBus.Logging.LogManager.Use<NLogFactory>(); // Specify the assemblies to be loaded, rather than scanning all assemblies in the application folder. configuration.AssembliesToScan(MessageAssemblies .Union(HandlerAssemblies)); // Use NServiceBus Unobtrusive Mode so that our Messages are just POCOs configuration.Conventions() .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.EndsWith("Commands")) .DefiningEventsAs(t => t.Namespace != null && t.Namespace.EndsWith("Events")) .DefiningMessagesAs(t => t.Namespace != null && t.Namespace == "Messages") .DefiningDataBusPropertiesAs(p => p.Name.EndsWith("DataBus")) .DefiningExpressMessagesAs(t => t.Name.EndsWith("Express")) .DefiningTimeToBeReceivedAs(t => t.Name.EndsWith("Expires") ? TimeSpan.FromSeconds(30) : TimeSpan.MaxValue); // Use the existing Castle Windsor container configuration.UseContainer<WindsorBuilder>(c => c.ExistingContainer(Container.Instance)); // Use JSON serialisation configuration.UseSerialization<JsonSerializer>(); // Use MSMQ for transport configuration.UseTransport<MsmqTransport>(); // Don't purge existing messages on service startup configuration.PurgeOnStartup(false); }
//[Fact] //public void TestMethod1() //{ // //var testMessage = ServiceBus.MakeMessage<TestMessage>(); // //testMessage.Name = "Test"; // //ServiceBus.SendTo(testMessage); //} public static IStartableBus DefaultBusCreator(params Assembly[] assemblies) { #if !CLR4 return Configure.With(new[] { typeof(CompletionMessage).Assembly }.Union(assemblies)) .DefaultBuilder() .XmlSerializer() .FakeTransport() .UnicastBus() .CreateBus(); #elif !CLR45 return Configure.With(assemblies) .DefaultBuilder() .FakeTransport() .UnicastBus() .CreateBus(); #else var configuration = new BusConfiguration(); configuration.AssembliesToScan(assemblies); //configuration.DefaultBuilder(); //configuration.UseTransport<FakeTransport>() return NServiceBusBus.Create(configuration); #endif }
void ScanningUpgrade(BusConfiguration busConfiguration) { #region 5to6ScanningUpgrade IExcludesBuilder excludesBuilder = AllAssemblies.Matching("NServiceBus") .And("MyCompany.") .Except("BadAssembly1.dll") .And("BadAssembly2.dll"); busConfiguration.AssembliesToScan(excludesBuilder); #endregion }
public void ScanningUpgrade() { BusConfiguration busConfiguration = new BusConfiguration(); #region 5to6ScanningUpgrade busConfiguration.AssembliesToScan(AllAssemblies.Matching("NServiceBus").And("MyCompany.").Except("BadAssembly1.dll").And("BadAssembly2.dll")); #endregion }
void PerformConfiguration(Action<BusConfiguration> moreConfiguration = null) { var loggingConfigurers = profileManager.GetLoggingConfigurer(); foreach (var loggingConfigurer in loggingConfigurers) { loggingConfigurer.Configure(specifier); } var configuration = new BusConfiguration(); configuration.EndpointName(endpointNameToUse); configuration.AssembliesToScan(assembliesToScan); if (SafeRoleEnvironment.IsAvailable) { if (!IsHostedIn.ChildHostProcess()) { configuration.AzureConfigurationSource(); } var host = SafeRoleEnvironment.CurrentRoleName; var instance = SafeRoleEnvironment.CurrentRoleInstanceId; var hostId = DeterministicGuid(instance, host); configuration .UniquelyIdentifyRunningInstance() .UsingCustomIdentifier(hostId) .UsingNames(instance, host); } if (moreConfiguration != null) { moreConfiguration(configuration); } specifier.Customize(configuration); RoleManager.TweakConfigurationBuilder(specifier, configuration); bus = (UnicastBus) Bus.Create(configuration); }
public void Customize(BusConfiguration configuration) { configuration.AssembliesToScan(typeof(NHibernatePersistence).Assembly, typeof(PlaceOrderHandler).Assembly, typeof(OrderPlaced).Assembly); configuration.UsePersistence<NHibernatePersistence>(); configuration.UseSerialization<JsonSerializer>(); }
void PerformConfiguration(Action<BusConfiguration> moreConfiguration = null) { var loggingConfigurers = profileManager.GetLoggingConfigurer(); foreach (var loggingConfigurer in loggingConfigurers) { loggingConfigurer.Configure(specifier); } var configuration = new BusConfiguration(); configuration.EndpointName(endpointNameToUse); configuration.EndpointVersion(endpointVersionToUse); configuration.AssembliesToScan(assembliesToScan); configuration.DefineCriticalErrorAction(OnCriticalError); if (moreConfiguration != null) { moreConfiguration(configuration); } specifier.Customize(configuration); RoleManager.TweakConfigurationBuilder(specifier, configuration); profileManager.ActivateProfileHandlers(configuration); bus = (UnicastBus) Bus.Create(configuration); }
public void ScanningListOfAssemblies() { IEnumerable<Assembly> myListOfAssemblies = null; Assembly assembly2 = null; Assembly assembly1 = null; BusConfiguration busConfiguration = new BusConfiguration(); #region ScanningListOfAssemblies busConfiguration.AssembliesToScan(myListOfAssemblies); // or busConfiguration.AssembliesToScan(assembly1, assembly2); #endregion }