This is an automated email from the ASF dual-hosted git repository.
ibessonov 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 ec9d41671fb IGNITE-25451 Enhance RootKey with a new type parameter and
constructor (#5876)
ec9d41671fb is described below
commit ec9d41671fb061c73d2889d802f668e5888c852a
Author: Ivan Bessonov <[email protected]>
AuthorDate: Mon Jun 16 11:14:19 2025 +0300
IGNITE-25451 Enhance RootKey with a new type parameter and constructor
(#5876)
---
.../config/Ignite3ConfigurationUtils.java | 2 +-
.../config/registry/CombinedConfigRegistry.java | 2 +-
.../registry/ConfigurationRegistryInterface.java | 2 +-
.../processor/ConfigurationProcessor.java | 27 ++++++++++++++++-----
.../ignite/configuration/ConfigurationModule.java | 2 +-
.../org/apache/ignite/configuration/RootKey.java | 28 +++++++---------------
.../ignite/configuration/SuperRootChange.java | 4 ++--
.../validation/ValidationContext.java | 4 ++--
.../configuration/ClusterConfigurationModule.java | 2 +-
.../configuration/NodeConfigurationModule.java | 2 +-
.../SystemDistributedConfigurationModule.java | 4 ++--
.../SystemLocalConfigurationModule.java | 4 ++--
.../configuration/ConfigurationChanger.java | 12 +++++-----
.../configuration/ConfigurationManager.java | 4 ++--
.../internal/configuration/ConfigurationNode.java | 4 ++--
.../configuration/ConfigurationRegistry.java | 8 +++----
.../configuration/ConfigurationTreeGenerator.java | 16 ++++++-------
.../configuration/DynamicConfiguration.java | 2 +-
.../configuration/DynamicConfigurationChanger.java | 2 +-
.../internal/configuration/DynamicProperty.java | 2 +-
.../configuration/NamedListConfiguration.java | 2 +-
.../internal/configuration/RootInnerNode.java | 2 +-
.../ignite/internal/configuration/SuperRoot.java | 8 +++----
.../configuration/SuperRootChangeImpl.java | 5 ++--
.../asm/ConfigurationAsmGenerator.java | 2 +-
.../configuration/util/ConfigurationUtil.java | 4 ++--
.../validation/ValidationContextImpl.java | 4 ++--
.../configuration/ConfigurationChangerTest.java | 5 ++--
.../configuration/DeletedConfigurationTest.java | 2 +-
.../InjectedValueConfigurationTest.java | 2 +-
.../configuration/RenamedConfigurationTest.java | 2 +-
.../configuration/TestConfigurationModule.java | 2 +-
.../asm/ConfigurationTreeGeneratorTest.java | 2 +-
.../deprecation/DeprecatedConfigurationTest.java | 2 +-
.../configuration/util/ConfigurationUtilTest.java | 10 ++++----
.../configuration/TestConfigurationChanger.java | 6 ++---
.../testframework/ConfigurationExtension.java | 17 ++++++-------
.../ReplicationConfigurationModule.java | 4 ++--
.../configuration/generator/DefaultsGenerator.java | 2 +-
.../internal/configuration/CompoundModule.java | 2 +-
.../internal/configuration/CompoundModuleTest.java | 4 ++--
.../configuration/ConfigurationModulesTest.java | 8 +++----
.../storage/LocalFileConfigurationModule.java | 2 +-
.../SecurityConfigurationModule.java | 4 ++--
.../AuthenticationProvidersValidatorImpl.java | 3 +--
.../SecurityConfigurationModuleTest.java | 6 ++---
...emoryStorageEngineLocalConfigurationModule.java | 2 +-
47 files changed, 122 insertions(+), 125 deletions(-)
diff --git
a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/Ignite3ConfigurationUtils.java
b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/Ignite3ConfigurationUtils.java
index 0a768742a54..5de29921550 100644
---
a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/Ignite3ConfigurationUtils.java
+++
b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/Ignite3ConfigurationUtils.java
@@ -81,7 +81,7 @@ public class Ignite3ConfigurationUtils {
// Hack so that it passes the validation
// TODO: This is another hack that needs to be cleaned. We don't
really need the ConfigurationRegistry.
var distributedModule = loadConfigurationModules().distributed();
- for (RootKey<?, ?> key : distributedModule.rootKeys()) {
+ for (RootKey<?, ?, ?> key : distributedModule.rootKeys()) {
try {
FieldUtils.writeDeclaredField(key, "storageType",
ConfigurationType.LOCAL, true);
} catch (IllegalAccessException e) {
diff --git
a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/CombinedConfigRegistry.java
b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/CombinedConfigRegistry.java
index 2d44fe0021f..fc78307db0c 100644
---
a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/CombinedConfigRegistry.java
+++
b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/CombinedConfigRegistry.java
@@ -49,7 +49,7 @@ public class CombinedConfigRegistry implements
ConfigurationRegistryInterface {
return IgniteUtils.stopAsync(context, localRegistry,
distributedRegistry);
}
- @Override public <V, C, T extends ConfigurationTree<V, C>> T
getConfiguration(RootKey<T, V> rootKey) {
+ @Override public <V, C extends V, T extends ConfigurationTree<? super V, ?
super C>> T getConfiguration(RootKey<T, V, C> rootKey) {
return Optional.ofNullable(localRegistry.getConfiguration(rootKey))
.orElseGet(() ->
distributedRegistry.getConfiguration(rootKey));
}
diff --git
a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/ConfigurationRegistryInterface.java
b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/ConfigurationRegistryInterface.java
index 6c6e33c369c..70b02a62024 100644
---
a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/ConfigurationRegistryInterface.java
+++
b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/config/registry/ConfigurationRegistryInterface.java
@@ -25,5 +25,5 @@ import org.apache.ignite3.internal.manager.IgniteComponent;
* Custom Configuration Registry Interface.
*/
public interface ConfigurationRegistryInterface extends IgniteComponent {
- <V, C, T extends ConfigurationTree<V, C>> T getConfiguration(RootKey<T, V>
rootKey);
+ <V, C extends V, T extends ConfigurationTree<? super V, ? super C>> T
getConfiguration(RootKey<T, V, C> rootKey);
}
diff --git
a/modules/configuration-annotation-processor/src/main/java/org/apache/ignite/internal/configuration/processor/ConfigurationProcessor.java
b/modules/configuration-annotation-processor/src/main/java/org/apache/ignite/internal/configuration/processor/ConfigurationProcessor.java
index 477640b3369..e1189307709 100644
---
a/modules/configuration-annotation-processor/src/main/java/org/apache/ignite/internal/configuration/processor/ConfigurationProcessor.java
+++
b/modules/configuration-annotation-processor/src/main/java/org/apache/ignite/internal/configuration/processor/ConfigurationProcessor.java
@@ -67,6 +67,7 @@ import org.apache.ignite.configuration.annotation.Config;
import org.apache.ignite.configuration.annotation.ConfigValue;
import org.apache.ignite.configuration.annotation.ConfigurationExtension;
import org.apache.ignite.configuration.annotation.ConfigurationRoot;
+import org.apache.ignite.configuration.annotation.ConfigurationType;
import org.apache.ignite.configuration.annotation.InjectedName;
import org.apache.ignite.configuration.annotation.InjectedValue;
import org.apache.ignite.configuration.annotation.InternalId;
@@ -216,7 +217,9 @@ public class ConfigurationProcessor extends
AbstractProcessor {
ClassWrapper superClass = classWrapper.requiredSuperClass();
if (superClass.getAnnotation(ConfigurationRoot.class) != null)
{
- createExtensionKeyField(configInterface,
configurationInterfaceBuilder, ClassName.get(superClass.clazz()));
+ ClassName superClassSchemaClassName =
ClassName.get(superClass.clazz());
+
+ createExtensionKeyField(configInterface,
configurationInterfaceBuilder, schemaClassName, superClassSchemaClassName);
}
}
@@ -241,14 +244,23 @@ public class ConfigurationProcessor extends
AbstractProcessor {
TypeElement realSchemaClass
) {
ClassName viewClassName = getViewName(schemaClassName);
+ ClassName changeClassName = getChangeName(schemaClassName);
+
+ ConfigurationRoot rootAnnotation =
realSchemaClass.getAnnotation(ConfigurationRoot.class);
+ ConfigurationExtension extensionAnnotation =
realSchemaClass.getAnnotation(ConfigurationExtension.class);
- ParameterizedTypeName fieldTypeName =
ParameterizedTypeName.get(ROOT_KEY_CLASSNAME, configInterface, viewClassName);
+ ParameterizedTypeName fieldTypeName
+ = ParameterizedTypeName.get(ROOT_KEY_CLASSNAME,
configInterface, viewClassName, changeClassName);
FieldSpec keyField = FieldSpec.builder(fieldTypeName, "KEY", PUBLIC,
STATIC, FINAL)
.initializer(
- "new $T($T.class)",
+ "new $T($S, $T.$L, $T.class, $L)",
ROOT_KEY_CLASSNAME,
- realSchemaClass
+ rootAnnotation.rootName(),
+ ConfigurationType.class,
+ rootAnnotation.type(),
+ realSchemaClass,
+ extensionAnnotation != null &&
extensionAnnotation.internal()
)
.build();
@@ -258,13 +270,16 @@ public class ConfigurationProcessor extends
AbstractProcessor {
private static void createExtensionKeyField(
ClassName configInterface,
Builder configurationClassBuilder,
+ ClassName schemaClassName,
ClassName superClassSchemaClassName
) {
- ClassName viewClassName = getViewName(superClassSchemaClassName);
+ ClassName viewClassName = getViewName(schemaClassName);
+ ClassName changeClassName = getChangeName(schemaClassName);
ClassName superConfigInterface =
getConfigurationInterfaceName(superClassSchemaClassName);
- ParameterizedTypeName fieldTypeName =
ParameterizedTypeName.get(ROOT_KEY_CLASSNAME, configInterface, viewClassName);
+ ParameterizedTypeName fieldTypeName
+ = ParameterizedTypeName.get(ROOT_KEY_CLASSNAME,
configInterface, viewClassName, changeClassName);
FieldSpec keyField = FieldSpec.builder(fieldTypeName, "KEY", PUBLIC,
STATIC, FINAL)
.initializer(
diff --git
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationModule.java
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationModule.java
index 855ac89adc8..fd89d500fd5 100644
---
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationModule.java
+++
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationModule.java
@@ -64,7 +64,7 @@ public interface ConfigurationModule {
*
* @return root keys
*/
- default Collection<RootKey<?, ?>> rootKeys() {
+ default Collection<RootKey<?, ?, ?>> rootKeys() {
return emptySet();
}
diff --git
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java
index c079c6b02cb..8d592a191a3 100644
---
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java
+++
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java
@@ -17,18 +17,19 @@
package org.apache.ignite.configuration;
+import java.util.Objects;
import org.apache.ignite.configuration.annotation.ConfigurationExtension;
-import org.apache.ignite.configuration.annotation.ConfigurationRoot;
import org.apache.ignite.configuration.annotation.ConfigurationType;
import org.apache.ignite.internal.tostring.S;
/**
* Configuration root selector.
*
- * @param <T> Type of the configuration tree described by the root key.
+ * @param <T> Type of the configuration tree described by the root key.
* @param <VIEWT> Type of the immutable snapshot view associated with the tree.
+ * @param <CHANGET> Type of the object that is used to change the
configuration.
*/
-public class RootKey<T extends ConfigurationTree<VIEWT, ?>, VIEWT> {
+public final class RootKey<T extends ConfigurationTree<? super VIEWT, ? super
CHANGET>, VIEWT, CHANGET extends VIEWT> {
/** Name of the configuration root. */
private final String rootName;
@@ -42,24 +43,13 @@ public class RootKey<T extends ConfigurationTree<VIEWT, ?>,
VIEWT> {
private final boolean internal;
/**
- * Constructor.
- *
- * @param schemaClass Class of the configuration schema.
+ * Constructor with explicit fields values.
*/
- public RootKey(Class<?> schemaClass) {
+ public RootKey(String rootName, ConfigurationType storageType, Class<?>
schemaClass, boolean internal) {
+ this.rootName = Objects.requireNonNull(rootName, "rootName");
+ this.storageType = storageType;
this.schemaClass = schemaClass;
-
- ConfigurationRoot rootAnnotation =
schemaClass.getAnnotation(ConfigurationRoot.class);
-
- assert rootAnnotation != null;
-
- this.rootName = rootAnnotation.rootName();
- this.storageType = rootAnnotation.type();
-
- assert rootName != null;
-
- ConfigurationExtension extension =
schemaClass.getAnnotation(ConfigurationExtension.class);
- internal = extension != null && extension.internal();
+ this.internal = internal;
}
/**
diff --git
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/SuperRootChange.java
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/SuperRootChange.java
index b55e6dda2e6..5afca3c2957 100644
---
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/SuperRootChange.java
+++
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/SuperRootChange.java
@@ -24,10 +24,10 @@ public interface SuperRootChange {
/**
* Returns a root view for the root key.
*/
- <V> V viewRoot(RootKey<? extends ConfigurationTree<V, ?>, V> rootKey);
+ <V> V viewRoot(RootKey<?, V, ?> rootKey);
/**
* Returns a root change for the root key.
*/
- <C> C changeRoot(RootKey<? extends ConfigurationTree<?, C>, ?> rootKey);
+ <C> C changeRoot(RootKey<?, ? super C, C> rootKey);
}
diff --git
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java
index 86b716c26aa..2f2ff434d96 100644
---
a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java
+++
b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java
@@ -55,7 +55,7 @@ public interface ValidationContext<VIEWT> {
* @param rootKey Root key.
* @param <ROOT> Root view type derived from the root key.
*/
- <ROOT> @Nullable ROOT getOldRoot(RootKey<?, ROOT> rootKey);
+ <ROOT> @Nullable ROOT getOldRoot(RootKey<?, ROOT, ?> rootKey);
/**
* Returns updated value of the configuration root.
@@ -63,7 +63,7 @@ public interface ValidationContext<VIEWT> {
* @param rootKey Root key.
* @param <ROOT> Root view type derived from the root key.
*/
- <ROOT> @Nullable ROOT getNewRoot(RootKey<?, ROOT> rootKey);
+ <ROOT> @Nullable ROOT getNewRoot(RootKey<?, ROOT, ?> rootKey);
/**
* Signifies that there's something wrong. Values will be accumulated and
passed to the user later.
diff --git
a/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/ClusterConfigurationModule.java
b/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/ClusterConfigurationModule.java
index 5844e754c23..2c1dc8f9818 100644
---
a/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/ClusterConfigurationModule.java
+++
b/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/ClusterConfigurationModule.java
@@ -36,7 +36,7 @@ public class ClusterConfigurationModule implements
ConfigurationModule {
}
@Override
- public Collection<RootKey<?, ?>> rootKeys() {
+ public Collection<RootKey<?, ?, ?>> rootKeys() {
return List.of(ClusterConfiguration.KEY);
}
}
diff --git
a/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/NodeConfigurationModule.java
b/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/NodeConfigurationModule.java
index a32a116fa4c..561fcf0b6ad 100644
---
a/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/NodeConfigurationModule.java
+++
b/modules/configuration-root/src/main/java/org/apache/ignite/internal/configuration/NodeConfigurationModule.java
@@ -36,7 +36,7 @@ public class NodeConfigurationModule implements
ConfigurationModule {
}
@Override
- public Collection<RootKey<?, ?>> rootKeys() {
+ public Collection<RootKey<?, ?, ?>> rootKeys() {
return List.of(NodeConfiguration.KEY);
}
}
diff --git
a/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemDistributedConfigurationModule.java
b/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemDistributedConfigurationModule.java
index 076d34d0d5b..889b6bd3707 100644
---
a/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemDistributedConfigurationModule.java
+++
b/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemDistributedConfigurationModule.java
@@ -41,8 +41,8 @@ public class SystemDistributedConfigurationModule implements
ConfigurationModule
@Override
public void migrateDeprecatedConfigurations(SuperRootChange
superRootChange) {
- var rootView = (SystemDistributedExtensionView)
superRootChange.viewRoot(SystemDistributedExtensionConfiguration.KEY);
- var rootChange = (SystemDistributedExtensionChange)
superRootChange.changeRoot(SystemDistributedExtensionConfiguration.KEY);
+ SystemDistributedExtensionView rootView =
superRootChange.viewRoot(SystemDistributedExtensionConfiguration.KEY);
+ SystemDistributedExtensionChange rootChange =
superRootChange.changeRoot(SystemDistributedExtensionConfiguration.KEY);
MetaStorageView metaStorageView = rootView.metaStorage();
diff --git
a/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemLocalConfigurationModule.java
b/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemLocalConfigurationModule.java
index 5ef5bce749a..209786a6eb2 100644
---
a/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemLocalConfigurationModule.java
+++
b/modules/configuration-system/src/main/java/org/apache/ignite/internal/configuration/SystemLocalConfigurationModule.java
@@ -45,8 +45,8 @@ public class SystemLocalConfigurationModule implements
ConfigurationModule {
@Override
public void migrateDeprecatedConfigurations(SuperRootChange
superRootChange) {
- var rootView = (SystemLocalExtensionView)
superRootChange.viewRoot(SystemLocalExtensionConfiguration.KEY);
- var rootChange = (SystemLocalExtensionChange)
superRootChange.changeRoot(SystemLocalExtensionConfiguration.KEY);
+ SystemLocalExtensionView rootView =
superRootChange.viewRoot(SystemLocalExtensionConfiguration.KEY);
+ SystemLocalExtensionChange rootChange =
superRootChange.changeRoot(SystemLocalExtensionConfiguration.KEY);
CriticalWorkersView criticalWorkersView = rootView.criticalWorkers();
CriticalWorkersChange criticalWorkersChange =
rootChange.changeSystem().changeCriticalWorkers();
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationChanger.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationChanger.java
index 8e51df632e0..7a38960c96d 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationChanger.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationChanger.java
@@ -91,7 +91,7 @@ public abstract class ConfigurationChanger implements
DynamicConfigurationChange
private final ConfigurationUpdateListener configurationUpdateListener;
/** Root keys. Mapping: {@link RootKey#key()} -> identity (itself). */
- private final Map<String, RootKey<?, ?>> rootKeys;
+ private final Map<String, RootKey<?, ?, ?>> rootKeys;
/** Configuration storage. */
private final ConfigurationStorage storage;
@@ -233,7 +233,7 @@ public abstract class ConfigurationChanger implements
DynamicConfigurationChange
*/
public ConfigurationChanger(
ConfigurationUpdateListener configurationUpdateListener,
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
ConfigurationStorage storage,
ConfigurationValidator configurationValidator,
ConfigurationMigrator migrator,
@@ -256,7 +256,7 @@ public abstract class ConfigurationChanger implements
DynamicConfigurationChange
* @param rootKey Root key.
* @return New {@link InnerNode} instance that represents root.
*/
- public abstract InnerNode createRootNode(RootKey<?, ?> rootKey);
+ public abstract InnerNode createRootNode(RootKey<?, ?, ?> rootKey);
/**
* Utility method to create {@link SuperRoot} parameter value.
@@ -265,7 +265,7 @@ public abstract class ConfigurationChanger implements
DynamicConfigurationChange
*/
private Function<String, RootInnerNode> rootCreator() {
return key -> {
- RootKey<?, ?> rootKey = rootKeys.get(key);
+ RootKey<?, ?, ?> rootKey = rootKeys.get(key);
return rootKey == null ? null : new RootInnerNode(rootKey,
createRootNode(rootKey));
};
@@ -297,7 +297,7 @@ public abstract class ConfigurationChanger implements
DynamicConfigurationChange
Map<String, ?> dataValuesPrefixMap = toPrefixMap(storageValues);
- for (RootKey<?, ?> rootKey : rootKeys.values()) {
+ for (RootKey<?, ?, ?> rootKey : rootKeys.values()) {
Map<String, ?> rootPrefixMap = (Map<String, ?>)
dataValuesPrefixMap.get(rootKey.key());
InnerNode rootNode = createRootNode(rootKey);
@@ -567,7 +567,7 @@ public abstract class ConfigurationChanger implements
DynamicConfigurationChange
/** {@inheritDoc} */
@Override
- public InnerNode getRootNode(RootKey<?, ?> rootKey) {
+ public InnerNode getRootNode(RootKey<?, ?, ?> rootKey) {
return storageRoots.roots.getRoot(rootKey);
}
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java
index 1c17d56ff2a..b761b3c3ade 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java
@@ -36,7 +36,7 @@ public class ConfigurationManager implements IgniteComponent {
@TestOnly
public ConfigurationManager(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
ConfigurationStorage storage,
ConfigurationTreeGenerator generator,
ConfigurationValidator configurationValidator
@@ -55,7 +55,7 @@ public class ConfigurationManager implements IgniteComponent {
* schema or its extensions are not valid.
*/
public ConfigurationManager(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
ConfigurationStorage storage,
ConfigurationTreeGenerator generator,
ConfigurationValidator configurationValidator,
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationNode.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationNode.java
index cb86000fc9c..733bc01db70 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationNode.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationNode.java
@@ -52,7 +52,7 @@ public abstract class ConfigurationNode<VIEWT> implements
ConfigurationProperty<
protected final String key;
/** Root key instance for the current trees root. */
- protected final RootKey<?, ?> rootKey;
+ protected final RootKey<?, ?, ?> rootKey;
/** Configuration changer instance to get latest value of the root. */
protected final DynamicConfigurationChanger changer;
@@ -86,7 +86,7 @@ public abstract class ConfigurationNode<VIEWT> implements
ConfigurationProperty<
protected ConfigurationNode(
List<String> keys,
String key,
- RootKey<?, ?> rootKey,
+ RootKey<?, ?, ?> rootKey,
DynamicConfigurationChanger changer,
boolean listenOnly
) {
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java
index 4cc7b46ac73..6a79ff2bc69 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java
@@ -73,7 +73,7 @@ public class ConfigurationRegistry implements IgniteComponent
{
/** Constructor. */
@TestOnly
public ConfigurationRegistry(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
ConfigurationStorage storage,
ConfigurationTreeGenerator generator,
ConfigurationValidator configurationValidator
@@ -85,7 +85,7 @@ public class ConfigurationRegistry implements IgniteComponent
{
* Constructor.
*/
public ConfigurationRegistry(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
ConfigurationStorage storage,
ConfigurationTreeGenerator generator,
ConfigurationValidator configurationValidator,
@@ -105,7 +105,7 @@ public class ConfigurationRegistry implements
IgniteComponent {
keyIgnorer
) {
@Override
- public InnerNode createRootNode(RootKey<?, ?> rootKey) {
+ public InnerNode createRootNode(RootKey<?, ?, ?> rootKey) {
return generator.instantiateNode(rootKey.schemaClass());
}
};
@@ -168,7 +168,7 @@ public class ConfigurationRegistry implements
IgniteComponent {
* @param <T> Configuration tree type.
* @return Public configuration tree.
*/
- public <V, C, T extends ConfigurationTree<V, C>> T
getConfiguration(RootKey<T, V> rootKey) {
+ public <V, C extends V, T extends ConfigurationTree<? super V, ? super C>>
T getConfiguration(RootKey<T, V, C> rootKey) {
return (T) configs.get(rootKey.key());
}
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationTreeGenerator.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationTreeGenerator.java
index b8447ff8e6c..0c983fe31b8 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationTreeGenerator.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationTreeGenerator.java
@@ -55,7 +55,7 @@ import org.jetbrains.annotations.TestOnly;
/** Schema-aware configuration generator. */
public class ConfigurationTreeGenerator implements ManuallyCloseable {
- private final Map<String, RootKey<?, ?>> rootKeys;
+ private final Map<String, RootKey<?, ?, ?>> rootKeys;
@Nullable
private ConfigurationAsmGenerator generator = new
ConfigurationAsmGenerator();
@@ -66,7 +66,7 @@ public class ConfigurationTreeGenerator implements
ManuallyCloseable {
* @param rootKeys Root keys.
*/
@TestOnly
- public ConfigurationTreeGenerator(RootKey<?, ?>... rootKeys) {
+ public ConfigurationTreeGenerator(RootKey<?, ?, ?>... rootKeys) {
this(List.of(rootKeys), Set.of(), Set.of());
}
@@ -78,7 +78,7 @@ public class ConfigurationTreeGenerator implements
ManuallyCloseable {
* @param polymorphicSchemaExtensions Polymorphic schema extensions.
*/
public ConfigurationTreeGenerator(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
Collection<Class<?>> schemaExtensions,
Collection<Class<?>> polymorphicSchemaExtensions) {
@@ -101,7 +101,7 @@ public class ConfigurationTreeGenerator implements
ManuallyCloseable {
assert generator != null : "ConfigurationTreeGenerator is already
closed";
SuperRoot superRoot = new SuperRoot(rootCreator());
- for (RootKey<?, ?> rootKey : rootKeys.values()) {
+ for (RootKey<?, ?, ?> rootKey : rootKeys.values()) {
superRoot.addRoot(rootKey, createRootNode(rootKey));
}
@@ -115,7 +115,7 @@ public class ConfigurationTreeGenerator implements
ManuallyCloseable {
* @param changer Configuration changer instance to pass into constructor.
* @return Configuration instance.
*/
- public synchronized DynamicConfiguration<?, ?> instantiateCfg(RootKey<?,
?> rootKey, DynamicConfigurationChanger changer) {
+ public synchronized DynamicConfiguration<?, ?> instantiateCfg(RootKey<?,
?, ?> rootKey, DynamicConfigurationChanger changer) {
assert generator != null : "ConfigurationTreeGenerator is already
closed";
return generator.instantiateCfg(rootKey, changer);
@@ -136,13 +136,13 @@ public class ConfigurationTreeGenerator implements
ManuallyCloseable {
/**
* Creates new instance of root {@code *Node} class corresponding to the
given root key.
*/
- public synchronized InnerNode createRootNode(RootKey<?, ?> rootKey) {
+ public synchronized InnerNode createRootNode(RootKey<?, ?, ?> rootKey) {
return instantiateNode(rootKey.schemaClass());
}
private Function<String, RootInnerNode> rootCreator() {
return key -> {
- RootKey<?, ?> rootKey = rootKeys.get(key);
+ RootKey<?, ?, ?> rootKey = rootKeys.get(key);
return rootKey == null ? null : new RootInnerNode(rootKey,
createRootNode(rootKey));
};
@@ -162,7 +162,7 @@ public class ConfigurationTreeGenerator implements
ManuallyCloseable {
* @return set of all schema classes
*/
private static Set<Class<?>> collectAllSchemas(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
Collection<Class<?>> internalSchemaExtensions,
Collection<Class<?>> polymorphicSchemaExtensions
) {
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfiguration.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfiguration.java
index fbb8b732949..5f9ffd5bf4f 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfiguration.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfiguration.java
@@ -59,7 +59,7 @@ public abstract class DynamicConfiguration<VIEWT, CHANGET
extends VIEWT> extends
public DynamicConfiguration(
List<String> prefix,
String key,
- RootKey<?, ?> rootKey,
+ RootKey<?, ?, ?> rootKey,
DynamicConfigurationChanger changer,
boolean listenOnly
) {
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfigurationChanger.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfigurationChanger.java
index f9a1a262245..31bfbe5ed74 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfigurationChanger.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicConfigurationChanger.java
@@ -43,7 +43,7 @@ public interface DynamicConfigurationChanger {
*
* @param rootKey Root key.
*/
- InnerNode getRootNode(RootKey<?, ?> rootKey);
+ InnerNode getRootNode(RootKey<?, ?, ?> rootKey);
/**
* Retrieves the latest configuration value for the given path directly
from the storage.
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicProperty.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicProperty.java
index 8b1d515ca8a..1c1d360d779 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicProperty.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/DynamicProperty.java
@@ -65,7 +65,7 @@ public class DynamicProperty<T extends Serializable> extends
ConfigurationNode<T
public DynamicProperty(
List<String> prefix,
String key,
- RootKey<?, ?> rootKey,
+ RootKey<?, ?, ?> rootKey,
DynamicConfigurationChanger changer,
boolean listenOnly,
boolean readOnly
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/NamedListConfiguration.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/NamedListConfiguration.java
index 14c95fd830e..680b5f387f8 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/NamedListConfiguration.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/NamedListConfiguration.java
@@ -74,7 +74,7 @@ public class NamedListConfiguration<T extends
ConfigurationProperty<VIEWT>, VIEW
public NamedListConfiguration(
List<String> prefix,
String key,
- RootKey<?, ?> rootKey,
+ RootKey<?, ?, ?> rootKey,
DynamicConfigurationChanger changer,
boolean listenOnly,
BiFunction<List<String>, String, T> cfgCreator,
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/RootInnerNode.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/RootInnerNode.java
index cb01bcdf16a..a5993c0ba48 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/RootInnerNode.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/RootInnerNode.java
@@ -37,7 +37,7 @@ public class RootInnerNode {
* @param node Root node.
* @param key Root key.
*/
- public RootInnerNode(RootKey<?, ?> key, InnerNode node) {
+ public RootInnerNode(RootKey<?, ?, ?> key, InnerNode node) {
this.node = node;
internal = key.internal();
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRoot.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRoot.java
index 9be764cf2ca..09132d8dba6 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRoot.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRoot.java
@@ -62,10 +62,10 @@ public final class SuperRoot extends InnerNode {
* @param nodeCreator Function that creates root node by root name or
returns {@code null} if root name is not found.
* @param roots Map of roots belonging to this super root.
*/
- public SuperRoot(Function<String, RootInnerNode> nodeCreator,
Map<RootKey<?, ?>, InnerNode> roots) {
+ public SuperRoot(Function<String, RootInnerNode> nodeCreator,
Map<RootKey<?, ?, ?>, InnerNode> roots) {
this.nodeCreator = nodeCreator;
- for (Map.Entry<RootKey<?, ?>, InnerNode> entry : roots.entrySet()) {
+ for (Map.Entry<RootKey<?, ?, ?>, InnerNode> entry : roots.entrySet()) {
this.roots.put(entry.getKey().key(), new
RootInnerNode(entry.getKey(), entry.getValue().copy()));
}
}
@@ -76,7 +76,7 @@ public final class SuperRoot extends InnerNode {
* @param rootKey Root key.
* @param root Root node.
*/
- public void addRoot(RootKey<?, ?> rootKey, InnerNode root) {
+ public void addRoot(RootKey<?, ?, ?> rootKey, InnerNode root) {
assert !roots.containsKey(rootKey.key()) : rootKey.key() + " : " +
roots;
assertMutability();
@@ -91,7 +91,7 @@ public final class SuperRoot extends InnerNode {
* @return Root node.
*/
@Nullable
- public InnerNode getRoot(RootKey<?, ?> rootKey) {
+ public InnerNode getRoot(RootKey<?, ?, ?> rootKey) {
RootInnerNode root = roots.get(rootKey.key());
return root == null ? null : root.node();
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRootChangeImpl.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRootChangeImpl.java
index 3479262543a..e00512fe250 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRootChangeImpl.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/SuperRootChangeImpl.java
@@ -18,7 +18,6 @@
package org.apache.ignite.internal.configuration;
import java.util.Objects;
-import org.apache.ignite.configuration.ConfigurationTree;
import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.SuperRootChange;
import org.apache.ignite.internal.configuration.util.ConfigurationUtil;
@@ -39,12 +38,12 @@ public class SuperRootChangeImpl implements SuperRootChange
{
}
@Override
- public <V> V viewRoot(RootKey<? extends ConfigurationTree<V, ?>, V>
rootKey) {
+ public <V> V viewRoot(RootKey<?, V, ?> rootKey) {
return
Objects.requireNonNull(superRoot.getRoot(rootKey)).specificNode();
}
@Override
- public <C> C changeRoot(RootKey<? extends ConfigurationTree<?, C>, ?>
rootKey) {
+ public <C> C changeRoot(RootKey<?, ? super C, C> rootKey) {
// "construct" does a field copying, which is what we need before
mutating it.
superRoot.construct(rootKey.key(), ConfigurationUtil.EMPTY_CFG_SRC,
true);
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/asm/ConfigurationAsmGenerator.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/asm/ConfigurationAsmGenerator.java
index d41ce89e85e..9a70223d7fb 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/asm/ConfigurationAsmGenerator.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/asm/ConfigurationAsmGenerator.java
@@ -135,7 +135,7 @@ public class ConfigurationAsmGenerator {
* @return Configuration instance.
*/
public synchronized DynamicConfiguration<?, ?> instantiateCfg(
- RootKey<?, ?> rootKey,
+ RootKey<?, ?, ?> rootKey,
DynamicConfigurationChanger changer
) {
SchemaClassesInfo info = schemasInfo.get(rootKey.schemaClass());
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java
index 54fad1800de..03aab3796c3 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java
@@ -431,8 +431,8 @@ public class ConfigurationUtil {
*
* @throws IllegalArgumentException If the configuration type of the root
keys is not equal to the storage type.
*/
- public static void checkConfigurationType(Collection<RootKey<?, ?>>
rootKeys, ConfigurationStorage storage) {
- for (RootKey<?, ?> key : rootKeys) {
+ public static void checkConfigurationType(Collection<RootKey<?, ?, ?>>
rootKeys, ConfigurationStorage storage) {
+ for (RootKey<?, ?, ?> key : rootKeys) {
if (key.type() != storage.type()) {
throw new IllegalArgumentException("Invalid root key
configuration type [key=" + key
+ ", storage=" + storage.getClass().getName() + ",
storageType=" + storage.type() + "]");
diff --git
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/validation/ValidationContextImpl.java
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/validation/ValidationContextImpl.java
index 0301599d5ae..aef29d0acdb 100644
---
a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/validation/ValidationContextImpl.java
+++
b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/validation/ValidationContextImpl.java
@@ -104,13 +104,13 @@ class ValidationContextImpl<VIEWT> implements
ValidationContext<VIEWT> {
/** {@inheritDoc} */
@Override
- public <ROOT> ROOT getOldRoot(RootKey<?, ROOT> rootKey) {
+ public <ROOT> ROOT getOldRoot(RootKey<?, ROOT, ?> rootKey) {
return (ROOT) oldRoots.getRoot(rootKey);
}
/** {@inheritDoc} */
@Override
- public <ROOT> ROOT getNewRoot(RootKey<?, ROOT> rootKey) {
+ public <ROOT> ROOT getNewRoot(RootKey<?, ROOT, ?> rootKey) {
return (ROOT) newRoots.getRoot(rootKey);
}
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationChangerTest.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationChangerTest.java
index f868c6f04aa..41f00cfe175 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationChangerTest.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationChangerTest.java
@@ -584,7 +584,7 @@ public class ConfigurationChangerTest {
assertArrayEquals(new String[]{"bar"}, root.child().arr());
}
- private static <CHANGET> ConfigurationSource source(RootKey<?, ? super
CHANGET> rootKey, Consumer<CHANGET> changer) {
+ private static <CHANGET> ConfigurationSource source(RootKey<?, ? super
CHANGET, CHANGET> rootKey, Consumer<CHANGET> changer) {
return new ConfigurationSource() {
@Override
public void descend(ConstructableTreeNode node) {
@@ -600,8 +600,7 @@ public class ConfigurationChangerTest {
};
}
- private ConfigurationChanger createChanger(RootKey<?, ?> rootKey) {
-
+ private ConfigurationChanger createChanger(RootKey<?, ?, ?> rootKey) {
return new TestConfigurationChanger(
List.of(rootKey),
storage,
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/DeletedConfigurationTest.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/DeletedConfigurationTest.java
index fc6fa6f4004..294d1266a13 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/DeletedConfigurationTest.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/DeletedConfigurationTest.java
@@ -162,7 +162,7 @@ class DeletedConfigurationTest extends
BaseIgniteAbstractTest {
);
}
- private ConfigurationChanger createChanger(RootKey<?, ?> rootKey) {
+ private ConfigurationChanger createChanger(RootKey<?, ?, ?> rootKey) {
return new TestConfigurationChanger(
List.of(rootKey),
storage,
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/InjectedValueConfigurationTest.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/InjectedValueConfigurationTest.java
index 3d929c30558..576b36acc00 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/InjectedValueConfigurationTest.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/InjectedValueConfigurationTest.java
@@ -72,7 +72,7 @@ public class InjectedValueConfigurationTest {
@BeforeEach
void setUp() {
- List<RootKey<?, ?>> roots = List.of(
+ List<RootKey<?, ?, ?>> roots = List.of(
HoconInjectedValueRootConfiguration.KEY
);
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/RenamedConfigurationTest.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/RenamedConfigurationTest.java
index 7a8542f4d1f..6ec3abb5884 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/RenamedConfigurationTest.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/RenamedConfigurationTest.java
@@ -303,7 +303,7 @@ class RenamedConfigurationTest extends
BaseIgniteAbstractTest {
assertThat(change, willCompleteSuccessfully());
}
- private ConfigurationRegistry startRegistry(RootKey<?, ?> rootKey,
ConfigurationTreeGenerator generator) {
+ private ConfigurationRegistry startRegistry(RootKey<?, ?, ?> rootKey,
ConfigurationTreeGenerator generator) {
var registry = new ConfigurationRegistry(Set.of(rootKey), storage,
generator, new TestConfigurationValidator());
assertThat(registry.startAsync(new ComponentContext()),
willCompleteSuccessfully());
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/TestConfigurationModule.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/TestConfigurationModule.java
index efbd55948de..33299bac66c 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/TestConfigurationModule.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/TestConfigurationModule.java
@@ -34,7 +34,7 @@ public class TestConfigurationModule implements
ConfigurationModule {
}
@Override
- public Collection<RootKey<?, ?>> rootKeys() {
+ public Collection<RootKey<?, ?, ?>> rootKeys() {
return List.of(TestConfiguration.KEY);
}
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/asm/ConfigurationTreeGeneratorTest.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/asm/ConfigurationTreeGeneratorTest.java
index ace55ac0129..146ddb7df64 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/asm/ConfigurationTreeGeneratorTest.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/asm/ConfigurationTreeGeneratorTest.java
@@ -94,7 +94,7 @@ public class ConfigurationTreeGeneratorTest {
PolyInst1InjectedNameConfigurationSchema.class
);
- private static Collection<RootKey<?, ?>> rootKeys = List.of(
+ private static Collection<RootKey<?, ?, ?>> rootKeys = List.of(
TestRootConfiguration.KEY,
InjectedNameRootConfiguration.KEY,
RootFromAbstractConfiguration.KEY
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/deprecation/DeprecatedConfigurationTest.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/deprecation/DeprecatedConfigurationTest.java
index 1952efe9c96..4f0e9c63b08 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/deprecation/DeprecatedConfigurationTest.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/deprecation/DeprecatedConfigurationTest.java
@@ -519,7 +519,7 @@ public class DeprecatedConfigurationTest extends
BaseIgniteAbstractTest {
}
private void withConfigurationChanger(
- RootKey<?, ?> rootKey,
+ RootKey<?, ?, ?> rootKey,
boolean init,
ConfigurationMigrator migrator,
Consumer<ConfigurationChanger> action
diff --git
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/util/ConfigurationUtilTest.java
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/util/ConfigurationUtilTest.java
index 2d2528ff6d7..cbb8b1b29c7 100644
---
a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/util/ConfigurationUtilTest.java
+++
b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/util/ConfigurationUtilTest.java
@@ -513,7 +513,7 @@ public class ConfigurationUtilTest {
@Test
void testCheckConfigurationTypeMixedTypes() {
- List<RootKey<?, ?>> rootKeys = List.of(LocalFirstConfiguration.KEY,
DistributedFirstConfiguration.KEY);
+ List<RootKey<?, ?, ?>> rootKeys = List.of(LocalFirstConfiguration.KEY,
DistributedFirstConfiguration.KEY);
assertThrows(
IllegalArgumentException.class,
@@ -913,7 +913,7 @@ public class ConfigurationUtilTest {
ConfigurationAsmGenerator generator = new ConfigurationAsmGenerator();
Class<?> schemaClass =
InternalWithoutSuperclassConfigurationSchema.class;
- RootKey<?, ?> schemaKey = InternalWithoutSuperclassConfiguration.KEY;
+ RootKey<?, ?, ?> schemaKey =
InternalWithoutSuperclassConfiguration.KEY;
generator.compileRootSchema(schemaClass, Map.of(), Map.of());
@@ -1044,7 +1044,7 @@ public class ConfigurationUtilTest {
addDefaults(polymorphicRootInnerNode);
- RootKey<?, ?> rootKey = PolymorphicRootConfiguration.KEY;
+ RootKey<?, ?, ?> rootKey = PolymorphicRootConfiguration.KEY;
SuperRoot superRoot = new SuperRoot(key -> null, Map.of(rootKey,
polymorphicRootInnerNode));
@@ -1079,7 +1079,7 @@ public class ConfigurationUtilTest {
addDefaults(polymorphicRootInnerNode);
- RootKey<?, ?> rootKey = PolymorphicRootConfiguration.KEY;
+ RootKey<?, ?, ?> rootKey = PolymorphicRootConfiguration.KEY;
SuperRoot superRoot = new SuperRoot(key -> null, Map.of(rootKey,
polymorphicRootInnerNode));
@@ -1189,7 +1189,7 @@ public class ConfigurationUtilTest {
*/
private static Map<String, Serializable> flattenedMap(
SuperRoot superRoot,
- RootKey<?, ?> rootKey,
+ RootKey<?, ?, ?> rootKey,
NavigableMap<String, ? extends Serializable> storageData,
Consumer<InnerNode> patch
) {
diff --git
a/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java
b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java
index f7a3ceb94e7..01a5688a7bc 100644
---
a/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java
+++
b/modules/configuration/src/testFixtures/java/org/apache/ignite/internal/configuration/TestConfigurationChanger.java
@@ -37,7 +37,7 @@ public class TestConfigurationChanger extends
ConfigurationChanger {
/** Constructor. */
public TestConfigurationChanger(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
ConfigurationStorage storage,
ConfigurationTreeGenerator generator,
ConfigurationValidator validator
@@ -49,7 +49,7 @@ public class TestConfigurationChanger extends
ConfigurationChanger {
* Constructor.
*/
public TestConfigurationChanger(
- Collection<RootKey<?, ?>> rootKeys,
+ Collection<RootKey<?, ?, ?>> rootKeys,
ConfigurationStorage storage,
ConfigurationTreeGenerator generator,
ConfigurationValidator validator,
@@ -80,7 +80,7 @@ public class TestConfigurationChanger extends
ConfigurationChanger {
/** {@inheritDoc} */
@Override
- public InnerNode createRootNode(RootKey<?, ?> rootKey) {
+ public InnerNode createRootNode(RootKey<?, ?, ?> rootKey) {
return generator.createRootNode(rootKey);
}
}
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 d6104b98f54..f91a36191ce 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
@@ -26,9 +26,6 @@ import static
org.apache.ignite.internal.configuration.util.ConfigurationUtil.fi
import static
org.apache.ignite.internal.configuration.util.ConfigurationUtil.polymorphicSchemaExtensions;
import static
org.apache.ignite.internal.configuration.util.ConfigurationUtil.schemaExtensions;
import static
org.apache.ignite.internal.configuration.util.ConfigurationUtil.touch;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.withSettings;
import com.typesafe.config.ConfigFactory;
import com.typesafe.config.ConfigObject;
@@ -241,12 +238,12 @@ public class ConfigurationExtension implements
BeforeEachCallback, AfterEachCall
);
// RootKey must be mocked, there's no way to instantiate it using a
public constructor.
- RootKey rootKey = mock(RootKey.class, withSettings().lenient());
-
- when(rootKey.key()).thenReturn(annotation.rootName().isBlank() ?
"mock" : annotation.rootName());
- when(rootKey.type()).thenReturn(LOCAL);
- when(rootKey.schemaClass()).thenReturn(schemaClass);
- when(rootKey.internal()).thenReturn(false);
+ RootKey<?, ?, ?> rootKey = new RootKey<>(
+ annotation.rootName().isBlank() ? "mock" :
annotation.rootName(),
+ LOCAL,
+ schemaClass,
+ false
+ );
SuperRoot superRoot = new SuperRoot(s -> new RootInnerNode(rootKey,
cgen.instantiateNode(schemaClass)));
@@ -313,7 +310,7 @@ public class ConfigurationExtension implements
BeforeEachCallback, AfterEachCall
}
@Override
- public InnerNode getRootNode(RootKey<?, ?> rk) {
+ public InnerNode getRootNode(RootKey<?, ?, ?> rk) {
return superRootRef.get().getRoot(rk);
}
diff --git
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/configuration/ReplicationConfigurationModule.java
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/configuration/ReplicationConfigurationModule.java
index 08d042524fc..f26cbeb2392 100644
---
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/configuration/ReplicationConfigurationModule.java
+++
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/configuration/ReplicationConfigurationModule.java
@@ -43,8 +43,8 @@ public class ReplicationConfigurationModule implements
ConfigurationModule {
@Override
public void migrateDeprecatedConfigurations(SuperRootChange
superRootChange) {
- var rootView = (ReplicationExtensionView)
superRootChange.viewRoot(ReplicationExtensionConfiguration.KEY);
- var rootChange = (ReplicationExtensionChange)
superRootChange.changeRoot(ReplicationExtensionConfiguration.KEY);
+ ReplicationExtensionView rootView =
superRootChange.viewRoot(ReplicationExtensionConfiguration.KEY);
+ ReplicationExtensionChange rootChange =
superRootChange.changeRoot(ReplicationExtensionConfiguration.KEY);
StorageUpdateView storageUpdateView = rootView.storageUpdate();
diff --git
a/modules/runner/src/defaultsGenerator/java/org/apache/ignite/internal/configuration/generator/DefaultsGenerator.java
b/modules/runner/src/defaultsGenerator/java/org/apache/ignite/internal/configuration/generator/DefaultsGenerator.java
index 185b50816e4..332e5575254 100644
---
a/modules/runner/src/defaultsGenerator/java/org/apache/ignite/internal/configuration/generator/DefaultsGenerator.java
+++
b/modules/runner/src/defaultsGenerator/java/org/apache/ignite/internal/configuration/generator/DefaultsGenerator.java
@@ -105,7 +105,7 @@ public class DefaultsGenerator {
KeyIgnorer.fromDeletedPrefixes(modules.local().deletedPrefixes())
) {
@Override
- public InnerNode createRootNode(RootKey<?, ?> rootKey) {
+ public InnerNode createRootNode(RootKey<?, ?, ?> rootKey) {
return
localConfigurationGenerator.instantiateNode(rootKey.schemaClass());
}
};
diff --git
a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CompoundModule.java
b/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CompoundModule.java
index a87888abf3e..d7bed68b004 100644
---
a/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CompoundModule.java
+++
b/modules/runner/src/main/java/org/apache/ignite/internal/configuration/CompoundModule.java
@@ -50,7 +50,7 @@ public class CompoundModule implements ConfigurationModule {
/** {@inheritDoc} */
@Override
- public Collection<RootKey<?, ?>> rootKeys() {
+ public Collection<RootKey<?, ?, ?>> rootKeys() {
return unionFromModulesExtractedWith(ConfigurationModule::rootKeys);
}
diff --git
a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CompoundModuleTest.java
b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CompoundModuleTest.java
index 42491c58335..cc464236034 100644
---
a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CompoundModuleTest.java
+++
b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/CompoundModuleTest.java
@@ -41,9 +41,9 @@ import org.mockito.junit.jupiter.MockitoExtension;
@ExtendWith(MockitoExtension.class)
class CompoundModuleTest extends BaseIgniteAbstractTest {
@Mock
- private RootKey<?, ?> rootKeyA;
+ private RootKey<?, ?, ?> rootKeyA;
@Mock
- private RootKey<?, ?> rootKeyB;
+ private RootKey<?, ?, ?> rootKeyB;
@Mock
private Validator<AnnotationA, ?> validatorA;
diff --git
a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/ConfigurationModulesTest.java
b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/ConfigurationModulesTest.java
index f0622589d1b..2603db94c0e 100644
---
a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/ConfigurationModulesTest.java
+++
b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/ConfigurationModulesTest.java
@@ -36,13 +36,13 @@ import org.mockito.junit.jupiter.MockitoExtension;
@ExtendWith(MockitoExtension.class)
class ConfigurationModulesTest extends BaseIgniteAbstractTest {
@Mock
- private RootKey<?, ?> rootKeyA;
+ private RootKey<?, ?, ?> rootKeyA;
@Mock
- private RootKey<?, ?> rootKeyB;
+ private RootKey<?, ?, ?> rootKeyB;
@Mock
- private RootKey<?, ?> rootKeyC;
+ private RootKey<?, ?, ?> rootKeyC;
@Mock
- private RootKey<?, ?> rootKeyD;
+ private RootKey<?, ?, ?> rootKeyD;
@Mock
private ConfigurationModule moduleA;
diff --git
a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalFileConfigurationModule.java
b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalFileConfigurationModule.java
index adc1eb705d9..ff11038de5c 100644
---
a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalFileConfigurationModule.java
+++
b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalFileConfigurationModule.java
@@ -34,7 +34,7 @@ class LocalFileConfigurationModule implements
ConfigurationModule {
}
@Override
- public Collection<RootKey<?, ?>> rootKeys() {
+ public Collection<RootKey<?, ?, ?>> rootKeys() {
return List.of(TopConfiguration.KEY);
}
diff --git
a/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModule.java
b/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModule.java
index c65d990b311..0fa05a6edc0 100644
---
a/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModule.java
+++
b/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModule.java
@@ -26,11 +26,11 @@ import org.apache.ignite.configuration.ConfigurationModule;
import org.apache.ignite.configuration.SuperRootChange;
import org.apache.ignite.configuration.annotation.ConfigurationType;
import org.apache.ignite.configuration.validation.Validator;
-import org.apache.ignite.internal.configuration.ClusterConfiguration;
import
org.apache.ignite.internal.security.authentication.basic.BasicAuthenticationProviderChange;
import
org.apache.ignite.internal.security.authentication.basic.BasicAuthenticationProviderConfigurationSchema;
import
org.apache.ignite.internal.security.authentication.validator.AuthenticationProvidersValidatorImpl;
import
org.apache.ignite.internal.security.configuration.SecurityExtensionChange;
+import
org.apache.ignite.internal.security.configuration.SecurityExtensionConfiguration;
import
org.apache.ignite.internal.security.configuration.SecurityExtensionConfigurationSchema;
/**
@@ -66,7 +66,7 @@ public class SecurityConfigurationModule implements
ConfigurationModule {
@Override
public void patchConfigurationWithDynamicDefaults(SuperRootChange
rootChange) {
- SecurityExtensionChange securityExtensionChange =
(SecurityExtensionChange) rootChange.changeRoot(ClusterConfiguration.KEY);
+ SecurityExtensionChange securityExtensionChange =
rootChange.changeRoot(SecurityExtensionConfiguration.KEY);
securityExtensionChange.changeSecurity().changeAuthentication().changeProviders(providersChange
-> {
if (providersChange.isEmpty()) {
providersChange.create(DEFAULT_PROVIDER_NAME, change ->
diff --git
a/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/validator/AuthenticationProvidersValidatorImpl.java
b/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/validator/AuthenticationProvidersValidatorImpl.java
index 1b2dc1e7a29..030d8702d9d 100644
---
a/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/validator/AuthenticationProvidersValidatorImpl.java
+++
b/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/validator/AuthenticationProvidersValidatorImpl.java
@@ -27,7 +27,6 @@ import
org.apache.ignite.internal.security.authentication.basic.BasicAuthenticat
import
org.apache.ignite.internal.security.authentication.configuration.AuthenticationProviderView;
import
org.apache.ignite.internal.security.authentication.configuration.validator.AuthenticationProvidersValidator;
import
org.apache.ignite.internal.security.configuration.SecurityExtensionConfiguration;
-import org.apache.ignite.internal.security.configuration.SecurityExtensionView;
/**
* Implementation of {@link AuthenticationProvidersValidator}.
@@ -63,7 +62,7 @@ public class AuthenticationProvidersValidatorImpl implements
return;
}
- boolean enabled = ((SecurityExtensionView)
ctx.getNewRoot(SecurityExtensionConfiguration.KEY)).security().enabled();
+ boolean enabled =
ctx.getNewRoot(SecurityExtensionConfiguration.KEY).security().enabled();
if (enabled && basicProviders.get(0).users().isEmpty()) {
ctx.addIssue(new ValidationIssue(ctx.currentKey(), "Basic provider
must have at least one user."));
}
diff --git
a/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModuleTest.java
b/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModuleTest.java
index 0e4fe1fb17a..7a8913eada5 100644
---
a/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModuleTest.java
+++
b/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/SecurityConfigurationModuleTest.java
@@ -39,7 +39,6 @@ import
org.apache.ignite.internal.security.authentication.basic.BasicAuthenticat
import
org.apache.ignite.internal.security.authentication.basic.BasicAuthenticationProviderView;
import
org.apache.ignite.internal.security.authentication.validator.AuthenticationProvidersValidatorImpl;
import org.apache.ignite.internal.security.configuration.SecurityChange;
-import
org.apache.ignite.internal.security.configuration.SecurityExtensionChange;
import
org.apache.ignite.internal.security.configuration.SecurityExtensionConfiguration;
import
org.apache.ignite.internal.security.configuration.SecurityExtensionConfigurationSchema;
import org.apache.ignite.internal.security.configuration.SecurityExtensionView;
@@ -122,8 +121,7 @@ class SecurityConfigurationModuleTest {
@Test
void doNotSetDefaultUserIfProvidersIsNotEmpty() {
- SecurityChange securityChange =
- ((SecurityExtensionChange)
rootChange.changeRoot(SecurityExtensionConfiguration.KEY)).changeSecurity();
+ SecurityChange securityChange =
rootChange.changeRoot(SecurityExtensionConfiguration.KEY).changeSecurity();
securityChange.changeAuthentication().changeProviders().create("basic", change
-> {
change.convert(BasicAuthenticationProviderChange.class)
.changeUsers(users -> users.create("admin", user ->
user.changePassword("password")));
@@ -131,7 +129,7 @@ class SecurityConfigurationModuleTest {
module.patchConfigurationWithDynamicDefaults(rootChange);
- SecurityView securityView = ((SecurityExtensionView)
rootChange.viewRoot(SecurityExtensionConfiguration.KEY)).security();
+ SecurityView securityView =
rootChange.viewRoot(SecurityExtensionConfiguration.KEY).security();
assertThat(securityView.authentication().providers().size(), is(1));
diff --git
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineLocalConfigurationModule.java
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineLocalConfigurationModule.java
index e7f9a1e08ea..54aab76cd93 100644
---
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineLocalConfigurationModule.java
+++
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/configuration/PageMemoryStorageEngineLocalConfigurationModule.java
@@ -64,7 +64,7 @@ public class PageMemoryStorageEngineLocalConfigurationModule
implements Configur
@Override
public void patchConfigurationWithDynamicDefaults(SuperRootChange
rootChange) {
- StorageExtensionChange storageExtensionChange =
(StorageExtensionChange)
rootChange.changeRoot(StorageExtensionConfiguration.KEY);
+ StorageExtensionChange storageExtensionChange =
rootChange.changeRoot(StorageExtensionConfiguration.KEY);
NamedListChange<StorageProfileView, StorageProfileChange> profiles =
storageExtensionChange.changeStorage().changeProfiles();
if (profiles.get(DEFAULT_PROFILE_NAME) == null) {