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

apkhmv pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 0f6976b4398 IGNITE-27620 Disable pager on Windows by default (#7469)
0f6976b4398 is described below

commit 0f6976b4398b683678878840c8e571f6e2381e62
Author: Aleksandr Pakhomov <[email protected]>
AuthorDate: Thu Jan 29 15:38:09 2026 +0300

    IGNITE-27620 Disable pager on Windows by default (#7469)
---
 .../cli/core/repl/terminal/PagerSupport.java       |  8 ++-
 .../cli/core/repl/terminal/PagerSupportTest.java   | 62 ++++++++++++++++++++++
 2 files changed, 68 insertions(+), 2 deletions(-)

diff --git 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupport.java
 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupport.java
index b7366f82877..f3b3f994f74 100644
--- 
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupport.java
+++ 
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupport.java
@@ -201,8 +201,12 @@ public class PagerSupport {
     private static boolean readPagerEnabled(ConfigManagerProvider 
configManagerProvider) {
         String value = configManagerProvider.get()
                 .getCurrentProperty(CliConfigKeys.PAGER_ENABLED.value());
-        // Default to true if not set
-        return value == null || value.isEmpty() || Boolean.parseBoolean(value);
+        if (value == null || value.isEmpty()) {
+            // Default to false on Windows (more command doesn't support ANSI 
colors well)
+            // Default to true on other platforms
+            return !isWindows();
+        }
+        return Boolean.parseBoolean(value);
     }
 
     private static String readPagerCommand(ConfigManagerProvider 
configManagerProvider) {
diff --git 
a/modules/cli/src/test/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupportTest.java
 
b/modules/cli/src/test/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupportTest.java
index a1272743213..5d9c8c37957 100644
--- 
a/modules/cli/src/test/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupportTest.java
+++ 
b/modules/cli/src/test/java/org/apache/ignite/internal/cli/core/repl/terminal/PagerSupportTest.java
@@ -22,10 +22,16 @@ import static org.hamcrest.Matchers.is;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import org.apache.ignite.internal.cli.config.CliConfigKeys;
+import org.apache.ignite.internal.cli.config.ConfigManager;
+import org.apache.ignite.internal.cli.config.ConfigManagerProvider;
 import org.jline.terminal.Terminal;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.EnabledOnOs;
+import org.junit.jupiter.api.condition.OS;
 
 /**
  * Tests for {@link PagerSupport}.
@@ -197,6 +203,62 @@ class PagerSupportTest {
         }
     }
 
+    @Nested
+    @DisplayName("default pager enabled based on OS")
+    class DefaultPagerEnabledByOsTest {
+
+        @Test
+        @EnabledOnOs(OS.WINDOWS)
+        @DisplayName("returns false on Windows when not configured")
+        void disabledByDefaultOnWindows() {
+            PagerSupport pager = createPagerSupportWithConfig(null);
+
+            assertThat(pager.isPagerEnabled(), is(false));
+        }
+
+        @Test
+        @DisabledOnOs(OS.WINDOWS)
+        @DisplayName("returns true on non-Windows when not configured")
+        void enabledByDefaultOnNonWindows() {
+            PagerSupport pager = createPagerSupportWithConfig(null);
+
+            assertThat(pager.isPagerEnabled(), is(true));
+        }
+
+        @Test
+        @EnabledOnOs(OS.WINDOWS)
+        @DisplayName("respects explicit true config on Windows")
+        void explicitTrueOnWindows() {
+            PagerSupport pager = createPagerSupportWithConfig("true");
+
+            assertThat(pager.isPagerEnabled(), is(true));
+        }
+
+        @Test
+        @DisabledOnOs(OS.WINDOWS)
+        @DisplayName("respects explicit false config on non-Windows")
+        void explicitFalseOnNonWindows() {
+            PagerSupport pager = createPagerSupportWithConfig("false");
+
+            assertThat(pager.isPagerEnabled(), is(false));
+        }
+
+        private PagerSupport createPagerSupportWithConfig(String 
pagerEnabledValue) {
+            ConfigManager configManager = mock(ConfigManager.class);
+            
when(configManager.getCurrentProperty(CliConfigKeys.PAGER_ENABLED.value()))
+                    .thenReturn(pagerEnabledValue);
+            
when(configManager.getCurrentProperty(CliConfigKeys.PAGER_COMMAND.value()))
+                    .thenReturn(null);
+
+            ConfigManagerProvider configProvider = 
mock(ConfigManagerProvider.class);
+            when(configProvider.get()).thenReturn(configManager);
+
+            Terminal terminal = mock(Terminal.class);
+
+            return new PagerSupport(terminal, configProvider);
+        }
+    }
+
     /**
      * Creates a PagerSupport with test configuration.
      *

Reply via email to