diff --git a/src/Core/ServiceWrapper/WrapperService.cs b/src/Core/ServiceWrapper/WrapperService.cs index 9ebda00..04ba60d 100644 --- a/src/Core/ServiceWrapper/WrapperService.cs +++ b/src/Core/ServiceWrapper/WrapperService.cs @@ -280,7 +280,6 @@ namespace WinSW Log.Info("Starting " + this.descriptor.Executable + ' ' + startArguments); // Load and start extensions - Console.WriteLine("Loading extensinos"); this.ExtensionManager.LoadExtensions(); this.ExtensionManager.FireOnWrapperStarted(); diff --git a/src/Core/WinSWCore/Configuration/YamlConfiguration.cs b/src/Core/WinSWCore/Configuration/YamlConfiguration.cs index 976a648..4eb18fb 100644 --- a/src/Core/WinSWCore/Configuration/YamlConfiguration.cs +++ b/src/Core/WinSWCore/Configuration/YamlConfiguration.cs @@ -648,16 +648,27 @@ namespace WinSW.Configuration { get { + int extensionNumber = 1; + if (this.YamlExtensionsConfiguration is null) { return new List(0); } - var result = new List(); + var result = new List(this.YamlExtensionsConfiguration.Count); foreach (var item in this.YamlExtensionsConfiguration) { - result.Add(item.GetId()); + try + { + result.Add(item.GetId()); + } + catch (InvalidDataException) + { + throw new InvalidDataException("Id is null in Extension " + extensionNumber); + } + + extensionNumber++; } return result; diff --git a/src/Core/WinSWCore/Configuration/YamlExtensionConfiguration.cs b/src/Core/WinSWCore/Configuration/YamlExtensionConfiguration.cs index 3d72cc3..9ea32f6 100644 --- a/src/Core/WinSWCore/Configuration/YamlExtensionConfiguration.cs +++ b/src/Core/WinSWCore/Configuration/YamlExtensionConfiguration.cs @@ -22,7 +22,7 @@ namespace WinSW.Configuration { if (this.ExtensionId is null) { - throw new InvalidDataException("Extension Id can't be empty"); + throw new InvalidDataException(); } return this.ExtensionId; @@ -32,7 +32,7 @@ namespace WinSW.Configuration { if (this.ExtensionClassName is null) { - throw new InvalidDataException("Extension ClassName can't be empty"); + throw new InvalidDataException($@"Extension ClassName is empty in extension {this.GetId()}"); } return this.ExtensionClassName; @@ -42,7 +42,7 @@ namespace WinSW.Configuration { if (this.Settings is null) { - throw new InvalidDataException("Extension settings not found"); + throw new InvalidDataException(@$"Extension settings is empty in extension {this.GetId()}"); } return this.Settings; diff --git a/src/Core/WinSWCore/Extensions/IWinSWExtension.cs b/src/Core/WinSWCore/Extensions/IWinSWExtension.cs index 708968f..fb683e4 100644 --- a/src/Core/WinSWCore/Extensions/IWinSWExtension.cs +++ b/src/Core/WinSWCore/Extensions/IWinSWExtension.cs @@ -33,7 +33,7 @@ namespace WinSW.Extensions /// /// Configure the extension from Yaml configuration /// - /// Yaml Service Descptor + /// YamlConfiguration /// Configuration Node void Configure(IWinSWConfiguration descriptor, YamlExtensionConfiguration config); diff --git a/src/Core/WinSWCore/Util/ConfigHelper.cs b/src/Core/WinSWCore/Util/ConfigHelper.cs index 07bbe3f..8579a2b 100644 --- a/src/Core/WinSWCore/Util/ConfigHelper.cs +++ b/src/Core/WinSWCore/Util/ConfigHelper.cs @@ -38,7 +38,7 @@ namespace WinSW.Util { value = value.ToLower(); - if (value.Equals("true") || value.Equals("yes") || value.Equals("on")) + if (value.Equals("true") || value.Equals("yes") || value.Equals("on") || value.Equals("y") || value.Equals("1")) { return true; }