From 7c3b71d5e2c1450ff1b08faa5fbbb0c6c19cca6a Mon Sep 17 00:00:00 2001 From: Renaud Paquay Date: Sun, 12 Dec 2010 23:25:37 -0800 Subject: [PATCH] Added a "Disabled" option for all extension loaders --HG-- branch : dev --- .../Extensions/Loaders/CoreExtensionLoader.cs | 7 +++++++ .../Extensions/Loaders/PrecompiledExtensionLoader.cs | 7 +++++++ .../Extensions/Loaders/RawThemeExtensionLoader.cs | 9 ++++++++- .../Extensions/Loaders/ReferencedExtensionLoader.cs | 6 +++--- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/Orchard/Environment/Extensions/Loaders/CoreExtensionLoader.cs b/src/Orchard/Environment/Extensions/Loaders/CoreExtensionLoader.cs index f94ba962c..d83233701 100644 --- a/src/Orchard/Environment/Extensions/Loaders/CoreExtensionLoader.cs +++ b/src/Orchard/Environment/Extensions/Loaders/CoreExtensionLoader.cs @@ -20,10 +20,14 @@ namespace Orchard.Environment.Extensions.Loaders { } public ILogger Logger { get; set; } + public bool Disabled { get; set; } public override int Order { get { return 10; } } public override ExtensionProbeEntry Probe(ExtensionDescriptor descriptor) { + if (Disabled) + return null; + if (descriptor.Location == "~/Core") { return new ExtensionProbeEntry { Descriptor = descriptor, @@ -36,6 +40,9 @@ namespace Orchard.Environment.Extensions.Loaders { } protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) { + if (Disabled) + return null; + //Logger.Information("Loading extension \"{0}\"", descriptor.Name); var assembly = _assemblyLoader.Load(CoreAssemblyName); diff --git a/src/Orchard/Environment/Extensions/Loaders/PrecompiledExtensionLoader.cs b/src/Orchard/Environment/Extensions/Loaders/PrecompiledExtensionLoader.cs index 4c151c1ba..0eed97bf4 100644 --- a/src/Orchard/Environment/Extensions/Loaders/PrecompiledExtensionLoader.cs +++ b/src/Orchard/Environment/Extensions/Loaders/PrecompiledExtensionLoader.cs @@ -36,6 +36,7 @@ namespace Orchard.Environment.Extensions.Loaders { } public ILogger Logger { get; set; } + public bool Disabled { get; set; } public override int Order { get { return 30; } } @@ -169,6 +170,9 @@ namespace Orchard.Environment.Extensions.Loaders { } public override ExtensionProbeEntry Probe(ExtensionDescriptor descriptor) { + if (Disabled) + return null; + var assemblyPath = GetAssemblyPath(descriptor); if (assemblyPath == null) return null; @@ -186,6 +190,9 @@ namespace Orchard.Environment.Extensions.Loaders { } protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) { + if (Disabled) + return null; + var assembly = _assemblyProbingFolder.LoadAssembly(descriptor.Id); if (assembly == null) return null; diff --git a/src/Orchard/Environment/Extensions/Loaders/RawThemeExtensionLoader.cs b/src/Orchard/Environment/Extensions/Loaders/RawThemeExtensionLoader.cs index b21db77ab..1bbe368da 100644 --- a/src/Orchard/Environment/Extensions/Loaders/RawThemeExtensionLoader.cs +++ b/src/Orchard/Environment/Extensions/Loaders/RawThemeExtensionLoader.cs @@ -16,11 +16,15 @@ namespace Orchard.Environment.Extensions.Loaders { } public ILogger Logger { get; set; } + public bool Disabled { get; set; } public override int Order { get { return 10; } } public override ExtensionProbeEntry Probe(ExtensionDescriptor descriptor) { - if ( descriptor.Location == "~/Themes") { + if (Disabled) + return null; + + if (descriptor.Location == "~/Themes") { string projectPath = _virtualPathProvider.Combine(descriptor.Location, descriptor.Id, descriptor.Id + ".csproj"); @@ -48,6 +52,9 @@ namespace Orchard.Environment.Extensions.Loaders { } protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) { + if (Disabled) + return null; + return new ExtensionEntry { Descriptor = descriptor, Assembly = GetType().Assembly, diff --git a/src/Orchard/Environment/Extensions/Loaders/ReferencedExtensionLoader.cs b/src/Orchard/Environment/Extensions/Loaders/ReferencedExtensionLoader.cs index 5d0b34903..6af3a2073 100644 --- a/src/Orchard/Environment/Extensions/Loaders/ReferencedExtensionLoader.cs +++ b/src/Orchard/Environment/Extensions/Loaders/ReferencedExtensionLoader.cs @@ -1,5 +1,4 @@ using System.IO; -using System.Web.Hosting; using Orchard.Environment.Extensions.Models; using Orchard.FileSystems.Dependencies; using Orchard.FileSystems.VirtualPath; @@ -22,6 +21,7 @@ namespace Orchard.Environment.Extensions.Loaders { } public ILogger Logger { get; set; } + public bool Disabled { get; set; } public override int Order { get { return 20; } } @@ -46,7 +46,7 @@ namespace Orchard.Environment.Extensions.Loaders { } public override ExtensionProbeEntry Probe(ExtensionDescriptor descriptor) { - if (HostingEnvironment.IsHosted == false) + if (Disabled) return null; var assembly = _buildManager.GetReferencedAssembly(descriptor.Id); @@ -62,7 +62,7 @@ namespace Orchard.Environment.Extensions.Loaders { } protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) { - if (HostingEnvironment.IsHosted == false) + if (Disabled) return null; var assembly = _buildManager.GetReferencedAssembly(descriptor.Id);