You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Gary Gregory <ga...@gmail.com> on 2015/01/29 19:05:56 UTC

Fwd: svn commit: r1655773 - in /commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs: HdfsFileSystem.java HdfsFileSystemConfigBuilder.java

This is a nice commit comment but it should show up in the Javadoc as well
please.

Gary

---------- Forwarded message ----------
From: <rw...@apache.org>
Date: Thu, Jan 29, 2015 at 1:01 PM
Subject: svn commit: r1655773 - in
/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs:
HdfsFileSystem.java HdfsFileSystemConfigBuilder.java
To: commits@commons.apache.org


Author: rwhitcomb
Date: Thu Jan 29 18:01:14 2015
New Revision: 1655773

URL: http://svn.apache.org/r1655773
Log:
VFS-555:  Add the ability to specify an alternate HDFS configuration file
to override any specific HDFS settings.  One use for this is to set a
different value for the dfs.client.use.datanode.hostname property in order
to access HDFS files stored in an AWS installation (from outside their
firewall).  There are other possible uses too.

There is now an "configName" property in HdfsFileSystemConfigBuilder which
can be set in the file system options in order to set an alternate config
file.  This file can have any number of option settings which will add to
or override the default settings.  In other words, this file is loaded
after the default one (which resides in the HDFS .jar file).

Modified:

commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java

commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java

Modified:
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java
URL:
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java?rev=1655773&r1=1655772&r2=1655773&view=diff
==============================================================================
---
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java
(original)
+++
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java
Thu Jan 29 18:01:14 2015
@@ -109,6 +109,11 @@ public class HdfsFileSystem extends Abst
                 final String hdfsUri = name.getRootURI();
                 final Configuration conf = new Configuration(true);
                 conf.set(FileSystem.FS_DEFAULT_NAME_KEY, hdfsUri);
+                String configName =
HdfsFileSystemConfigBuilder.getInstance().getConfigName(getFileSystemOptions());
+                if (configName != null) {
+                    log.debug("Adding alternate configuration file: " +
configName);
+                    conf.addResource(configName);
+                }
                 this.fs = null;
                 try
                 {
@@ -147,7 +152,7 @@ public class HdfsFileSystem extends Abst
             file = new HdfsFileObject((AbstractFileName) name, this, fs,
filePath);
             if (useCache)
             {
-            this.putFileToCache(file);
+                this.putFileToCache(file);
             }
         }
         /**

Modified:
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java
URL:
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java?rev=1655773&r1=1655772&r2=1655773&view=diff
==============================================================================
---
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java
(original)
+++
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java
Thu Jan 29 18:01:14 2015
@@ -18,6 +18,7 @@ package org.apache.commons.vfs2.provider

 import org.apache.commons.vfs2.FileSystem;
 import org.apache.commons.vfs2.FileSystemConfigBuilder;
+import org.apache.commons.vfs2.FileSystemOptions;

 /**
  * Configuration settings for the HdfsFileSystem.
@@ -28,6 +29,10 @@ public class HdfsFileSystemConfigBuilder
 {
     private static final HdfsFileSystemConfigBuilder BUILDER = new
HdfsFileSystemConfigBuilder();

+    private HdfsFileSystemConfigBuilder() {
+        super("hdfs.");
+    }
+
     /**
      * @return HdfsFileSystemConfigBuilder instance
      */
@@ -45,4 +50,18 @@ public class HdfsFileSystemConfigBuilder
         return HdfsFileSystem.class;
     }

+    private static final String CONFIG_NAME = "config.name";
+
+    public String getConfigName(final FileSystemOptions opts) {
+        return this.getString(opts, CONFIG_NAME);
+    }
+
+    /**
+     * Sets the name of an alternate configuration file to be loaded after
the defaults.
+     */
+    public void setConfigName(final FileSystemOptions opts, final String
name) {
+        this.setParam(opts, CONFIG_NAME, name);
+    }
+
+
 }





-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory