Explorar el Código

created an init method on base app host

LukePulverenti hace 12 años
padre
commit
7b0b5a3538

+ 21 - 10
MediaBrowser.Common.Implementations/BaseApplicationHost.cs

@@ -1,4 +1,5 @@
-using MediaBrowser.Common.Implementations.Udp;
+using System.Threading.Tasks;
+using MediaBrowser.Common.Implementations.Udp;
 using MediaBrowser.Common.Implementations.Updates;
 using MediaBrowser.Common.Implementations.WebSocket;
 using MediaBrowser.Common.Kernel;
@@ -48,7 +49,7 @@ namespace MediaBrowser.Common.Implementations
         /// The container
         /// </summary>
         protected readonly Container Container = new Container();
-      
+
         /// <summary>
         /// Gets assemblies that failed to load
         /// </summary>
@@ -114,16 +115,26 @@ namespace MediaBrowser.Common.Implementations
         protected BaseApplicationHost()
         {
             FailedAssemblies = new List<string>();
+        }
 
-            ApplicationPaths = GetApplicationPaths();
+        /// <summary>
+        /// Inits this instance.
+        /// </summary>
+        /// <returns>Task.</returns>
+        public virtual Task Init()
+        {
+            return Task.Run(() =>
+            {
+                ApplicationPaths = GetApplicationPaths();
 
-            LogManager = GetLogManager();
+                LogManager = GetLogManager();
 
-            Logger = LogManager.GetLogger("App");
+                Logger = LogManager.GetLogger("App");
 
-            IsFirstRun = !File.Exists(ApplicationPaths.SystemConfigurationFilePath);
+                IsFirstRun = !File.Exists(ApplicationPaths.SystemConfigurationFilePath);
 
-            DiscoverTypes();
+                DiscoverTypes();
+            });
         }
 
         /// <summary>
@@ -157,7 +168,7 @@ namespace MediaBrowser.Common.Implementations
 
             Plugins = GetExports<IPlugin>();
         }
-        
+
         /// <summary>
         /// Discovers the types.
         /// </summary>
@@ -189,7 +200,7 @@ namespace MediaBrowser.Common.Implementations
             RegisterSingleInstance(networkManager);
             RegisterSingleInstance(serverManager);
         }
-        
+
         /// <summary>
         /// 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
@@ -353,7 +364,7 @@ namespace MediaBrowser.Common.Implementations
         /// <param name="autorun">if set to <c>true</c> [autorun].</param>
         public void ConfigureAutoRunAtStartup(bool autorun)
         {
-            
+
         }
 
         /// <summary>

+ 6 - 0
MediaBrowser.Common/Kernel/IApplicationHost.cs

@@ -110,5 +110,11 @@ namespace MediaBrowser.Common.Kernel
         /// </summary>
         /// <param name="plugin">The plugin.</param>
         void RemovePlugin(IPlugin plugin);
+
+        /// <summary>
+        /// Inits this instance.
+        /// </summary>
+        /// <returns>Task.</returns>
+        Task Init();
     }
 }

+ 1 - 0
MediaBrowser.ServerApplication/App.xaml.cs

@@ -165,6 +165,7 @@ namespace MediaBrowser.ServerApplication
         protected async void LoadKernel()
         {
             CompositionRoot = new ApplicationHost();
+            await CompositionRoot.Init();
 
             Logger = CompositionRoot.Logger;
             Kernel = CompositionRoot.Kernel;

+ 10 - 0
MediaBrowser.ServerApplication/ApplicationHost.cs

@@ -78,6 +78,16 @@ namespace MediaBrowser.ServerApplication
         public ApplicationHost()
             : base()
         {
+        }
+
+        /// <summary>
+        /// Inits this instance.
+        /// </summary>
+        /// <returns>Task.</returns>
+        public override async Task Init()
+        {
+            await base.Init().ConfigureAwait(false);
+
             Kernel = new Kernel(this, ServerApplicationPaths, _xmlSerializer, Logger);
 
             var networkManager = new NetworkManager();

+ 2 - 2
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.24</version>
+        <version>3.0.25</version>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains common components shared by Media Browser Theatre and Media Browser Server. Not intended for plugin developer consumption.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.24" />
+            <dependency id="MediaBrowser.Common" version="3.0.25" />
             <dependency id="NLog" version="2.0.0.2000" />
             <dependency id="ServiceStack" version="3.9.37" />
             <dependency id="ServiceStack.Api.Swagger" version="3.9.35" />

+ 1 - 1
Nuget/MediaBrowser.Common.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common</id>
-        <version>3.0.24</version>
+        <version>3.0.25</version>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
Nuget/MediaBrowser.Server.Core.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.24</version>
+        <version>3.0.25</version>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.24" />
+            <dependency id="MediaBrowser.Common" version="3.0.25" />
         </dependencies>
     </metadata>
     <files>