This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 93d8ff51d0f HDDS-14105. Require ConfigGroup prefix to be present in
Config keys (#9463)
93d8ff51d0f is described below
commit 93d8ff51d0fdf3a00dc7c32bd9c6080f4faa25d4
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Mon Jan 19 12:10:38 2026 +0100
HDDS-14105. Require ConfigGroup prefix to be present in Config keys (#9463)
---
.../hadoop/hdds/conf/SimpleConfiguration.java | 2 +-
.../hdds/conf/SimpleConfigurationParent.java | 36 -------
.../hadoop/hdds/conf/TestOzoneConfiguration.java | 5 -
.../hadoop/hdds/conf/ConfigFileGenerator.java | 37 ++------
.../hdds/conf/ConfigurationReflectionUtil.java | 103 ++-------------------
.../hadoop/hdds/conf/ConfigurationExample.java | 2 +-
.../hdds/conf/ConfigurationExampleGrandParent.java | 40 --------
.../hdds/conf/ConfigurationExampleParent.java | 37 --------
.../hadoop/hdds/conf/TestConfigFileGenerator.java | 8 --
.../hdds/conf/TestConfigurationReflectionUtil.java | 11 +--
.../hadoop/hdds/conf/TestConfigurationSource.java | 3 +-
.../ozone/insight/ConfigurationSubCommand.java | 22 +----
12 files changed, 25 insertions(+), 281 deletions(-)
diff --git
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/SimpleConfiguration.java
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/SimpleConfiguration.java
index be3b7421798..ce6c42f2dfa 100644
---
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/SimpleConfiguration.java
+++
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/SimpleConfiguration.java
@@ -24,7 +24,7 @@
* Example configuration to test the configuration injection.
*/
@ConfigGroup(prefix = "test.scm.client")
-public class SimpleConfiguration extends SimpleConfigurationParent {
+public class SimpleConfiguration extends ReconfigurableConfig {
@Config(key = "test.scm.client.address",
defaultValue = "localhost",
diff --git
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/SimpleConfigurationParent.java
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/SimpleConfigurationParent.java
deleted file mode 100644
index 33b4051e546..00000000000
---
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/SimpleConfigurationParent.java
+++ /dev/null
@@ -1,36 +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.hadoop.hdds.conf;
-
-/**
- * Parent class for the example configuration.
- */
-public class SimpleConfigurationParent extends ReconfigurableConfig {
-
- @Config(key = "enabled", defaultValue = "true", description = "Example "
- + "boolean config.", tags = ConfigTag.MANAGEMENT)
- private boolean enabled;
-
- public boolean isEnabled() {
- return enabled;
- }
-
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
-}
diff --git
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java
index 63370c86483..8046deafea6 100644
---
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java
+++
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java
@@ -143,7 +143,6 @@ public void getConfigurationObject() {
assertEquals("host", configuration.getBindHost());
assertEquals("address", configuration.getClientAddress());
- assertTrue(configuration.isEnabled());
assertEquals(5555, configuration.getPort());
assertEquals(600, configuration.getWaitTime());
assertSame(Integer.class, configuration.getMyClass());
@@ -219,7 +218,6 @@ public void getConfigurationObjectWithDefault() {
SimpleConfiguration configuration =
ozoneConfiguration.getObject(SimpleConfiguration.class);
- assertTrue(configuration.isEnabled());
assertEquals(9878, configuration.getPort());
assertSame(Object.class, configuration.getMyClass());
assertEquals(10, configuration.getThreshold());
@@ -232,7 +230,6 @@ public void setConfigFromObject() {
SimpleConfiguration object = new SimpleConfiguration();
object.setBindHost("host");
object.setClientAddress("address");
- object.setEnabled(true);
object.setPort(5555);
object.setWaitTime(600);
object.setMyClass(this.getClass());
@@ -247,7 +244,6 @@ public void setConfigFromObject() {
// THEN
assertEquals(object.getBindHost(),
subject.get("test.scm.client.bind.host"));
assertEquals(object.getClientAddress(),
subject.get("test.scm.client.address"));
- assertEquals(object.isEnabled(),
subject.getBoolean("test.scm.client.enabled", false));
assertEquals(object.getPort(), subject.getInt("test.scm.client.port", 0));
assertEquals(TimeUnit.SECONDS.toMinutes(object.getWaitTime()),
subject.getTimeDuration("test.scm.client.wait", 0, TimeUnit.MINUTES));
@@ -272,7 +268,6 @@ public void setConfigFromObjectWithConfigDefaults() {
// THEN
assertEquals("0.0.0.0", subject.get("test.scm.client.bind.host"));
assertEquals("localhost", subject.get("test.scm.client.address"));
- assertTrue(subject.getBoolean("test.scm.client.enabled", false));
assertEquals(9878, subject.getInt("test.scm.client.port", 123));
assertEquals(TimeUnit.MINUTES.toSeconds(30),
subject.getTimeDuration("test.scm.client.wait", 555,
TimeUnit.SECONDS));
diff --git
a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigFileGenerator.java
b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigFileGenerator.java
index be07fddb310..f4d8e10f707 100644
---
a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigFileGenerator.java
+++
b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigFileGenerator.java
@@ -17,8 +17,6 @@
package org.apache.hadoop.hdds.conf;
-import static
org.apache.hadoop.hdds.conf.ConfigurationReflectionUtil.getFullKey;
-
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
@@ -36,8 +34,6 @@
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.TypeElement;
-import javax.lang.model.type.DeclaredType;
-import javax.lang.model.util.SimpleTypeVisitor8;
import javax.tools.Diagnostic.Kind;
import javax.tools.FileObject;
import javax.tools.StandardLocation;
@@ -52,14 +48,6 @@ public class ConfigFileGenerator extends AbstractProcessor {
private static final String OUTPUT_FILE_NAME = "ozone-default-generated.xml";
private static final String OUTPUT_FILE_POSTFIX = "-default.xml";
- private static final SimpleTypeVisitor8<Element, Void> GET_PARENT_ELEMENT =
- new SimpleTypeVisitor8<Element, Void>() {
- @Override
- public Element visitDeclared(DeclaredType t, Void aVoid) {
- return t.asElement();
- }
- };
-
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
@@ -98,21 +86,7 @@ public boolean process(Set<? extends TypeElement>
annotations,
ConfigGroup configGroupAnnotation =
configurationObject.getAnnotation(ConfigGroup.class);
- TypeElement elementToCheck = configurationObject;
- while (elementToCheck != null) {
-
- writeConfigAnnotations(configGroupAnnotation, appender,
- elementToCheck);
- if (!elementToCheck.getSuperclass().toString()
- .equals("java.lang.Object")) {
- elementToCheck =
- (TypeElement) elementToCheck.getSuperclass()
- .accept(GET_PARENT_ELEMENT, null);
- } else {
- elementToCheck = null;
- }
- }
-
+ writeConfigAnnotations(configGroupAnnotation, appender,
configurationObject);
}
if (!resourceExists) {
@@ -141,8 +115,13 @@ private void writeConfigAnnotations(ConfigGroup
configGroup,
if (element.getAnnotation(Config.class) != null) {
Config configAnnotation = element.getAnnotation(Config.class);
-
- String key = getFullKey(configGroup, configAnnotation);
+ String prefix = configGroup.prefix() + ".";
+ String key = configAnnotation.key();
+ if (!key.startsWith(prefix)) {
+ processingEnv.getMessager().printMessage(Kind.ERROR,
+ prefix + " is not a prefix of " + key,
+ typeElement);
+ }
appender.addConfig(key,
configAnnotation.defaultValue(),
diff --git
a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationReflectionUtil.java
b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationReflectionUtil.java
index 81d37e72cc0..89fe6c5b03e 100644
---
a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationReflectionUtil.java
+++
b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationReflectionUtil.java
@@ -22,9 +22,7 @@
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.time.Duration;
-import java.util.Deque;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
@@ -39,19 +37,6 @@ private ConfigurationReflectionUtil() {
public static <T> Map<String, Field> mapReconfigurableProperties(
Class<T> configurationClass) {
- String prefix = getPrefix(configurationClass);
- Map<String, Field> props =
- mapReconfigurableProperties(configurationClass, prefix);
- Class<? super T> superClass = configurationClass.getSuperclass();
- while (superClass != null) {
- props.putAll(mapReconfigurableProperties(superClass, prefix));
- superClass = superClass.getSuperclass();
- }
- return props;
- }
-
- private static <T> Map<String, Field> mapReconfigurableProperties(
- Class<T> configurationClass, String prefix) {
Map<String, Field> props = new HashMap<>();
for (Field field : configurationClass.getDeclaredFields()) {
if (field.isAnnotationPresent(Config.class)) {
@@ -59,7 +44,7 @@ private static <T> Map<String, Field>
mapReconfigurableProperties(
if (configAnnotation.reconfigurable()) {
checkNotFinal(configurationClass, field);
- props.put(getFullKey(prefix, configAnnotation), field);
+ props.put(configAnnotation.key(), field);
}
}
}
@@ -67,26 +52,10 @@ private static <T> Map<String, Field>
mapReconfigurableProperties(
}
public static <T> void injectConfiguration(
- ConfigurationSource configuration,
- Class<T> configurationClass,
- T configObject, boolean reconfiguration) {
- String prefix = getPrefix(configurationClass);
- injectConfigurationToObject(configuration, configurationClass,
configObject,
- prefix, reconfiguration);
- Class<? super T> superClass = configurationClass.getSuperclass();
- while (superClass != null) {
- injectConfigurationToObject(configuration, superClass, configObject,
- prefix, reconfiguration);
- superClass = superClass.getSuperclass();
- }
- }
-
- private static <T> void injectConfigurationToObject(ConfigurationSource from,
+ ConfigurationSource from,
Class<T> configurationClass,
T configuration,
- String prefix,
- boolean reconfiguration
- ) {
+ boolean reconfiguration) {
for (Field field : configurationClass.getDeclaredFields()) {
if (field.isAnnotationPresent(Config.class)) {
checkNotFinal(configurationClass, field);
@@ -97,7 +66,7 @@ private static <T> void
injectConfigurationToObject(ConfigurationSource from,
continue;
}
- String key = getFullKey(prefix, configAnnotation);
+ String key = configAnnotation.key();
String defaultValue = configAnnotation.defaultValue();
String value = from.get(key, defaultValue);
@@ -240,37 +209,13 @@ static <T> void callPostConstruct(T configObject) {
}
}
- public static <T> void updateConfiguration(ConfigurationTarget config,
- T object) {
- updateConfiguration(config, object, getPrefix(object.getClass()));
- }
-
- private static <T> void updateConfiguration(ConfigurationTarget config,
- T object, String prefix) {
-
- Class<?> configClass = object.getClass();
- Deque<Class<?>> classes = new LinkedList<>();
- classes.addLast(configClass);
- Class<?> superclass = configClass.getSuperclass();
- while (superclass != null) {
- classes.addFirst(superclass);
- superclass = superclass.getSuperclass();
- }
-
- for (Class<?> cl : classes) {
- updateConfigurationFromObject(config, cl, object, prefix);
- }
- }
-
- private static <T> void updateConfigurationFromObject(
- ConfigurationTarget config, Class<?> configClass, T configObject,
- String prefix) {
-
+ public static <T> void updateConfiguration(ConfigurationTarget config, T
configObject) {
+ Class<?> configClass = configObject.getClass();
for (Field field : configClass.getDeclaredFields()) {
if (field.isAnnotationPresent(Config.class)) {
Config configAnnotation = field.getAnnotation(Config.class);
String fieldLocation = configClass + "." + field.getName();
- String key = getFullKey(prefix, configAnnotation);
+ String key = configAnnotation.key();
ConfigType type = configAnnotation.type();
if (type == ConfigType.AUTO) {
@@ -301,10 +246,8 @@ public static Optional<String> getDefaultValue(Class<?>
configClass,
public static Optional<String> getKey(Class<?> configClass,
String fieldName) {
- ConfigGroup configGroup = getConfigGroup(configClass);
-
return findFieldConfigAnnotationByName(configClass, fieldName)
- .map(config -> getFullKey(configGroup, config));
+ .map(Config::key);
}
public static Optional<ConfigType> getType(Class<?> configClass,
@@ -344,34 +287,4 @@ private static void checkNotFinal(
configurationClass.getSimpleName(), field.getName()));
}
}
-
- /** Compose the full config property name to be used for {@code configGroup}
and {@code configAnnotation}. */
- public static String getFullKey(
- ConfigGroup configGroup, Config configAnnotation) {
- return getFullKey(getPrefix(configGroup), configAnnotation);
- }
-
- private static String getPrefix(Class<?> configurationClass) {
- return getPrefix(getConfigGroup(configurationClass));
- }
-
- private static ConfigGroup getConfigGroup(Class<?> configurationClass) {
- return configurationClass.getAnnotation(ConfigGroup.class);
- }
-
- /** Get {@code configGroup}'s prefix with dot appended. */
- private static String getPrefix(ConfigGroup configGroup) {
- return configGroup != null && !configGroup.prefix().isEmpty()
- ? configGroup.prefix() + "."
- : "";
- }
-
- private static String getFullKey(
- String prefix, Config configAnnotation) {
- String key = configAnnotation.key();
- return prefix != null && !prefix.isEmpty() && !key.startsWith(prefix)
- ? prefix + key
- : key;
- }
-
}
diff --git
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExample.java
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExample.java
index f0cf8900ff2..07d8966803b 100644
---
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExample.java
+++
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExample.java
@@ -24,7 +24,7 @@
* Example configuration to test the configuration injection.
*/
@ConfigGroup(prefix = "ozone.test.config")
-public class ConfigurationExample extends ConfigurationExampleParent {
+public class ConfigurationExample extends ReconfigurableConfig {
@Config(key = "ozone.test.config.address", defaultValue = "localhost",
description = "Client "
+ "address (To test string injection).", tags = ConfigTag.MANAGEMENT)
diff --git
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExampleGrandParent.java
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExampleGrandParent.java
deleted file mode 100644
index 492bdfb4c63..00000000000
---
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExampleGrandParent.java
+++ /dev/null
@@ -1,40 +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.hadoop.hdds.conf;
-
-/**
- * Example configuration to test inherited configuration injection.
- */
-public class ConfigurationExampleGrandParent extends ReconfigurableConfig {
-
- @Config(key = "number", defaultValue = "2", description = "Example numeric "
- + "configuration", tags = ConfigTag.MANAGEMENT)
- private int number = 1;
-
- @Config(key = "grandpa.dyna", reconfigurable = true, defaultValue = "x",
- description = "Test inherited dynamic property", tags = {})
- private String grandpaDynamic;
-
- public int getNumber() {
- return number;
- }
-
- public void setNumber(int number) {
- this.number = number;
- }
-}
diff --git
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExampleParent.java
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExampleParent.java
deleted file mode 100644
index b481b12f8f1..00000000000
---
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/ConfigurationExampleParent.java
+++ /dev/null
@@ -1,37 +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.hadoop.hdds.conf;
-
-/**
- * Example configuration to test inherited configuration injection.
- */
-public class ConfigurationExampleParent
- extends ConfigurationExampleGrandParent {
-
- @Config(key = "secure", defaultValue = "true", description = "Make "
- + "everything secure.", tags = ConfigTag.MANAGEMENT)
- private boolean secure = true;
-
- public boolean isSecure() {
- return secure;
- }
-
- public void setSecure(boolean secure) {
- this.secure = secure;
- }
-}
diff --git
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigFileGenerator.java
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigFileGenerator.java
index 8e2a1098120..157e809f445 100644
---
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigFileGenerator.java
+++
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigFileGenerator.java
@@ -46,14 +46,6 @@ public void testGeneratedXml() throws FileNotFoundException {
.as("annotation in ConfigurationExample")
.contains("<name>ozone.test.config.bind.host</name>");
- assertThat(generatedXml)
- .as("annotation in ConfigurationExampleParent")
- .contains("<name>ozone.test.config.secure</name>");
-
- assertThat(generatedXml)
- .as("annotation in ConfigurationExampleGrandParent")
- .contains("<name>ozone.test.config.number</name>");
-
assertThat(generatedXml)
.contains("<tag>MANAGEMENT</tag>");
}
diff --git
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationReflectionUtil.java
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationReflectionUtil.java
index 6117f8a536d..5df8054fe55 100644
---
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationReflectionUtil.java
+++
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationReflectionUtil.java
@@ -40,14 +40,6 @@ static Stream<Arguments> data() {
Optional.of(ConfigType.TIME),
Optional.of("ozone.test.config.wait"),
Optional.of("30m")),
- arguments(ConfigurationExampleGrandParent.class, "number",
- Optional.of(ConfigType.AUTO),
- Optional.of("number"),
- Optional.of("2")),
- arguments(ConfigurationExample.class, "secure",
- Optional.of(ConfigType.AUTO),
- Optional.of("ozone.test.config.secure"),
- Optional.of("true")),
arguments(ConfigurationExample.class, "no-such-field",
Optional.empty(),
Optional.empty(),
@@ -90,8 +82,7 @@ void listReconfigurableProperties() {
String prefix = "ozone.test.config";
assertEquals(ImmutableSet.of(
- prefix + ".dynamic",
- prefix + ".grandpa.dyna"
+ prefix + ".dynamic"
), props);
}
}
diff --git
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationSource.java
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationSource.java
index d0473cbe0ef..f4b32060014 100644
---
a/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationSource.java
+++
b/hadoop-hdds/config/src/test/java/org/apache/hadoop/hdds/conf/TestConfigurationSource.java
@@ -47,8 +47,7 @@ void getPropsMatchPrefix() {
void reconfigurableProperties() {
String prefix = "ozone.test.config";
ImmutableSet<String> expected = ImmutableSet.of(
- prefix + ".dynamic",
- prefix + ".grandpa.dyna"
+ prefix + ".dynamic"
);
ConfigurationExample obj = new InMemoryConfigurationForTesting().getObject(
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/ConfigurationSubCommand.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/ConfigurationSubCommand.java
index 660986ddfe4..cb34056dd74 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/ConfigurationSubCommand.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/ConfigurationSubCommand.java
@@ -17,8 +17,6 @@
package org.apache.hadoop.ozone.insight;
-import static
org.apache.hadoop.hdds.conf.ConfigurationReflectionUtil.getFullKey;
-
import java.lang.reflect.Field;
import java.util.concurrent.Callable;
import org.apache.hadoop.hdds.cli.HddsVersionProvider;
@@ -54,13 +52,13 @@ public Void call() throws Exception {
Type type = Type.valueOf(insightName.split("\\.")[0].toUpperCase());
- for (Class clazz : insight.getConfigurationClasses()) {
+ for (Class<?> clazz : insight.getConfigurationClasses()) {
showConfig(clazz, type);
}
return null;
}
- protected void showConfig(Class clazz, Type type) {
+ protected void showConfig(Class<?> clazz, Type type) {
OzoneConfiguration conf = new OzoneConfiguration();
conf.addResource(getHost(conf, new Component(type)) + "/conf");
printConfig(clazz, conf);
@@ -69,21 +67,15 @@ protected void showConfig(Class clazz, Type type) {
/**
* Print all the configuration annotated on the class or any superclass.
*/
- protected void printConfig(Class clazz, OzoneConfiguration conf) {
- ConfigGroup configGroup =
- (ConfigGroup) clazz.getAnnotation(ConfigGroup.class);
+ protected void printConfig(Class<?> clazz, OzoneConfiguration conf) {
+ ConfigGroup configGroup = clazz.getAnnotation(ConfigGroup.class);
if (configGroup == null) {
return;
}
- printConfig(configGroup, clazz, conf);
- }
-
- private void printConfig(ConfigGroup configGroup, Class clazz,
- OzoneConfiguration conf) {
for (Field field : clazz.getDeclaredFields()) {
if (field.isAnnotationPresent(Config.class)) {
Config config = field.getAnnotation(Config.class);
- String key = getFullKey(configGroup, config);
+ String key = config.key();
System.out.println(">>> " + key);
System.out.println(" default: " + config.defaultValue());
System.out.println(" current: " + conf.get(key));
@@ -92,10 +84,6 @@ private void printConfig(ConfigGroup configGroup, Class
clazz,
System.out.println();
System.out.println();
}
- final Class superclass = clazz.getSuperclass();
- if (superclass != Object.class) {
- printConfig(configGroup, superclass, conf);
- }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]