From cd951e69df9b6f0c2525c5339ee602a90fe38bb4 Mon Sep 17 00:00:00 2001 From: NextTurn <45985406+NextTurn@users.noreply.github.com> Date: Mon, 27 Jul 2020 00:00:00 +0800 Subject: [PATCH] Make `` and `` optional --- samples/sample-complete.xml | 6 ++++++ samples/sample-minimal.xml | 4 ---- src/WinSW.Core/Configuration/DefaultSettings.cs | 4 ++-- src/WinSW.Core/ServiceDescriptor.cs | 4 ++-- src/WinSW.Tests/Configuration/ExamplesTest.cs | 4 ---- src/WinSW.Tests/Util/ServiceDescriptorAssert.cs | 2 -- src/WinSW/Program.cs | 6 +++++- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/samples/sample-complete.xml b/samples/sample-complete.xml index ec36cd3..c8ec91f 100644 --- a/samples/sample-complete.xml +++ b/samples/sample-complete.xml @@ -39,10 +39,16 @@ All options in other sections are optional myapp + + + + %BASE%\myExecutable.exe diff --git a/samples/sample-minimal.xml b/samples/sample-minimal.xml index 929e751..87d9f3d 100644 --- a/samples/sample-minimal.xml +++ b/samples/sample-minimal.xml @@ -36,10 +36,6 @@ myapp - - MyApp Service (powered by WinSW) - - This service is a service created from a minimal configuration diff --git a/src/WinSW.Core/Configuration/DefaultSettings.cs b/src/WinSW.Core/Configuration/DefaultSettings.cs index 9878291..470e2cb 100644 --- a/src/WinSW.Core/Configuration/DefaultSettings.cs +++ b/src/WinSW.Core/Configuration/DefaultSettings.cs @@ -14,9 +14,9 @@ namespace WinSW.Configuration { public string Id => throw new InvalidOperationException(nameof(this.Id) + " must be specified."); - public string Caption => throw new InvalidOperationException(nameof(this.Caption) + " must be specified."); + public string Caption => string.Empty; - public string Description => throw new InvalidOperationException(nameof(this.Description) + " must be specified."); + public string Description => string.Empty; public string Executable => throw new InvalidOperationException(nameof(this.Executable) + " must be specified."); diff --git a/src/WinSW.Core/ServiceDescriptor.cs b/src/WinSW.Core/ServiceDescriptor.cs index 14ca121..fd92ac6 100644 --- a/src/WinSW.Core/ServiceDescriptor.cs +++ b/src/WinSW.Core/ServiceDescriptor.cs @@ -557,9 +557,9 @@ namespace WinSW public string Id => this.SingleElement("id"); - public string Caption => this.SingleElement("name"); + public string Caption => this.SingleElement("name", true) ?? Defaults.Caption; - public string Description => this.SingleElement("description"); + public string Description => this.SingleElement("description", true) ?? Defaults.Description; /// /// Start mode of the Service diff --git a/src/WinSW.Tests/Configuration/ExamplesTest.cs b/src/WinSW.Tests/Configuration/ExamplesTest.cs index e76d60a..7e102fb 100644 --- a/src/WinSW.Tests/Configuration/ExamplesTest.cs +++ b/src/WinSW.Tests/Configuration/ExamplesTest.cs @@ -18,8 +18,6 @@ namespace WinSW.Tests.Configuration ServiceDescriptor desc = Load("complete"); Assert.Equal("myapp", desc.Id); - Assert.Equal("MyApp Service (powered by WinSW)", desc.Caption); - Assert.Equal("This service is a service created from a sample configuration", desc.Description); Assert.Equal("%BASE%\\myExecutable.exe", desc.Executable); ServiceDescriptorAssert.AssertAllOptionalPropertiesAreDefault(desc); @@ -31,8 +29,6 @@ namespace WinSW.Tests.Configuration ServiceDescriptor desc = Load("minimal"); Assert.Equal("myapp", desc.Id); - Assert.Equal("MyApp Service (powered by WinSW)", desc.Caption); - Assert.Equal("This service is a service created from a minimal configuration", desc.Description); Assert.Equal("%BASE%\\myExecutable.exe", desc.Executable); ServiceDescriptorAssert.AssertAllOptionalPropertiesAreDefault(desc); diff --git a/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs b/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs index e7940e6..ed6921e 100644 --- a/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs +++ b/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs @@ -54,8 +54,6 @@ namespace WinSW.Tests.Util { var properties = AllProperties; properties.Remove("Id"); - properties.Remove("Caption"); - properties.Remove("Description"); properties.Remove("Executable"); return properties; } diff --git a/src/WinSW/Program.cs b/src/WinSW/Program.cs index 1e20936..06f5497 100644 --- a/src/WinSW/Program.cs +++ b/src/WinSW/Program.cs @@ -378,7 +378,11 @@ namespace WinSW username, password); - sc.SetDescription(descriptor.Description); + string description = descriptor.Description; + if (description.Length != 0) + { + sc.SetDescription(description); + } SC_ACTION[] actions = descriptor.FailureActions; if (actions.Length > 0)