From ca7ee684730fe0d99a6160659c679c36a1646c88 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Wed, 27 Feb 2013 11:46:48 -0500 Subject: fixed the plugin catalog not loading --- .../BaseApplicationHost.cs | 40 +++++++++++++++++++++- .../ServerManager/ServerManager.cs | 17 ++++++++- 2 files changed, 55 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Common.Implementations') diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs index e8acf2975b..65d1703826 100644 --- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs +++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs @@ -1,5 +1,13 @@ -using MediaBrowser.Common.Kernel; +using MediaBrowser.Common.IO; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Common.Implementations.Udp; +using MediaBrowser.Common.Implementations.WebSocket; +using MediaBrowser.Common.Kernel; +using MediaBrowser.Common.Net; +using MediaBrowser.Common.ScheduledTasks; +using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; +using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Serialization; using SimpleInjector; using System; @@ -130,6 +138,18 @@ namespace MediaBrowser.Common.Implementations /// /// IApplicationPaths. protected abstract IApplicationPaths GetApplicationPaths(); + + /// + /// Finds the parts. + /// + protected virtual void FindParts() + { + Resolve().AddTasks(GetExports(false)); + + Resolve().Init(GetExports(false)); + + Resolve().AddWebSocketListeners(GetExports()); + } /// /// Discovers the types. @@ -143,6 +163,24 @@ namespace MediaBrowser.Common.Implementations AllConcreteTypes = AllTypes.Where(t => t.IsClass && !t.IsAbstract && !t.IsInterface && !t.IsGenericType).ToArray(); } + /// + /// Registers resources that classes will depend on + /// + protected virtual void RegisterResources(ITaskManager taskManager, INetworkManager networkManager, IServerManager serverManager) + { + RegisterSingleInstance(LogManager); + RegisterSingleInstance(Logger); + + RegisterSingleInstance(ApplicationPaths); + RegisterSingleInstance(taskManager); + RegisterSingleInstance(() => new AlchemyServer(Logger)); + RegisterSingleInstance(ProtobufSerializer); + RegisterSingleInstance(new UdpServer(Logger), false); + + RegisterSingleInstance(networkManager); + RegisterSingleInstance(serverManager); + } + /// /// Gets a list of types within an assembly /// This will handle situations that would normally throw an exception - such as a type within the assembly that depends on some other non-existant reference diff --git a/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs index bd584bf0cb..31f6922c23 100644 --- a/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs +++ b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs @@ -95,6 +95,12 @@ namespace MediaBrowser.Common.Implementations.ServerManager get { return SupportsNativeWebSocket ? _kernel.Configuration.HttpServerPortNumber : _kernel.Configuration.LegacyWebSocketPortNumber; } } + /// + /// Gets the web socket listeners. + /// + /// The web socket listeners. + private List WebSocketListeners = new List(); + /// /// Initializes a new instance of the class. /// @@ -234,7 +240,7 @@ namespace MediaBrowser.Common.Implementations.ServerManager /// The result. private async void ProcessWebSocketMessageReceived(WebSocketMessageInfo result) { - var tasks = _kernel.WebSocketListeners.Select(i => Task.Run(async () => + var tasks = WebSocketListeners.Select(i => Task.Run(async () => { try { @@ -514,5 +520,14 @@ namespace MediaBrowser.Common.Implementations.ServerManager ReloadExternalWebSocketServer(); } } + + /// + /// Adds the web socket listeners. + /// + /// The listeners. + public void AddWebSocketListeners(IEnumerable listeners) + { + WebSocketListeners.AddRange(listeners); + } } } -- cgit v1.2.3