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 61f1c70  HDDS-6075. OzoneConfiguration constructor overrides input 
configuration keys. (#2921)
61f1c70 is described below

commit 61f1c709d4bb8ab502b4c1f9b32946769bff4595
Author: Lokesh Jain <[email protected]>
AuthorDate: Fri Jan 7 17:25:51 2022 +0530

    HDDS-6075. OzoneConfiguration constructor overrides input configuration 
keys. (#2921)
---
 .../hadoop/hdds/conf/OzoneConfiguration.java       |  3 ++-
 .../hadoop/hdds/conf/TestOzoneConfiguration.java   | 28 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java
 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java
index d24cb68..c404671 100644
--- 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java
+++ 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java
@@ -109,6 +109,7 @@ public class OzoneConfiguration extends Configuration
     setClassLoader(conf.getClassLoader());
     if (!(conf instanceof OzoneConfiguration)) {
       loadDefaults();
+      addResource(conf);
     }
   }
 
@@ -126,6 +127,7 @@ public class OzoneConfiguration extends Configuration
     } catch (IOException e) {
       e.printStackTrace();
     }
+    addResource("ozone-default.xml");
     // Adding core-site here because properties from core-site are
     // distributed to executors by spark driver. Ozone properties which are
     // added to core-site, will be overridden by properties from adding 
Resource
@@ -242,7 +244,6 @@ public class OzoneConfiguration extends Configuration
     // adds the default resources
     Configuration.addDefaultResource("hdfs-default.xml");
     Configuration.addDefaultResource("hdfs-site.xml");
-    Configuration.addDefaultResource("ozone-default.xml");
   }
 
   /**
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 8a17704..0e81711 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
@@ -22,9 +22,11 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
+import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 
 import org.junit.Assert;
@@ -191,6 +193,32 @@ public class TestOzoneConfiguration {
   }
 
   @Test
+  public void testInstantiationWithInputConfiguration() throws IOException {
+    String key = "hdds.scm.init.default.layout.version";
+    String val = "Test1";
+    Configuration configuration = new Configuration(true);
+
+    File ozoneSite = tempConfigs.newFile("ozone-site.xml");
+    FileOutputStream ozoneSiteStream = new FileOutputStream(ozoneSite);
+    try (BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
+        ozoneSiteStream, StandardCharsets.UTF_8))) {
+      startConfig(out);
+      appendProperty(out, key, val);
+      endConfig(out);
+    }
+    configuration
+        .addResource(new URL("file:///" + ozoneSite.getAbsolutePath()));
+
+    OzoneConfiguration ozoneConfiguration =
+        new OzoneConfiguration(configuration);
+    // ozoneConfig value matches input config value for the corresponding key
+    Assert.assertEquals(val, ozoneConfiguration.get(key));
+    Assert.assertEquals(val, configuration.get(key));
+
+    Assert.assertNotEquals(val, new OzoneConfiguration().get(key));
+  }
+
+  @Test
   public void setConfigFromObjectWithObjectDefaults() {
     // GIVEN
     SimpleConfiguration object = new SimpleConfiguration();

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to