mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-31 23:42:09 +01:00
added a shutdown api method, font size fix and other decouplings
This commit is contained in:
@@ -255,7 +255,6 @@ namespace MediaBrowser.ServerApplication
|
||||
|
||||
base.OnExit(e);
|
||||
|
||||
Kernel.Dispose();
|
||||
CompositionRoot.Dispose();
|
||||
}
|
||||
|
||||
@@ -360,7 +359,7 @@ namespace MediaBrowser.ServerApplication
|
||||
{
|
||||
Dispatcher.Invoke(ReleaseMutex);
|
||||
|
||||
Kernel.Dispose();
|
||||
CompositionRoot.Dispose();
|
||||
|
||||
System.Windows.Forms.Application.Restart();
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ using MediaBrowser.Common.Implementations;
|
||||
using MediaBrowser.Common.Implementations.ScheduledTasks;
|
||||
using MediaBrowser.Common.Implementations.Serialization;
|
||||
using MediaBrowser.Common.IO;
|
||||
using MediaBrowser.Common.Implementations.Server;
|
||||
using MediaBrowser.Common.Kernel;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Common.ScheduledTasks;
|
||||
@@ -65,16 +66,6 @@ namespace MediaBrowser.ServerApplication
|
||||
/// </summary>
|
||||
private readonly IServerApplicationPaths _applicationPaths = new ServerApplicationPaths();
|
||||
|
||||
/// <summary>
|
||||
/// The _task manager
|
||||
/// </summary>
|
||||
private readonly ITaskManager _taskManager;
|
||||
|
||||
/// <summary>
|
||||
/// The _task manager
|
||||
/// </summary>
|
||||
private readonly IHttpServer _httpServer;
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this instance is first run.
|
||||
/// </summary>
|
||||
@@ -89,29 +80,34 @@ namespace MediaBrowser.ServerApplication
|
||||
: base()
|
||||
{
|
||||
IsFirstRun = !File.Exists(_applicationPaths.SystemConfigurationFilePath);
|
||||
|
||||
|
||||
Logger = new NLogger("App");
|
||||
|
||||
DiscoverTypes();
|
||||
|
||||
_taskManager = new TaskManager(_applicationPaths, _jsonSerializer, Logger);
|
||||
Kernel = new Kernel(this, _applicationPaths, _xmlSerializer, Logger);
|
||||
|
||||
var networkManager = new NetworkManager();
|
||||
|
||||
var serverManager = new ServerManager(this, Kernel, networkManager, _jsonSerializer, Logger);
|
||||
|
||||
var taskManager = new TaskManager(_applicationPaths, _jsonSerializer, Logger, serverManager);
|
||||
|
||||
Kernel = new Kernel(this, _applicationPaths, _xmlSerializer, _taskManager, Logger);
|
||||
ReloadLogger();
|
||||
|
||||
Logger.Info("Version {0} initializing", ApplicationVersion);
|
||||
|
||||
_httpServer = ServerFactory.CreateServer(this, ProtobufSerializer, Logger, "Media Browser", "index.html");
|
||||
var httpServer = ServerFactory.CreateServer(this, ProtobufSerializer, Logger, "Media Browser", "index.html");
|
||||
|
||||
RegisterResources();
|
||||
RegisterResources(taskManager, httpServer, networkManager, serverManager);
|
||||
|
||||
FindParts();
|
||||
FindParts(taskManager, httpServer);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers resources that classes will depend on
|
||||
/// </summary>
|
||||
private void RegisterResources()
|
||||
private void RegisterResources(ITaskManager taskManager, IHttpServer httpServer, INetworkManager networkManager, IServerManager serverManager)
|
||||
{
|
||||
RegisterSingleInstance<IKernel>(Kernel);
|
||||
RegisterSingleInstance(Kernel);
|
||||
@@ -121,28 +117,31 @@ namespace MediaBrowser.ServerApplication
|
||||
|
||||
RegisterSingleInstance(_applicationPaths);
|
||||
RegisterSingleInstance<IApplicationPaths>(_applicationPaths);
|
||||
RegisterSingleInstance(_taskManager);
|
||||
RegisterSingleInstance(taskManager);
|
||||
RegisterSingleInstance<IIsoManager>(new PismoIsoManager(Logger));
|
||||
RegisterSingleInstance<IBlurayExaminer>(new BdInfoExaminer());
|
||||
RegisterSingleInstance<IHttpClient>(new HttpManager(_applicationPaths, Logger));
|
||||
RegisterSingleInstance<INetworkManager>(new NetworkManager());
|
||||
RegisterSingleInstance<IZipClient>(new DotNetZipClient());
|
||||
RegisterSingleInstance<IWebSocketServer>(() => new AlchemyServer(Logger));
|
||||
RegisterSingleInstance(_jsonSerializer);
|
||||
RegisterSingleInstance(_xmlSerializer);
|
||||
RegisterSingleInstance(ProtobufSerializer);
|
||||
RegisterSingleInstance<IUdpServer>(new UdpServer());
|
||||
RegisterSingleInstance(_httpServer);
|
||||
RegisterSingleInstance<IUdpServer>(new UdpServer(Logger), false);
|
||||
RegisterSingleInstance(httpServer, false);
|
||||
|
||||
RegisterSingleInstance(networkManager);
|
||||
|
||||
RegisterSingleInstance(serverManager);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Finds the parts.
|
||||
/// </summary>
|
||||
private void FindParts()
|
||||
private void FindParts(ITaskManager taskManager, IHttpServer httpServer)
|
||||
{
|
||||
_taskManager.AddTasks(GetExports<IScheduledTask>(false));
|
||||
taskManager.AddTasks(GetExports<IScheduledTask>(false));
|
||||
|
||||
_httpServer.Init(GetExports<IRestfulService>(false));
|
||||
httpServer.Init(GetExports<IRestfulService>(false));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -240,5 +239,13 @@ namespace MediaBrowser.ServerApplication
|
||||
// Include composable parts in the running assembly
|
||||
yield return GetType().Assembly;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shuts down.
|
||||
/// </summary>
|
||||
public void Shutdown()
|
||||
{
|
||||
App.Instance.Shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user