This is an automated email from the ASF dual-hosted git repository.
mpochatkin 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 9d8121feec6 IGNITE-26903 Unify node config templates (#6876)
9d8121feec6 is described below
commit 9d8121feec60d1089025588b320c76b5325f325e
Author: Vadim Pakhnushev <[email protected]>
AuthorDate: Mon Nov 3 12:52:41 2025 +0300
IGNITE-26903 Unify node config templates (#6876)
---
.../repl/executor/ItIgnitePicocliCommandsTest.java | 6 --
.../management/topology/ItLogicalTopologyTest.java | 2 +
.../node/ItNodeStalenessAndRestartTest.java | 1 +
.../internal/ClusterPerClassIntegrationTest.java | 35 +--------
.../internal/ClusterPerTestIntegrationTest.java | 72 +-----------------
.../apache/ignite/internal/ConfigTemplates.java | 86 ++++++++++++++++++++++
...AvailablePartitionSequentialRecoveriesTest.java | 1 +
...blePartitionsRecoveryNoStaleRecoveriesTest.java | 1 +
.../ItHighAvailablePartitionsRecoveryTest.java | 1 +
9 files changed, 94 insertions(+), 111 deletions(-)
diff --git
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
index 01185c8e7a9..3ce9526dfbd 100644
---
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
+++
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
@@ -18,7 +18,6 @@
package org.apache.ignite.internal.cli.core.repl.executor;
import static java.util.stream.Collectors.toList;
-import static
org.apache.ignite.internal.ClusterPerTestIntegrationTest.FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
import static org.awaitility.Awaitility.await;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
@@ -114,11 +113,6 @@ public class ItIgnitePicocliCommandsTest extends
CliIntegrationTest {
return TopLevelCliReplCommand.class;
}
- @Override
- protected String getNodeBootstrapConfigTemplate() {
- return FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
- }
-
@BeforeEach
void setupSystemCompleter() {
dynamicCompleterActivationPoint.activateDynamicCompleter(dynamicCompleterRegistry);
diff --git
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/topology/ItLogicalTopologyTest.java
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/topology/ItLogicalTopologyTest.java
index 97e3816272a..d8ce414dbd0 100644
---
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/topology/ItLogicalTopologyTest.java
+++
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/topology/ItLogicalTopologyTest.java
@@ -17,6 +17,8 @@
package org.apache.ignite.internal.cluster.management.topology;
+import static
org.apache.ignite.internal.ConfigTemplates.DISABLED_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
+import static
org.apache.ignite.internal.ConfigTemplates.FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
import static org.apache.ignite.internal.TestWrappers.unwrapIgniteImpl;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.empty;
diff --git
a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/node/ItNodeStalenessAndRestartTest.java
b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/node/ItNodeStalenessAndRestartTest.java
index 90643936188..a7ef269561f 100644
---
a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/node/ItNodeStalenessAndRestartTest.java
+++
b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/node/ItNodeStalenessAndRestartTest.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.network.node;
import static java.util.concurrent.TimeUnit.SECONDS;
+import static
org.apache.ignite.internal.ConfigTemplates.FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
import static org.apache.ignite.internal.TestWrappers.unwrapIgniteImpl;
import static
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerClassIntegrationTest.java
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerClassIntegrationTest.java
index c76046ee12f..12d1014f328 100644
---
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerClassIntegrationTest.java
+++
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerClassIntegrationTest.java
@@ -17,10 +17,7 @@
package org.apache.ignite.internal;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIMEM_PROFILE_NAME;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIPERSIST_PROFILE_NAME;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_ROCKSDB_PROFILE_NAME;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_TEST_PROFILE_NAME;
+import static
org.apache.ignite.internal.ConfigTemplates.NODE_BOOTSTRAP_CFG_TEMPLATE;
import static org.apache.ignite.internal.TestWrappers.unwrapIgniteImpl;
import static
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
import static
org.apache.ignite.internal.catalog.descriptors.CatalogIndexStatus.AVAILABLE;
@@ -90,36 +87,6 @@ public abstract class ClusterPerClassIntegrationTest extends
BaseIgniteAbstractT
/** Default partition count for tests. */
protected static final int DEFAULT_PARTITION_COUNT = 25;
- /** Nodes bootstrap configuration pattern. */
- private static final String NODE_BOOTSTRAP_CFG_TEMPLATE = "ignite {\n"
- + " network: {\n"
- + " port: {},\n"
- + " nodeFinder.netClusterNodes: [ {} ]\n"
- + " },\n"
- + " storage.profiles: {"
- + " " + DEFAULT_TEST_PROFILE_NAME + ".engine: test, "
- + " " + DEFAULT_AIPERSIST_PROFILE_NAME + ".engine:
aipersist, "
- + " " + DEFAULT_AIMEM_PROFILE_NAME + ".engine: aimem, "
- + " " + DEFAULT_ROCKSDB_PROFILE_NAME + ".engine: rocksdb"
- + " },\n"
- + " clientConnector.port: {},\n"
- + " clientConnector.sendServerExceptionStackTraceToClient:
true,\n"
- + " rest.port: {},\n"
- + " failureHandler.dumpThreadsOnFailure: false\n"
- + "}";
-
- /** Template for tests that may not have some storage engines enabled. */
- protected static final String
NODE_BOOTSTRAP_CFG_TEMPLATE_WITHOUT_STORAGE_PROFILES = "ignite {\n"
- + " network: {\n"
- + " port: {},\n"
- + " nodeFinder.netClusterNodes: [ {} ]\n"
- + " },\n"
- + " clientConnector.port: {},\n"
- + " clientConnector.sendServerExceptionStackTraceToClient:
true,\n"
- + " rest.port: {},\n"
- + " failureHandler.dumpThreadsOnFailure: false\n"
- + "}";
-
/** Cluster nodes. */
protected static Cluster CLUSTER;
diff --git
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerTestIntegrationTest.java
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerTestIntegrationTest.java
index fc4cacecb49..8025f822d63 100644
---
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerTestIntegrationTest.java
+++
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ClusterPerTestIntegrationTest.java
@@ -17,10 +17,7 @@
package org.apache.ignite.internal;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIMEM_PROFILE_NAME;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIPERSIST_PROFILE_NAME;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_ROCKSDB_PROFILE_NAME;
-import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_TEST_PROFILE_NAME;
+import static
org.apache.ignite.internal.ConfigTemplates.NODE_BOOTSTRAP_CFG_TEMPLATE;
import static org.apache.ignite.internal.TestWrappers.unwrapIgniteImpl;
import java.nio.file.Path;
@@ -59,73 +56,6 @@ import
org.junit.jupiter.api.extension.TestExecutionExceptionHandler;
public abstract class ClusterPerTestIntegrationTest extends
BaseIgniteAbstractTest {
private static final IgniteLogger LOG =
Loggers.forClass(ClusterPerTestIntegrationTest.class);
- /** Nodes bootstrap configuration pattern. */
- private static final String NODE_BOOTSTRAP_CFG_TEMPLATE = "ignite {\n"
- + " network: {\n"
- + " port: {},\n"
- + " nodeFinder.netClusterNodes: [ {} ]\n"
- + " },\n"
- + " storage.profiles: {"
- + " " + DEFAULT_TEST_PROFILE_NAME + ".engine: test, "
- + " " + DEFAULT_AIPERSIST_PROFILE_NAME + ".engine:
aipersist, "
- + " " + DEFAULT_AIMEM_PROFILE_NAME + ".engine: aimem, "
- + " " + DEFAULT_ROCKSDB_PROFILE_NAME + ".engine: rocksdb"
- + " },\n"
- + " clientConnector.port: {},\n"
- + " rest.port: {},\n"
- + " failureHandler.dumpThreadsOnFailure: false\n"
- + "}";
-
- /** Template for node bootstrap config with Scalecube settings for fast
failure detection. */
- public static final String
FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE = "ignite {\n"
- + " network: {\n"
- + " port: {},\n"
- + " nodeFinder: {\n"
- + " netClusterNodes: [ {} ]\n"
- + " },\n"
- + " membership: {\n"
- + " membershipSyncIntervalMillis: 1000,\n"
- + " failurePingIntervalMillis: 500,\n"
- + " scaleCube: {\n"
- + " membershipSuspicionMultiplier: 1,\n"
- + " failurePingRequestMembers: 1,\n"
- + " gossipIntervalMillis: 10\n"
- + " },\n"
- + " }\n"
- + " },\n"
- + " clientConnector: { port:{} }, \n"
- + " rest.port: {},\n"
- + " failureHandler.dumpThreadsOnFailure: false\n"
- + "}";
-
- /** Template for node bootstrap config with Scalecube settings for a
disabled failure detection. */
- protected static final String
DISABLED_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE = "ignite {\n"
- + " network: {\n"
- + " port: {},\n"
- + " nodeFinder: {\n"
- + " netClusterNodes: [ {} ]\n"
- + " },\n"
- + " membership: {\n"
- + " failurePingIntervalMillis: 1000000000\n"
- + " }\n"
- + " },\n"
- + " clientConnector: { port:{} },\n"
- + " rest.port: {},\n"
- + " failureHandler.dumpThreadsOnFailure: false\n"
- + "}";
-
- /** Template for tests that may not have some storage engines enabled. */
- protected static final String
NODE_BOOTSTRAP_CFG_TEMPLATE_WITHOUT_STORAGE_PROFILES = "ignite {\n"
- + " network: {\n"
- + " port: {},\n"
- + " nodeFinder.netClusterNodes: [ {} ]\n"
- + " },\n"
- + " clientConnector.port: {},\n"
- + " clientConnector.sendServerExceptionStackTraceToClient:
true,\n"
- + " rest.port: {},\n"
- + " failureHandler.dumpThreadsOnFailure: false\n"
- + "}";
-
protected Cluster cluster;
/** Work directory. */
diff --git
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ConfigTemplates.java
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ConfigTemplates.java
new file mode 100644
index 00000000000..0f71c8a27fd
--- /dev/null
+++
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/ConfigTemplates.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal;
+
+import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIMEM_PROFILE_NAME;
+import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIPERSIST_PROFILE_NAME;
+import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_ROCKSDB_PROFILE_NAME;
+import static
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_TEST_PROFILE_NAME;
+
+/**
+ * Node configuration templates.
+ */
+public class ConfigTemplates {
+ private static final String DEFAULT_PROFILES = ""
+ + " storage.profiles: {"
+ + " " + DEFAULT_TEST_PROFILE_NAME + ".engine: test, "
+ + " " + DEFAULT_AIPERSIST_PROFILE_NAME + ".engine:
aipersist, "
+ + " " + DEFAULT_AIMEM_PROFILE_NAME + ".engine: aimem, "
+ + " " + DEFAULT_ROCKSDB_PROFILE_NAME + ".engine: rocksdb"
+ + " },\n";
+
+ private static final String FAST_FAILURE_DETECTION = ""
+ + " network.membership: {\n"
+ + " membershipSyncIntervalMillis: 1000,\n"
+ + " failurePingIntervalMillis: 500,\n"
+ + " scaleCube: {\n"
+ + " membershipSuspicionMultiplier: 1,\n"
+ + " failurePingRequestMembers: 1,\n"
+ + " gossipIntervalMillis: 10\n"
+ + " }\n"
+ + " },\n";
+
+ private static final String DISABLED_FAILURE_DETECTION = ""
+ + " network.membership: {\n"
+ + " failurePingIntervalMillis: 1000000000\n"
+ + " }\n";
+
+ /** Default node bootstrap configuration pattern. */
+ public static String NODE_BOOTSTRAP_CFG_TEMPLATE =
renderConfigTemplate(DEFAULT_PROFILES);
+
+ /** Template for tests that may not have some storage engines enabled. */
+ public static String NODE_BOOTSTRAP_CFG_TEMPLATE_WITHOUT_STORAGE_PROFILES
= renderConfigTemplate("");
+
+ /** Template for node bootstrap config with Scalecube settings for fast
failure detection. */
+ public static final String
FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE
+ = renderConfigTemplate(DEFAULT_PROFILES + FAST_FAILURE_DETECTION);
+
+ /** Template for node bootstrap config with Scalecube settings for
disabled failure detection. */
+ public static final String
DISABLED_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE
+ = renderConfigTemplate(DEFAULT_PROFILES +
DISABLED_FAILURE_DETECTION);
+
+ /**
+ * Renders the configuration template, adding the provided properties
string to the template.
+ *
+ * @param properties Additional properties string.
+ * @return Generated configuration template.
+ */
+ public static String renderConfigTemplate(String properties) {
+ return "ignite {\n"
+ + " network: {\n"
+ + " port: {},\n"
+ + " nodeFinder.netClusterNodes: [ {} ]\n"
+ + " },\n"
+ + " clientConnector.port: {},\n"
+ + " clientConnector.sendServerExceptionStackTraceToClient:
true,\n"
+ + " rest.port: {},\n"
+ + " failureHandler.dumpThreadsOnFailure: false,\n"
+ + properties
+ + "}";
+ }
+}
diff --git
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionSequentialRecoveriesTest.java
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionSequentialRecoveriesTest.java
index 8ad9db355c0..e03fc001a23 100644
---
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionSequentialRecoveriesTest.java
+++
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionSequentialRecoveriesTest.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.table.distributed.disaster;
+import static
org.apache.ignite.internal.ConfigTemplates.FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.is;
diff --git
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryNoStaleRecoveriesTest.java
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryNoStaleRecoveriesTest.java
index b6daf3bcf7b..f416b7a6b29 100644
---
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryNoStaleRecoveriesTest.java
+++
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryNoStaleRecoveriesTest.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.table.distributed.disaster;
+import static
org.apache.ignite.internal.ConfigTemplates.FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
import static
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryTest.java
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryTest.java
index 234ed90c073..3c1bea411fb 100644
---
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryTest.java
+++
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryTest.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.table.distributed.disaster;
import static java.lang.String.format;
+import static
org.apache.ignite.internal.ConfigTemplates.FAST_FAILURE_DETECTION_NODE_BOOTSTRAP_CFG_TEMPLATE;
import static org.apache.ignite.internal.TestWrappers.unwrapIgniteImpl;
import static
org.apache.ignite.internal.catalog.commands.CatalogUtils.IMMEDIATE_TIMER_VALUE;
import static
org.apache.ignite.internal.catalog.commands.CatalogUtils.INFINITE_TIMER_VALUE;