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

domgarguilo pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/2.1 by this push:
     new ddea832b3f Avoid copying default props in 
MiniAccumuloConfigImpl.useExistingInstance (#5927)
ddea832b3f is described below

commit ddea832b3f3113698fed4ae565f777ce5faaa320
Author: Dom G. <[email protected]>
AuthorDate: Tue Sep 23 17:14:25 2025 -0400

    Avoid copying default props in MiniAccumuloConfigImpl.useExistingInstance 
(#5927)
---
 .../miniclusterImpl/MiniAccumuloClusterImpl.java   | 14 ++++--
 .../miniclusterImpl/MiniAccumuloConfigImpl.java    | 54 +++++++---------------
 2 files changed, 27 insertions(+), 41 deletions(-)

diff --git 
a/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java
 
b/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java
index 5e04cb0a25..91d158ffb6 100644
--- 
a/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java
+++ 
b/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java
@@ -217,7 +217,7 @@ public class MiniAccumuloClusterImpl implements 
AccumuloCluster {
       siteConfig.put(Property.INSTANCE_VOLUMES.getKey(), dfsUri + "/accumulo");
       config.setSiteConfig(siteConfig);
     } else if (config.useExistingInstance()) {
-      dfsUri = 
config.getHadoopConfiguration().get(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY);
+      dfsUri = 
loadExistingHadoopConfiguration().get(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY);
     } else {
       dfsUri = "file:///";
     }
@@ -473,6 +473,14 @@ public class MiniAccumuloClusterImpl implements 
AccumuloCluster {
     fileWriter.close();
   }
 
+  private Configuration loadExistingHadoopConfiguration() {
+    if (config.getHadoopConfDir() == null) {
+      throw new IllegalStateException(
+          "Hadoop configuration directory is required for existing instances");
+    }
+    return config.buildHadoopConfiguration();
+  }
+
   /**
    * Starts Accumulo and Zookeeper processes. Can only be called once.
    */
@@ -487,8 +495,8 @@ public class MiniAccumuloClusterImpl implements 
AccumuloCluster {
     MiniAccumuloClusterControl control = getClusterControl();
 
     if (config.useExistingInstance()) {
-      AccumuloConfiguration acuConf = config.getAccumuloConfiguration();
-      Configuration hadoopConf = config.getHadoopConfiguration();
+      AccumuloConfiguration acuConf = getSiteConfiguration();
+      Configuration hadoopConf = loadExistingHadoopConfiguration();
       ServerDirs serverDirs = new ServerDirs(acuConf, hadoopConf);
 
       Path instanceIdPath;
diff --git 
a/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloConfigImpl.java
 
b/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloConfigImpl.java
index 23337a019c..333b3a8c61 100644
--- 
a/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloConfigImpl.java
+++ 
b/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloConfigImpl.java
@@ -28,7 +28,6 @@ import static 
org.apache.accumulo.minicluster.ServerType.ZOOKEEPER;
 
 import java.io.File;
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -38,7 +37,6 @@ import java.util.Objects;
 import java.util.function.Consumer;
 
 import org.apache.accumulo.compactor.Compactor;
-import org.apache.accumulo.core.conf.AccumuloConfiguration;
 import org.apache.accumulo.core.conf.ClientProperty;
 import org.apache.accumulo.core.conf.HadoopCredentialProvider;
 import org.apache.accumulo.core.conf.Property;
@@ -54,6 +52,7 @@ import org.apache.accumulo.tserver.ScanServer;
 import org.apache.accumulo.tserver.TabletServer;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -122,9 +121,6 @@ public class MiniAccumuloConfigImpl {
   private String[] nativePathItems = null;
 
   // These are only used on top of existing instances
-  private Configuration hadoopConf;
-  private SiteConfiguration accumuloConf;
-
   private Consumer<MiniAccumuloConfigImpl> preStartConfigProcessor;
 
   /**
@@ -238,7 +234,7 @@ public class MiniAccumuloConfigImpl {
 
     File keystoreFile = new File(getConfDir(), "credential-provider.jks");
     String keystoreUri = "jceks://file" + keystoreFile.getAbsolutePath();
-    Configuration conf = getHadoopConfiguration();
+    Configuration conf = buildHadoopConfiguration();
     HadoopCredentialProvider.setPath(conf, keystoreUri);
 
     // Set the URI on the siteCfg
@@ -266,6 +262,18 @@ public class MiniAccumuloConfigImpl {
     }
   }
 
+  Configuration buildHadoopConfiguration() {
+    Configuration conf = new Configuration(false);
+    if (hadoopConfDir != null) {
+      File coreSite = new File(hadoopConfDir, "core-site.xml");
+      File hdfsSite = new File(hadoopConfDir, "hdfs-site.xml");
+
+      conf.addResource(new Path(coreSite.toURI()));
+      conf.addResource(new Path(hdfsSite.toURI()));
+    }
+    return conf;
+  }
+
   /**
    * Set a given key/value on the site config if it doesn't already exist
    */
@@ -781,22 +789,10 @@ public class MiniAccumuloConfigImpl {
 
     System.setProperty("accumulo.properties", "accumulo.properties");
     this.hadoopConfDir = hadoopConfDir;
-    hadoopConf = new Configuration(false);
-    accumuloConf = SiteConfiguration.fromFile(accumuloProps).build();
-    File coreSite = new File(hadoopConfDir, "core-site.xml");
-    File hdfsSite = new File(hadoopConfDir, "hdfs-site.xml");
-
-    try {
-      hadoopConf.addResource(coreSite.toURI().toURL());
-      hadoopConf.addResource(hdfsSite.toURI().toURL());
-    } catch (MalformedURLException e1) {
-      throw e1;
-    }
+    SiteConfiguration siteConfiguration = 
SiteConfiguration.fromFile(accumuloProps).build();
 
     Map<String,String> siteConfigMap = new HashMap<>();
-    for (Entry<String,String> e : accumuloConf) {
-      siteConfigMap.put(e.getKey(), e.getValue());
-    }
+    siteConfiguration.getProperties(siteConfigMap, key -> true, false);
     _setSiteConfig(siteConfigMap);
 
     return this;
@@ -820,24 +816,6 @@ public class MiniAccumuloConfigImpl {
     return this.hadoopConfDir;
   }
 
-  /**
-   * @return accumulo Configuration being used
-   *
-   * @since 1.6.2
-   */
-  public AccumuloConfiguration getAccumuloConfiguration() {
-    return accumuloConf;
-  }
-
-  /**
-   * @return hadoop Configuration being used
-   *
-   * @since 1.6.2
-   */
-  public Configuration getHadoopConfiguration() {
-    return hadoopConf;
-  }
-
   /**
    * @return the default Accumulo "superuser"
    * @since 1.7.0

Reply via email to