more dependancy injection

This commit is contained in:
LukePulverenti
2013-02-21 16:39:53 -05:00
parent 8f41685a96
commit 931c0ea455
16 changed files with 193 additions and 117 deletions

View File

@@ -412,18 +412,18 @@ namespace MediaBrowser.Common.Kernel
Logger.Info("Version {0} initializing", ApplicationVersion);
DisposeHttpManager();
HttpManager = new HttpManager(this);
HttpManager = new HttpManager(this, Logger);
await OnConfigurationLoaded().ConfigureAwait(false);
DisposeTaskManager();
TaskManager = new TaskManager(this);
TaskManager = new TaskManager(this, Logger);
Logger.Info("Loading Plugins");
await ReloadComposableParts().ConfigureAwait(false);
DisposeTcpManager();
TcpManager = new TcpManager(this);
TcpManager = new TcpManager(this, Logger);
}
/// <summary>

View File

@@ -1,6 +1,4 @@
using MediaBrowser.Common.Logging;
using MediaBrowser.Model.Logging;
using System;
using System;
namespace MediaBrowser.Common.Kernel
{
@@ -9,14 +7,8 @@ namespace MediaBrowser.Common.Kernel
/// </summary>
/// <typeparam name="TKernelType">The type of the T kernel type.</typeparam>
public abstract class BaseManager<TKernelType> : IDisposable
where TKernelType : IKernel
where TKernelType : class, IKernel
{
/// <summary>
/// Gets the logger.
/// </summary>
/// <value>The logger.</value>
protected ILogger Logger { get; private set; }
/// <summary>
/// The _kernel
/// </summary>
@@ -33,12 +25,8 @@ namespace MediaBrowser.Common.Kernel
{
throw new ArgumentNullException("kernel");
}
Kernel = kernel;
Logger = LogManager.GetLogger(GetType().Name);
Logger.Info("Initializing");
}
/// <summary>
@@ -46,8 +34,6 @@ namespace MediaBrowser.Common.Kernel
/// </summary>
public void Dispose()
{
Logger.Info("Disposing");
Dispose(true);
GC.SuppressFinalize(this);
}

View File

@@ -3,6 +3,7 @@ using Alchemy.Classes;
using MediaBrowser.Common.Net;
using MediaBrowser.Common.Serialization;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -59,6 +60,11 @@ namespace MediaBrowser.Common.Kernel
/// <value>The external web socket server.</value>
private WebSocketServer ExternalWebSocketServer { get; set; }
/// <summary>
/// The _logger
/// </summary>
private readonly ILogger _logger;
/// <summary>
/// The _supports native web socket
/// </summary>
@@ -103,9 +109,12 @@ namespace MediaBrowser.Common.Kernel
/// Initializes a new instance of the <see cref="TcpManager" /> class.
/// </summary>
/// <param name="kernel">The kernel.</param>
public TcpManager(IKernel kernel)
/// <param name="logger">The logger.</param>
public TcpManager(IKernel kernel, ILogger logger)
: base(kernel)
{
_logger = logger;
if (kernel.IsFirstRun)
{
RegisterServerWithAdministratorAccess();
@@ -141,7 +150,7 @@ namespace MediaBrowser.Common.Kernel
ExternalWebSocketServer.Start();
Logger.Info("Alchemy Web Socket Server started");
_logger.Info("Alchemy Web Socket Server started");
}
/// <summary>
@@ -150,7 +159,7 @@ namespace MediaBrowser.Common.Kernel
/// <param name="context">The context.</param>
private void OnAlchemyWebSocketClientConnected(UserContext context)
{
var connection = new WebSocketConnection(new AlchemyWebSocket(context, Logger), context.ClientAddress, ProcessWebSocketMessageReceived, Logger);
var connection = new WebSocketConnection(new AlchemyWebSocket(context, _logger), context.ClientAddress, ProcessWebSocketMessageReceived, _logger);
_webSocketConnections.Add(connection);
}
@@ -169,15 +178,15 @@ namespace MediaBrowser.Common.Kernel
DisposeHttpServer();
Logger.Info("Loading Http Server");
_logger.Info("Loading Http Server");
try
{
HttpServer = new HttpServer(Kernel.HttpServerUrlPrefix, "Media Browser", Kernel, Logger);
HttpServer = new HttpServer(Kernel.HttpServerUrlPrefix, "Media Browser", Kernel, _logger);
}
catch (HttpListenerException ex)
{
Logger.ErrorException("Error starting Http Server", ex);
_logger.ErrorException("Error starting Http Server", ex);
if (registerServerOnFailure)
{
@@ -202,7 +211,7 @@ namespace MediaBrowser.Common.Kernel
/// <param name="e">The <see cref="WebSocketConnectEventArgs" /> instance containing the event data.</param>
void HttpServer_WebSocketConnected(object sender, WebSocketConnectEventArgs e)
{
var connection = new WebSocketConnection(e.WebSocket, e.Endpoint, ProcessWebSocketMessageReceived, Logger);
var connection = new WebSocketConnection(e.WebSocket, e.Endpoint, ProcessWebSocketMessageReceived, _logger);
_webSocketConnections.Add(connection);
}
@@ -221,7 +230,7 @@ namespace MediaBrowser.Common.Kernel
}
catch (Exception ex)
{
Logger.ErrorException("{0} failed processing WebSocket message {1}", ex, i.GetType().Name, result.MessageType);
_logger.ErrorException("{0} failed processing WebSocket message {1}", ex, i.GetType().Name, result.MessageType);
}
}));
@@ -254,7 +263,7 @@ namespace MediaBrowser.Common.Kernel
}
catch (SocketException ex)
{
Logger.ErrorException("Failed to start UDP Server", ex);
_logger.ErrorException("Failed to start UDP Server", ex);
return;
}
@@ -265,7 +274,7 @@ namespace MediaBrowser.Common.Kernel
if (expectedMessageBytes.SequenceEqual(res.Buffer))
{
Logger.Info("Received UDP server request from " + res.RemoteEndPoint.ToString());
_logger.Info("Received UDP server request from " + res.RemoteEndPoint.ToString());
// Send a response back with our ip address and port
var response = String.Format("MediaBrowser{0}|{1}:{2}", Kernel.KernelContext, NetUtils.GetLocalIpAddress(), Kernel.UdpServerPortNumber);
@@ -330,7 +339,7 @@ namespace MediaBrowser.Common.Kernel
if (connections.Count > 0)
{
Logger.Info("Sending web socket message {0}", messageType);
_logger.Info("Sending web socket message {0}", messageType);
var message = new WebSocketMessage<T> { MessageType = messageType, Data = dataFunction() };
var bytes = JsonSerializer.SerializeToBytes(message);
@@ -347,7 +356,7 @@ namespace MediaBrowser.Common.Kernel
}
catch (Exception ex)
{
Logger.ErrorException("Error sending web socket message {0} to {1}", ex, messageType, s.RemoteEndPoint);
_logger.ErrorException("Error sending web socket message {0} to {1}", ex, messageType, s.RemoteEndPoint);
}
}));
@@ -386,7 +395,7 @@ namespace MediaBrowser.Common.Kernel
if (HttpServer != null)
{
Logger.Info("Disposing Http Server");
_logger.Info("Disposing Http Server");
HttpServer.WebSocketConnected -= HttpServer_WebSocketConnected;
HttpServer.Dispose();

View File

@@ -1,5 +1,6 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Kernel;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Net;
using System;
using System.Collections.Concurrent;
@@ -20,13 +21,20 @@ namespace MediaBrowser.Common.Net
/// </summary>
public class HttpManager : BaseManager<IKernel>
{
/// <summary>
/// The _logger
/// </summary>
private readonly ILogger _logger;
/// <summary>
/// Initializes a new instance of the <see cref="HttpManager" /> class.
/// </summary>
/// <param name="kernel">The kernel.</param>
public HttpManager(IKernel kernel)
/// <param name="logger">The logger.</param>
public HttpManager(IKernel kernel, ILogger logger)
: base(kernel)
{
_logger = logger;
}
/// <summary>
@@ -83,7 +91,7 @@ namespace MediaBrowser.Common.Net
await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
Logger.Info("HttpManager.Get url: {0}", url);
_logger.Info("HttpManager.Get url: {0}", url);
try
{
@@ -101,7 +109,7 @@ namespace MediaBrowser.Common.Net
}
catch (HttpRequestException ex)
{
Logger.ErrorException("Error getting response from " + url, ex);
_logger.ErrorException("Error getting response from " + url, ex);
throw new HttpException(ex.Message, ex);
}
@@ -138,7 +146,7 @@ namespace MediaBrowser.Common.Net
await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
Logger.Info("HttpManager.Post url: {0}", url);
_logger.Info("HttpManager.Post url: {0}", url);
try
{
@@ -156,7 +164,7 @@ namespace MediaBrowser.Common.Net
}
catch (HttpRequestException ex)
{
Logger.ErrorException("Error getting response from " + url, ex);
_logger.ErrorException("Error getting response from " + url, ex);
throw new HttpException(ex.Message, ex);
}
@@ -199,7 +207,7 @@ namespace MediaBrowser.Common.Net
await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
Logger.Info("HttpManager.FetchToTempFile url: {0}, temp file: {1}", url, tempFile);
_logger.Info("HttpManager.FetchToTempFile url: {0}, temp file: {1}", url, tempFile);
try
{
@@ -257,7 +265,7 @@ namespace MediaBrowser.Common.Net
}
catch (HttpRequestException ex)
{
Logger.ErrorException("Error getting response from " + url, ex);
_logger.ErrorException("Error getting response from " + url, ex);
// Cleanup
if (File.Exists(tempFile))
@@ -269,7 +277,7 @@ namespace MediaBrowser.Common.Net
}
catch (Exception ex)
{
Logger.ErrorException("Error getting response from " + url, ex);
_logger.ErrorException("Error getting response from " + url, ex);
// Cleanup
if (File.Exists(tempFile))
@@ -305,7 +313,7 @@ namespace MediaBrowser.Common.Net
var ms = new MemoryStream();
Logger.Info("HttpManager.FetchToMemoryStream url: {0}", url);
_logger.Info("HttpManager.FetchToMemoryStream url: {0}", url);
try
{
@@ -337,7 +345,7 @@ namespace MediaBrowser.Common.Net
}
catch (HttpRequestException ex)
{
Logger.ErrorException("Error getting response from " + url, ex);
_logger.ErrorException("Error getting response from " + url, ex);
ms.Dispose();
@@ -345,7 +353,7 @@ namespace MediaBrowser.Common.Net
}
catch (Exception ex)
{
Logger.ErrorException("Error getting response from " + url, ex);
_logger.ErrorException("Error getting response from " + url, ex);
ms.Dispose();
@@ -427,7 +435,7 @@ namespace MediaBrowser.Common.Net
{
var msg = string.Format("Connection to {0} timed out", url);
Logger.Error(msg);
_logger.Error(msg);
// Throw an HttpException so that the caller doesn't think it was cancelled by user code
return new HttpException(msg, exception) { IsTimedOut = true };

View File

@@ -1,4 +1,5 @@
using MediaBrowser.Common.Kernel;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Tasks;
using System;
using System.Collections.Generic;
@@ -16,14 +17,20 @@ namespace MediaBrowser.Common.ScheduledTasks
/// </summary>
private readonly List<Type> _taskQueue = new List<Type>();
/// <summary>
/// The _logger
/// </summary>
private readonly ILogger _logger;
/// <summary>
/// Initializes a new instance of the <see cref="TaskManager" /> class.
/// </summary>
/// <param name="kernel">The kernel.</param>
public TaskManager(IKernel kernel)
/// <param name="logger">The logger.</param>
public TaskManager(IKernel kernel, ILogger logger)
: base(kernel)
{
_logger = logger;
}
/// <summary>
@@ -70,12 +77,12 @@ namespace MediaBrowser.Common.ScheduledTasks
if (!_taskQueue.Contains(type))
{
Logger.Info("Queueing task {0}", type.Name);
_logger.Info("Queueing task {0}", type.Name);
_taskQueue.Add(type);
}
else
{
Logger.Info("Task already queued: {0}", type.Name);
_logger.Info("Task already queued: {0}", type.Name);
}
}
}