diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-09-03 12:40:35 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-09-03 12:40:35 -0400 |
| commit | 31357d3298baa8e0f540dfefc47eb39da8df128d (patch) | |
| tree | 375a9f037ed5d1b3fa1ced03cfe460a682f2252e /MediaBrowser.Common/Kernel/BaseKernel.cs | |
| parent | 9baf40becb21a248267a6a6c23061d7b3d3fe4e2 (diff) | |
Updated plugins to store their assemblies directly in the plugins folder
Diffstat (limited to 'MediaBrowser.Common/Kernel/BaseKernel.cs')
| -rw-r--r-- | MediaBrowser.Common/Kernel/BaseKernel.cs | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index cdde17b24..4f1bdae6b 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -50,9 +50,9 @@ namespace MediaBrowser.Common.Kernel }
/// <summary>
- /// Gets the kernel context. The UI kernel will have to override this.
+ /// Gets the kernel context. Subclasses will have to override.
/// </summary>
- protected KernelContext KernelContext { get { return KernelContext.Server; } }
+ public abstract KernelContext KernelContext { get; }
public BaseKernel()
{
@@ -104,7 +104,7 @@ namespace MediaBrowser.Common.Kernel // Gets all plugin assemblies by first reading all bytes of the .dll and calling Assembly.Load against that
// This will prevent the .dll file from getting locked, and allow us to replace it when needed
- IEnumerable<Assembly> pluginAssemblies = Directory.GetFiles(ApplicationPaths.PluginsPath, "*.dll", SearchOption.AllDirectories).Select(f => Assembly.Load(File.ReadAllBytes((f))));
+ IEnumerable<Assembly> pluginAssemblies = Directory.GetFiles(ApplicationPaths.PluginsPath, "*.dll", SearchOption.TopDirectoryOnly).Select(f => Assembly.Load(File.ReadAllBytes((f))));
var catalog = new AggregateCatalog(pluginAssemblies.Select(a => new AssemblyCatalog(a)));
@@ -144,20 +144,7 @@ namespace MediaBrowser.Common.Kernel {
foreach (BasePlugin plugin in Plugins)
{
- Assembly assembly = plugin.GetType().Assembly;
- AssemblyName assemblyName = assembly.GetName();
-
- plugin.Version = assemblyName.Version;
- plugin.Path = Path.Combine(ApplicationPaths.PluginsPath, assemblyName.Name);
-
- plugin.Context = KernelContext;
-
- plugin.ReloadConfiguration();
-
- if (plugin.Enabled)
- {
- plugin.Init();
- }
+ plugin.Initialize(this);
}
}
@@ -276,10 +263,18 @@ namespace MediaBrowser.Common.Kernel return GetType().Assembly.GetName().Version;
}
}
+
+ BaseApplicationPaths IKernel.ApplicationPaths
+ {
+ get { return ApplicationPaths; }
+ }
}
public interface IKernel
{
+ BaseApplicationPaths ApplicationPaths { get; }
+ KernelContext KernelContext { get; }
+
Task Init(IProgress<TaskProgress> progress);
void Dispose();
}
|
