You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sd...@apache.org on 2022/10/04 12:24:23 UTC
[ignite-3] branch main updated: IGNITE-17792 Automatically load all configuration extensions for tests (#1146)
This is an automated email from the ASF dual-hosted git repository.
sdanilov 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 45f3728364 IGNITE-17792 Automatically load all configuration extensions for tests (#1146)
45f3728364 is described below
commit 45f37283649e819b1ea275d67df649e2f3266a08
Author: Semyon Danilov <sa...@yandex.ru>
AuthorDate: Tue Oct 4 15:24:17 2022 +0300
IGNITE-17792 Automatically load all configuration extensions for tests (#1146)
---
.../schemas/table/TableConfigurationSchema.java | 6 --
.../ClientHandlerConfigurationModule.java} | 21 ++--
...nite.internal.configuration.ConfigurationModule | 6 +-
modules/cluster-management/build.gradle | 1 +
modules/cluster-management/pom.xml | 5 +
.../internal/cluster/management/MockNode.java | 2 +-
.../management/raft/ItCmgRaftServiceTest.java | 9 +-
modules/compute/build.gradle | 2 +
modules/compute/pom.xml | 5 +
.../configuration/ComputeConfigurationModule.java} | 21 ++--
...nite.internal.configuration.ConfigurationModule | 6 +-
modules/configuration/pom.xml | 1 -
.../testframework/ConfigurationExtension.java | 111 ++++++++++++++++-----
modules/index/build.gradle | 2 +-
modules/index/pom.xml | 7 +-
.../configuration/IndexConfigurationModule.java} | 26 ++---
...nite.internal.configuration.ConfigurationModule | 6 +-
.../ignite/internal/index/IndexManagerTest.java | 6 +-
.../configuration/NetworkConfigurationModule.java} | 21 ++--
...nite.internal.configuration.ConfigurationModule | 6 +-
.../tree/ItBplusTreeReplaceRemoveRaceTest.java | 3 +-
...ItBplusTreeReuseListVolatilePageMemoryTest.java | 3 +-
.../ItBplusTreeVolatilePageMemoryTest.java | 3 +-
.../ItBplusTreePersistentPageMemoryTest.java | 3 +-
...BplusTreeReuseListPersistentPageMemoryTest.java | 3 +-
.../PageMemoryDistributedConfigurationModule.java} | 24 ++---
...nite.internal.configuration.ConfigurationModule | 6 +-
.../pagememory/freelist/AbstractFreeListTest.java | 3 +-
.../inmemory/VolatilePageMemoryNoLoadSelfTest.java | 3 +-
.../PersistentPageMemoryNoLoadTest.java | 3 +-
modules/raft/build.gradle | 4 +
modules/raft/pom.xml | 15 +++
.../apache/ignite/internal/raft/ItLozaTest.java | 9 +-
.../internal/raft/ItRaftGroupServiceTest.java | 9 +-
.../java/org/apache/ignite/internal/raft/Loza.java | 30 ++----
.../configuration/RaftConfigurationModule.java} | 34 ++-----
.../configuration/RaftConfigurationSchema.java} | 32 +++---
...nite.internal.configuration.ConfigurationModule | 6 +-
....ignite.raft.jraft.core.LogStorageBudgetsModule | 16 +++
.../org/apache/ignite/internal/raft/LozaTest.java | 8 +-
modules/rest/build.gradle | 1 +
modules/rest/pom.xml | 5 +
.../configuration/RestConfigurationModule.java} | 21 ++--
...nite.internal.configuration.ConfigurationModule | 6 +-
modules/runner/build.gradle | 1 +
.../ItDistributedConfigurationPropertiesTest.java | 18 +++-
.../ItDistributedConfigurationStorageTest.java | 9 +-
.../storage/ItRebalanceDistributedTest.java | 19 ++--
.../inmemory/ItRaftStorageVolatilityTest.java | 12 ++-
.../runner/app/ItIgniteNodeRestartTest.java | 10 +-
.../org/apache/ignite/internal/app/IgniteImpl.java | 3 +-
...nite.internal.configuration.ConfigurationModule | 6 +-
.../CoreDistributedConfigurationModuleTest.java | 82 ---------------
.../CoreLocalConfigurationModuleTest.java | 92 -----------------
...nite.internal.configuration.ConfigurationModule | 4 +-
.../SchemaDistributedConfigurationModule.java | 11 ++
...nite.internal.configuration.ConfigurationModule | 4 +-
.../AbstractTableIndexValidatorTest.java | 14 ---
...nfigurationToSchemaDescriptorConverterTest.java | 8 --
.../KnownDataStorageValidatorTest.java | 5 +-
.../SchemaDistributedConfigurationModuleTest.java | 5 -
.../internal/sql/engine/StopCalciteModuleTest.java | 17 +---
.../sql/engine/exec/MockedStructuresTest.java | 25 +----
modules/storage-api/build.gradle | 1 +
modules/storage-api/pom.xml | 6 ++
...nite.internal.configuration.ConfigurationModule | 4 +-
.../internal/storage/DataStorageManagerTest.java | 20 +---
.../internal/storage/TestMvTableStorageTest.java | 14 ---
.../storage/index/TestHashIndexStorageTest.java | 12 ---
.../storage/index/TestSortedIndexStorageTest.java | 12 ---
...nite.internal.configuration.ConfigurationModule | 4 +-
modules/storage-page-memory/build.gradle | 1 +
modules/storage-page-memory/pom.xml | 6 ++
...torageEngineDistributedConfigurationModule.java | 4 +-
...nite.internal.configuration.ConfigurationModule | 4 +-
.../PersistentPageMemoryDataRegionTest.java | 3 +-
.../PersistentPageMemoryMvTableStorageTest.java | 17 +---
.../VolatilePageMemoryMvTableStorageTest.java | 17 +---
.../PageMemoryDataRegionValidatorImplTest.java | 5 +-
.../PersistentPageMemoryHashIndexStorageTest.java | 15 +--
...PersistentPageMemorySortedIndexStorageTest.java | 15 +--
.../VolatilePageMemoryHashIndexStorageTest.java | 15 +--
.../VolatilePageMemorySortedIndexStorageTest.java | 15 +--
...PersistentPageMemoryMvPartitionStorageTest.java | 18 +---
.../VolatilePageMemoryMvPartitionStorageTest.java | 15 +--
modules/storage-rocksdb/build.gradle | 1 +
modules/storage-rocksdb/pom.xml | 6 ++
...nite.internal.configuration.ConfigurationModule | 4 +-
.../rocksdb/RocksDbMvPartitionStorageTest.java | 12 ---
.../storage/rocksdb/RocksDbMvTableStorageTest.java | 14 ---
.../storage/rocksdb/RocksDbStorageEngineTest.java | 19 ----
.../rocksdb/index/RocksDbHashIndexStorageTest.java | 12 ---
.../index/RocksDbSortedIndexStorageTest.java | 12 ---
modules/table/build.gradle | 2 +
modules/table/pom.xml | 6 ++
.../distributed/ItTxDistributedTestSingleNode.java | 10 +-
.../internal/table/distributed/TableManager.java | 2 +-
...nite.internal.configuration.ConfigurationModule | 4 +-
.../table/distributed/TableManagerTest.java | 28 +-----
99 files changed, 420 insertions(+), 800 deletions(-)
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
index 4c2d7a744d..a2ee50dabc 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
@@ -64,10 +64,4 @@ public class TableConfigurationSchema {
/** Primary key configuration. */
@ConfigValue
public PrimaryKeyConfigurationSchema primaryKey;
-
- // TODO: IGNITE-16647 - RAFT configuration should be moved elsewhere
-
- /** Configuration for Raft groups corresponding to table partitions. */
- @ConfigValue
- public VolatileRaftConfigurationSchema volatileRaft;
}
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/configuration/ClientHandlerConfigurationModule.java
similarity index 66%
copy from modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
copy to modules/client-handler/src/main/java/org/apache/ignite/client/handler/configuration/ClientHandlerConfigurationModule.java
index a55546fdc0..60145f8139 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/configuration/ClientHandlerConfigurationModule.java
@@ -15,35 +15,26 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration;
+package org.apache.ignite.client.handler.configuration;
import java.util.Collection;
-import java.util.List;
+import java.util.Collections;
import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
-import org.apache.ignite.configuration.schemas.compute.ComputeConfiguration;
-import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
-import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
/**
- * {@link ConfigurationModule} for node-local configuration provided by ignite-api.
+ * {@link ConfigurationModule} for node-local configuration provided by client-handler.
*/
-public class CoreLocalConfigurationModule implements ConfigurationModule {
- /** {@inheritDoc} */
+public class ClientHandlerConfigurationModule implements ConfigurationModule {
@Override
public ConfigurationType type() {
return ConfigurationType.LOCAL;
}
- /** {@inheritDoc} */
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(
- NetworkConfiguration.KEY,
- RestConfiguration.KEY,
- ClientConnectorConfiguration.KEY,
- ComputeConfiguration.KEY
- );
+ return Collections.singleton(ClientConnectorConfiguration.KEY);
}
}
diff --git a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/client-handler/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
similarity index 76%
copy from modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
copy to modules/client-handler/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 685b7b2a06..babcf1a737 100644
--- a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/client-handler/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.configuration.TestConfigurationModule
+org.apache.ignite.client.handler.configuration.ClientHandlerConfigurationModule
diff --git a/modules/cluster-management/build.gradle b/modules/cluster-management/build.gradle
index 73b823126c..e605937e7e 100644
--- a/modules/cluster-management/build.gradle
+++ b/modules/cluster-management/build.gradle
@@ -55,6 +55,7 @@ dependencies {
integrationTestAnnotationProcessor libs.micronaut.inject.annotation.processor
integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-configuration')))
integrationTestImplementation(testFixtures(project(':ignite-network')))
integrationTestImplementation libs.micronaut.junit5
diff --git a/modules/cluster-management/pom.xml b/modules/cluster-management/pom.xml
index 250de9423a..2c250ffe87 100644
--- a/modules/cluster-management/pom.xml
+++ b/modules/cluster-management/pom.xml
@@ -37,6 +37,11 @@
<artifactId>ignite-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-configuration</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-network-api</artifactId>
diff --git a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java
index b8e37b973c..aa6db645e4 100644
--- a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java
+++ b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java
@@ -73,7 +73,7 @@ public class MockNode {
this.clusterService = ClusterServiceTestUtils.clusterService(testInfo, port, nodeFinder);
- Loza raftManager = new Loza(clusterService, workDir);
+ Loza raftManager = new Loza(clusterService, null, workDir);
this.clusterManager = new ClusterManagementGroupManager(
vaultManager,
diff --git a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
index fdc737ac9e..9b5b80f301 100644
--- a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
+++ b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
@@ -40,8 +40,11 @@ import org.apache.ignite.internal.cluster.management.ClusterState;
import org.apache.ignite.internal.cluster.management.ClusterTag;
import org.apache.ignite.internal.cluster.management.raft.commands.JoinReadyCommand;
import org.apache.ignite.internal.cluster.management.raft.commands.JoinRequestCommand;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.properties.IgniteProductVersion;
import org.apache.ignite.internal.raft.Loza;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -63,9 +66,13 @@ import org.junit.jupiter.api.extension.ExtendWith;
* Class with tests for the {@link CmgRaftService}.
*/
@ExtendWith(WorkDirectoryExtension.class)
+@ExtendWith(ConfigurationExtension.class)
public class ItCmgRaftServiceTest {
private static final String TEST_GROUP = "test_group";
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
private class Node {
CmgRaftService raftService;
@@ -77,7 +84,7 @@ public class ItCmgRaftServiceTest {
Node(TestInfo testInfo, NetworkAddress addr, NodeFinder nodeFinder, Path workDir) {
this.clusterService = clusterService(testInfo, addr.port(), nodeFinder);
- this.raftManager = new Loza(clusterService, workDir);
+ this.raftManager = new Loza(clusterService, raftConfiguration, workDir);
}
void start() {
diff --git a/modules/compute/build.gradle b/modules/compute/build.gradle
index 7fd1d1d77b..6185fab726 100644
--- a/modules/compute/build.gradle
+++ b/modules/compute/build.gradle
@@ -22,6 +22,7 @@ dependencies {
implementation project(':ignite-api')
implementation project(':ignite-network')
implementation project(':ignite-table')
+ implementation project(':ignite-configuration')
implementation project(':ignite-core')
implementation libs.jetbrains.annotations
implementation libs.fastutil.core
@@ -29,6 +30,7 @@ dependencies {
testImplementation project(':ignite-core')
testImplementation(testFixtures(project(':ignite-core')))
+ testImplementation(testFixtures(project(':ignite-configuration')))
testImplementation libs.hamcrest.core
testImplementation libs.mockito.core
testImplementation libs.mockito.junit
diff --git a/modules/compute/pom.xml b/modules/compute/pom.xml
index 4071c74ca9..9e5c369153 100644
--- a/modules/compute/pom.xml
+++ b/modules/compute/pom.xml
@@ -48,6 +48,11 @@
<artifactId>ignite-table</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-configuration</artifactId>
+ </dependency>
+
<!-- Test dependencies -->
<dependency>
<groupId>org.hamcrest</groupId>
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java b/modules/compute/src/main/java/org/apache/ignite/internal/compute/configuration/ComputeConfigurationModule.java
similarity index 65%
copy from modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
copy to modules/compute/src/main/java/org/apache/ignite/internal/compute/configuration/ComputeConfigurationModule.java
index a55546fdc0..b2839761ae 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
+++ b/modules/compute/src/main/java/org/apache/ignite/internal/compute/configuration/ComputeConfigurationModule.java
@@ -15,35 +15,26 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration;
+package org.apache.ignite.internal.compute.configuration;
import java.util.Collection;
-import java.util.List;
+import java.util.Collections;
import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
-import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
import org.apache.ignite.configuration.schemas.compute.ComputeConfiguration;
-import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
-import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
/**
- * {@link ConfigurationModule} for node-local configuration provided by ignite-api.
+ * {@link ConfigurationModule} for node-local configuration provided by compute.
*/
-public class CoreLocalConfigurationModule implements ConfigurationModule {
- /** {@inheritDoc} */
+public class ComputeConfigurationModule implements ConfigurationModule {
@Override
public ConfigurationType type() {
return ConfigurationType.LOCAL;
}
- /** {@inheritDoc} */
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(
- NetworkConfiguration.KEY,
- RestConfiguration.KEY,
- ClientConnectorConfiguration.KEY,
- ComputeConfiguration.KEY
- );
+ return Collections.singleton(ComputeConfiguration.KEY);
}
}
diff --git a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/compute/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
similarity index 76%
copy from modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
copy to modules/compute/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 685b7b2a06..75aa9bedbe 100644
--- a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/compute/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.configuration.TestConfigurationModule
+org.apache.ignite.internal.compute.configuration.ComputeConfigurationModule
diff --git a/modules/configuration/pom.xml b/modules/configuration/pom.xml
index d97d770f94..65d4ade82a 100644
--- a/modules/configuration/pom.xml
+++ b/modules/configuration/pom.xml
@@ -101,7 +101,6 @@
<scope>test</scope>
</dependency>
-
<dependency>
<groupId>io.micronaut.test</groupId>
<artifactId>micronaut-test-junit5</artifactId>
diff --git a/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java
index 6d61b77e00..2a81dc9480 100644
--- a/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java
+++ b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/testframework/ConfigurationExtension.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.configuration.testframework;
+import static java.lang.reflect.Modifier.isStatic;
import static java.util.concurrent.Executors.newSingleThreadExecutor;
import static org.apache.ignite.configuration.annotation.ConfigurationType.LOCAL;
import static org.apache.ignite.internal.configuration.notifications.ConfigurationNotifier.notifyListeners;
@@ -35,6 +36,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import java.util.ServiceLoader;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
@@ -42,7 +44,10 @@ import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import org.apache.ignite.configuration.RootKey;
+import org.apache.ignite.configuration.annotation.InternalConfiguration;
+import org.apache.ignite.configuration.annotation.PolymorphicConfigInstance;
import org.apache.ignite.internal.configuration.ConfigurationListenerHolder;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
import org.apache.ignite.internal.configuration.DynamicConfiguration;
import org.apache.ignite.internal.configuration.DynamicConfigurationChanger;
import org.apache.ignite.internal.configuration.RootInnerNode;
@@ -61,6 +66,7 @@ import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.BeforeEachCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
+import org.junit.jupiter.api.extension.ExtensionContext.Store;
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.api.extension.ParameterResolutionException;
import org.junit.jupiter.api.extension.ParameterResolver;
@@ -84,58 +90,100 @@ public class ConfigurationExtension implements BeforeEachCallback, AfterEachCall
/** Key to store {@link ExecutorService} in {@link ExtensionContext.Store}. */
private static final Object POOL_KEY = new Object();
- /** Key to store {@link StorageRevisionListenerHolderImpl} in {@link ExtensionContext.Store}. */
- private static final Object REVISION_LISTENER_HOLDER_KEY = new Object();
+ /** Key to store {@link StorageRevisionListenerHolderImpl} in {@link ExtensionContext.Store} for all tests. */
+ private static final Object REVISION_LISTENER_ALL_TEST_HOLDER_KEY = new Object();
+
+ /** Key to store {@link StorageRevisionListenerHolderImpl} in {@link ExtensionContext.Store} for each test. */
+ private static final Object REVISION_LISTENER_PER_TEST_HOLDER_KEY = new Object();
+
+ /** All {@link InternalConfiguration} classes in classpath. */
+ private static final List<Class<?>> INTERNAL_EXTENSIONS;
+
+ /** All {@link PolymorphicConfigInstance} classes in classpath. */
+ private static final List<Class<?>> POLYMORPHIC_EXTENSIONS;
+
+ static {
+ // Automatically find all @InternalConfiguration and @PolymorphicConfigInstance classes
+ // to avoid configuring extensions manually in every test.
+ ServiceLoader<ConfigurationModule> modules = ServiceLoader.load(ConfigurationModule.class);
+
+ List<Class<?>> internalExtensions = new ArrayList<>();
+ List<Class<?>> polymorphicExtensions = new ArrayList<>();
+
+ modules.forEach(configurationModule -> {
+ internalExtensions.addAll(configurationModule.internalSchemaExtensions());
+ polymorphicExtensions.addAll(configurationModule.polymorphicSchemaExtensions());
+ });
+
+ INTERNAL_EXTENSIONS = List.copyOf(internalExtensions);
+ POLYMORPHIC_EXTENSIONS = List.copyOf(polymorphicExtensions);
+ }
/** {@inheritDoc} */
@Override
public void beforeAll(ExtensionContext context) throws Exception {
+ context.getStore(NAMESPACE).put(CGEN_KEY, new ConfigurationAsmGenerator());
context.getStore(NAMESPACE).put(POOL_KEY, newSingleThreadExecutor());
+
+ injectFields(context, true);
}
/** {@inheritDoc} */
@Override
public void afterAll(ExtensionContext context) throws Exception {
- ExecutorService pool = context.getStore(NAMESPACE).remove(POOL_KEY, ExecutorService.class);
+ context.getStore(NAMESPACE).remove(CGEN_KEY);
+
+ context.getStore(NAMESPACE).remove(POOL_KEY, ExecutorService.class).shutdownNow();
- pool.shutdownNow();
+ context.getStore(NAMESPACE).remove(REVISION_LISTENER_ALL_TEST_HOLDER_KEY);
}
/** {@inheritDoc} */
@Override
public void beforeEach(ExtensionContext context) throws Exception {
- ConfigurationAsmGenerator cgen = new ConfigurationAsmGenerator();
+ injectFields(context, false);
+ }
+
+ private void injectFields(ExtensionContext context, boolean forStatic) throws Exception {
+ Class<?> testClass = context.getRequiredTestClass();
+ Object testInstance = context.getTestInstance().orElse(null);
- context.getStore(NAMESPACE).put(CGEN_KEY, cgen);
+ assert forStatic || testInstance != null;
- Object testInstance = context.getRequiredTestInstance();
+ Store store = context.getStore(NAMESPACE);
- ExecutorService pool = context.getStore(NAMESPACE).get(POOL_KEY, ExecutorService.class);
+ ConfigurationAsmGenerator cgen = store.get(CGEN_KEY, ConfigurationAsmGenerator.class);
+ ExecutorService pool = store.get(POOL_KEY, ExecutorService.class);
StorageRevisionListenerHolderImpl revisionListenerHolder = new StorageRevisionListenerHolderImpl();
- context.getStore(NAMESPACE).put(REVISION_LISTENER_HOLDER_KEY, revisionListenerHolder);
+ if (forStatic) {
+ store.put(REVISION_LISTENER_ALL_TEST_HOLDER_KEY, revisionListenerHolder);
+ } else {
+ store.put(REVISION_LISTENER_PER_TEST_HOLDER_KEY, revisionListenerHolder);
+ }
- for (Field field : getInjectConfigurationFields(testInstance.getClass())) {
+ for (Field field : getInjectConfigurationFields(testClass, forStatic)) {
field.setAccessible(true);
InjectConfiguration annotation = field.getAnnotation(InjectConfiguration.class);
- field.set(testInstance, cfgValue(field.getType(), annotation, cgen, pool, revisionListenerHolder));
+ Object cfgValue = cfgValue(field.getType(), annotation, cgen, pool, revisionListenerHolder);
+
+ field.set(forStatic ? null : testInstance, cfgValue);
}
- for (Field field : getInjectRevisionListenerHolderFields(testInstance.getClass())) {
+ for (Field field : getInjectRevisionListenerHolderFields(testClass, forStatic)) {
field.setAccessible(true);
- field.set(testInstance, revisionListenerHolder);
+ field.set(forStatic ? null : testInstance, revisionListenerHolder);
}
}
/** {@inheritDoc} */
@Override
public void afterEach(ExtensionContext context) throws Exception {
- context.getStore(NAMESPACE).remove(CGEN_KEY);
- context.getStore(NAMESPACE).remove(REVISION_LISTENER_HOLDER_KEY);
+ context.getStore(NAMESPACE).remove(REVISION_LISTENER_PER_TEST_HOLDER_KEY);
}
/** {@inheritDoc} */
@@ -162,8 +210,8 @@ public class ConfigurationExtension implements BeforeEachCallback, AfterEachCall
ConfigurationAsmGenerator cgen =
extensionContext.getStore(NAMESPACE).get(CGEN_KEY, ConfigurationAsmGenerator.class);
- StorageRevisionListenerHolderImpl revisionListenerHolder =
- extensionContext.getStore(NAMESPACE).get(REVISION_LISTENER_HOLDER_KEY, StorageRevisionListenerHolderImpl.class);
+ StorageRevisionListenerHolderImpl revisionListenerHolder = extensionContext.getStore(NAMESPACE)
+ .get(REVISION_LISTENER_PER_TEST_HOLDER_KEY, StorageRevisionListenerHolderImpl.class);
try {
ExecutorService pool = extensionContext.getStore(NAMESPACE).get(POOL_KEY, ExecutorService.class);
@@ -177,9 +225,9 @@ public class ConfigurationExtension implements BeforeEachCallback, AfterEachCall
);
}
} else if (parameterContext.isAnnotated(InjectRevisionListenerHolder.class)) {
- return extensionContext.getStore(NAMESPACE).get(REVISION_LISTENER_HOLDER_KEY, StorageRevisionListenerHolderImpl.class);
+ return extensionContext.getStore(NAMESPACE).get(REVISION_LISTENER_PER_TEST_HOLDER_KEY, StorageRevisionListenerHolderImpl.class);
} else {
- throw new ParameterResolutionException("Unknown parametr:" + parameterContext.getParameter());
+ throw new ParameterResolutionException("Unknown parameter:" + parameterContext.getParameter());
}
}
@@ -205,10 +253,23 @@ public class ConfigurationExtension implements BeforeEachCallback, AfterEachCall
// classes, extension is designed to mock actual configurations from public API to configure Ignite components.
Class<?> schemaClass = Class.forName(type.getCanonicalName() + "Schema");
+ List<Class<?>> internalExtensions = INTERNAL_EXTENSIONS;
+ List<Class<?>> polymorphicExtensions = POLYMORPHIC_EXTENSIONS;
+
+ if (annotation.internalExtensions().length > 0) {
+ internalExtensions = new ArrayList<>(internalExtensions);
+ internalExtensions.addAll(List.of(annotation.internalExtensions()));
+ }
+
+ if (annotation.polymorphicExtensions().length > 0) {
+ polymorphicExtensions = new ArrayList<>(polymorphicExtensions);
+ polymorphicExtensions.addAll(List.of(annotation.polymorphicExtensions()));
+ }
+
cgen.compileRootSchema(
schemaClass,
- internalSchemaExtensions(List.of(annotation.internalExtensions())),
- polymorphicSchemaExtensions(List.of(annotation.polymorphicExtensions()))
+ internalSchemaExtensions(internalExtensions),
+ polymorphicSchemaExtensions(polymorphicExtensions)
);
// RootKey must be mocked, there's no way to instantiate it using a public constructor.
@@ -300,20 +361,20 @@ public class ConfigurationExtension implements BeforeEachCallback, AfterEachCall
return cfgRef.get();
}
- private static List<Field> getInjectConfigurationFields(Class<?> testClass) {
+ private static List<Field> getInjectConfigurationFields(Class<?> testClass, boolean forStatic) {
return AnnotationSupport.findAnnotatedFields(
testClass,
InjectConfiguration.class,
- field -> supportsAsConfigurationType(field.getType()),
+ field -> supportsAsConfigurationType(field.getType()) && (isStatic(field.getModifiers()) == forStatic),
HierarchyTraversalMode.TOP_DOWN
);
}
- private static List<Field> getInjectRevisionListenerHolderFields(Class<?> testClass) {
+ private static List<Field> getInjectRevisionListenerHolderFields(Class<?> testClass, boolean forStatic) {
return AnnotationSupport.findAnnotatedFields(
testClass,
InjectRevisionListenerHolder.class,
- field -> isRevisionListenerHolder(field.getType()),
+ field -> isRevisionListenerHolder(field.getType()) && (isStatic(field.getModifiers()) == forStatic),
HierarchyTraversalMode.TOP_DOWN
);
}
diff --git a/modules/index/build.gradle b/modules/index/build.gradle
index 3542181844..0b2eac7f70 100644
--- a/modules/index/build.gradle
+++ b/modules/index/build.gradle
@@ -21,7 +21,7 @@ apply from: "$rootDir/buildscripts/java-junit5.gradle"
dependencies {
implementation project(':ignite-api')
implementation project(':ignite-core')
- implementation project(':ignite-table')
+ implementation project(':ignite-configuration')
implementation project(':ignite-schema')
implementation project(':ignite-configuration')
implementation project(':ignite-extended-api')
diff --git a/modules/index/pom.xml b/modules/index/pom.xml
index 4c6e7628c0..969eff252b 100644
--- a/modules/index/pom.xml
+++ b/modules/index/pom.xml
@@ -45,7 +45,12 @@
<dependency>
<groupId>org.apache.ignite</groupId>
- <artifactId>ignite-table</artifactId>
+ <artifactId>ignite-configuration</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-schema</artifactId>
</dependency>
<!-- Test dependencies -->
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java b/modules/index/src/main/java/org/apache/ignite/internal/index/configuration/IndexConfigurationModule.java
similarity index 54%
copy from modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
copy to modules/index/src/main/java/org/apache/ignite/internal/index/configuration/IndexConfigurationModule.java
index a55546fdc0..b91ec83a66 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
+++ b/modules/index/src/main/java/org/apache/ignite/internal/index/configuration/IndexConfigurationModule.java
@@ -15,35 +15,29 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration;
+package org.apache.ignite.internal.index.configuration;
import java.util.Collection;
import java.util.List;
-import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
-import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
-import org.apache.ignite.configuration.schemas.compute.ComputeConfiguration;
-import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
-import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
+import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
/**
- * {@link ConfigurationModule} for node-local configuration provided by ignite-api.
+ * {@link ConfigurationModule} for cluster-wide configuration provided by index.
*/
-public class CoreLocalConfigurationModule implements ConfigurationModule {
- /** {@inheritDoc} */
+public class IndexConfigurationModule implements ConfigurationModule {
@Override
public ConfigurationType type() {
- return ConfigurationType.LOCAL;
+ return ConfigurationType.DISTRIBUTED;
}
- /** {@inheritDoc} */
@Override
- public Collection<RootKey<?, ?>> rootKeys() {
+ public Collection<Class<?>> polymorphicSchemaExtensions() {
return List.of(
- NetworkConfiguration.KEY,
- RestConfiguration.KEY,
- ClientConnectorConfiguration.KEY,
- ComputeConfiguration.KEY
+ HashIndexConfigurationSchema.class,
+ SortedIndexConfigurationSchema.class
);
}
}
diff --git a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/index/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
similarity index 76%
copy from modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
copy to modules/index/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 685b7b2a06..0443aee5a8 100644
--- a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/index/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.configuration.TestConfigurationModule
+org.apache.ignite.internal.index.configuration.IndexConfigurationModule
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java
index 2fb61706a8..42f1dfc764 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java
@@ -41,7 +41,6 @@ import java.util.concurrent.atomic.AtomicReference;
import org.apache.ignite.configuration.NamedConfigurationTree;
import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.HashIndexChange;
import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
@@ -54,7 +53,6 @@ import org.apache.ignite.configuration.schemas.table.TableConfiguration;
import org.apache.ignite.configuration.schemas.table.TableIndexConfiguration;
import org.apache.ignite.configuration.schemas.table.TableView;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.configuration.validation.ConfigurationValidationException;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.NamedListConfiguration;
@@ -111,9 +109,7 @@ public class IndexManagerTest {
UnknownDataStorageConfigurationSchema.class,
ConstantValueDefaultConfigurationSchema.class,
FunctionCallDefaultConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class,
- EntryCountBudgetConfigurationSchema.class
+ NullValueDefaultConfigurationSchema.class
)
);
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java b/modules/network/src/main/java/org/apache/ignite/network/configuration/NetworkConfigurationModule.java
similarity index 65%
copy from modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
copy to modules/network/src/main/java/org/apache/ignite/network/configuration/NetworkConfigurationModule.java
index a55546fdc0..80196cef2b 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
+++ b/modules/network/src/main/java/org/apache/ignite/network/configuration/NetworkConfigurationModule.java
@@ -15,35 +15,26 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration;
+package org.apache.ignite.network.configuration;
import java.util.Collection;
-import java.util.List;
+import java.util.Collections;
import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
-import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
-import org.apache.ignite.configuration.schemas.compute.ComputeConfiguration;
import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
-import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
/**
- * {@link ConfigurationModule} for node-local configuration provided by ignite-api.
+ * {@link ConfigurationModule} for node-local configuration provided by ignite-network.
*/
-public class CoreLocalConfigurationModule implements ConfigurationModule {
- /** {@inheritDoc} */
+public class NetworkConfigurationModule implements ConfigurationModule {
@Override
public ConfigurationType type() {
return ConfigurationType.LOCAL;
}
- /** {@inheritDoc} */
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(
- NetworkConfiguration.KEY,
- RestConfiguration.KEY,
- ClientConnectorConfiguration.KEY,
- ComputeConfiguration.KEY
- );
+ return Collections.singleton(NetworkConfiguration.KEY);
}
}
diff --git a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/network/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
similarity index 77%
copy from modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
copy to modules/network/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 685b7b2a06..b718f733a9 100644
--- a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/network/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.configuration.TestConfigurationModule
+org.apache.ignite.network.configuration.NetworkConfigurationModule
diff --git a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/ItBplusTreeReplaceRemoveRaceTest.java b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/ItBplusTreeReplaceRemoveRaceTest.java
index 6d6f4996cb..e09f4482db 100644
--- a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/ItBplusTreeReplaceRemoveRaceTest.java
+++ b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/ItBplusTreeReplaceRemoveRaceTest.java
@@ -34,7 +34,6 @@ import org.apache.ignite.internal.configuration.testframework.InjectConfiguratio
import org.apache.ignite.internal.pagememory.FullPageId;
import org.apache.ignite.internal.pagememory.PageMemory;
import org.apache.ignite.internal.pagememory.TestPageIoRegistry;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.configuration.schema.VolatilePageMemoryDataRegionConfiguration;
import org.apache.ignite.internal.pagememory.inmemory.VolatilePageMemory;
import org.apache.ignite.internal.pagememory.io.IoVersions;
@@ -66,7 +65,7 @@ public class ItBplusTreeReplaceRemoveRaceTest extends BaseIgniteAbstractTest {
private static final int GROUP_ID = 100500;
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private VolatilePageMemoryDataRegionConfiguration dataRegionCfg;
@Nullable
diff --git a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeReuseListVolatilePageMemoryTest.java b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeReuseListVolatilePageMemoryTest.java
index 09c7534c55..28e21aff4c 100644
--- a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeReuseListVolatilePageMemoryTest.java
+++ b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeReuseListVolatilePageMemoryTest.java
@@ -22,7 +22,6 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.pagememory.PageMemory;
import org.apache.ignite.internal.pagememory.TestPageIoRegistry;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.configuration.schema.VolatilePageMemoryDataRegionConfiguration;
import org.apache.ignite.internal.pagememory.inmemory.VolatilePageMemory;
import org.apache.ignite.internal.pagememory.tree.AbstractBplusTreeReusePageMemoryTest;
@@ -33,7 +32,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
*/
@ExtendWith(ConfigurationExtension.class)
public class ItBplusTreeReuseListVolatilePageMemoryTest extends AbstractBplusTreeReusePageMemoryTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private VolatilePageMemoryDataRegionConfiguration dataRegionCfg;
/** {@inheritDoc} */
diff --git a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeVolatilePageMemoryTest.java b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeVolatilePageMemoryTest.java
index 60fc88f8a6..d3c5417b13 100644
--- a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeVolatilePageMemoryTest.java
+++ b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/inmemory/ItBplusTreeVolatilePageMemoryTest.java
@@ -22,7 +22,6 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.pagememory.PageMemory;
import org.apache.ignite.internal.pagememory.TestPageIoRegistry;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.configuration.schema.VolatilePageMemoryDataRegionConfiguration;
import org.apache.ignite.internal.pagememory.inmemory.VolatilePageMemory;
import org.apache.ignite.internal.pagememory.reuse.ReuseList;
@@ -36,7 +35,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
*/
@ExtendWith(ConfigurationExtension.class)
public class ItBplusTreeVolatilePageMemoryTest extends AbstractBplusTreePageMemoryTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private VolatilePageMemoryDataRegionConfiguration dataRegionCfg;
/** {@inheritDoc} */
diff --git a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreePersistentPageMemoryTest.java b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreePersistentPageMemoryTest.java
index 87327a12fc..888989605e 100644
--- a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreePersistentPageMemoryTest.java
+++ b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreePersistentPageMemoryTest.java
@@ -27,7 +27,6 @@ import org.apache.ignite.internal.configuration.testframework.InjectConfiguratio
import org.apache.ignite.internal.pagememory.PageMemory;
import org.apache.ignite.internal.pagememory.TestPageIoRegistry;
import org.apache.ignite.internal.pagememory.configuration.schema.PersistentPageMemoryDataRegionConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.persistence.PersistentPageMemory;
import org.apache.ignite.internal.pagememory.persistence.TestPageReadWriteManager;
import org.apache.ignite.internal.pagememory.reuse.ReuseList;
@@ -41,7 +40,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
*/
@ExtendWith(ConfigurationExtension.class)
public class ItBplusTreePersistentPageMemoryTest extends AbstractBplusTreePageMemoryTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private PersistentPageMemoryDataRegionConfiguration dataRegionCfg;
/** {@inheritDoc} */
diff --git a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreeReuseListPersistentPageMemoryTest.java b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreeReuseListPersistentPageMemoryTest.java
index 2143a09b0f..ac2360d17d 100644
--- a/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreeReuseListPersistentPageMemoryTest.java
+++ b/modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/persistence/ItBplusTreeReuseListPersistentPageMemoryTest.java
@@ -27,7 +27,6 @@ import org.apache.ignite.internal.configuration.testframework.InjectConfiguratio
import org.apache.ignite.internal.pagememory.PageMemory;
import org.apache.ignite.internal.pagememory.TestPageIoRegistry;
import org.apache.ignite.internal.pagememory.configuration.schema.PersistentPageMemoryDataRegionConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.persistence.PersistentPageMemory;
import org.apache.ignite.internal.pagememory.persistence.TestPageReadWriteManager;
import org.apache.ignite.internal.pagememory.tree.AbstractBplusTreeReusePageMemoryTest;
@@ -38,7 +37,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
*/
@ExtendWith(ConfigurationExtension.class)
public class ItBplusTreeReuseListPersistentPageMemoryTest extends AbstractBplusTreeReusePageMemoryTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private PersistentPageMemoryDataRegionConfiguration dataRegionCfg;
/** {@inheritDoc} */
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/configuration/PageMemoryDistributedConfigurationModule.java
similarity index 54%
copy from modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
copy to modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/configuration/PageMemoryDistributedConfigurationModule.java
index a55546fdc0..eca69e21b8 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
+++ b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/configuration/PageMemoryDistributedConfigurationModule.java
@@ -15,35 +15,27 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration;
+package org.apache.ignite.internal.pagememory.configuration;
import java.util.Collection;
import java.util.List;
-import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
-import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
-import org.apache.ignite.configuration.schemas.compute.ComputeConfiguration;
-import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
-import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
+import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
/**
- * {@link ConfigurationModule} for node-local configuration provided by ignite-api.
+ * {@link ConfigurationModule} for cluster-wide configuration provided by ignite-page-memory.
*/
-public class CoreLocalConfigurationModule implements ConfigurationModule {
+public class PageMemoryDistributedConfigurationModule implements ConfigurationModule {
/** {@inheritDoc} */
@Override
public ConfigurationType type() {
- return ConfigurationType.LOCAL;
+ return ConfigurationType.DISTRIBUTED;
}
/** {@inheritDoc} */
@Override
- public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(
- NetworkConfiguration.KEY,
- RestConfiguration.KEY,
- ClientConnectorConfiguration.KEY,
- ComputeConfiguration.KEY
- );
+ public Collection<Class<?>> polymorphicSchemaExtensions() {
+ return List.of(UnsafeMemoryAllocatorConfigurationSchema.class);
}
}
diff --git a/modules/storage-api/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/page-memory/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
similarity index 78%
copy from modules/storage-api/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
copy to modules/page-memory/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index fad3807f86..874e3071ba 100644
--- a/modules/storage-api/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/page-memory/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.storage.configuration.StorageEngineDistributedConfigurationModule
+org.apache.ignite.internal.pagememory.configuration.PageMemoryDistributedConfigurationModule
diff --git a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/freelist/AbstractFreeListTest.java b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/freelist/AbstractFreeListTest.java
index 32830b89ef..595b20ade3 100644
--- a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/freelist/AbstractFreeListTest.java
+++ b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/freelist/AbstractFreeListTest.java
@@ -41,7 +41,6 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.pagememory.PageMemory;
import org.apache.ignite.internal.pagememory.TestPageIoRegistry;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.configuration.schema.VolatilePageMemoryDataRegionConfiguration;
import org.apache.ignite.internal.pagememory.evict.PageEvictionTrackerNoOp;
import org.apache.ignite.internal.pagememory.inmemory.VolatilePageMemory;
@@ -66,7 +65,7 @@ public class AbstractFreeListTest extends BaseIgniteAbstractTest {
private static final int BATCH_SIZE = 100;
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private VolatilePageMemoryDataRegionConfiguration dataRegionCfg;
@Nullable
diff --git a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/inmemory/VolatilePageMemoryNoLoadSelfTest.java b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/inmemory/VolatilePageMemoryNoLoadSelfTest.java
index b73769b275..27a93eccfe 100644
--- a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/inmemory/VolatilePageMemoryNoLoadSelfTest.java
+++ b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/inmemory/VolatilePageMemoryNoLoadSelfTest.java
@@ -22,7 +22,6 @@ import static java.util.concurrent.TimeUnit.SECONDS;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.pagememory.AbstractPageMemoryNoLoadSelfTest;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.configuration.schema.VolatilePageMemoryDataRegionConfiguration;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.junit.jupiter.api.BeforeEach;
@@ -33,7 +32,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
*/
@ExtendWith(ConfigurationExtension.class)
public class VolatilePageMemoryNoLoadSelfTest extends AbstractPageMemoryNoLoadSelfTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private VolatilePageMemoryDataRegionConfiguration dataRegionCfg;
@BeforeEach
diff --git a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/PersistentPageMemoryNoLoadTest.java b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/PersistentPageMemoryNoLoadTest.java
index 725bd05b5e..6054662a1a 100644
--- a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/PersistentPageMemoryNoLoadTest.java
+++ b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/PersistentPageMemoryNoLoadTest.java
@@ -55,7 +55,6 @@ import org.apache.ignite.internal.pagememory.FullPageId;
import org.apache.ignite.internal.pagememory.PageMemory;
import org.apache.ignite.internal.pagememory.configuration.schema.PageMemoryCheckpointConfiguration;
import org.apache.ignite.internal.pagememory.configuration.schema.PersistentPageMemoryDataRegionConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.apache.ignite.internal.pagememory.persistence.PartitionMeta.PartitionMetaSnapshot;
import org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointManager;
@@ -79,7 +78,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
public class PersistentPageMemoryNoLoadTest extends AbstractPageMemoryNoLoadSelfTest {
private static PageIoRegistry ioRegistry;
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private PersistentPageMemoryDataRegionConfiguration dataRegionCfg;
@BeforeAll
diff --git a/modules/raft/build.gradle b/modules/raft/build.gradle
index 8f38119578..90a284c31f 100644
--- a/modules/raft/build.gradle
+++ b/modules/raft/build.gradle
@@ -24,6 +24,7 @@ description = 'ignite-raft'
dependencies {
implementation project(':ignite-core')
+ implementation project(':ignite-configuration')
implementation project(':ignite-raft-client')
implementation project(':ignite-network')
implementation libs.jetbrains.annotations
@@ -32,10 +33,12 @@ dependencies {
implementation libs.rocksdb.jni
implementation libs.dropwizard.metrics
implementation libs.jctools.core
+ annotationProcessor project(":ignite-configuration-annotation-processor")
annotationProcessor project(":ignite-network-annotation-processor")
annotationProcessor libs.jmh.annotation.processor
testAnnotationProcessor project(":ignite-network-annotation-processor")
+ testAnnotationProcessor project(":ignite-configuration-annotation-processor")
testImplementation(testFixtures(project(':ignite-core')))
testImplementation(testFixtures(project(':ignite-network')))
testImplementation project(':ignite-configuration')
@@ -60,5 +63,6 @@ dependencies {
testFixturesImplementation libs.jetbrains.annotations
integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-configuration')))
integrationTestImplementation(testFixtures(project(':ignite-network')))
}
diff --git a/modules/raft/pom.xml b/modules/raft/pom.xml
index 3d6f259a2b..bd68cef47c 100644
--- a/modules/raft/pom.xml
+++ b/modules/raft/pom.xml
@@ -38,6 +38,11 @@
<artifactId>ignite-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-configuration</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-raft-client</artifactId>
@@ -147,6 +152,11 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<dependencies>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-configuration-annotation-processor</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-network-annotation-processor</artifactId>
@@ -160,6 +170,11 @@
</dependencies>
<configuration>
<annotationProcessorPaths>
+ <path>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-configuration-annotation-processor</artifactId>
+ <version>${project.version}</version>
+ </path>
<path>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-network-annotation-processor</artifactId>
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java
index dd3668c9dc..b64b2ea504 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java
@@ -35,6 +35,9 @@ import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.network.ClusterNode;
@@ -54,6 +57,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
* Tests for {@link Loza} functionality.
*/
@ExtendWith(WorkDirectoryExtension.class)
+@ExtendWith(ConfigurationExtension.class)
public class ItLozaTest {
/** Server port offset. */
private static final int PORT = 20010;
@@ -61,6 +65,9 @@ public class ItLozaTest {
@WorkDirectory
private Path dataPath;
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
/**
* Starts a raft group service with a provided group id on a provided Loza instance.
*
@@ -116,7 +123,7 @@ public class ItLozaTest {
CompletableFuture<NetworkMessage> exception = CompletableFuture.failedFuture(new IOException());
- loza = new Loza(service, dataPath);
+ loza = new Loza(service, raftConfiguration, dataPath);
loza.start();
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java
index 2e5e5102cb..b8b7080576 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java
@@ -31,6 +31,9 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.network.ClusterNode;
@@ -54,10 +57,14 @@ import org.junit.jupiter.api.extension.ExtendWith;
*/
@ExtendWith(WorkDirectoryExtension.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+@ExtendWith(ConfigurationExtension.class)
public class ItRaftGroupServiceTest {
@WorkDirectory
private static Path workDir;
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
private static final int NODES_CNT = 2;
private static final int NODE_PORT_BASE = 20_000;
@@ -92,7 +99,7 @@ public class ItRaftGroupServiceTest {
CompletableFuture<RaftGroupService>[] svcFutures = new CompletableFuture[NODES_CNT];
for (int i = 0; i < NODES_CNT; i++) {
- Loza raftServer = new Loza(clusterServices.get(i), workDir.resolve("node" + i));
+ Loza raftServer = new Loza(clusterServices.get(i), raftConfiguration, workDir.resolve("node" + i));
raftSrvs.add(raftServer);
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
index 22a976a1f1..1da1d1e317 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
@@ -28,9 +28,11 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
import java.util.stream.Collectors;
+import org.apache.ignite.configuration.schemas.table.VolatileRaftConfiguration;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.manager.IgniteComponent;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.server.RaftGroupEventsListener;
import org.apache.ignite.internal.raft.server.RaftGroupOptions;
import org.apache.ignite.internal.raft.server.RaftServer;
@@ -93,14 +95,18 @@ public class Loza implements IgniteComponent {
/** Prevents double stopping the component. */
private final AtomicBoolean stopGuard = new AtomicBoolean();
+ /** Raft configuration. */
+ private final RaftConfiguration raftConfiguration;
+
/**
* The constructor.
*
* @param clusterNetSvc Cluster network service.
* @param dataPath Data path.
*/
- public Loza(ClusterService clusterNetSvc, Path dataPath) {
+ public Loza(ClusterService clusterNetSvc, RaftConfiguration raftConfiguration, Path dataPath) {
this.clusterNetSvc = clusterNetSvc;
+ this.raftConfiguration = raftConfiguration;
this.raftServer = new JraftServerImpl(clusterNetSvc, dataPath);
@@ -111,24 +117,6 @@ public class Loza implements IgniteComponent {
);
}
- /**
- * The constructor. Used for testing purposes.
- *
- * @param srv Pre-started raft server.
- */
- @TestOnly
- public Loza(JraftServerImpl srv) {
- this.clusterNetSvc = srv.clusterService();
-
- this.raftServer = srv;
-
- this.executor = new ScheduledThreadPoolExecutor(CLIENT_POOL_SIZE,
- new NamedThreadFactory(NamedThreadFactory.threadPrefix(clusterNetSvc.localConfiguration().getName(),
- CLIENT_POOL_NAME), LOG
- )
- );
- }
-
/** {@inheritDoc} */
@Override
public void start() {
@@ -345,6 +333,10 @@ public class Loza implements IgniteComponent {
return clusterNetSvc.topologyService();
}
+ public VolatileRaftConfiguration volatileRaft() {
+ return raftConfiguration.volatileRaft();
+ }
+
/**
* Returns a cluster service.
*
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreDistributedConfigurationModule.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/configuration/RaftConfigurationModule.java
similarity index 51%
rename from modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreDistributedConfigurationModule.java
rename to modules/raft/src/main/java/org/apache/ignite/internal/raft/configuration/RaftConfigurationModule.java
index df12a87dcc..3c4ea3edc5 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreDistributedConfigurationModule.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/configuration/RaftConfigurationModule.java
@@ -15,56 +15,36 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration;
+package org.apache.ignite.internal.raft.configuration;
-import java.lang.annotation.Annotation;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
-import org.apache.ignite.configuration.schemas.store.KnownDataStorage;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
-import org.apache.ignite.configuration.validation.Validator;
-import org.apache.ignite.internal.schema.configuration.KnownDataStorageValidator;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
/**
- * {@link ConfigurationModule} for cluster-wide configuration provided by ignite-api.
+ * {@link ConfigurationModule} for node-local configuration provided by ignite-raft.
*/
-public class CoreDistributedConfigurationModule implements ConfigurationModule {
- /** {@inheritDoc} */
+public class RaftConfigurationModule implements ConfigurationModule {
@Override
public ConfigurationType type() {
- return ConfigurationType.DISTRIBUTED;
+ return ConfigurationType.LOCAL;
}
- /** {@inheritDoc} */
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(TablesConfiguration.KEY);
+ return Collections.singleton(RaftConfiguration.KEY);
}
- /** {@inheritDoc} */
@Override
public Collection<Class<?>> polymorphicSchemaExtensions() {
return List.of(
- HashIndexConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
UnlimitedBudgetConfigurationSchema.class,
EntryCountBudgetConfigurationSchema.class
);
}
-
- /** {@inheritDoc} */
- @Override
- public Map<Class<? extends Annotation>, Set<Validator<? extends Annotation, ?>>> validators() {
- return Map.of(KnownDataStorage.class, Set.of(new KnownDataStorageValidator()));
- }
}
diff --git a/modules/compute/build.gradle b/modules/raft/src/main/java/org/apache/ignite/internal/raft/configuration/RaftConfigurationSchema.java
similarity index 51%
copy from modules/compute/build.gradle
copy to modules/raft/src/main/java/org/apache/ignite/internal/raft/configuration/RaftConfigurationSchema.java
index 7fd1d1d77b..64bcd3a218 100644
--- a/modules/compute/build.gradle
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/configuration/RaftConfigurationSchema.java
@@ -15,23 +15,21 @@
* limitations under the License.
*/
-apply from: "$rootDir/buildscripts/java-core.gradle"
-apply from: "$rootDir/buildscripts/java-junit5.gradle"
+package org.apache.ignite.internal.raft.configuration;
-dependencies {
- implementation project(':ignite-api')
- implementation project(':ignite-network')
- implementation project(':ignite-table')
- implementation project(':ignite-core')
- implementation libs.jetbrains.annotations
- implementation libs.fastutil.core
- annotationProcessor project(':ignite-network-annotation-processor')
+import org.apache.ignite.configuration.annotation.ConfigValue;
+import org.apache.ignite.configuration.annotation.ConfigurationRoot;
+import org.apache.ignite.configuration.annotation.ConfigurationType;
+import org.apache.ignite.configuration.schemas.table.VolatileRaftConfigurationSchema;
- testImplementation project(':ignite-core')
- testImplementation(testFixtures(project(':ignite-core')))
- testImplementation libs.hamcrest.core
- testImplementation libs.mockito.core
- testImplementation libs.mockito.junit
+/**
+ * Raft configuration schema.
+ */
+@SuppressWarnings("PMD.UnusedPrivateField")
+@ConfigurationRoot(rootName = "raft", type = ConfigurationType.LOCAL)
+public class RaftConfigurationSchema {
+ /** Configuration for Raft groups corresponding to table partitions. */
+ // TODO: IGNITE-16647 - Volatile RAFT configuration should be moved elsewhere
+ @ConfigValue
+ public VolatileRaftConfigurationSchema volatileRaft;
}
-
-description = 'ignite-compute'
diff --git a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/raft/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
similarity index 77%
copy from modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
copy to modules/raft/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 685b7b2a06..5534123ec1 100644
--- a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/raft/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.configuration.TestConfigurationModule
+org.apache.ignite.internal.raft.configuration.RaftConfigurationModule
diff --git a/modules/raft/src/main/resources/META-INF/services/org.apache.ignite.raft.jraft.core.LogStorageBudgetsModule b/modules/raft/src/main/resources/META-INF/services/org.apache.ignite.raft.jraft.core.LogStorageBudgetsModule
index 49ca1c1809..b2688f3c14 100644
--- a/modules/raft/src/main/resources/META-INF/services/org.apache.ignite.raft.jraft.core.LogStorageBudgetsModule
+++ b/modules/raft/src/main/resources/META-INF/services/org.apache.ignite.raft.jraft.core.LogStorageBudgetsModule
@@ -1 +1,17 @@
+#
+# 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.
+#
org.apache.ignite.internal.raft.CoreLogStorageBudgetsModule
diff --git a/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java b/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java
index f7ee5249b4..7579ac820b 100644
--- a/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java
@@ -19,10 +19,12 @@ package org.apache.ignite.internal.raft;
import static org.apache.ignite.internal.raft.server.RaftGroupOptions.defaults;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.mock;
import java.util.List;
import java.util.UUID;
import java.util.function.Supplier;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.apache.ignite.lang.NodeStoppingException;
import org.apache.ignite.network.ClusterLocalConfiguration;
@@ -57,10 +59,10 @@ public class LozaTest extends IgniteAbstractTest {
@Test
public void testLozaStop() throws Exception {
Mockito.doReturn(new ClusterLocalConfiguration("test_node", null)).when(clusterNetSvc).localConfiguration();
- Mockito.doReturn(Mockito.mock(MessagingService.class)).when(clusterNetSvc).messagingService();
- Mockito.doReturn(Mockito.mock(TopologyService.class)).when(clusterNetSvc).topologyService();
+ Mockito.doReturn(mock(MessagingService.class)).when(clusterNetSvc).messagingService();
+ Mockito.doReturn(mock(TopologyService.class)).when(clusterNetSvc).topologyService();
- Loza loza = new Loza(clusterNetSvc, workDir);
+ Loza loza = new Loza(clusterNetSvc, mock(RaftConfiguration.class), workDir);
loza.start();
diff --git a/modules/rest/build.gradle b/modules/rest/build.gradle
index abd7235546..32338bec4a 100644
--- a/modules/rest/build.gradle
+++ b/modules/rest/build.gradle
@@ -26,6 +26,7 @@ dependencies {
annotationProcessor libs.micronaut.openapi
implementation project(':ignite-api')
+ implementation project(':ignite-configuration')
implementation project(':ignite-rest-api')
implementation project(':ignite-core')
implementation libs.jetbrains.annotations
diff --git a/modules/rest/pom.xml b/modules/rest/pom.xml
index 8c61ac59b9..da3537b825 100644
--- a/modules/rest/pom.xml
+++ b/modules/rest/pom.xml
@@ -38,6 +38,11 @@
<artifactId>ignite-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-configuration</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-rest-api</artifactId>
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java b/modules/rest/src/main/java/org/apache/ignite/internal/rest/configuration/RestConfigurationModule.java
similarity index 65%
rename from modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
rename to modules/rest/src/main/java/org/apache/ignite/internal/rest/configuration/RestConfigurationModule.java
index a55546fdc0..ecdb7f9811 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModule.java
+++ b/modules/rest/src/main/java/org/apache/ignite/internal/rest/configuration/RestConfigurationModule.java
@@ -15,35 +15,26 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.configuration;
+package org.apache.ignite.internal.rest.configuration;
import java.util.Collection;
-import java.util.List;
+import java.util.Collections;
import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
-import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
-import org.apache.ignite.configuration.schemas.compute.ComputeConfiguration;
-import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+import org.apache.ignite.internal.configuration.ConfigurationModule;
/**
- * {@link ConfigurationModule} for node-local configuration provided by ignite-api.
+ * {@link ConfigurationModule} for node-local configuration provided by ignite-rest.
*/
-public class CoreLocalConfigurationModule implements ConfigurationModule {
- /** {@inheritDoc} */
+public class RestConfigurationModule implements ConfigurationModule {
@Override
public ConfigurationType type() {
return ConfigurationType.LOCAL;
}
- /** {@inheritDoc} */
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(
- NetworkConfiguration.KEY,
- RestConfiguration.KEY,
- ClientConnectorConfiguration.KEY,
- ComputeConfiguration.KEY
- );
+ return Collections.singleton(RestConfiguration.KEY);
}
}
diff --git a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/rest/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
similarity index 77%
copy from modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
copy to modules/rest/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 685b7b2a06..17fdec3caa 100644
--- a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/rest/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.configuration.TestConfigurationModule
+org.apache.ignite.internal.rest.configuration.RestConfigurationModule
diff --git a/modules/runner/build.gradle b/modules/runner/build.gradle
index 1154be5186..06da07f691 100644
--- a/modules/runner/build.gradle
+++ b/modules/runner/build.gradle
@@ -82,6 +82,7 @@ dependencies {
integrationTestImplementation project(':ignite-raft-client')
integrationTestImplementation project(':ignite-client')
integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-configuration')))
integrationTestImplementation(testFixtures(project(':ignite-schema')))
integrationTestImplementation(testFixtures(project(':ignite-cluster-management')))
integrationTestImplementation(testFixtures(project(':ignite-metastorage-server')))
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
index e23456df53..7e89f9aedd 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
@@ -41,10 +41,13 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.raft.ConcurrentMapClusterStateStorage;
import org.apache.ignite.internal.configuration.storage.ConfigurationStorageListener;
import org.apache.ignite.internal.configuration.storage.DistributedConfigurationStorage;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStorage;
import org.apache.ignite.internal.raft.Loza;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -65,6 +68,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
* Integration test for checking different aspects of distributed configuration.
*/
@ExtendWith(WorkDirectoryExtension.class)
+@ExtendWith(ConfigurationExtension.class)
public class ItDistributedConfigurationPropertiesTest {
/** Test distributed configuration schema. */
@ConfigurationRoot(rootName = "root", type = ConfigurationType.DISTRIBUTED)
@@ -73,6 +77,9 @@ public class ItDistributedConfigurationPropertiesTest {
public String str = "foo";
}
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
/**
* An emulation of an Ignite node, that only contains components necessary for tests.
*/
@@ -99,7 +106,8 @@ public class ItDistributedConfigurationPropertiesTest {
TestInfo testInfo,
Path workDir,
NetworkAddress addr,
- List<NetworkAddress> memberAddrs
+ List<NetworkAddress> memberAddrs,
+ RaftConfiguration raftConfiguration
) {
vaultManager = new VaultManager(new InMemoryVaultService());
@@ -109,7 +117,7 @@ public class ItDistributedConfigurationPropertiesTest {
new StaticNodeFinder(memberAddrs)
);
- raftManager = new Loza(clusterService, workDir);
+ raftManager = new Loza(clusterService, raftConfiguration, workDir);
cmgManager = new ClusterManagementGroupManager(
vaultManager,
@@ -213,14 +221,16 @@ public class ItDistributedConfigurationPropertiesTest {
testInfo,
workDir.resolve("firstNode"),
firstNodeAddr,
- allNodes
+ allNodes,
+ raftConfiguration
);
secondNode = new Node(
testInfo,
workDir.resolve("secondNode"),
secondNodeAddr,
- allNodes
+ allNodes,
+ raftConfiguration
);
firstNode.start();
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
index 1079da25cd..73a8de9750 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
@@ -32,10 +32,13 @@ import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
import org.apache.ignite.internal.cluster.management.raft.ConcurrentMapClusterStateStorage;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStorage;
import org.apache.ignite.internal.raft.Loza;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.internal.vault.VaultManager;
@@ -52,7 +55,11 @@ import org.junit.jupiter.api.extension.ExtendWith;
* Tests for the {@link DistributedConfigurationStorage}.
*/
@ExtendWith(WorkDirectoryExtension.class)
+@ExtendWith(ConfigurationExtension.class)
public class ItDistributedConfigurationStorageTest {
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
/**
* An emulation of an Ignite node, that only contains components necessary for tests.
*/
@@ -83,7 +90,7 @@ public class ItDistributedConfigurationStorageTest {
new StaticNodeFinder(List.of(addr))
);
- raftManager = new Loza(clusterService, workDir);
+ raftManager = new Loza(clusterService, raftConfiguration, workDir);
cmgManager = new ClusterManagementGroupManager(
vaultManager,
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java
index 5cb7f04af7..7d8916680f 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java
@@ -43,23 +43,24 @@ import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.baseline.BaselineManager;
import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
import org.apache.ignite.internal.cluster.management.raft.ConcurrentMapClusterStateStorage;
import org.apache.ignite.internal.configuration.ConfigurationManager;
import org.apache.ignite.internal.configuration.schema.ExtendedTableConfiguration;
import org.apache.ignite.internal.configuration.schema.ExtendedTableConfigurationSchema;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStorage;
import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.raft.Loza;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.server.impl.JraftServerImpl;
import org.apache.ignite.internal.raft.storage.impl.LocalLogStorageFactory;
import org.apache.ignite.internal.schema.SchemaManager;
@@ -104,6 +105,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
* Test suite for rebalance process, when replicas' number changed.
*/
@ExtendWith(WorkDirectoryExtension.class)
+@ExtendWith(ConfigurationExtension.class)
public class ItRebalanceDistributedTest {
public static final int BASE_PORT = 20_000;
@@ -114,6 +116,9 @@ public class ItRebalanceDistributedTest {
private static List<Node> nodes;
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
@BeforeEach
private void before(@WorkDirectory Path workDir, TestInfo testInfo) throws Exception {
nodes = new ArrayList<>();
@@ -127,7 +132,7 @@ public class ItRebalanceDistributedTest {
finder = new StaticNodeFinder(nodeAddresses);
for (NetworkAddress addr : nodeAddresses) {
- var node = new Node(testInfo, workDir, addr);
+ var node = new Node(testInfo, workDir, addr, raftConfiguration);
nodes.add(node);
@@ -384,7 +389,7 @@ public class ItRebalanceDistributedTest {
/**
* Constructor that simply creates a subset of components of this node.
*/
- Node(TestInfo testInfo, Path workDir, NetworkAddress addr) {
+ Node(TestInfo testInfo, Path workDir, NetworkAddress addr, RaftConfiguration raftConfiguration) {
name = testNodeName(testInfo, addr.port());
@@ -410,7 +415,7 @@ public class ItRebalanceDistributedTest {
lockManager = new HeapLockManager();
- raftManager = new Loza(clusterService, dir);
+ raftManager = new Loza(clusterService, raftConfiguration, dir);
txManager = new TableTxManagerImpl(clusterService, lockManager);
@@ -445,9 +450,7 @@ public class ItRebalanceDistributedTest {
HashIndexConfigurationSchema.class,
ConstantValueDefaultConfigurationSchema.class,
FunctionCallDefaultConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class,
- EntryCountBudgetConfigurationSchema.class
+ NullValueDefaultConfigurationSchema.class
)
);
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java
index e693f2315b..82fc038a51 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/inmemory/ItRaftStorageVolatilityTest.java
@@ -39,6 +39,7 @@ import java.util.stream.Stream;
import org.apache.ignite.configuration.schemas.table.EntryCountBudgetChange;
import org.apache.ignite.internal.AbstractClusterIntegrationTest;
import org.apache.ignite.internal.app.IgniteImpl;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.schema.testutils.SchemaConfigurationConverter;
import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders;
import org.apache.ignite.internal.schema.testutils.definition.ColumnType;
@@ -216,6 +217,12 @@ class ItRaftStorageVolatilityTest extends AbstractClusterIntegrationTest {
@Test
void logSpillsOutToDisk() {
+ node(0).nodeConfiguration().getConfiguration(RaftConfiguration.KEY).change(cfg -> {
+ cfg.changeVolatileRaft(change -> {
+ change.changeLogStorage(budgetChange -> budgetChange.convert(EntryCountBudgetChange.class).changeEntriesCountLimit(1));
+ });
+ });
+
createTableWithMaxOneInMemoryEntryAllowed("PERSON");
executeSql("INSERT INTO PERSON(ID, NAME) VALUES (1, 'JOHN')");
@@ -233,11 +240,6 @@ class ItRaftStorageVolatilityTest extends AbstractClusterIntegrationTest {
.changePartitions(1)
.changeDataStorage(storageChange -> {
storageChange.convert(VolatilePageMemoryDataStorageChange.class);
- })
- .changeVolatileRaft(raftChange -> {
- raftChange.changeLogStorage(budgetChange -> {
- budgetChange.convert(EntryCountBudgetChange.class).changeEntriesCountLimit(1);
- });
});
}));
}
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index badde4e77c..69cd50d6a1 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -62,11 +62,14 @@ import org.apache.ignite.internal.configuration.ServiceLoaderModulesProvider;
import org.apache.ignite.internal.configuration.storage.ConfigurationStorage;
import org.apache.ignite.internal.configuration.storage.DistributedConfigurationStorage;
import org.apache.ignite.internal.configuration.storage.LocalConfigurationStorage;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.server.persistence.RocksDbKeyValueStorage;
import org.apache.ignite.internal.raft.Loza;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.storage.impl.LocalLogStorageFactory;
import org.apache.ignite.internal.recovery.ConfigurationCatchUpListener;
import org.apache.ignite.internal.recovery.RecoveryCompletionFutureFactory;
@@ -104,11 +107,13 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
+import org.junit.jupiter.api.extension.ExtendWith;
/**
* These tests check node restart scenarios.
*/
@WithSystemProperty(key = CONFIGURATION_CATCH_UP_DIFFERENCE_PROPERTY, value = "0")
+@ExtendWith(ConfigurationExtension.class)
public class ItIgniteNodeRestartTest extends IgniteAbstractTest {
/** Default node port. */
private static final int DEFAULT_NODE_PORT = 3344;
@@ -136,6 +141,9 @@ public class ItIgniteNodeRestartTest extends IgniteAbstractTest {
/** Cluster nodes. */
private List<IgniteComponent> partialNode = null;
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
/**
* Stops all started nodes.
*/
@@ -217,7 +225,7 @@ public class ItIgniteNodeRestartTest extends IgniteAbstractTest {
nettyBootstrapFactory
);
- var raftMgr = new Loza(clusterSvc, dir);
+ var raftMgr = new Loza(clusterSvc, raftConfiguration, dir);
var txManager = new TableTxManagerImpl(clusterSvc, new HeapLockManager());
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index 4040f5a865..b87e8d4738 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -62,6 +62,7 @@ import org.apache.ignite.internal.metastorage.server.persistence.RocksDbKeyValue
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.metrics.configuration.MetricConfiguration;
import org.apache.ignite.internal.raft.Loza;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.storage.impl.VolatileLogStorageFactoryCreator;
import org.apache.ignite.internal.recovery.ConfigurationCatchUpListener;
import org.apache.ignite.internal.recovery.RecoveryCompletionFutureFactory;
@@ -264,7 +265,7 @@ public class IgniteImpl implements Ignite {
nodeCfgMgr.configurationRegistry().getConfiguration(ComputeConfiguration.KEY)
);
- raftMgr = new Loza(clusterSvc, workDir);
+ raftMgr = new Loza(clusterSvc, nodeCfgMgr.configurationRegistry().getConfiguration(RaftConfiguration.KEY), workDir);
txManager = new TableTxManagerImpl(clusterSvc, new HeapLockManager());
diff --git a/modules/runner/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/runner/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index cf110c9c66..334eaa2221 100644
--- a/modules/runner/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/runner/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -14,5 +14,3 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-org.apache.ignite.internal.configuration.CoreLocalConfigurationModule
-org.apache.ignite.internal.configuration.CoreDistributedConfigurationModule
diff --git a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CoreDistributedConfigurationModuleTest.java b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CoreDistributedConfigurationModuleTest.java
deleted file mode 100644
index 24cb1fc8ca..0000000000
--- a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CoreDistributedConfigurationModuleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.configuration;
-
-import static com.github.npathai.hamcrestopt.OptionalMatchers.isPresent;
-import static org.apache.ignite.configuration.annotation.ConfigurationType.DISTRIBUTED;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.anEmptyMap;
-import static org.hamcrest.Matchers.empty;
-import static org.hamcrest.Matchers.hasItem;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.not;
-
-import java.util.Optional;
-import java.util.ServiceLoader;
-import java.util.ServiceLoader.Provider;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for {@link CoreDistributedConfigurationModule}.
- */
-class CoreDistributedConfigurationModuleTest {
- private final CoreDistributedConfigurationModule module = new CoreDistributedConfigurationModule();
-
- @Test
- void typeIsDistributed() {
- assertThat(module.type(), is(DISTRIBUTED));
- }
-
- @Test
- void hasTablesConfigurationRoot() {
- assertThat(module.rootKeys(), hasItem(TablesConfiguration.KEY));
- }
-
- @Test
- void providesNoValidators() {
- assertThat(module.validators(), not(anEmptyMap()));
- }
-
- @Test
- void providesNoInternalSchemaExtensions() {
- assertThat(module.internalSchemaExtensions(), is(empty()));
- }
-
- @Test
- void providesHashIndexConfigurationSchemaAsPolymorphicExtension() {
- assertThat(module.polymorphicSchemaExtensions(), hasItem(HashIndexConfigurationSchema.class));
- }
-
- @Test
- void providesSortedIndexConfigurationSchemaAsPolymorphicExtension() {
- assertThat(module.polymorphicSchemaExtensions(), hasItem(SortedIndexConfigurationSchema.class));
- }
-
- @Test
- void isLoadedByServiceLoader() {
- Optional<ConfigurationModule> maybeModule = ServiceLoader.load(ConfigurationModule.class).stream()
- .map(Provider::get)
- .filter(module -> module instanceof CoreDistributedConfigurationModule)
- .findAny();
-
- assertThat(maybeModule, isPresent());
- }
-}
diff --git a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModuleTest.java b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModuleTest.java
deleted file mode 100644
index c7d97356ea..0000000000
--- a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CoreLocalConfigurationModuleTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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.configuration;
-
-import static com.github.npathai.hamcrestopt.OptionalMatchers.isPresent;
-import static org.apache.ignite.configuration.annotation.ConfigurationType.LOCAL;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.anEmptyMap;
-import static org.hamcrest.Matchers.empty;
-import static org.hamcrest.Matchers.hasItem;
-import static org.hamcrest.Matchers.is;
-
-import java.util.Optional;
-import java.util.ServiceLoader;
-import java.util.ServiceLoader.Provider;
-import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
-import org.apache.ignite.configuration.schemas.compute.ComputeConfiguration;
-import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
-import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for {@link CoreLocalConfigurationModule}.
- */
-class CoreLocalConfigurationModuleTest {
- private final CoreLocalConfigurationModule module = new CoreLocalConfigurationModule();
-
- @Test
- void typeIsLocal() {
- assertThat(module.type(), is(LOCAL));
- }
-
- @Test
- void hasNetworkConfigurationRoot() {
- assertThat(module.rootKeys(), hasItem(NetworkConfiguration.KEY));
- }
-
- @Test
- void hasRestConfigurationRoot() {
- assertThat(module.rootKeys(), hasItem(RestConfiguration.KEY));
- }
-
- @Test
- void hasClientConnectorConfigurationRoot() {
- assertThat(module.rootKeys(), hasItem(ClientConnectorConfiguration.KEY));
- }
-
- @Test
- void hasComputeConfigurationRoot() {
- assertThat(module.rootKeys(), hasItem(ComputeConfiguration.KEY));
- }
-
- @Test
- void providesNoValidators() {
- assertThat(module.validators(), is(anEmptyMap()));
- }
-
- @Test
- void providesNoInternalSchemaExtensions() {
- assertThat(module.internalSchemaExtensions(), is(empty()));
- }
-
- @Test
- void providesNoPolymorphicSchemaExtensions() {
- assertThat(module.polymorphicSchemaExtensions(), is(empty()));
- }
-
- @Test
- void isLoadedByServiceLoader() {
- Optional<ConfigurationModule> maybeModule = ServiceLoader.load(ConfigurationModule.class).stream()
- .map(Provider::get)
- .filter(module -> module instanceof CoreLocalConfigurationModule)
- .findAny();
-
- assertThat(maybeModule, isPresent());
- }
-}
diff --git a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 685b7b2a06..282191e292 100644
--- a/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/runner/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModule.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModule.java
index 68d42420f1..06c2f23044 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModule.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModule.java
@@ -22,13 +22,17 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
+import org.apache.ignite.configuration.schemas.store.KnownDataStorage;
+import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.ColumnTypeValidator;
import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.IndexValidator;
import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TableValidator;
+import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
import org.apache.ignite.configuration.validation.Validator;
import org.apache.ignite.internal.configuration.ConfigurationModule;
@@ -42,10 +46,16 @@ public class SchemaDistributedConfigurationModule implements ConfigurationModule
return ConfigurationType.DISTRIBUTED;
}
+ @Override
+ public Collection<RootKey<?, ?>> rootKeys() {
+ return List.of(TablesConfiguration.KEY);
+ }
+
/** {@inheritDoc} */
@Override
public Map<Class<? extends Annotation>, Set<Validator<? extends Annotation, ?>>> validators() {
return Map.of(
+ KnownDataStorage.class, Set.of(new KnownDataStorageValidator()),
TableValidator.class, Set.of(TableValidatorImpl.INSTANCE),
ColumnTypeValidator.class, Set.of(ColumnTypeValidatorImpl.INSTANCE),
IndexValidator.class, Set.of(IndexValidatorImpl.INSTANCE)
@@ -56,6 +66,7 @@ public class SchemaDistributedConfigurationModule implements ConfigurationModule
@Override
public Collection<Class<?>> polymorphicSchemaExtensions() {
return List.of(
+ UnknownDataStorageConfigurationSchema.class,
ConstantValueDefaultConfigurationSchema.class,
FunctionCallDefaultConfigurationSchema.class,
NullValueDefaultConfigurationSchema.class
diff --git a/modules/schema/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/schema/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 86abc557f9..fa2496bd14 100644
--- a/modules/schema/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/schema/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/AbstractTableIndexValidatorTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/AbstractTableIndexValidatorTest.java
index 9aa0096a05..b518669983 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/AbstractTableIndexValidatorTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/AbstractTableIndexValidatorTest.java
@@ -17,18 +17,11 @@
package org.apache.ignite.internal.schema.configuration;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.schema.configuration.schema.TestDataStorageConfigurationSchema;
import org.apache.ignite.internal.schema.testutils.SchemaConfigurationConverter;
import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders;
import org.apache.ignite.internal.schema.testutils.builder.TableDefinitionBuilder;
@@ -47,13 +40,6 @@ public class AbstractTableIndexValidatorTest {
polymorphicExtensions = {
HashIndexConfigurationSchema.class,
SortedIndexConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- TestDataStorageConfigurationSchema.class,
- ConstantValueDefaultConfigurationSchema.class,
- FunctionCallDefaultConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class,
- EntryCountBudgetConfigurationSchema.class
}
)
protected TablesConfiguration tablesCfg;
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/ConfigurationToSchemaDescriptorConverterTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/ConfigurationToSchemaDescriptorConverterTest.java
index a1c1bbc11f..778d3c50e0 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/ConfigurationToSchemaDescriptorConverterTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/ConfigurationToSchemaDescriptorConverterTest.java
@@ -21,17 +21,14 @@ import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import java.util.ArrayList;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.ColumnDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.ColumnDefaultView;
import org.apache.ignite.configuration.schemas.table.ColumnTypeView;
import org.apache.ignite.configuration.schemas.table.ColumnView;
import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultView;
import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultView;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.NullValueDefaultView;
import org.apache.ignite.configuration.schemas.table.TableConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.schema.BitmaskNativeType;
@@ -125,11 +122,6 @@ public class ConfigurationToSchemaDescriptorConverterTest extends AbstractSchema
@Test
public void convertTableView(@InjectConfiguration(
- polymorphicExtensions = {
- UnknownDataStorageConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock {"
+ "primaryKey {columns=[K1, K2], colocationColumns=[K2]},"
+ "columns: ["
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/KnownDataStorageValidatorTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/KnownDataStorageValidatorTest.java
index d4f93736cf..351bbabf59 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/KnownDataStorageValidatorTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/KnownDataStorageValidatorTest.java
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.mock;
import org.apache.ignite.configuration.schemas.store.DataStorageConfiguration;
import org.apache.ignite.configuration.schemas.store.DataStorageView;
import org.apache.ignite.configuration.schemas.store.KnownDataStorage;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.schema.configuration.schema.TestDataStorageChange;
@@ -39,7 +38,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(ConfigurationExtension.class)
public class KnownDataStorageValidatorTest {
@InjectConfiguration(
- polymorphicExtensions = {UnknownDataStorageConfigurationSchema.class, TestDataStorageConfigurationSchema.class}
+ polymorphicExtensions = {
+ TestDataStorageConfigurationSchema.class
+ }
)
private DataStorageConfiguration dataStorageConfig;
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModuleTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModuleTest.java
index 073f68e86b..c95e6a0048 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModuleTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaDistributedConfigurationModuleTest.java
@@ -47,11 +47,6 @@ class SchemaDistributedConfigurationModuleTest {
assertThat(module.type(), is(DISTRIBUTED));
}
- @Test
- void hasNoConfigurationRoots() {
- assertThat(module.rootKeys(), is(empty()));
- }
-
@Test
void providesTableValidator() {
assertThat(module.validators(), hasEntry(is(TableValidator.class), hasItem(instanceOf(TableValidatorImpl.class))));
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/StopCalciteModuleTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/StopCalciteModuleTest.java
index fd61fd3a13..1a6f511b8d 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/StopCalciteModuleTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/StopCalciteModuleTest.java
@@ -45,15 +45,8 @@ import java.util.concurrent.Flow;
import java.util.function.Consumer;
import java.util.function.Function;
import org.apache.ignite.configuration.ConfigurationValue;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TableConfiguration;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.index.IndexManager;
@@ -136,15 +129,7 @@ public class StopCalciteModuleTest {
TestRevisionRegister testRevisionRegister = new TestRevisionRegister();
- @InjectConfiguration(polymorphicExtensions = {
- HashIndexConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- ConstantValueDefaultConfigurationSchema.class,
- FunctionCallDefaultConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class,
- EntryCountBudgetConfigurationSchema.class
- })
+ @InjectConfiguration
TablesConfiguration tablesConfig;
/**
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
index 953cf545f1..6989459296 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
@@ -49,20 +49,11 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import java.util.function.Function;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TableView;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.baseline.BaselineManager;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.notifications.ConfigurationStorageRevisionListenerHolder;
-import org.apache.ignite.internal.configuration.schema.ExtendedTableConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.configuration.testframework.InjectRevisionListenerHolder;
@@ -168,21 +159,7 @@ public class MockedStructuresTest extends IgniteAbstractTest {
private Consumer<Function<Long, CompletableFuture<?>>> revisionUpdater;
/** Tables configuration. */
- @InjectConfiguration(
- internalExtensions = ExtendedTableConfigurationSchema.class,
- polymorphicExtensions = {
- HashIndexConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- RocksDbDataStorageConfigurationSchema.class,
- TestDataStorageConfigurationSchema.class,
- ConstantValueDefaultConfigurationSchema.class,
- FunctionCallDefaultConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class,
- EntryCountBudgetConfigurationSchema.class
- }
- )
+ @InjectConfiguration
private TablesConfiguration tblsCfg;
TableManager tblManager;
diff --git a/modules/storage-api/build.gradle b/modules/storage-api/build.gradle
index 4c6d89f45a..0e8bfb7ffd 100644
--- a/modules/storage-api/build.gradle
+++ b/modules/storage-api/build.gradle
@@ -31,6 +31,7 @@ dependencies {
testAnnotationProcessor project(":ignite-configuration-annotation-processor")
testImplementation project(':ignite-core')
testImplementation project(':ignite-configuration')
+ testImplementation project(':ignite-index')
testImplementation project(':ignite-schema')
testImplementation(testFixtures(project(':ignite-schema')))
testImplementation(testFixtures(project(':ignite-core')))
diff --git a/modules/storage-api/pom.xml b/modules/storage-api/pom.xml
index 8dcd25bde7..c51defcc35 100644
--- a/modules/storage-api/pom.xml
+++ b/modules/storage-api/pom.xml
@@ -87,6 +87,12 @@
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-index</artifactId>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-schema</artifactId>
diff --git a/modules/storage-api/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/storage-api/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index fad3807f86..203038b927 100644
--- a/modules/storage-api/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/storage-api/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageManagerTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageManagerTest.java
index 2f3c8a207a..a74575f73e 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageManagerTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/DataStorageManagerTest.java
@@ -38,15 +38,8 @@ import org.apache.ignite.configuration.ConfigurationWrongPolymorphicTypeIdExcept
import org.apache.ignite.configuration.schemas.store.DataStorageConfiguration;
import org.apache.ignite.configuration.schemas.store.DataStorageView;
import org.apache.ignite.configuration.schemas.store.UnknownDataStorageChange;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
import org.apache.ignite.configuration.schemas.store.UnknownDataStorageView;
-import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -68,24 +61,13 @@ public class DataStorageManagerTest {
@InjectConfiguration(
polymorphicExtensions = {
- UnknownDataStorageConfigurationSchema.class,
FirstDataStorageConfigurationSchema.class,
SecondDataStorageConfigurationSchema.class
}
)
private DataStorageConfiguration dataStorageConfig;
- @InjectConfiguration(polymorphicExtensions = {
- HashIndexConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- FirstDataStorageConfigurationSchema.class,
- SecondDataStorageConfigurationSchema.class,
- ConstantValueDefaultConfigurationSchema.class,
- FunctionCallDefaultConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class,
- EntryCountBudgetConfigurationSchema.class
- })
+ @InjectConfiguration
private TablesConfiguration tablesConfig;
@Test
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvTableStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvTableStorageTest.java
index 5290b8e172..a5051ff658 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvTableStorageTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvTableStorageTest.java
@@ -17,17 +17,11 @@
package org.apache.ignite.internal.storage;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.impl.TestMvTableStorage;
import org.apache.ignite.internal.storage.impl.TestStorageEngine;
-import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -42,14 +36,6 @@ public class TestMvTableStorageTest extends AbstractMvTableStorageTest {
@BeforeEach
void setUp(
@InjectConfiguration(
- polymorphicExtensions = {
- TestDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + TestStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java
index b8bd599601..caae28335a 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java
@@ -17,17 +17,12 @@
package org.apache.ignite.internal.storage.index;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TableConfiguration;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.impl.TestMvTableStorage;
import org.apache.ignite.internal.storage.impl.TestStorageEngine;
-import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -39,13 +34,6 @@ public class TestHashIndexStorageTest extends AbstractHashIndexStorageTest {
@BeforeEach
void setUp(
@InjectConfiguration(
- polymorphicExtensions = {
- TestDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + TestStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java
index d6fb22b1b0..9ad9e0fc95 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java
@@ -17,17 +17,12 @@
package org.apache.ignite.internal.storage.index;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TableConfiguration;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.impl.TestMvTableStorage;
import org.apache.ignite.internal.storage.impl.TestStorageEngine;
-import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.index.impl.TestSortedIndexStorage;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -40,13 +35,6 @@ public class TestSortedIndexStorageTest extends AbstractSortedIndexStorageTest {
@BeforeEach
void setUp(
@InjectConfiguration(
- polymorphicExtensions = {
- TestDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + TestStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 130a51d4f3..6fd84a13ab 100644
--- a/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
diff --git a/modules/storage-page-memory/build.gradle b/modules/storage-page-memory/build.gradle
index 552f18061c..2505de1037 100644
--- a/modules/storage-page-memory/build.gradle
+++ b/modules/storage-page-memory/build.gradle
@@ -31,6 +31,7 @@ dependencies {
annotationProcessor project(':ignite-configuration-annotation-processor')
testImplementation project(':ignite-core')
+ testImplementation project(':ignite-index')
testImplementation project(':ignite-storage-api')
testImplementation project(':ignite-configuration')
testImplementation project(':ignite-transactions')
diff --git a/modules/storage-page-memory/pom.xml b/modules/storage-page-memory/pom.xml
index 3927fcca57..bd30d25324 100644
--- a/modules/storage-page-memory/pom.xml
+++ b/modules/storage-page-memory/pom.xml
@@ -73,6 +73,12 @@
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-index</artifactId>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
diff --git a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineDistributedConfigurationModule.java b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineDistributedConfigurationModule.java
index d9b678455a..e09fb41d9c 100644
--- a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineDistributedConfigurationModule.java
+++ b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineDistributedConfigurationModule.java
@@ -26,7 +26,6 @@ import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
import org.apache.ignite.configuration.validation.Validator;
import org.apache.ignite.internal.configuration.ConfigurationModule;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryDataStorageConfigurationSchema;
@@ -53,8 +52,7 @@ public class PageMemoryStorageEngineDistributedConfigurationModule implements Co
public Collection<Class<?>> polymorphicSchemaExtensions() {
return List.of(
VolatilePageMemoryDataStorageConfigurationSchema.class,
- PersistentPageMemoryDataStorageConfigurationSchema.class,
- UnsafeMemoryAllocatorConfigurationSchema.class
+ PersistentPageMemoryDataStorageConfigurationSchema.class
);
}
diff --git a/modules/storage-page-memory/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/storage-page-memory/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index f8b745f933..12b47ef533 100644
--- a/modules/storage-page-memory/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/storage-page-memory/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegionTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegionTest.java
index 5aab3f64d8..c10f742692 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegionTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegionTest.java
@@ -30,7 +30,6 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.pagememory.configuration.schema.PersistentPageMemoryDataRegionConfiguration;
import org.apache.ignite.internal.pagememory.configuration.schema.PersistentPageMemoryDataRegionView;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -39,7 +38,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
*/
@ExtendWith(ConfigurationExtension.class)
public class PersistentPageMemoryDataRegionTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private PersistentPageMemoryDataRegionConfiguration dataRegionConfig;
@Test
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java
index 2cc4634e4b..5df15ee0fc 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryMvTableStorageTest.java
@@ -18,19 +18,12 @@
package org.apache.ignite.internal.storage.pagememory;
import java.nio.file.Path;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.apache.ignite.internal.storage.AbstractMvTableStorageTest;
import org.apache.ignite.internal.storage.engine.MvTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -54,17 +47,9 @@ public class PersistentPageMemoryMvTableStorageTest extends AbstractMvTableStora
void setUp(
@WorkDirectory
Path workDir,
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
PersistentPageMemoryStorageEngineConfiguration engineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- PersistentPageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo{ partitions = 512, dataStorage.name = " + PersistentPageMemoryStorageEngine.ENGINE_NAME + "}"
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java
index be25cc7fd4..109b4aaed6 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryMvTableStorageTest.java
@@ -17,19 +17,12 @@
package org.apache.ignite.internal.storage.pagememory;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.apache.ignite.internal.storage.AbstractMvTableStorageTest;
import org.apache.ignite.internal.storage.engine.MvTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
@@ -48,17 +41,9 @@ public class VolatilePageMemoryMvTableStorageTest extends AbstractMvTableStorage
@BeforeEach
void setUp(
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
VolatilePageMemoryStorageEngineConfiguration engineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- VolatilePageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo{ partitions = 512, dataStorage.name = " + VolatilePageMemoryStorageEngine.ENGINE_NAME + "}"
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryDataRegionValidatorImplTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryDataRegionValidatorImplTest.java
index 5077a4f6a1..c1cb9e6eb6 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryDataRegionValidatorImplTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryDataRegionValidatorImplTest.java
@@ -34,7 +34,6 @@ import org.apache.ignite.configuration.validation.ValidationContext;
import org.apache.ignite.configuration.validation.ValidationIssue;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.BasePageMemoryStorageEngineView;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryDataStorageView;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryStorageEngineConfiguration;
@@ -49,10 +48,10 @@ import org.mockito.ArgumentCaptor;
*/
@ExtendWith(ConfigurationExtension.class)
public class PageMemoryDataRegionValidatorImplTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private VolatilePageMemoryStorageEngineConfiguration volatileEngineConfig;
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private PersistentPageMemoryStorageEngineConfiguration persistentEngineConfig;
@Test
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemoryHashIndexStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemoryHashIndexStorageTest.java
index 06d1e98e4c..697cd137ba 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemoryHashIndexStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemoryHashIndexStorageTest.java
@@ -18,19 +18,13 @@
package org.apache.ignite.internal.storage.pagememory.index;
import java.nio.file.Path;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.apache.ignite.internal.storage.index.AbstractHashIndexStorageTest;
import org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryStorageEngine;
import org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -53,16 +47,9 @@ class PersistentPageMemoryHashIndexStorageTest extends AbstractHashIndexStorageT
void setUp(
@WorkDirectory
Path workDir,
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
PersistentPageMemoryStorageEngineConfiguration engineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- PersistentPageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + PersistentPageMemoryStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemorySortedIndexStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemorySortedIndexStorageTest.java
index 6ef5178ff6..a092462a9c 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemorySortedIndexStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/PersistentPageMemorySortedIndexStorageTest.java
@@ -18,19 +18,13 @@
package org.apache.ignite.internal.storage.pagememory.index;
import java.nio.file.Path;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.apache.ignite.internal.storage.index.AbstractSortedIndexStorageTest;
import org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryStorageEngine;
import org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -51,16 +45,9 @@ class PersistentPageMemorySortedIndexStorageTest extends AbstractSortedIndexStor
@BeforeEach
void setUp(
@WorkDirectory Path workDir,
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
PersistentPageMemoryStorageEngineConfiguration engineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- PersistentPageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + PersistentPageMemoryStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemoryHashIndexStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemoryHashIndexStorageTest.java
index 61c71a02ab..dee97cb0a5 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemoryHashIndexStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemoryHashIndexStorageTest.java
@@ -17,19 +17,13 @@
package org.apache.ignite.internal.storage.pagememory.index;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.apache.ignite.internal.storage.index.AbstractHashIndexStorageTest;
import org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryStorageEngine;
import org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
@@ -48,16 +42,9 @@ class VolatilePageMemoryHashIndexStorageTest extends AbstractHashIndexStorageTes
@BeforeEach
void setUp(
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
VolatilePageMemoryStorageEngineConfiguration engineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- VolatilePageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + VolatilePageMemoryStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemorySortedIndexStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemorySortedIndexStorageTest.java
index b8765d2976..920293ff1c 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemorySortedIndexStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/index/VolatilePageMemorySortedIndexStorageTest.java
@@ -17,19 +17,13 @@
package org.apache.ignite.internal.storage.pagememory.index;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
import org.apache.ignite.internal.storage.index.AbstractSortedIndexStorageTest;
import org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryStorageEngine;
import org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
@@ -47,16 +41,9 @@ class VolatilePageMemorySortedIndexStorageTest extends AbstractSortedIndexStorag
@BeforeEach
void setUp(
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
VolatilePageMemoryStorageEngineConfiguration engineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- VolatilePageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + VolatilePageMemoryStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java
index edeec6689b..5828510b87 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorageTest.java
@@ -21,20 +21,14 @@ import static org.apache.ignite.internal.pagememory.persistence.checkpoint.Check
import java.nio.file.Path;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.components.LongJvmPauseDetector;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.logger.Loggers;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.storage.RowId;
import org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryStorageEngine;
import org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -49,20 +43,10 @@ class PersistentPageMemoryMvPartitionStorageTest extends AbstractPageMemoryMvPar
@WorkDirectory
private Path workDir;
- @InjectConfiguration(
- value = "mock.checkpoint.checkpointDelayMillis = 0",
- polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class
- )
+ @InjectConfiguration(value = "mock.checkpoint.checkpointDelayMillis = 0")
private PersistentPageMemoryStorageEngineConfiguration engineConfig;
@InjectConfiguration(
- polymorphicExtensions = {
- PersistentPageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + PersistentPageMemoryStorageEngine.ENGINE_NAME
)
private TablesConfiguration tablesConfig;
diff --git a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageTest.java b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageTest.java
index bab8f61365..9a9aba58a0 100644
--- a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageTest.java
+++ b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/mv/VolatilePageMemoryMvPartitionStorageTest.java
@@ -17,17 +17,11 @@
package org.apache.ignite.internal.storage.pagememory.mv;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryStorageEngine;
import org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryTableStorage;
-import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryStorageEngineConfiguration;
import org.apache.ignite.internal.util.IgniteUtils;
import org.junit.jupiter.api.AfterEach;
@@ -36,7 +30,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(ConfigurationExtension.class)
class VolatilePageMemoryMvPartitionStorageTest extends AbstractPageMemoryMvPartitionStorageTest {
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private VolatilePageMemoryStorageEngineConfiguration engineConfig;
private VolatilePageMemoryStorageEngine engine;
@@ -46,13 +40,6 @@ class VolatilePageMemoryMvPartitionStorageTest extends AbstractPageMemoryMvParti
@BeforeEach
void setUp(
@InjectConfiguration(
- polymorphicExtensions = {
- VolatilePageMemoryDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + VolatilePageMemoryStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-rocksdb/build.gradle b/modules/storage-rocksdb/build.gradle
index 13598345fc..1165a82790 100644
--- a/modules/storage-rocksdb/build.gradle
+++ b/modules/storage-rocksdb/build.gradle
@@ -32,6 +32,7 @@ dependencies {
testAnnotationProcessor project(':ignite-configuration-annotation-processor')
testImplementation project(':ignite-core')
+ testImplementation project(':ignite-index')
testImplementation(testFixtures(project(':ignite-core')))
testImplementation project(':ignite-configuration')
testImplementation(testFixtures(project(':ignite-configuration')))
diff --git a/modules/storage-rocksdb/pom.xml b/modules/storage-rocksdb/pom.xml
index ad6ee1a38e..e5b08b84e0 100644
--- a/modules/storage-rocksdb/pom.xml
+++ b/modules/storage-rocksdb/pom.xml
@@ -73,6 +73,12 @@
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-index</artifactId>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
diff --git a/modules/storage-rocksdb/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/storage-rocksdb/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index da430a3cf3..44eda3b66d 100644
--- a/modules/storage-rocksdb/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/storage-rocksdb/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
diff --git a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
index c312a3fd96..2d9addd3b1 100644
--- a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
+++ b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorageTest.java
@@ -22,16 +22,11 @@ import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
import java.nio.file.Path;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TableConfiguration;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.AbstractMvPartitionStorageTest;
-import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageView;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
@@ -57,13 +52,6 @@ public class RocksDbMvPartitionStorageTest extends AbstractMvPartitionStorageTes
@InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size = 16536, writeBufferSize = 16536}}")
RocksDbStorageEngineConfiguration engineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- RocksDbDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + RocksDbStorageEngine.ENGINE_NAME
) TablesConfiguration tablesCfg
) throws Exception {
diff --git a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
index 12da6cafc3..3cfb548db3 100644
--- a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
+++ b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvTableStorageTest.java
@@ -28,19 +28,13 @@ import static org.hamcrest.MatcherAssert.assertThat;
import java.nio.file.Path;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.AbstractMvTableStorageTest;
import org.apache.ignite.internal.storage.MvPartitionStorage;
import org.apache.ignite.internal.storage.RowId;
import org.apache.ignite.internal.storage.engine.MvTableStorage;
-import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -57,14 +51,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(ConfigurationExtension.class)
public class RocksDbMvTableStorageTest extends AbstractMvTableStorageTest {
@InjectConfiguration(
- polymorphicExtensions = {
- RocksDbDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo{ partitions = 512, dataStorage.name = " + RocksDbStorageEngine.ENGINE_NAME + "}"
)
private TablesConfiguration tablesConfig;
diff --git a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngineTest.java b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngineTest.java
index 76cf7d3219..0b9a98160e 100644
--- a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngineTest.java
+++ b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngineTest.java
@@ -24,16 +24,11 @@ import static org.hamcrest.Matchers.is;
import java.nio.file.Path;
import java.util.concurrent.CompletableFuture;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.engine.MvTableStorage;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfiguration;
-import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -68,13 +63,6 @@ public class RocksDbStorageEngineTest {
@Test
void testCreateTableWithDefaultDataRegion(
@InjectConfiguration(
- polymorphicExtensions = {
- RocksDbDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name=" + RocksDbStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
@@ -97,13 +85,6 @@ public class RocksDbStorageEngineTest {
@Test
void testCreateTableWithDynamicCustomDataRegion(
@InjectConfiguration(
- polymorphicExtensions = {
- RocksDbDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage{name=" + RocksDbStorageEngine.ENGINE_NAME + ", dataRegion=foobar}"
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java
index 44918fa1a0..956c2d859d 100644
--- a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java
+++ b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorageTest.java
@@ -18,17 +18,12 @@
package org.apache.ignite.internal.storage.rocksdb.index;
import java.nio.file.Path;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.index.AbstractHashIndexStorageTest;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import org.apache.ignite.internal.storage.rocksdb.RocksDbTableStorage;
-import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -53,13 +48,6 @@ public class RocksDbHashIndexStorageTest extends AbstractHashIndexStorageTest {
@InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size = 16536, writeBufferSize = 16536}}")
RocksDbStorageEngineConfiguration rocksDbEngineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- RocksDbDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- HashIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + RocksDbStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java
index 8e33efc3bb..ab65e58d2b 100644
--- a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java
+++ b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorageTest.java
@@ -18,17 +18,12 @@
package org.apache.ignite.internal.storage.rocksdb.index;
import java.nio.file.Path;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.storage.index.AbstractSortedIndexStorageTest;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import org.apache.ignite.internal.storage.rocksdb.RocksDbTableStorage;
-import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -53,13 +48,6 @@ public class RocksDbSortedIndexStorageTest extends AbstractSortedIndexStorageTes
@InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size = 16536, writeBufferSize = 16536}}")
RocksDbStorageEngineConfiguration rocksDbEngineConfig,
@InjectConfiguration(
- polymorphicExtensions = {
- RocksDbDataStorageConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class
- },
value = "mock.tables.foo.dataStorage.name = " + RocksDbStorageEngine.ENGINE_NAME
)
TablesConfiguration tablesConfig
diff --git a/modules/table/build.gradle b/modules/table/build.gradle
index 30b96dbdbd..2124fd252f 100644
--- a/modules/table/build.gradle
+++ b/modules/table/build.gradle
@@ -43,6 +43,7 @@ dependencies {
testImplementation project(':ignite-storage-api')
testImplementation project(':ignite-storage-page-memory')
testImplementation project(':ignite-storage-rocksdb')
+ testImplementation project(':ignite-index')
testImplementation project(':ignite-network')
testImplementation project(':ignite-core')
testImplementation project(':ignite-raft')
@@ -64,6 +65,7 @@ dependencies {
testImplementation libs.javax.annotations
integrationTestImplementation(testFixtures(project(':ignite-core')))
+ integrationTestImplementation(testFixtures(project(':ignite-configuration')))
integrationTestImplementation(testFixtures(project(':ignite-network')))
integrationTestImplementation(testFixtures(project(':ignite-raft')))
integrationTestImplementation(testFixtures(project(':ignite-storage-api')))
diff --git a/modules/table/pom.xml b/modules/table/pom.xml
index 46ce848876..4b364aae2f 100644
--- a/modules/table/pom.xml
+++ b/modules/table/pom.xml
@@ -163,6 +163,12 @@
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-index</artifactId>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-network</artifactId>
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
index 46d1629ca3..3e7ea9344d 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
@@ -35,9 +35,12 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.ignite.internal.affinity.RendezvousAffinityFunction;
+import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.raft.Loza;
+import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.server.RaftGroupOptions;
import org.apache.ignite.internal.raft.server.impl.JraftServerImpl;
import org.apache.ignite.internal.storage.engine.MvTableStorage;
@@ -69,12 +72,17 @@ import org.apache.ignite.utils.ClusterServiceTestUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.TestInfo;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mockito;
/**
* Distributed transaction test using a single partition table.
*/
+@ExtendWith(ConfigurationExtension.class)
public class ItTxDistributedTestSingleNode extends TxAbstractTest {
+ @InjectConfiguration
+ private static RaftConfiguration raftConfiguration;
+
private static final IgniteLogger LOG = Loggers.forClass(ItTxDistributedTestSingleNode.class);
public static final int NODE_PORT_BASE = 20_000;
@@ -180,7 +188,7 @@ public class ItTxDistributedTestSingleNode extends TxAbstractTest {
new NamedThreadFactory(Loza.CLIENT_POOL_NAME, LOG));
for (int i = 0; i < nodes; i++) {
- var raftSrv = new Loza(cluster.get(i), workDir.resolve("node" + i));
+ var raftSrv = new Loza(cluster.get(i), raftConfiguration, workDir.resolve("node" + i));
raftSrv.start();
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index 18e192e474..37c2c0590e 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -755,7 +755,7 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
if (internalTbl.storage().isVolatile()) {
raftGroupOptions = RaftGroupOptions.forVolatileStores()
- .setLogStorageFactory(volatileLogStorageFactoryCreator.factory(tableConfig.volatileRaft().logStorage().value()))
+ .setLogStorageFactory(volatileLogStorageFactoryCreator.factory(raftMgr.volatileRaft().logStorage().value()))
.raftMetaStorageFactory((groupId, raftOptions) -> new VolatileRaftMetaStorage());
} else {
raftGroupOptions = RaftGroupOptions.forPersistentStores();
diff --git a/modules/table/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/table/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 4e6012e16c..4dbd0ee5c2 100644
--- a/modules/table/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/table/src/main/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -1,10 +1,10 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
index 0294b92005..6f9473c7cd 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
@@ -65,23 +65,14 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.ignite.configuration.NamedListView;
-import org.apache.ignite.configuration.schemas.store.UnknownDataStorageConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.ConstantValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.EntryCountBudgetConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.FunctionCallDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.HashIndexConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.NullValueDefaultConfigurationSchema;
-import org.apache.ignite.configuration.schemas.table.SortedIndexConfigurationSchema;
import org.apache.ignite.configuration.schemas.table.TableChange;
import org.apache.ignite.configuration.schemas.table.TableView;
import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
-import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
import org.apache.ignite.internal.affinity.AffinityUtils;
import org.apache.ignite.internal.baseline.BaselineManager;
import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.notifications.ConfigurationStorageRevisionListenerHolder;
import org.apache.ignite.internal.configuration.schema.ExtendedTableChange;
-import org.apache.ignite.internal.configuration.schema.ExtendedTableConfigurationSchema;
import org.apache.ignite.internal.configuration.schema.ExtendedTableView;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -89,7 +80,6 @@ import org.apache.ignite.internal.configuration.testframework.InjectRevisionList
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
-import org.apache.ignite.internal.pagememory.configuration.schema.UnsafeMemoryAllocatorConfigurationSchema;
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.storage.impl.LocalLogStorageFactory;
import org.apache.ignite.internal.schema.SchemaDescriptor;
@@ -105,7 +95,6 @@ import org.apache.ignite.internal.storage.DataStorageModules;
import org.apache.ignite.internal.storage.rocksdb.RocksDbDataStorageModule;
import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageChange;
-import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfigurationSchema;
import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbStorageEngineConfiguration;
import org.apache.ignite.internal.table.TableImpl;
import org.apache.ignite.internal.table.event.TableEvent;
@@ -212,23 +201,10 @@ public class TableManagerTest extends IgniteAbstractTest {
private Consumer<Function<Long, CompletableFuture<?>>> revisionUpdater;
/** Tables configuration. */
- @InjectConfiguration(
- internalExtensions = ExtendedTableConfigurationSchema.class,
- polymorphicExtensions = {
- HashIndexConfigurationSchema.class,
- SortedIndexConfigurationSchema.class,
- UnknownDataStorageConfigurationSchema.class,
- RocksDbDataStorageConfigurationSchema.class,
- ConstantValueDefaultConfigurationSchema.class,
- FunctionCallDefaultConfigurationSchema.class,
- NullValueDefaultConfigurationSchema.class,
- UnlimitedBudgetConfigurationSchema.class,
- EntryCountBudgetConfigurationSchema.class
- }
- )
+ @InjectConfiguration
private TablesConfiguration tblsCfg;
- @InjectConfiguration(polymorphicExtensions = UnsafeMemoryAllocatorConfigurationSchema.class)
+ @InjectConfiguration
private RocksDbStorageEngineConfiguration rocksDbEngineConfig;
@Mock