public void Initialize()
 {
     if (sfs.Count != 0)
     {
         return;
     }
     log.Debug("Initialize new session factories reading the configuration.");
     foreach (Configuration cfg in mfc.Configure())
     {
         var    sf = (ISessionFactoryImplementor)cfg.BuildSessionFactory();
         string sessionFactoryName = sf.Settings.SessionFactoryName;
         if (!string.IsNullOrEmpty(sessionFactoryName))
         {
             sessionFactoryName = sessionFactoryName.Trim();
         }
         else
         {
             throw new ArgumentException("The session-factory-id was not register; you must assign the name of the factory, example: <session-factory name='HereTheFactoryName'>");
         }
         if (string.IsNullOrEmpty(defaultSessionFactoryName))
         {
             defaultSessionFactoryName = sessionFactoryName;
         }
         sfs.Add(sessionFactoryName, sf);
     }
     mfc = null;             // after built the SessionFactories the configuration is not needed
 }
Exemplo n.º 2
0
        /// <summary>
        /// Configures the NHibernate session.
        /// </summary>
        /// <param name="configurationProvider">The configuration provider.</param>
        /// <param name="container">The container.</param>
        protected override void ConfigureNHibernateSession(IConfigurationProvider configurationProvider, IContainer container)
        {
            NHibernate.Cfg.Configuration configuration = configurationProvider.Configure().GetEnumerator().Current;
            ISessionFactory sessionFactory             = configuration.BuildSessionFactory();

            container.Configure(x => x.For <ISessionFactory> ().Singleton().Use(sessionFactory));
            container.Configure(
                x => x.For <ISession> ().LifecycleIs(new NServiceBusThreadLocalStorageLifestyle()).Use(sessionFactory.OpenSession));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Configures the NHibernate session.
        /// </summary>
        /// <param name="configurationProvider">The configuration provider.</param>
        /// <param name="container">The container.</param>
        protected override void ConfigureNHibernateSession( IConfigurationProvider configurationProvider, IContainer container )
        {
            NHibernate.Cfg.Configuration configuration = configurationProvider.Configure ().GetEnumerator ().Current;
            ISessionFactory sessionFactory = configuration.BuildSessionFactory ();

            container.Configure ( x => x.For<ISessionFactory> ().Singleton ().Use ( sessionFactory ) );
            container.Configure (
                x => x.For<ISession> ().LifecycleIs ( new NServiceBusThreadLocalStorageLifestyle () ).Use ( sessionFactory.OpenSession ) );
        }
Exemplo n.º 4
0
        /// <summary>
        /// Configures the NHibernate session.
        /// </summary>
        /// <param name="configurationProvider">The configuration provider.</param>
        /// <param name="container">The container.</param>
        protected override void ConfigureNHibernateSession(IConfigurationProvider configurationProvider, IContainer container)
        {
            var configuration = configurationProvider.Configure().GetEnumerator().Current;
            configuration.SetProperty(Environment.CurrentSessionContextClass, typeof(WebSessionContext).AssemblyQualifiedName);
            var sessionFactoryProvider = new SessionFactoryProvider(configurationProvider);
            sessionFactoryProvider.Initialize();

            container.Configure(x => x.For<ISessionFactoryProvider>().Singleton().Use(sessionFactoryProvider));
        }
Exemplo n.º 5
0
        /// <summary>
        /// Configures the NHibernate session.
        /// </summary>
        /// <param name="configurationProvider">The configuration provider.</param>
        /// <param name="container">The container.</param>
        protected override void ConfigureNHibernateSession(IConfigurationProvider configurationProvider, IContainer container)
        {
            var configuration = configurationProvider.Configure().GetEnumerator().Current;

            configuration.SetProperty(Environment.CurrentSessionContextClass, typeof(WebSessionContext).AssemblyQualifiedName);
            var sessionFactoryProvider = new SessionFactoryProvider(configurationProvider);

            sessionFactoryProvider.Initialize();

            container.Configure(x => x.For <ISessionFactoryProvider>().Singleton().Use(sessionFactoryProvider));
        }
Exemplo n.º 6
0
        /// <summary>
        ///     Configures the NHibernate session.
        /// </summary>
        /// <param name="configurationProvider">The configuration provider.</param>
        /// <param name="container">The container.</param>
        private static void ConfigureNHibernateSession(IConfigurationProvider configurationProvider,
                                                       IContainer container)
        {
            var configuration = configurationProvider.Configure();

            configuration.SetProperty(Environment.CurrentSessionContextClass,
                                      typeof(WebSessionContext).AssemblyQualifiedName);
            configuration.SetInterceptor(new AuditableInterceptor());

            var sessionFactory = configuration.BuildSessionFactory();

            container.Configure(x => x.For <ISessionFactory> ().HybridHttpOrThreadLocalScoped().Use(sessionFactory));
        }
        public void Initialize()
        {
            if (sf == null)
            {
                log.Debug("Initialize a new session factory reading the configuration.");
                IEnumerator <Configuration> conf = fcp.Configure().GetEnumerator();
                if (conf.MoveNext())
                {
                    sf  = conf.Current.BuildSessionFactory();
                    esf = new SingletonEnumerable <ISessionFactory>(sf);
                }
                fcp = null;                 // after built the SessionFactory the configuration is not needed
                if (conf.MoveNext())
                {
                    log.Warn(
                        @"More than one configurations are available but only the first was used.
Check your configuration or use a Multi-RDBS session-factory provider.");
                }
            }
        }