From 46a4f1d98fdedc82c701ada198252dfd6099959f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 19 Dec 2017 12:24:49 -0800 Subject: Integrate simplified message handling --- .../BaseCompilerExtension.cs | 2 +- .../IBinderFileManagerCore.cs | 2 +- src/WixToolset.Extensibility/ICompileContext.cs | 3 +- src/WixToolset.Extensibility/IDecompilerCore.cs | 2 +- src/WixToolset.Extensibility/IInscribeContext.cs | 6 +- src/WixToolset.Extensibility/IInspectorCore.cs | 4 +- src/WixToolset.Extensibility/ILibraryContext.cs | 3 +- src/WixToolset.Extensibility/IMessageListener.cs | 17 +++++ src/WixToolset.Extensibility/IPreprocessContext.cs | 3 +- src/WixToolset.Extensibility/IUnbindContext.cs | 9 ++- .../Services/IBindContext.cs | 2 +- .../Services/ICommandLineContext.cs | 3 +- .../Services/ILinkContext.cs | 2 +- .../Services/IMessaging.cs | 80 ++++++++++++++++++++++ 14 files changed, 119 insertions(+), 19 deletions(-) create mode 100644 src/WixToolset.Extensibility/IMessageListener.cs create mode 100644 src/WixToolset.Extensibility/Services/IMessaging.cs (limited to 'src') diff --git a/src/WixToolset.Extensibility/BaseCompilerExtension.cs b/src/WixToolset.Extensibility/BaseCompilerExtension.cs index 5dfe5dcf..0f386e28 100644 --- a/src/WixToolset.Extensibility/BaseCompilerExtension.cs +++ b/src/WixToolset.Extensibility/BaseCompilerExtension.cs @@ -15,7 +15,7 @@ namespace WixToolset.Extensibility /// /// Messaging for use by the extension. /// - protected Messaging Messaging { get; private set; } + protected IMessaging Messaging { get; private set; } /// /// ParserHelper for use by the extension. diff --git a/src/WixToolset.Extensibility/IBinderFileManagerCore.cs b/src/WixToolset.Extensibility/IBinderFileManagerCore.cs index b73acb6b..27644413 100644 --- a/src/WixToolset.Extensibility/IBinderFileManagerCore.cs +++ b/src/WixToolset.Extensibility/IBinderFileManagerCore.cs @@ -6,7 +6,7 @@ namespace WixToolset.Extensibility using WixToolset.Data; using WixToolset.Data.Bind; - public interface IBinderFileManagerCore : IMessageHandler + public interface IBinderFileManagerCore { /// /// Gets or sets the path to cabinet cache. diff --git a/src/WixToolset.Extensibility/ICompileContext.cs b/src/WixToolset.Extensibility/ICompileContext.cs index bd0d0a4b..fbe38d63 100644 --- a/src/WixToolset.Extensibility/ICompileContext.cs +++ b/src/WixToolset.Extensibility/ICompileContext.cs @@ -6,12 +6,13 @@ namespace WixToolset.Extensibility using System.Collections.Generic; using System.Xml.Linq; using WixToolset.Data; + using WixToolset.Extensibility.Services; public interface ICompileContext { IServiceProvider ServiceProvider { get; } - Messaging Messaging { get; set; } + IMessaging Messaging { get; set; } string CompilationId { get; set; } diff --git a/src/WixToolset.Extensibility/IDecompilerCore.cs b/src/WixToolset.Extensibility/IDecompilerCore.cs index 1c367e0c..2133829a 100644 --- a/src/WixToolset.Extensibility/IDecompilerCore.cs +++ b/src/WixToolset.Extensibility/IDecompilerCore.cs @@ -6,7 +6,7 @@ namespace WixToolset.Extensibility using WixToolset.Data; using Wix = WixToolset.Data.Serialize; - public interface IDecompilerCore : IMessageHandler + public interface IDecompilerCore { /// diff --git a/src/WixToolset.Extensibility/IInscribeContext.cs b/src/WixToolset.Extensibility/IInscribeContext.cs index 6294271e..7f741024 100644 --- a/src/WixToolset.Extensibility/IInscribeContext.cs +++ b/src/WixToolset.Extensibility/IInscribeContext.cs @@ -3,18 +3,18 @@ namespace WixToolset.Extensibility { using System; - using WixToolset.Data; + using WixToolset.Extensibility.Services; public interface IInscribeContext { IServiceProvider ServiceProvider { get; } + IMessaging Messaging { get; set; } + string InputFilePath { get; set; } string IntermediateFolder { get; set; } - Messaging Messaging { get; } - string OutputFile { get; set; } string SignedEngineFile { get; set; } diff --git a/src/WixToolset.Extensibility/IInspectorCore.cs b/src/WixToolset.Extensibility/IInspectorCore.cs index 06239ce5..9420ea05 100644 --- a/src/WixToolset.Extensibility/IInspectorCore.cs +++ b/src/WixToolset.Extensibility/IInspectorCore.cs @@ -2,12 +2,10 @@ namespace WixToolset.Extensibility { - using WixToolset.Data; - /// /// Core facilities for inspector extensions. /// - public interface IInspectorCore : IMessageHandler + public interface IInspectorCore { /// /// Gets whether an error occured. diff --git a/src/WixToolset.Extensibility/ILibraryContext.cs b/src/WixToolset.Extensibility/ILibraryContext.cs index b8c1887a..e715080f 100644 --- a/src/WixToolset.Extensibility/ILibraryContext.cs +++ b/src/WixToolset.Extensibility/ILibraryContext.cs @@ -5,12 +5,13 @@ namespace WixToolset.Extensibility using System; using System.Collections.Generic; using WixToolset.Data; + using WixToolset.Extensibility.Services; public interface ILibraryContext { IServiceProvider ServiceProvider { get; } - Messaging Messaging { get; set; } + IMessaging Messaging { get; set; } bool BindFiles { get; set; } diff --git a/src/WixToolset.Extensibility/IMessageListener.cs b/src/WixToolset.Extensibility/IMessageListener.cs new file mode 100644 index 00000000..91e3da31 --- /dev/null +++ b/src/WixToolset.Extensibility/IMessageListener.cs @@ -0,0 +1,17 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +namespace WixToolset.Extensibility +{ + using WixToolset.Data; + + public interface IMessageListener + { + string ShortAppName { get; } + + string LongAppName { get; } + + void Write(Message message); + + void Write(string message); + } +} diff --git a/src/WixToolset.Extensibility/IPreprocessContext.cs b/src/WixToolset.Extensibility/IPreprocessContext.cs index 0f9c90bf..2e288d59 100644 --- a/src/WixToolset.Extensibility/IPreprocessContext.cs +++ b/src/WixToolset.Extensibility/IPreprocessContext.cs @@ -5,12 +5,13 @@ namespace WixToolset.Extensibility using System; using System.Collections.Generic; using WixToolset.Data; + using WixToolset.Extensibility.Services; public interface IPreprocessContext { IServiceProvider ServiceProvider { get; } - Messaging Messaging { get; set; } + IMessaging Messaging { get; set; } IEnumerable Extensions { get; set; } diff --git a/src/WixToolset.Extensibility/IUnbindContext.cs b/src/WixToolset.Extensibility/IUnbindContext.cs index 82364652..beaa5491 100644 --- a/src/WixToolset.Extensibility/IUnbindContext.cs +++ b/src/WixToolset.Extensibility/IUnbindContext.cs @@ -2,10 +2,15 @@ namespace WixToolset.Extensibility { - using WixToolset.Data; + using System; + using WixToolset.Extensibility.Services; public interface IUnbindContext { + IServiceProvider ServiceProvider { get; } + + IMessaging Messaging { get; set; } + string ExportBasePath { get; set; } string InputFilePath { get; set; } @@ -14,8 +19,6 @@ namespace WixToolset.Extensibility bool IsAdminImage { get; set; } - Messaging Messaging { get; } - bool SuppressDemodularization { get; set; } bool SuppressExtractCabinets { get; set; } diff --git a/src/WixToolset.Extensibility/Services/IBindContext.cs b/src/WixToolset.Extensibility/Services/IBindContext.cs index 6bed0ef6..ad1aa818 100644 --- a/src/WixToolset.Extensibility/Services/IBindContext.cs +++ b/src/WixToolset.Extensibility/Services/IBindContext.cs @@ -10,7 +10,7 @@ namespace WixToolset.Extensibility.Services { IServiceProvider ServiceProvider { get; } - Messaging Messaging { get; set; } + IMessaging Messaging { get; set; } IEnumerable BindPaths { get; set; } diff --git a/src/WixToolset.Extensibility/Services/ICommandLineContext.cs b/src/WixToolset.Extensibility/Services/ICommandLineContext.cs index 0e040d7f..27d4e6dd 100644 --- a/src/WixToolset.Extensibility/Services/ICommandLineContext.cs +++ b/src/WixToolset.Extensibility/Services/ICommandLineContext.cs @@ -3,13 +3,12 @@ namespace WixToolset.Extensibility.Services { using System; - using WixToolset.Data; public interface ICommandLineContext { IServiceProvider ServiceProvider { get; } - Messaging Messaging { get; set; } + IMessaging Messaging { get; set; } IExtensionManager ExtensionManager { get; set; } diff --git a/src/WixToolset.Extensibility/Services/ILinkContext.cs b/src/WixToolset.Extensibility/Services/ILinkContext.cs index 25c7962f..e098a900 100644 --- a/src/WixToolset.Extensibility/Services/ILinkContext.cs +++ b/src/WixToolset.Extensibility/Services/ILinkContext.cs @@ -10,7 +10,7 @@ namespace WixToolset.Extensibility.Services { IServiceProvider ServiceProvider { get; } - Messaging Messaging { get; set; } + IMessaging Messaging { get; set; } IEnumerable Extensions { get; set; } diff --git a/src/WixToolset.Extensibility/Services/IMessaging.cs b/src/WixToolset.Extensibility/Services/IMessaging.cs new file mode 100644 index 00000000..901c7af4 --- /dev/null +++ b/src/WixToolset.Extensibility/Services/IMessaging.cs @@ -0,0 +1,80 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +namespace WixToolset.Extensibility.Services +{ + using WixToolset.Data; + + /// + /// Interface for handling messages (error/warning/verbose). + /// + public interface IMessaging + { + /// + /// Indicates whether an error has been found. + /// + /// A bool indicating whether an error has been found. + bool EncounteredError { get; } + + /// + /// Gets the last error code encountered during messaging. + /// + /// The exit code for the process. + int LastErrorNumber { get; } + + /// + /// Gets or sets the option to show verbose messages. + /// + /// The option to show verbose messages. + bool ShowVerboseMessages { get; set; } + + /// + /// Gets or sets the option to suppress all warning messages. + /// + /// The option to suppress all warning messages. + bool SuppressAllWarnings { get; set; } + + /// + /// Gets and sets the option to treat warnings as errors. + /// + /// The option to treat warnings as errors. + bool WarningsAsError { get; set; } + + /// + /// Sets the listener for messaging. + /// + /// + void SetListener(IMessageListener listener); + + /// + /// Adds a warning message id to be elevated to an error message. + /// + /// Id of the message to elevate. + void ElevateWarningMessage(int warningNumber); + + /// + /// Adds a warning message id to be suppressed in message output. + /// + /// Id of the message to suppress. + void SuppressWarningMessage(int warningNumber); + + /// + /// Formats a message to standard message. + /// + /// Message to format. + /// Formatted message + string FormatMessage(Message message); + + /// + /// Sends a message with the given arguments. + /// + /// Message to write. + void Write(Message message); + + /// + /// Sends a message with the given arguments. + /// + /// Message to write. + /// Indicates where to write a verbose message. + void Write(string message, bool verbose = false); + } +} -- cgit v1.2.3-55-g6feb