aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Plugins/BasePlugin.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-21 00:57:06 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-21 00:57:06 -0500
commite5e39e8e56de7c4d6f0cadad579e9b20513f096d (patch)
tree8327d619f75bc19cb6f9cc72619221c3d998b57c /MediaBrowser.Common/Plugins/BasePlugin.cs
parent7b0306dce771abbe141e178330f2566bc0e21be6 (diff)
add metadata editor info endpoint
Diffstat (limited to 'MediaBrowser.Common/Plugins/BasePlugin.cs')
-rw-r--r--MediaBrowser.Common/Plugins/BasePlugin.cs38
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));
}
}