diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-21 00:57:06 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-21 00:57:06 -0500 |
| commit | e5e39e8e56de7c4d6f0cadad579e9b20513f096d (patch) | |
| tree | 8327d619f75bc19cb6f9cc72619221c3d998b57c /MediaBrowser.Common | |
| parent | 7b0306dce771abbe141e178330f2566bc0e21be6 (diff) | |
add metadata editor info endpoint
Diffstat (limited to 'MediaBrowser.Common')
| -rw-r--r-- | MediaBrowser.Common/Configuration/ConfigurationHelper.cs | 15 | ||||
| -rw-r--r-- | MediaBrowser.Common/Plugins/BasePlugin.cs | 38 |
2 files changed, 28 insertions, 25 deletions
diff --git a/MediaBrowser.Common/Configuration/ConfigurationHelper.cs b/MediaBrowser.Common/Configuration/ConfigurationHelper.cs index 8c904b0dbf..7212b70e1d 100644 --- a/MediaBrowser.Common/Configuration/ConfigurationHelper.cs +++ b/MediaBrowser.Common/Configuration/ConfigurationHelper.cs @@ -55,20 +55,5 @@ namespace MediaBrowser.Common.Configuration return configuration; } } - - /// <summary> - /// Reads an xml configuration file from the file system - /// It will immediately save the configuration after loading it, just - /// in case there are new serializable properties - /// </summary> - /// <typeparam name="T"></typeparam> - /// <param name="path">The path.</param> - /// <param name="xmlSerializer">The XML serializer.</param> - /// <returns>``0.</returns> - public static T GetXmlConfiguration<T>(string path, IXmlSerializer xmlSerializer) - where T : class - { - return GetXmlConfiguration(typeof(T), path, xmlSerializer) as T; - } } } diff --git a/MediaBrowser.Common/Plugins/BasePlugin.cs b/MediaBrowser.Common/Plugins/BasePlugin.cs index 6bbd69f04b..1a536b4ffb 100644 --- a/MediaBrowser.Common/Plugins/BasePlugin.cs +++ b/MediaBrowser.Common/Plugins/BasePlugin.cs @@ -164,11 +164,7 @@ namespace MediaBrowser.Common.Plugins /// <summary> /// The _configuration sync lock /// </summary> - private object _configurationSyncLock = new object(); - /// <summary> - /// The _configuration initialized - /// </summary> - private bool _configurationInitialized; + private readonly object _configurationSyncLock = new object(); /// <summary> /// The _configuration /// </summary> @@ -182,17 +178,39 @@ namespace MediaBrowser.Common.Plugins get { // Lazy load - LazyInitializer.EnsureInitialized(ref _configuration, ref _configurationInitialized, ref _configurationSyncLock, () => ConfigurationHelper.GetXmlConfiguration(ConfigurationType, ConfigurationFilePath, XmlSerializer) as TConfigurationType); + if (_configuration == null) + { + lock (_configurationSyncLock) + { + if (_configuration == null) + { + _configuration = LoadConfiguration(); + } + } + } return _configuration; } protected set { _configuration = value; + } + } - if (value == null) - { - _configurationInitialized = false; - } + private TConfigurationType LoadConfiguration() + { + var path = ConfigurationFilePath; + + try + { + return (TConfigurationType)XmlSerializer.DeserializeFromFile(typeof(TConfigurationType), path); + } + catch (FileNotFoundException) + { + return (TConfigurationType)Activator.CreateInstance(typeof(TConfigurationType)); + } + catch (Exception ex) + { + return (TConfigurationType)Activator.CreateInstance(typeof(TConfigurationType)); } } |
