/// <summary> /// Called when the feature should perform its initialization. This call will only happen if the feature is enabled. /// </summary> protected override void Setup(FeatureConfigurationContext context) { var builder = new NHibernateConfigurationBuilder(context.Settings, "Timeout", "NHibernate.Timeouts.Configuration", "StorageConfiguration"); builder.AddMappings<TimeoutEntityMap>(); var config = builder.Build(); if (RunInstaller(context)) { context.Settings.Get<Installer.SchemaUpdater>().Execute = identity => { new OptimizedSchemaUpdate(config.Configuration).Execute(false, true); return Task.FromResult(0); }; } var timeoutsCleanupExecutionInterval = context.Settings.GetOrDefault<TimeSpan?>("NHibernate.Timeouts.CleanupExecutionInterval") ?? TimeSpan.FromMinutes(2); context.Container.ConfigureComponent(b => { var sessionFactory = config.Configuration.BuildSessionFactory(); return new TimeoutPersister( context.Settings.EndpointName().ToString(), sessionFactory, new NHibernateSynchronizedStorageAdapter(sessionFactory), new NHibernateSynchronizedStorage(sessionFactory), timeoutsCleanupExecutionInterval); }, DependencyLifecycle.SingleInstance); context.RegisterStartupTask(new DetectIncorrectIndexesStartupTask(config.Configuration)); }
/// <summary> /// Called when the feature should perform its initialization. This call will only happen if the feature is enabled. /// </summary> protected override void Setup(FeatureConfigurationContext context) { var builder = new NHibernateConfigurationBuilder(context.Settings, "Timeout", "NHibernate.Timeouts.Configuration", "StorageConfiguration"); builder.AddMappings <TimeoutEntityMap>(); var config = builder.Build(); if (RunInstaller(context)) { context.Settings.Get <Installer.SchemaUpdater>().Execute = identity => { new OptimizedSchemaUpdate(config.Configuration).Execute(false, true); return(Task.FromResult(0)); }; } context.Container.ConfigureComponent(b => { var sessionFactory = config.Configuration.BuildSessionFactory(); return(new TimeoutPersister( context.Settings.EndpointName().ToString(), sessionFactory, new NHibernateSynchronizedStorageAdapter(sessionFactory), new NHibernateSynchronizedStorage(sessionFactory))); }, DependencyLifecycle.SingleInstance); }
/// <summary> /// Called when the feature should perform its initialization. This call will only happen if the feature is enabled. /// </summary> protected override void Setup(FeatureConfigurationContext context) { var builder = new NHibernateConfigurationBuilder(context.Settings, "Saga", "StorageConfiguration"); var config = builder.Build(); var sharedMappings = context.Settings.Get <SharedMappings>(); var outboxEnabled = context.Settings.IsFeatureActive(typeof(Outbox)); if (outboxEnabled) { sharedMappings.AddMapping(configuration => ApplyMappings(configuration, context)); config.Configuration.Properties[Environment.TransactionStrategy] = typeof(AdoNetTransactionFactory).FullName; } sharedMappings.ApplyTo(config.Configuration); var sessionFactory = config.Configuration.BuildSessionFactory(); context.Container.ConfigureComponent(b => new NHibernateSynchronizedStorage(sessionFactory), DependencyLifecycle.SingleInstance); context.Container.ConfigureComponent(b => new NHibernateSynchronizedStorageAdapter(sessionFactory), DependencyLifecycle.SingleInstance); //Legacy context.Container.ConfigureComponent(b => new NHibernateStorageContext(), DependencyLifecycle.InstancePerUnitOfWork); if (outboxEnabled) { var factory = context.Settings.Get <IOutboxPersisterFactory>(); var persister = factory.Create(sessionFactory, context.Settings.EndpointName()); context.Container.ConfigureComponent(b => persister, DependencyLifecycle.SingleInstance); context.RegisterStartupTask(b => new OutboxCleaner(persister, b.Build <CriticalError>())); } var runInstaller = context.Settings.Get <bool>("NHibernate.Common.AutoUpdateSchema"); if (runInstaller) { context.Settings.Get <Installer.SchemaUpdater>().Execute = identity => { var schemaUpdate = new OptimizedSchemaUpdate(config.Configuration); var sb = new StringBuilder(); schemaUpdate.Execute(s => sb.AppendLine(s), true); if (schemaUpdate.Exceptions.Any()) { var aggregate = new AggregateException(schemaUpdate.Exceptions); var errorMessage = @"Schema update failed. The following exception(s) were thrown: {0} TSql Script: {1}"; throw new Exception(string.Format(errorMessage, aggregate.Flatten(), sb)); } return(Task.FromResult(0)); }; } }
public void Should_pass_validation_if_connection_string_is_defined_by_name() { Assert.IsTrue(NHibernateConfigurationBuilder.ContainsRequiredProperties(new Dictionary <string, string> { { "connection.connection_string_name", "aString" } })); }
/// <summary> /// Called when the feature should perform its initialization. This call will only happen if the feature is enabled. /// </summary> protected override void Setup(FeatureConfigurationContext context) { var builder = new NHibernateConfigurationBuilder(context.Settings, "Subscription", "NHibernate.Subscriptions.Configuration", "StorageConfiguration"); builder.AddMappings <SubscriptionMap>(); var config = builder.Build(); if (RunInstaller(context)) { context.Settings.Get <Installer.SchemaUpdater>().Execute = identity => { new OptimizedSchemaUpdate(config.Configuration).Execute(false, true); return(Task.FromResult(0)); }; } var sessionFactory = config.Configuration.BuildSessionFactory(); var persister = context.Settings.HasSetting(CacheExpirationSettingsKey) ? new CachedSubscriptionPersister(sessionFactory, context.Settings.Get <TimeSpan>(CacheExpirationSettingsKey)) : new SubscriptionPersister(sessionFactory); context.Container.ConfigureComponent(b => persister, DependencyLifecycle.SingleInstance); context.RegisterStartupTask(new SubscriptionPersisterInitTask(persister)); }
public TestFixtureBase(Action <NHibernateConfigurationBuilder>?options = null) { var cfgBuilder = new NHibernateConfigurationBuilder(new UnitTestPersistenceStrategy()); options?.Invoke(cfgBuilder); var cfg = cfgBuilder.Build(); this.sessionFactory = cfg.BuildSessionFactory(); }
public IDictionary <string, string> Execute() { NHibernateSettingRetriever.ConnectionStrings = () => new ConnectionStringSettingsCollection { new ConnectionStringSettings("NServiceBus/Persistence", "specified") }; var builder = new NHibernateConfigurationBuilder(new SettingsHolder(), "NotUsed", "NotUsed"); return(builder.Build().Configuration.Properties); }
/// <summary> /// Called when the feature should perform its initialization. This call will only happen if the feature is enabled. /// </summary> protected override void Setup(FeatureConfigurationContext context) { var builder = new NHibernateConfigurationBuilder(context.Settings, "Deduplication", "NHibernate.GatewayDeduplication.Configuration", "StorageConfiguration"); builder.AddMappings <DeduplicationMessageMap>(); var config = builder.Build(); if (RunInstaller(context)) { context.Settings.Get <Installer.SchemaUpdater>().Execute = identity => { new SchemaUpdate(config.Configuration).Execute(false, true); return(Task.FromResult(0)); }; } context.Container.ConfigureComponent(b => new GatewayDeduplication(config.Configuration.BuildSessionFactory()), DependencyLifecycle.SingleInstance); }
public void Should_assign_default_properties() { NHibernateSettingRetriever.AppSettings = () => new NameValueCollection(); NHibernateSettingRetriever.ConnectionStrings = () => new ConnectionStringSettingsCollection { new ConnectionStringSettings("NServiceBus/Persistence", connectionString) }; var builder = new NHibernateConfigurationBuilder(new SettingsHolder(), "NotUsed", "NotUsed"); var expected = new Dictionary <string, string> { { "dialect", NHibernateConfigurationBuilder.DefaultDialect }, { "connection.connection_string", connectionString } }; CollectionAssert.IsSubsetOf(expected, builder.Build().Configuration.Properties); }
public void Should_assign_overridden_connectionString_if_specified() { NHibernateSettingRetriever.AppSettings = () => new NameValueCollection(); NHibernateSettingRetriever.ConnectionStrings = () => new ConnectionStringSettingsCollection { new ConnectionStringSettings("NServiceBus/Persistence", connectionString), new ConnectionStringSettings("NServiceBus/Persistence/NHibernate/Timeout", "timeout_connection_string") }; var builder = new NHibernateConfigurationBuilder(new SettingsHolder(), "Timeout", "NotUsed"); var expected = new Dictionary <string, string> { { "connection.connection_string", "timeout_connection_string" } }; CollectionAssert.IsSubsetOf(expected, builder.Build().Configuration.Properties); }
public void Should_skip_settings_that_are_not_for_persistence() { NHibernateSettingRetriever.AppSettings = () => new NameValueCollection { { "myOtherSetting1", "provider" }, { "myOtherSetting2", "driver_class" }, }; NHibernateSettingRetriever.ConnectionStrings = () => new ConnectionStringSettingsCollection { new ConnectionStringSettings("NServiceBus/Persistence", connectionString) }; var builder = new NHibernateConfigurationBuilder(new SettingsHolder(), "NotUsed", "NotUsed"); var expected = new Dictionary <string, string> { { "connection.connection_string", connectionString }, }; CollectionAssert.IsSubsetOf(expected, builder.Build().Configuration.Properties); }
public void Should_assign_all_optional_properties() { NHibernateSettingRetriever.AppSettings = () => new NameValueCollection { { "NServiceBus/Persistence/NHibernate/connection.provider", "provider" }, { "NServiceBus/Persistence/NHibernate/connection.driver_class", "driver_class" }, }; NHibernateSettingRetriever.ConnectionStrings = () => new ConnectionStringSettingsCollection { new ConnectionStringSettings("NServiceBus/Persistence", connectionString) }; var builder = new NHibernateConfigurationBuilder(new SettingsHolder(), "NotUsed", "NotUsed"); var expected = new Dictionary <string, string> { { "connection.connection_string", connectionString }, { "connection.provider", "provider" }, { "connection.driver_class", "driver_class" }, }; CollectionAssert.IsSubsetOf(expected, builder.Build().Configuration.Properties); }
public IDictionary <string, string> Execute() { var builder = new NHibernateConfigurationBuilder(new SettingsHolder(), "NotUsed", "NotUsed"); return(builder.Build().Configuration.Properties); }
public void Should_fail_validation_if_no_connection_string_is_defined() { Assert.IsFalse(NHibernateConfigurationBuilder.ContainsRequiredProperties(new Dictionary <string, string>())); }
// Builds NHibernateConfiguration for the given assembly (bounded context) protected virtual Configuration BuildNHibernateConfiguration(Assembly assembly) { var configurationBuilder = new NHibernateConfigurationBuilder("db", assembly); return(configurationBuilder.Build()); }
private void InitNHibernateSessionFactory() { var configuration = new NHibernateConfigurationBuilder().Build(); SessionFactory = configuration.BuildSessionFactory(); }