This is an automated email from the ASF dual-hosted git repository.

paulirwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 9b1a2a532559adf37e0104b3e3180e04038be52b
Author: Paul Irwin <[email protected]>
AuthorDate: Mon Oct 14 22:11:15 2024 -0600

    Use TextWriter.Null for SystemConsole by default, #936
---
 src/Lucene.Net.QueryParser/Classic/QueryParserTokenManager.cs  |  8 ++++----
 .../Standard/Parser/StandardSyntaxParserTokenManager.cs        |  6 +++---
 .../Support/Util/LuceneTestFrameworkInitializer.cs             | 10 +++++++---
 src/Lucene.Net/Support/Util/SystemConsole.cs                   |  9 ++++-----
 src/dotnet/tools/lucene-cli/Program.cs                         |  7 ++++++-
 5 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/Lucene.Net.QueryParser/Classic/QueryParserTokenManager.cs 
b/src/Lucene.Net.QueryParser/Classic/QueryParserTokenManager.cs
index b7e7ea01c..79d0032bd 100644
--- a/src/Lucene.Net.QueryParser/Classic/QueryParserTokenManager.cs
+++ b/src/Lucene.Net.QueryParser/Classic/QueryParserTokenManager.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support.IO;
+using Lucene.Net.Support.IO;
 using System;
 using System.Diagnostics.CodeAnalysis;
 using System.IO;
@@ -31,7 +31,7 @@ namespace Lucene.Net.QueryParsers.Classic
     {
         /// <summary>Debug output. </summary>
 #pragma warning disable IDE0052 // Remove unread private members
-        private TextWriter debugStream; // LUCENENET specific - made private, 
since we already have a setter
+        private TextWriter debugStream = Console.Out; // LUCENENET specific - 
made private, since we already have a setter
 #pragma warning restore IDE0052 // Remove unread private members
         /// <summary>Set debug output. </summary>
         public virtual void SetDebugStream(TextWriter ds)
@@ -1162,7 +1162,7 @@ namespace Lucene.Net.QueryParsers.Classic
             m_input_stream = stream;
         }
 
-        /// <summary>Constructor. 
+        /// <summary>Constructor.
         /// <para>Note that this constructor calls a virtual method <see 
cref="SwitchTo(int)" />. If you
         /// are subclassing this class, use <see 
cref="QueryParserTokenManager(ICharStream)" /> constructor and
         /// call SwitchTo if needed.</para>
@@ -1358,4 +1358,4 @@ EOFLoop: {/* LUCENENET: intentionally blank */}
             while (start++ != end);
         }
     }
-}
\ No newline at end of file
+}
diff --git 
a/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs
 
b/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs
index cca7cc3f5..660dad827 100644
--- 
a/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs
+++ 
b/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support.IO;
+using Lucene.Net.Support.IO;
 using System.Diagnostics.CodeAnalysis;
 using System;
 using System.IO;
@@ -32,7 +32,7 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Parser
     {
         /// <summary>Debug output.</summary>
 #pragma warning disable IDE0052 // Remove unread private members
-        private TextWriter debugStream; // LUCENENET specific - made private, 
since we already have a setter
+        private TextWriter debugStream = Console.Out; // LUCENENET specific - 
made private, since we already have a setter
 #pragma warning restore IDE0052 // Remove unread private members
         /// <summary>Set debug output.</summary>
         public void SetDebugStream(TextWriter ds) { debugStream = new 
SafeTextWriterWrapper(ds); }
@@ -869,7 +869,7 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Parser
             Token matchedToken;
             int curPos = 0;
 
-            
+
             for (;;)
             {
                 try
diff --git 
a/src/Lucene.Net.TestFramework/Support/Util/LuceneTestFrameworkInitializer.cs 
b/src/Lucene.Net.TestFramework/Support/Util/LuceneTestFrameworkInitializer.cs
index 49b520ee2..d3391b121 100644
--- 
a/src/Lucene.Net.TestFramework/Support/Util/LuceneTestFrameworkInitializer.cs
+++ 
b/src/Lucene.Net.TestFramework/Support/Util/LuceneTestFrameworkInitializer.cs
@@ -86,7 +86,7 @@ namespace Lucene.Net.Util
     /// <b>Example:</b>
     /// <code>
     /// using RandomizedTesting.Generators;
-    /// 
+    ///
     /// public class Startup : LuceneTestFrameworkInitializer
     /// {
     ///     // Run first
@@ -94,7 +94,7 @@ namespace Lucene.Net.Util
     ///     {
     ///         // Inject a custom configuration factory
     ///         ConfigurationFactory = new MyConfigurationFactory();
-    /// 
+    ///
     ///         // Do any additional dependency injection setup here
     ///     }
     ///
@@ -301,7 +301,7 @@ namespace Lucene.Net.Util
         /// <para/>
         /// Repeatable random setup can be done by calling <see 
cref="Random"/> or by using methods of <see cref="LuceneTestCase"/>.
         /// <para/>
-        /// It is not possible to set <see cref="CodecFactory"/>, <see 
cref="PostingsFormatFactory"/>, 
+        /// It is not possible to set <see cref="CodecFactory"/>, <see 
cref="PostingsFormatFactory"/>,
         /// <see cref="DocValuesFormatFactory"/> and <see 
cref="ConfigurationFactory"/>
         /// from this method. Those must be called in <see 
cref="Initialize()"/>.
         /// </summary>
@@ -334,6 +334,10 @@ namespace Lucene.Net.Util
         /// </summary>
         internal void InitializeStaticState()
         {
+            // Enable console output
+            SystemConsole.Out = Console.Out;
+            SystemConsole.Error = Console.Error;
+
             // Setup the factories
             
ConfigurationSettings.SetConfigurationFactory(ConfigurationFactory);
             Codec.SetCodecFactory(CodecFactory);
diff --git a/src/Lucene.Net/Support/Util/SystemConsole.cs 
b/src/Lucene.Net/Support/Util/SystemConsole.cs
index 486aec649..5dd841f56 100644
--- a/src/Lucene.Net/Support/Util/SystemConsole.cs
+++ b/src/Lucene.Net/Support/Util/SystemConsole.cs
@@ -26,15 +26,14 @@ namespace Lucene.Net.Util
 
     /// <summary>
     /// Mimics <see cref="System.Console"/>, but allows for swapping
-    /// the <see cref="TextWriter"/> of 
-    /// <see cref="Out"/> and <see cref="Error"/>, or the <see 
cref="TextReader"/> of <see cref="In"/>
+    /// the <see cref="TextWriter"/> of
+    /// <see cref="Out"/> and <see cref="Error"/>
     /// with user-defined implementations.
     /// </summary>
     public static class SystemConsole
     {
-        public static TextWriter Out { get; set; } = Console.Out;
-        public static TextWriter Error { get; set; } = Console.Error;
-        public static TextReader In { get; set; } = Console.In;
+        public static TextWriter Out { get; set; } = TextWriter.Null;
+        public static TextWriter Error { get; set; } = TextWriter.Null;
 
         [MethodImpl(MethodImplOptions.NoInlining)]
 #if FEATURE_CODE_ACCESS_SECURITY
diff --git a/src/dotnet/tools/lucene-cli/Program.cs 
b/src/dotnet/tools/lucene-cli/Program.cs
index cc6900bfe..77c548f4f 100644
--- a/src/dotnet/tools/lucene-cli/Program.cs
+++ b/src/dotnet/tools/lucene-cli/Program.cs
@@ -1,4 +1,5 @@
 using Lucene.Net.Configuration;
+using Lucene.Net.Util;
 using Microsoft.Extensions.Configuration;
 using System;
 
@@ -24,8 +25,12 @@ namespace Lucene.Net.Cli
     {
         public static int Main(string[] args)
         {
+            // Enable console output
+            SystemConsole.Out = Console.Out;
+            SystemConsole.Error = Console.Error;
+
             var configuration = new ConfigurationBuilder()
-                .AddEnvironmentVariables(prefix: "lucene:") // Use a custom 
prefix to only load Lucene.NET settings 
+                .AddEnvironmentVariables(prefix: "lucene:") // Use a custom 
prefix to only load Lucene.NET settings
                 .AddJsonFile("appsettings.json", optional: true)
                 .Build();
             ConfigurationSettings.SetConfigurationFactory(new 
ConfigurationFactory(configuration));

Reply via email to