From b8d5c718429f1325111834b8b95698fc9c9ba47d Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Sat, 23 Feb 2013 02:57:11 -0500 Subject: type discovery without attributes --- MediaBrowser.Controller/Kernel.cs | 53 +++++++++++++-------------------------- 1 file changed, 18 insertions(+), 35 deletions(-) (limited to 'MediaBrowser.Controller/Kernel.cs') diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs index ebf3e724d..21cfb5ddb 100644 --- a/MediaBrowser.Controller/Kernel.cs +++ b/MediaBrowser.Controller/Kernel.cs @@ -1,6 +1,4 @@ -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Kernel; -using MediaBrowser.Common.Localization; +using MediaBrowser.Common.Kernel; using MediaBrowser.Common.Plugins; using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Entities; @@ -17,14 +15,10 @@ using MediaBrowser.Controller.ScheduledTasks; using MediaBrowser.Controller.Updates; using MediaBrowser.Controller.Weather; using MediaBrowser.Model.Configuration; -using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; -using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.System; using System; using System.Collections.Generic; -using System.ComponentModel.Composition; -using System.ComponentModel.Composition.Hosting; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -183,7 +177,6 @@ namespace MediaBrowser.Controller /// Gets the list of Localized string files /// /// The string files. - [ImportMany(typeof(LocalizedStringData))] public IEnumerable StringFiles { get; private set; } /// @@ -208,7 +201,6 @@ namespace MediaBrowser.Controller /// Gets the list of currently registered metadata prvoiders /// /// The metadata providers enumerable. - [ImportMany(typeof(BaseMetadataProvider))] public BaseMetadataProvider[] MetadataProviders { get; private set; } /// @@ -222,8 +214,7 @@ namespace MediaBrowser.Controller /// Gets the list of currently registered entity resolvers /// /// The entity resolvers enumerable. - [ImportMany(typeof(IBaseItemResolver))] - internal IBaseItemResolver[] EntityResolvers { get; private set; } + internal IEnumerable EntityResolvers { get; private set; } /// /// Gets the list of BasePluginFolders added by plugins @@ -322,14 +313,11 @@ namespace MediaBrowser.Controller /// /// Composes the exported values. /// - /// The container. - protected override void RegisterExportedValues(CompositionContainer container) + protected override void RegisterExportedValues() { - container.ComposeExportedValue("kernel", this); - ApplicationHost.Register(this); - base.RegisterExportedValues(container); + base.RegisterExportedValues(); } /// @@ -338,6 +326,15 @@ namespace MediaBrowser.Controller /// All types. protected override void FindParts(Type[] allTypes) { + InstallationManager = (InstallationManager)ApplicationHost.CreateInstance(typeof(InstallationManager)); + FFMpegManager = (FFMpegManager)ApplicationHost.CreateInstance(typeof(FFMpegManager)); + LibraryManager = (LibraryManager)ApplicationHost.CreateInstance(typeof(LibraryManager)); + UserManager = (UserManager)ApplicationHost.CreateInstance(typeof(UserManager)); + ImageManager = (ImageManager)ApplicationHost.CreateInstance(typeof(ImageManager)); + ProviderManager = (ProviderManager)ApplicationHost.CreateInstance(typeof(ProviderManager)); + UserDataManager = (UserDataManager)ApplicationHost.CreateInstance(typeof(UserDataManager)); + PluginSecurityManager = (PluginSecurityManager)ApplicationHost.CreateInstance(typeof(PluginSecurityManager)); + base.FindParts(allTypes); EntityResolutionIgnoreRules = GetExports(allTypes); @@ -348,8 +345,11 @@ namespace MediaBrowser.Controller WeatherProviders = GetExports(allTypes); IntroProviders = GetExports(allTypes); PluginConfigurationPages = GetExports(allTypes); - ImageEnhancers = GetExports(allTypes); + ImageEnhancers = GetExports(allTypes).OrderBy(e => e.Priority).ToArray(); PluginFolderCreators = GetExports(allTypes); + StringFiles = GetExports(allTypes); + EntityResolvers = GetExports(allTypes).OrderBy(e => e.Priority).ToArray(); + MetadataProviders = GetExports(allTypes).OrderBy(e => e.Priority).ToArray(); } /// @@ -365,14 +365,6 @@ namespace MediaBrowser.Controller await base.ReloadInternal().ConfigureAwait(false); ReloadResourcePools(); - InstallationManager = (InstallationManager)ApplicationHost.CreateInstance(typeof(InstallationManager)); - FFMpegManager = (FFMpegManager)ApplicationHost.CreateInstance(typeof(FFMpegManager)); - LibraryManager = (LibraryManager)ApplicationHost.CreateInstance(typeof(LibraryManager)); - UserManager = (UserManager)ApplicationHost.CreateInstance(typeof(UserManager)); - ImageManager = (ImageManager)ApplicationHost.CreateInstance(typeof(ImageManager)); - ProviderManager = (ProviderManager)ApplicationHost.CreateInstance(typeof(ProviderManager)); - UserDataManager = (UserDataManager)ApplicationHost.CreateInstance(typeof(UserDataManager)); - PluginSecurityManager = (PluginSecurityManager)ApplicationHost.CreateInstance(typeof(PluginSecurityManager)); ReloadFileSystemManager(); @@ -441,15 +433,6 @@ namespace MediaBrowser.Controller DisplayPreferencesRepository = GetRepository(DisplayPreferencesRepositories, Configuration.DisplayPreferencesRepository); var displayPreferencesRepoTask = DisplayPreferencesRepository.Initialize(); - // Sort the resolvers by priority - EntityResolvers = EntityResolvers.OrderBy(e => e.Priority).ToArray(); - - // Sort the providers by priority - MetadataProviders = MetadataProviders.OrderBy(e => e.Priority).ToArray(); - - // Sort the image processors by priority - ImageEnhancers = ImageEnhancers.OrderBy(e => e.Priority).ToArray(); - await Task.WhenAll(itemRepoTask, userRepoTask, userDataRepoTask, displayPreferencesRepoTask).ConfigureAwait(false); } @@ -488,7 +471,7 @@ namespace MediaBrowser.Controller { DisposeFileSystemManager(); - FileSystemManager = new FileSystemManager(this, Logger); + FileSystemManager = new FileSystemManager(this, Logger, TaskManager); FileSystemManager.StartWatchers(); } -- cgit v1.2.3