You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by sa...@apache.org on 2022/08/24 08:23:45 UTC

[ozone] branch master updated: HDDS-7162. Add Double in ConfigType (#3710)

This is an automated email from the ASF dual-hosted git repository.

sammichen 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 5c18a5624f HDDS-7162. Add Double in ConfigType (#3710)
5c18a5624f is described below

commit 5c18a5624f7f891da0bee219e9e8b8cd1281c479
Author: Symious <yi...@foxmail.com>
AuthorDate: Wed Aug 24 16:23:38 2022 +0800

    HDDS-7162. Add Double in ConfigType (#3710)
---
 .../org/apache/hadoop/hdds/conf/SimpleConfiguration.java    | 13 +++++++++++++
 .../org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java | 10 ++++++++++
 .../main/java/org/apache/hadoop/hdds/conf/ConfigType.java   |  3 ++-
 .../hadoop/hdds/conf/ConfigurationReflectionUtil.java       |  9 +++++++++
 .../org/apache/hadoop/hdds/conf/ConfigurationTarget.java    |  4 ++++
 .../org/apache/hadoop/hdds/conf/ConfigurationExample.java   | 13 +++++++++++++
 .../hadoop/hdds/conf/TestConfigurationReflectionUtil.java   |  4 ++++
 7 files changed, 55 insertions(+), 1 deletion(-)

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 a0b7972097..16fc4e6311 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
@@ -52,6 +52,11 @@ public class SimpleConfiguration extends SimpleConfigurationParent {
       tags = ConfigTag.OZONE)
   private Class<?> myClass = Object.class;
 
+  @Config(key = "threshold", type = ConfigType.DOUBLE,
+      defaultValue = "10", description = "Threshold (To test DOUBLE config" +
+      " type)", tags = ConfigTag.MANAGEMENT)
+  private double threshold;
+
   @PostConstruct
   public void validate() {
     if (port < 0) {
@@ -106,4 +111,12 @@ public class SimpleConfiguration extends SimpleConfigurationParent {
   public void setMyClass(Class<?> aClass) {
     this.myClass = aClass;
   }
+
+  public double getThreshold() {
+    return threshold;
+  }
+
+  public void setThreshold(double threshold) {
+    this.threshold = threshold;
+  }
 }
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 cf20f81989..fe83cf1705 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
@@ -112,6 +112,7 @@ public class TestOzoneConfiguration {
     ozoneConfig.setInt("test.scm.client.port", 5555);
     ozoneConfig.setTimeDuration("test.scm.client.wait", 10, TimeUnit.MINUTES);
     ozoneConfig.set("test.scm.client.class", Integer.class.getName());
+    ozoneConfig.setDouble("test.scm.client.threshold", 10.5);
 
     SimpleConfiguration configuration =
         ozoneConfig.getObject(SimpleConfiguration.class);
@@ -122,6 +123,7 @@ public class TestOzoneConfiguration {
     Assertions.assertEquals(5555, configuration.getPort());
     Assertions.assertEquals(600, configuration.getWaitTime());
     Assertions.assertSame(Integer.class, configuration.getMyClass());
+    Assertions.assertEquals(10.5, configuration.getThreshold());
   }
 
   @Test
@@ -134,6 +136,7 @@ public class TestOzoneConfiguration {
     Assertions.assertTrue(configuration.isEnabled());
     Assertions.assertEquals(9878, configuration.getPort());
     Assertions.assertSame(Object.class, configuration.getMyClass());
+    Assertions.assertEquals(10, configuration.getThreshold());
   }
 
   @Test
@@ -146,6 +149,7 @@ public class TestOzoneConfiguration {
     object.setPort(5555);
     object.setWaitTime(600);
     object.setMyClass(this.getClass());
+    object.setThreshold(10.5);
 
     OzoneConfiguration subject = new OzoneConfiguration();
 
@@ -165,6 +169,8 @@ public class TestOzoneConfiguration {
         subject.getTimeDuration("test.scm.client.wait", 0, TimeUnit.MINUTES));
     Assertions.assertSame(this.getClass(),
         subject.getClass("test.scm.client.class", null));
+    Assertions.assertEquals(object.getThreshold(),
+        subject.getDouble("test.scm.client.threshold", 20.5));
   }
 
   @Test
@@ -187,6 +193,8 @@ public class TestOzoneConfiguration {
         subject.getInt("test.scm.client.port", 123));
     Assertions.assertEquals(TimeUnit.MINUTES.toSeconds(30),
         subject.getTimeDuration("test.scm.client.wait", 555, TimeUnit.SECONDS));
+    Assertions.assertEquals(10,
+        subject.getDouble("test.scm.client.threshold", 20.5));
   }
 
   @Test
@@ -236,6 +244,8 @@ public class TestOzoneConfiguration {
         subject.getInt("test.scm.client.port", 123));
     Assertions.assertEquals(0,
         subject.getTimeDuration("test.scm.client.wait", 555, TimeUnit.SECONDS));
+    Assertions.assertEquals(0,
+        subject.getDouble("test.scm.client.threshold", 20.5));
   }
 
   @Test
diff --git a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigType.java b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigType.java
index fd3e958543..7dd38ac08a 100644
--- a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigType.java
+++ b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigType.java
@@ -31,5 +31,6 @@ public enum ConfigType {
   LONG,
   TIME,
   SIZE,
-  CLASS
+  CLASS,
+  DOUBLE
 }
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 5b6d430118..189d97207c 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
@@ -93,6 +93,10 @@ public final class ConfigurationReflectionUtil {
             forcedFieldSet(field, configuration,
                 from.getLong(key, Long.parseLong(defaultValue)));
             break;
+          case DOUBLE:
+            forcedFieldSet(field, configuration,
+                from.getDouble(key, Double.parseDouble(defaultValue)));
+            break;
           case TIME:
             forcedFieldSet(field, configuration,
                 from.getTimeDuration(key, defaultValue,
@@ -151,6 +155,8 @@ public final class ConfigurationReflectionUtil {
       type = ConfigType.INT;
     } else if (parameterType == Long.class || parameterType == long.class) {
       type = ConfigType.LONG;
+    } else if (parameterType == Double.class || parameterType == double.class) {
+      type = ConfigType.DOUBLE;
     } else if (parameterType == Boolean.class
         || parameterType == boolean.class) {
       type = ConfigType.BOOLEAN;
@@ -244,6 +250,9 @@ public final class ConfigurationReflectionUtil {
           case LONG:
             config.setLong(key, field.getLong(configObject));
             break;
+          case DOUBLE:
+            config.setDouble(key, field.getDouble(configObject));
+            break;
           case TIME:
             config.setTimeDuration(key, field.getLong(configObject),
                 configAnnotation.timeUnit());
diff --git a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationTarget.java b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationTarget.java
index acc6614dab..b6be89cd0c 100644
--- a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationTarget.java
+++ b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/ConfigurationTarget.java
@@ -36,6 +36,10 @@ public interface ConfigurationTarget {
     set(name, Long.toString(value));
   }
 
+  default void setDouble(String name, double value) {
+    set(name, Double.toString(value));
+  }
+
   default void setBoolean(String name, boolean value) {
     set(name, Boolean.toString(value));
   }
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 dafc6304b1..9e039d1279 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
@@ -47,6 +47,11 @@ public class ConfigurationExample extends ConfigurationExampleParent {
       + "test TIME config type)", tags = ConfigTag.MANAGEMENT)
   private long waitTime = 1;
 
+  @Config(key = "threshold", type = ConfigType.DOUBLE, defaultValue = "10",
+      description = "Threshold (To test DOUBLE config type)",
+      tags = ConfigTag.MANAGEMENT)
+  private double threshold = 10;
+
   public void setClientAddress(String clientAddress) {
     this.clientAddress = clientAddress;
   }
@@ -67,6 +72,10 @@ public class ConfigurationExample extends ConfigurationExampleParent {
     this.waitTime = waitTime;
   }
 
+  public void setThreshold(double threshold) {
+    this.threshold = threshold;
+  }
+
   public String getClientAddress() {
     return clientAddress;
   }
@@ -86,4 +95,8 @@ public class ConfigurationExample extends ConfigurationExampleParent {
   public long getWaitTime() {
     return waitTime;
   }
+
+  public double getThreshold() {
+    return threshold;
+  }
 }
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 7f523c3903..d9f3d43198 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
@@ -64,6 +64,10 @@ public class TestConfigurationReflectionUtil {
             null, false,
             "", false,
             "", false},
+        {ConfigurationExample.class, "threshold",
+            ConfigType.DOUBLE, true,
+            "ozone.scm.client.threshold", true,
+            "10", true},
     });
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org