mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-27 04:19:04 +08:00
Adding configurable sections in HostComponents.config
--HG-- branch : 1.x
This commit is contained in:
@@ -272,10 +272,6 @@
|
||||
<XmlDelete XmlFileName="$(StageFolder)\Config\log4net.config"
|
||||
XPath="/log4net/root/appender-ref[@ref='debug-file']" />
|
||||
|
||||
<!-- disable dynamic compilation loader -->
|
||||
<Move SourceFiles="$(StageFolder)\Config\Sample.HostComponents.config"
|
||||
DestinationFiles="$(StageFolder)\Config\HostComponents.config"/>
|
||||
|
||||
<XmlUpdate XmlFileName="$(StageFolder)\Config\HostComponents.config"
|
||||
XPath="/HostComponents/Components/Component[@Type='Orchard.Environment.Extensions.Loaders.DynamicExtensionLoader']/Properties/Property/@Value"
|
||||
Value="true" />
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<autofac defaultAssembly="Orchard.Framework">
|
||||
<components>
|
||||
|
||||
<!--
|
||||
<component instance-scope="single-instance"
|
||||
type="Orchard.Environment.Configuration.AzureBlobTenantManager"
|
||||
service="Orchard.Environment.Configuration.IShellSettingsManager">
|
||||
@@ -17,6 +18,7 @@
|
||||
<parameter name="container" value="mycontainer"/>
|
||||
</parameters>
|
||||
</component>
|
||||
-->
|
||||
|
||||
</components>
|
||||
</autofac>
|
||||
90
src/Orchard.Web/Config/HostComponents.config
Normal file
90
src/Orchard.Web/Config/HostComponents.config
Normal file
@@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<HostComponents>
|
||||
<Components>
|
||||
|
||||
<!-- Set Value="true" to disable new extensions monitoring -->
|
||||
<Component Type="Orchard.Environment.Extensions.ExtensionMonitoringCoordinator">
|
||||
<Properties>
|
||||
<Property Name="Disabled" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable Placement files monitoring (Placement.info) -->
|
||||
<Component Type="Orchard.DisplayManagement.Descriptors.ShapePlacementStrategy.PlacementFileParser">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable template views monitoring (Views\*.cshtml) -->
|
||||
<Component Type="Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy.ShapeTemplateBindingStrategy">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable extension folders monitoring (new files in modules and themes) -->
|
||||
<Component Type="Orchard.Environment.Extensions.Folders.ExtensionHarvester">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable project files monitoring (/Modules/**/*.csproj) -->
|
||||
<Component Type="Orchard.Environment.Extensions.Compilers.DefaultProjectFileParser">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable source files monitoring -->
|
||||
<Component Type="Orchard.Environment.Extensions.Loaders.DynamicExtensionLoader">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to completely disable the Dynamic Extension Loader -->
|
||||
<Component Type="Orchard.Environment.Extensions.Loaders.DynamicExtensionLoader">
|
||||
<Properties>
|
||||
<Property Name="Disabled" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable pre-compiled files monitoring (~/Modules/**/bin/*.dll) -->
|
||||
<Component Type="Orchard.Environment.Extensions.Loaders.PrecompiledExtensionLoader">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable the dependencies folder monitoring -->
|
||||
<Component Type="Orchard.FileSystems.Dependencies.DefaultDependenciesFolder">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable compiled dependencides files monitoring -->
|
||||
<Component Type="Orchard.FileSystems.Dependencies.DefaultExtensionDependenciesManager">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable localization files monitoring (*.po) -->
|
||||
<Component Type="Orchard.Localization.Services.DefaultLocalizedStringManager">
|
||||
<Properties>
|
||||
<Property Name="DisableMonitoring" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<!-- Set Value="true" to disable parallel cache resolution -->
|
||||
<Component Type="Orchard.Caching.DefaultParallelCacheContext">
|
||||
<Properties>
|
||||
<Property Name="Disabled" Value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
</Components>
|
||||
</HostComponents>
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<HostComponents>
|
||||
<Components>
|
||||
<Component Type="Orchard.Environment.Extensions.ExtensionMonitoringCoordinator">
|
||||
<Properties>
|
||||
<Property Name="Disabled" Value="true"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</Components>
|
||||
</HostComponents>
|
||||
@@ -131,7 +131,7 @@
|
||||
<Content Include="Config\log4net.config">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="Config\Sample.HostComponents.config">
|
||||
<Content Include="Config\HostComponents.config">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
@@ -162,7 +162,7 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Config\Sample.Host.config" />
|
||||
<Content Include="Config\Host.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
@@ -232,7 +232,6 @@
|
||||
<XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/logger[@name='Orchard']" />
|
||||
<XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/root/appender-ref[@ref='debug-file']" />
|
||||
<!-- disable dynamic compilation loader -->
|
||||
<Copy SourceFiles="$(PackageTmp)\Config\Sample.HostComponents.config" DestinationFiles="$(PackageTmp)\Config\HostComponents.config" />
|
||||
<XmlUpdate XmlFileName="$(PackageTmp)\Config\HostComponents.config" XPath="/HostComponents/Components/Component[@Type='Orchard.Environment.Extensions.Loaders.DynamicExtensionLoader']/Properties/Property/@Value" Value="true" />
|
||||
</Target>
|
||||
<Target Name="AfterBuild" DependsOnTargets="AfterBuildCompiler">
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
-->
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false"/>
|
||||
<modules runAllManagedModulesForAllRequests="true">
|
||||
<modules runAllManagedModulesForAllRequests="false">
|
||||
<remove name="WarmupHttpModule"/>
|
||||
<add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.0.20, Culture=neutral"/>
|
||||
</modules>
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Linq;
|
||||
using System.Xml.Linq;
|
||||
using Orchard.Caching;
|
||||
using Orchard.FileSystems.WebSite;
|
||||
using Orchard.Logging;
|
||||
|
||||
namespace Orchard.DisplayManagement.Descriptors.ShapePlacementStrategy {
|
||||
|
||||
@@ -21,11 +22,20 @@ namespace Orchard.DisplayManagement.Descriptors.ShapePlacementStrategy {
|
||||
public PlacementFileParser(ICacheManager cacheManager, IWebSiteFolder webSiteFolder) {
|
||||
_cacheManager = cacheManager;
|
||||
_webSiteFolder = webSiteFolder;
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
public PlacementFile Parse(string virtualPath) {
|
||||
return _cacheManager.Get(virtualPath, context => {
|
||||
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", virtualPath);
|
||||
context.Monitor(_webSiteFolder.WhenPathChanges(virtualPath));
|
||||
}
|
||||
|
||||
var placementText = _webSiteFolder.ReadFile(virtualPath);
|
||||
return ParseImplementation(virtualPath, placementText);
|
||||
});
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy {
|
||||
}
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
private static IEnumerable<ExtensionDescriptor> Once(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
||||
var once = new ConcurrentDictionary<string, object>();
|
||||
@@ -73,7 +74,11 @@ namespace Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy {
|
||||
if (!_virtualPathProvider.DirectoryExists(virtualPath))
|
||||
return new List<string>();
|
||||
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", virtualPath);
|
||||
ctx.Monitor(_virtualPathMonitor.WhenPathChanges(virtualPath));
|
||||
}
|
||||
|
||||
return _virtualPathProvider.ListFiles(virtualPath).Select(Path.GetFileName).ToReadOnlyCollection();
|
||||
});
|
||||
return new { harvesterInfo.harvester, basePath, subPath, virtualPath, fileNames };
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
using Orchard.Caching;
|
||||
using Orchard.FileSystems.WebSite;
|
||||
using Orchard.Logging;
|
||||
|
||||
namespace Orchard.Environment.Extensions.Compilers {
|
||||
public class DefaultProjectFileParser : IProjectFileParser {
|
||||
@@ -14,12 +15,21 @@ namespace Orchard.Environment.Extensions.Compilers {
|
||||
public DefaultProjectFileParser(IWebSiteFolder webSiteFolder, ICacheManager cacheManager) {
|
||||
_webSiteFolder = webSiteFolder;
|
||||
_cacheManager = cacheManager;
|
||||
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
ILogger Logger { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
public ProjectFileDescriptor Parse(string virtualPath) {
|
||||
return _cacheManager.Get(virtualPath,
|
||||
ctx => {
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", virtualPath);
|
||||
ctx.Monitor(_webSiteFolder.WhenPathChanges(virtualPath));
|
||||
}
|
||||
|
||||
string content = _webSiteFolder.ReadFile(virtualPath);
|
||||
using (var reader = new StringReader(content)) {
|
||||
return Parse(reader);
|
||||
|
||||
@@ -43,7 +43,9 @@ namespace Orchard.Environment.Extensions {
|
||||
public void MonitorExtensionsWork(Action<IVolatileToken> monitor) {
|
||||
Logger.Information("Start monitoring extension files...");
|
||||
// Monitor add/remove of any module/theme
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", "~/Modules");
|
||||
monitor(_virtualPathMonitor.WhenPathChanges("~/Modules"));
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", "~/Themes");
|
||||
monitor(_virtualPathMonitor.WhenPathChanges("~/Themes"));
|
||||
|
||||
// Give loaders a chance to monitor any additional changes
|
||||
|
||||
@@ -44,6 +44,7 @@ namespace Orchard.Environment.Extensions.Folders {
|
||||
|
||||
public Localizer T { get; set; }
|
||||
public ILogger Logger { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
public IEnumerable<ExtensionDescriptor> HarvestExtensions(IEnumerable<string> paths, string extensionType, string manifestName, bool manifestIsOptional) {
|
||||
return paths
|
||||
@@ -55,7 +56,11 @@ namespace Orchard.Environment.Extensions.Folders {
|
||||
string key = string.Format("{0}-{1}-{2}", path, manifestName, extensionType);
|
||||
|
||||
return _cacheManager.Get(key, ctx => {
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", path);
|
||||
ctx.Monitor(_webSiteFolder.WhenPathChanges(path));
|
||||
}
|
||||
|
||||
return AvailableExtensionsInFolder(path, extensionType, manifestName, manifestIsOptional).ToReadOnlyCollection();
|
||||
});
|
||||
}
|
||||
@@ -127,7 +132,11 @@ namespace Orchard.Environment.Extensions.Folders {
|
||||
|
||||
private ExtensionDescriptor GetExtensionDescriptor(string locationPath, string extensionId, string extensionType, string manifestPath, bool manifestIsOptional) {
|
||||
return _cacheManager.Get(manifestPath, context => {
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", manifestPath);
|
||||
context.Monitor(_webSiteFolder.WhenPathChanges(manifestPath));
|
||||
}
|
||||
|
||||
var manifestText = _webSiteFolder.ReadFile(manifestPath);
|
||||
if (manifestText == null) {
|
||||
if (manifestIsOptional) {
|
||||
|
||||
@@ -47,6 +47,7 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
public bool Disabled { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
public override int Order { get { return 100; } }
|
||||
|
||||
@@ -63,6 +64,9 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
if (Disabled)
|
||||
return;
|
||||
|
||||
if (DisableMonitoring)
|
||||
return;
|
||||
|
||||
// Monitor .csproj and all .cs files
|
||||
string projectPath = GetProjectPath(descriptor);
|
||||
if (projectPath != null) {
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
public bool Disabled { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
public override int Order { get { return 30; } }
|
||||
|
||||
@@ -125,6 +126,9 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
if (Disabled)
|
||||
return;
|
||||
|
||||
if (DisableMonitoring)
|
||||
return;
|
||||
|
||||
// If the assembly exists, monitor it
|
||||
string assemblyPath = GetAssemblyPath(descriptor);
|
||||
if (assemblyPath != null) {
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace Orchard.Environment {
|
||||
if (!_appDataFolder.FileExists(fileName))
|
||||
TouchFile();
|
||||
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", fileName);
|
||||
monitor(_appDataFolder.WhenPathChanges(fileName));
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,8 @@ namespace Orchard.FileSystems.AppData {
|
||||
}
|
||||
|
||||
public IVolatileToken WhenPathChanges(string path) {
|
||||
return _virtualPathMonitor.WhenPathChanges(GetVirtualPath(path));
|
||||
var virtualPath = GetVirtualPath(path);
|
||||
return _virtualPathMonitor.WhenPathChanges(virtualPath);
|
||||
}
|
||||
|
||||
public string GetVirtualPath(string path) {
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace Orchard.FileSystems.Dependencies {
|
||||
}
|
||||
|
||||
public Localizer T { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
private string PersistencePath {
|
||||
get { return _appDataFolder.Combine(BasePath, FileName); }
|
||||
@@ -36,7 +37,10 @@ namespace Orchard.FileSystems.Dependencies {
|
||||
return _cacheManager.Get(PersistencePath,
|
||||
ctx => {
|
||||
_appDataFolder.CreateDirectory(BasePath);
|
||||
|
||||
if (!DisableMonitoring) {
|
||||
ctx.Monitor(_appDataFolder.WhenPathChanges(ctx.Key));
|
||||
}
|
||||
|
||||
_writeThroughToken.IsCurrent = true;
|
||||
ctx.Monitor(_writeThroughToken);
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace Orchard.FileSystems.Dependencies {
|
||||
}
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
private string PersistencePath {
|
||||
get { return _appDataFolder.Combine(BasePath, FileName); }
|
||||
@@ -65,7 +66,10 @@ namespace Orchard.FileSystems.Dependencies {
|
||||
public IEnumerable<ActivatedExtensionDescriptor> LoadDescriptors() {
|
||||
return _cacheManager.Get(PersistencePath, ctx => {
|
||||
_appDataFolder.CreateDirectory(BasePath);
|
||||
|
||||
if (!DisableMonitoring) {
|
||||
ctx.Monitor(_appDataFolder.WhenPathChanges(ctx.Key));
|
||||
}
|
||||
|
||||
_writeThroughToken.IsCurrent = true;
|
||||
ctx.Monitor(_writeThroughToken);
|
||||
|
||||
@@ -86,6 +86,8 @@ namespace Orchard.FileSystems.VirtualPath {
|
||||
new[] { virtualPath },
|
||||
_clock.UtcNow);
|
||||
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", virtualPath);
|
||||
|
||||
HostingEnvironment.Cache.Add(
|
||||
key,
|
||||
virtualPath,
|
||||
@@ -98,6 +100,8 @@ namespace Orchard.FileSystems.VirtualPath {
|
||||
|
||||
public void Signal(string key, object value, CacheItemRemovedReason reason) {
|
||||
var virtualPath = Convert.ToString(value);
|
||||
Logger.Debug("Virtual path changed '{0}'", virtualPath);
|
||||
|
||||
var token = DetachToken(virtualPath);
|
||||
if (token != null)
|
||||
token.IsCurrent = false;
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Web.Hosting;
|
||||
using Orchard.Caching;
|
||||
using Orchard.FileSystems.VirtualPath;
|
||||
using Orchard.Logging;
|
||||
|
||||
namespace Orchard.FileSystems.WebSite {
|
||||
public class WebSiteFolder : IWebSiteFolder {
|
||||
@@ -13,8 +14,12 @@ namespace Orchard.FileSystems.WebSite {
|
||||
public WebSiteFolder(IVirtualPathMonitor virtualPathMonitor, IVirtualPathProvider virtualPathProvider) {
|
||||
_virtualPathMonitor = virtualPathMonitor;
|
||||
_virtualPathProvider = virtualPathProvider;
|
||||
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
|
||||
public IEnumerable<string> ListDirectories(string virtualPath) {
|
||||
if (!_virtualPathProvider.DirectoryExists(virtualPath)) {
|
||||
return Enumerable.Empty<string>();
|
||||
|
||||
@@ -8,6 +8,7 @@ using Orchard.Environment.Configuration;
|
||||
using Orchard.Environment.Extensions;
|
||||
using Orchard.Environment.Extensions.Models;
|
||||
using Orchard.FileSystems.WebSite;
|
||||
using Orchard.Logging;
|
||||
|
||||
namespace Orchard.Localization.Services {
|
||||
public class DefaultLocalizedStringManager : ILocalizedStringManager {
|
||||
@@ -33,8 +34,13 @@ namespace Orchard.Localization.Services {
|
||||
_cacheManager = cacheManager;
|
||||
_shellSettings = shellSettings;
|
||||
_signals = signals;
|
||||
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
ILogger Logger { get; set; }
|
||||
public bool DisableMonitoring { get; set; }
|
||||
|
||||
// This will translate a string into a string in the target cultureName.
|
||||
// The scope portion is optional, it amounts to the location of the file containing
|
||||
// the string in case it lives in a view, or the namespace name if the string lives in a binary.
|
||||
@@ -109,8 +115,11 @@ namespace Orchard.Localization.Services {
|
||||
string text = _webSiteFolder.ReadFile(corePath);
|
||||
if (text != null) {
|
||||
ParseLocalizationStream(text, translations, false);
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", corePath);
|
||||
context.Monitor(_webSiteFolder.WhenPathChanges(corePath));
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var module in _extensionManager.AvailableExtensions()) {
|
||||
if (DefaultExtensionTypes.IsModule(module.ExtensionType)) {
|
||||
@@ -118,10 +127,14 @@ namespace Orchard.Localization.Services {
|
||||
text = _webSiteFolder.ReadFile(modulePath);
|
||||
if (text != null) {
|
||||
ParseLocalizationStream(text, translations, true);
|
||||
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", modulePath);
|
||||
context.Monitor(_webSiteFolder.WhenPathChanges(modulePath));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var theme in _extensionManager.AvailableExtensions()) {
|
||||
if (DefaultExtensionTypes.IsTheme(theme.ExtensionType)) {
|
||||
@@ -129,24 +142,34 @@ namespace Orchard.Localization.Services {
|
||||
text = _webSiteFolder.ReadFile(themePath);
|
||||
if (text != null) {
|
||||
ParseLocalizationStream(text, translations, true);
|
||||
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", themePath);
|
||||
context.Monitor(_webSiteFolder.WhenPathChanges(themePath));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string rootPath = string.Format(RootLocalizationFilePathFormat, culture);
|
||||
text = _webSiteFolder.ReadFile(rootPath);
|
||||
if (text != null) {
|
||||
ParseLocalizationStream(text, translations, true);
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", rootPath);
|
||||
context.Monitor(_webSiteFolder.WhenPathChanges(rootPath));
|
||||
}
|
||||
}
|
||||
|
||||
string tenantPath = string.Format(TenantLocalizationFilePathFormat, _shellSettings.Name, culture);
|
||||
text = _webSiteFolder.ReadFile(tenantPath);
|
||||
if (text != null) {
|
||||
ParseLocalizationStream(text, translations, true);
|
||||
if (!DisableMonitoring) {
|
||||
Logger.Debug("Monitoring virtual path \"{0}\"", tenantPath);
|
||||
context.Monitor(_webSiteFolder.WhenPathChanges(tenantPath));
|
||||
}
|
||||
}
|
||||
|
||||
return translations;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user