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/Plugins/BasePlugin.cs | |
| parent | 7b0306dce771abbe141e178330f2566bc0e21be6 (diff) | |
add metadata editor info endpoint
Diffstat (limited to 'MediaBrowser.Common/Plugins/BasePlugin.cs')
| -rw-r--r-- | MediaBrowser.Common/Plugins/BasePlugin.cs | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/MediaBrowser.Common/Plugins/BasePlugin.cs b/MediaBrowser.Common/Plugins/BasePlugin.cs index 6bbd69f04..1a536b4ff 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)); } } |
