public RavenDBOptions(InMemoryRavenConfiguration configuration, DocumentDatabase db = null) { if (configuration == null) { throw new ArgumentNullException("configuration"); } try { HttpEndpointRegistration.RegisterHttpEndpointTarget(); if (db == null) { systemDatabase = new DocumentDatabase(configuration); systemDatabase.SpinBackgroundWorkers(); } else { systemDatabase = db; } fileSystemLandlord = new FileSystemsLandlord(systemDatabase); databasesLandlord = new DatabasesLandlord(systemDatabase); countersLandlord = new CountersLandlord(systemDatabase); requestManager = new RequestManager(databasesLandlord); mixedModeRequestAuthorizer = new MixedModeRequestAuthorizer(); mixedModeRequestAuthorizer.Initialize(systemDatabase, new RavenServer(databasesLandlord.SystemDatabase, configuration)); } catch { if (systemDatabase != null) { systemDatabase.Dispose(); } throw; } }
public HttpServer(InMemoryRavenConfiguration configuration, DocumentDatabase resourceStore) { HttpEndpointRegistration.RegisterHttpEndpointTarget(); SystemDatabase = resourceStore; SystemConfiguration = configuration; int val; if (int.TryParse(configuration.Settings["Raven/Tenants/MaxIdleTimeForTenantDatabase"], out val) == false) { val = 900; } maxTimeDatabaseCanBeIdle = TimeSpan.FromSeconds(val); if (int.TryParse(configuration.Settings["Raven/Tenants/FrequnecyToCheckForIdleDatabases"], out val) == false) { val = 60; } frequnecyToCheckForIdleDatabases = TimeSpan.FromSeconds(val); configuration.Container.SatisfyImportsOnce(this); InitializeRequestResponders(SystemDatabase); requestAuthorizer = new MixedModeRequestAuthorizer(); requestAuthorizer.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value, () => currentTenantId.Value, this); }
public RavenDBOptions(InMemoryRavenConfiguration configuration, DocumentDatabase db = null) { if (configuration == null) { throw new ArgumentNullException("configuration"); } try { ThreadPool.SetMinThreads(configuration.MinThreadPoolWorkerThreads, configuration.MinThreadPoolCompletionThreads); HttpEndpointRegistration.RegisterHttpEndpointTarget(); HttpEndpointRegistration.RegisterAdminLogsTarget(); if (db == null) { configuration.UpdateDataDirForLegacySystemDb(); systemDatabase = new DocumentDatabase(configuration, null); systemDatabase.SpinBackgroundWorkers(false); } else { systemDatabase = db; } WebSocketBufferPool.Initialize(configuration.WebSockets.InitialBufferPoolSize); fileSystemLandlord = new FileSystemsLandlord(systemDatabase); databasesLandlord = new DatabasesLandlord(systemDatabase); countersLandlord = new CountersLandlord(systemDatabase); timeSeriesLandlord = new TimeSeriesLandlord(systemDatabase); requestManager = new RequestManager(databasesLandlord); systemDatabase.RequestManager = requestManager; ClusterManager = new Reference <ClusterManager>(); systemDatabase.ClusterManager = ClusterManager; mixedModeRequestAuthorizer = new MixedModeRequestAuthorizer(); mixedModeRequestAuthorizer.Initialize(systemDatabase, new RavenServer(databasesLandlord.SystemDatabase, configuration)); serverStartupTasks = configuration.Container.GetExportedValues <IServerStartupTask>(); foreach (var task in serverStartupTasks) { toDispose.Add(task); try { task.Execute(this); } catch (Exception e) { systemDatabase.LogErrorAndAddAlertOnStartupTaskException(task.GetType().FullName, e); } } } catch (Exception) { if (systemDatabase != null) { systemDatabase.Dispose(); } throw; } }
public HttpServer(InMemoryRavenConfiguration configuration, DocumentDatabase resourceStore) { HttpEndpointRegistration.RegisterHttpEndpointTarget(); DefaultResourceStore = resourceStore; DefaultConfiguration = configuration; int val; if (int.TryParse(configuration.Settings["Raven/Tenants/MaxIdleTimeForTenantDatabase"], out val) == false) { val = 900; } maxTimeDatabaseCanBeIdle = TimeSpan.FromSeconds(val); if (int.TryParse(configuration.Settings["Raven/Tenants/FrequnecyToCheckForIdleDatabases"], out val) == false) { val = 60; } frequnecyToCheckForIdleDatabases = TimeSpan.FromSeconds(val); configuration.Container.SatisfyImportsOnce(this); foreach (var responder in RequestResponders) { responder.Value.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value, () => currentTenantId.Value, this); } switch (configuration.AuthenticationMode.ToLowerInvariant()) { case "windows": requestAuthorizer = new WindowsRequestAuthorizer(); break; case "oauth": requestAuthorizer = new OAuthRequestAuthorizer(); break; case "noauth": requestAuthorizer = new NoAuthRequestAuthorizer(); break; default: throw new InvalidOperationException( string.Format("Unknown AuthenticationMode {0}. Options are Windows, OAuth, and NoAuth", configuration.AuthenticationMode)); } requestAuthorizer.Initialize(() => currentDatabase.Value, () => currentConfiguration.Value, () => currentTenantId.Value, this); RemoveTenantDatabase.Occured.Subscribe(TenantDatabaseRemoved); }
public RavenDBOptions(RavenConfiguration configuration, DocumentDatabase db = null) { if (configuration == null) { throw new ArgumentNullException("configuration"); } try { HttpEndpointRegistration.RegisterHttpEndpointTarget(); HttpEndpointRegistration.RegisterAdminLogsTarget(); if (db == null) { systemDatabase = new DocumentDatabase(configuration, null); systemDatabase.SpinBackgroundWorkers(false); } else { systemDatabase = db; } WebSocketBufferPool.Initialize((int)configuration.WebSockets.InitialBufferPoolSize.GetValue(SizeUnit.Bytes)); fileSystemLandlord = new FileSystemsLandlord(systemDatabase); databasesLandlord = new DatabasesLandlord(systemDatabase); countersLandlord = new CountersLandlord(systemDatabase); timeSeriesLandlord = new TimeSeriesLandlord(systemDatabase); requestManager = new RequestManager(databasesLandlord); systemDatabase.RequestManager = requestManager; ClusterManager = new Reference <ClusterManager>(); mixedModeRequestAuthorizer = new MixedModeRequestAuthorizer(); mixedModeRequestAuthorizer.Initialize(systemDatabase, new RavenServer(databasesLandlord.SystemDatabase, configuration)); serverStartupTasks = configuration.Container.GetExportedValues <IServerStartupTask>(); foreach (var task in serverStartupTasks) { toDispose.Add(task); task.Execute(this); } } catch (Exception) { if (systemDatabase != null) { systemDatabase.Dispose(); } throw; } }