diff --git a/src/Orchard/Environment/Extensions/Loaders/ExtensionLoaderBase.cs b/src/Orchard/Environment/Extensions/Loaders/ExtensionLoaderBase.cs index f9fe2b8bc..401834a37 100644 --- a/src/Orchard/Environment/Extensions/Loaders/ExtensionLoaderBase.cs +++ b/src/Orchard/Environment/Extensions/Loaders/ExtensionLoaderBase.cs @@ -8,7 +8,7 @@ using Orchard.FileSystems.Dependencies; namespace Orchard.Environment.Extensions.Loaders { public abstract class ExtensionLoaderBase : IExtensionLoader { - protected readonly IDependenciesFolder _dependenciesFolder; + private readonly IDependenciesFolder _dependenciesFolder; protected ExtensionLoaderBase(IDependenciesFolder dependenciesFolder) { _dependenciesFolder = dependenciesFolder; diff --git a/src/Orchard/Environment/Extensions/Loaders/ProbingExtensionLoader.cs b/src/Orchard/Environment/Extensions/Loaders/ProbingExtensionLoader.cs deleted file mode 100644 index 0d8dda118..000000000 --- a/src/Orchard/Environment/Extensions/Loaders/ProbingExtensionLoader.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Orchard.Environment.Extensions.Models; -using Orchard.FileSystems.Dependencies; -using Orchard.Logging; - -namespace Orchard.Environment.Extensions.Loaders { - /// - /// Load an extension using the "Assembly.Load" method if the - /// file can be found in the "App_Data/Dependencies" folder. - /// - public class ProbingExtensionLoader : ExtensionLoaderBase { - private readonly IHostEnvironment _hostEnvironment; - private readonly IDependenciesFolder _dependenciesFolder; - private readonly IAssemblyProbingFolder _assemblyProbingFolder; - - public ProbingExtensionLoader( - IHostEnvironment hostEnvironment, - IDependenciesFolder dependenciesFolder, - IAssemblyProbingFolder assemblyProbingFolder) - : base(dependenciesFolder) { - - _hostEnvironment = hostEnvironment; - _dependenciesFolder = dependenciesFolder; - _assemblyProbingFolder = assemblyProbingFolder; - Logger = NullLogger.Instance; - } - - public ILogger Logger { get; set; } - - public override int Order { get { return 40; } } - - public override string GetWebFormAssemblyDirective(DependencyDescriptor dependency) { - return string.Format("<%@ Assembly Name=\"{0}\"%>", dependency.Name); - } - - public override IEnumerable GetWebFormVirtualDependencies(DependencyDescriptor dependency) { - yield return _assemblyProbingFolder.GetAssemblyVirtualPath(dependency.Name); - } - - public override void ExtensionRemoved(ExtensionLoadingContext ctx, DependencyDescriptor dependency) { - if (_assemblyProbingFolder.AssemblyExists(dependency.Name)) { - ctx.DeleteActions.Add( - () => { - Logger.Information("ExtensionRemoved: Deleting assembly \"{0}\" from probing directory", dependency.Name); - _assemblyProbingFolder.DeleteAssembly(dependency.Name); - }); - - // We need to restart the appDomain if the assembly is loaded - if (_hostEnvironment.IsAssemblyLoaded(dependency.Name)) { - Logger.Information("ExtensionRemoved: Module \"{0}\" is removed and its assembly is loaded, forcing AppDomain restart", dependency.Name); - ctx.RestartAppDomain = true; - } - } - } - - public override void ExtensionDeactivated(ExtensionLoadingContext ctx, ExtensionDescriptor extension) { - if (_assemblyProbingFolder.AssemblyExists(extension.Name)) { - ctx.DeleteActions.Add( - () => { - Logger.Information("ExtensionDeactivated: Deleting assembly \"{0}\" from probing directory", extension.Name); - _assemblyProbingFolder.DeleteAssembly(extension.Name); - }); - - // We need to restart the appDomain if the assembly is loaded - if (_hostEnvironment.IsAssemblyLoaded(extension.Name)) { - Logger.Information("ExtensionDeactivated: Module \"{0}\" is deactivated and its assembly is loaded, forcing AppDomain restart", extension.Name); - ctx.RestartAppDomain = true; - } - } - } - - public override bool IsCompatibleWithModuleReferences(ExtensionDescriptor extension, IEnumerable references) { - // A pre-compiled module is _not_ compatible with a dynamically loaded module - // because a pre-compiled module usually references a pre-compiled assembly binary - // which will have a different identity (i.e. name) from the dynamic module. - bool result = references.All(r => r.Loader.GetType() != typeof(DynamicExtensionLoader)); - if (!result) { - Logger.Information("Extension \"{0}\" will not be loaded as pre-compiled extension because one or more referenced extension is dynamically compiled", extension.Name); - } - return result; - } - - public override ExtensionProbeEntry Probe(ExtensionDescriptor descriptor) { - if (!_assemblyProbingFolder.AssemblyExists(descriptor.Name)) - return null; - - var desc = _dependenciesFolder.GetDescriptor(descriptor.Name); - if ( desc == null ) - return null; - - return new ExtensionProbeEntry { - Descriptor = descriptor, - LastWriteTimeUtc = _assemblyProbingFolder.GetAssemblyDateTimeUtc(descriptor.Name), - Loader = this, - VirtualPath = desc.VirtualPath - }; - } - - protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) { - var assembly = _assemblyProbingFolder.LoadAssembly(descriptor.Name); - if (assembly == null) - return null; - - //Logger.Information("Loading extension \"{0}\"", descriptor.Name); - - return new ExtensionEntry { - Descriptor = descriptor, - Assembly = assembly, - ExportedTypes = assembly.GetExportedTypes() - }; - } - } -} \ No newline at end of file diff --git a/src/Orchard/Environment/OrchardStarter.cs b/src/Orchard/Environment/OrchardStarter.cs index 17fb59436..5917f4d4c 100644 --- a/src/Orchard/Environment/OrchardStarter.cs +++ b/src/Orchard/Environment/OrchardStarter.cs @@ -80,7 +80,6 @@ namespace Orchard.Environment { builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); - builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); } diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 1dc640f51..8502bbe96 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -546,7 +546,6 @@ -