|
@@ -613,7 +613,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
DiscoverTypes();
|
|
DiscoverTypes();
|
|
|
|
|
|
- await RegisterResources(serviceCollection, startupConfig).ConfigureAwait(false);
|
|
|
|
|
|
+ await RegisterServices(serviceCollection, startupConfig).ConfigureAwait(false);
|
|
|
|
|
|
ContentRoot = ServerConfigurationManager.Configuration.DashboardSourcePath;
|
|
ContentRoot = ServerConfigurationManager.Configuration.DashboardSourcePath;
|
|
if (string.IsNullOrEmpty(ContentRoot))
|
|
if (string.IsNullOrEmpty(ContentRoot))
|
|
@@ -650,9 +650,9 @@ namespace Emby.Server.Implementations
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
- /// Registers resources that classes will depend on
|
|
|
|
|
|
+ /// Registers services/resources with the service collection that will be available via DI.
|
|
/// </summary>
|
|
/// </summary>
|
|
- protected async Task RegisterResources(IServiceCollection serviceCollection, IConfiguration startupConfig)
|
|
|
|
|
|
+ protected async Task RegisterServices(IServiceCollection serviceCollection, IConfiguration startupConfig)
|
|
{
|
|
{
|
|
serviceCollection.AddMemoryCache();
|
|
serviceCollection.AddMemoryCache();
|
|
|
|
|
|
@@ -770,20 +770,8 @@ namespace Emby.Server.Implementations
|
|
CertificateInfo = GetCertificateInfo(true);
|
|
CertificateInfo = GetCertificateInfo(true);
|
|
Certificate = GetCertificate(CertificateInfo);
|
|
Certificate = GetCertificate(CertificateInfo);
|
|
|
|
|
|
- HttpServer = new HttpListenerHost(
|
|
|
|
- this,
|
|
|
|
- LoggerFactory.CreateLogger<HttpListenerHost>(),
|
|
|
|
- ServerConfigurationManager,
|
|
|
|
- startupConfig,
|
|
|
|
- NetworkManager,
|
|
|
|
- JsonSerializer,
|
|
|
|
- XmlSerializer,
|
|
|
|
- CreateHttpListener())
|
|
|
|
- {
|
|
|
|
- GlobalResponse = LocalizationManager.GetLocalizedString("StartupEmbyServerIsLoading")
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- serviceCollection.AddSingleton(HttpServer);
|
|
|
|
|
|
+ serviceCollection.AddSingleton<IHttpListener, WebSocketSharpListener>();
|
|
|
|
+ serviceCollection.AddSingleton<IHttpServer, HttpListenerHost>();
|
|
|
|
|
|
ImageProcessor = new ImageProcessor(LoggerFactory.CreateLogger<ImageProcessor>(), ServerConfigurationManager.ApplicationPaths, FileSystemManager, ImageEncoder, () => LibraryManager, () => MediaEncoder);
|
|
ImageProcessor = new ImageProcessor(LoggerFactory.CreateLogger<ImageProcessor>(), ServerConfigurationManager.ApplicationPaths, FileSystemManager, ImageEncoder, () => LibraryManager, () => MediaEncoder);
|
|
serviceCollection.AddSingleton(ImageProcessor);
|
|
serviceCollection.AddSingleton(ImageProcessor);
|
|
@@ -891,6 +879,14 @@ namespace Emby.Server.Implementations
|
|
((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
|
|
((LibraryManager)LibraryManager).ItemRepository = ItemRepository;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// Create services registered with the service container that need to be initialized at application startup.
|
|
|
|
+ /// </summary>
|
|
|
|
+ public void InitializeServices()
|
|
|
|
+ {
|
|
|
|
+ HttpServer = Resolve<IHttpServer>();
|
|
|
|
+ }
|
|
|
|
+
|
|
public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths)
|
|
public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths)
|
|
{
|
|
{
|
|
// Distinct these to prevent users from reporting problems that aren't actually problems
|
|
// Distinct these to prevent users from reporting problems that aren't actually problems
|
|
@@ -1196,8 +1192,6 @@ namespace Emby.Server.Implementations
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
- protected IHttpListener CreateHttpListener() => new WebSocketSharpListener(LoggerFactory.CreateLogger<WebSocketSharpListener>());
|
|
|
|
-
|
|
|
|
private CertificateInfo GetCertificateInfo(bool generateCertificate)
|
|
private CertificateInfo GetCertificateInfo(bool generateCertificate)
|
|
{
|
|
{
|
|
// Custom cert
|
|
// Custom cert
|