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.
*