You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2014/12/18 22:55:39 UTC
[1/7] accumulo git commit: ACCUMULO-3265 Add bootstrap_config.sh to
README
Repository: accumulo
Updated Branches:
refs/heads/1.6 8f852e2ef -> d2aeb5ef2
refs/heads/master aa73e7f45 -> 79c0a5eac
ACCUMULO-3265 Add bootstrap_config.sh to README
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/e572d56b
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/e572d56b
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/e572d56b
Branch: refs/heads/1.6
Commit: e572d56ba5437410be5d1936e8f1d7c2fcf792ab
Parents: 8f852e2
Author: Christopher Tubbs <ct...@apache.org>
Authored: Thu Dec 18 16:44:16 2014 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Dec 18 16:44:16 2014 -0500
----------------------------------------------------------------------
README | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/e572d56b/README
----------------------------------------------------------------------
diff --git a/README b/README
index b44c45f..39ef45a 100644
--- a/README
+++ b/README
@@ -232,11 +232,21 @@ Additionally, it is strongly recommended that you enable 'dfs.datanode.synconclo
file to ensure that, in the face of unexpected power loss to a datanode, files are
wholly synced to disk.
-The example accumulo configuration files are placed in directories based on the
-memory footprint for the accumulo processes. If you are using native libraries
-for you tablet server in-memory map, then you can use the files in "native-standalone".
-If you get warnings about not being able to load the native libraries, you can
-use the configuration files in "standalone".
+Accumulo's own configuration files can be bootstrapped with the
+$ACCUMULO_HOME/bin/bootstrap_config.sh script. This script will allow you to
+select options which correspond closely to your particular environment. The
+configuration files produced by this script are examples. You should always
+inspect any configuration files you use to ensure they are appropriate for your
+environment, and to tailor them to your needs, as they are not guaranteed to be
+suitable for all users and all environments.
+
+Some example accumulo configuration files are placed in directories based on the
+memory footprint for the accumulo processes. These are pre-generated from
+particular selections from the bootstrap_config.sh script for your convenience.
+If you are using native libraries for you tablet server in-memory map, then you
+can use the files in "native-standalone". If you get warnings about not being
+able to load the native libraries, you can use the configuration files in
+"standalone".
For testing on a single computer, use a fairly small configuration:
[2/7] accumulo git commit: ACCUMULO-3265 Add bootstrap_config.sh to
README
Posted by ct...@apache.org.
ACCUMULO-3265 Add bootstrap_config.sh to README
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/e572d56b
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/e572d56b
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/e572d56b
Branch: refs/heads/master
Commit: e572d56ba5437410be5d1936e8f1d7c2fcf792ab
Parents: 8f852e2
Author: Christopher Tubbs <ct...@apache.org>
Authored: Thu Dec 18 16:44:16 2014 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Dec 18 16:44:16 2014 -0500
----------------------------------------------------------------------
README | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/e572d56b/README
----------------------------------------------------------------------
diff --git a/README b/README
index b44c45f..39ef45a 100644
--- a/README
+++ b/README
@@ -232,11 +232,21 @@ Additionally, it is strongly recommended that you enable 'dfs.datanode.synconclo
file to ensure that, in the face of unexpected power loss to a datanode, files are
wholly synced to disk.
-The example accumulo configuration files are placed in directories based on the
-memory footprint for the accumulo processes. If you are using native libraries
-for you tablet server in-memory map, then you can use the files in "native-standalone".
-If you get warnings about not being able to load the native libraries, you can
-use the configuration files in "standalone".
+Accumulo's own configuration files can be bootstrapped with the
+$ACCUMULO_HOME/bin/bootstrap_config.sh script. This script will allow you to
+select options which correspond closely to your particular environment. The
+configuration files produced by this script are examples. You should always
+inspect any configuration files you use to ensure they are appropriate for your
+environment, and to tailor them to your needs, as they are not guaranteed to be
+suitable for all users and all environments.
+
+Some example accumulo configuration files are placed in directories based on the
+memory footprint for the accumulo processes. These are pre-generated from
+particular selections from the bootstrap_config.sh script for your convenience.
+If you are using native libraries for you tablet server in-memory map, then you
+can use the files in "native-standalone". If you get warnings about not being
+able to load the native libraries, you can use the configuration files in
+"standalone".
For testing on a single computer, use a fairly small configuration:
[6/7] accumulo git commit: ACCUMULO-3383 Remove unused import
Posted by ct...@apache.org.
ACCUMULO-3383 Remove unused import
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/d2aeb5ef
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/d2aeb5ef
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/d2aeb5ef
Branch: refs/heads/1.6
Commit: d2aeb5ef2443d3f320906f6d3fd99f60b5bd9d8a
Parents: 97f16db
Author: Christopher Tubbs <ct...@apache.org>
Authored: Thu Dec 18 16:50:30 2014 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Dec 18 16:50:30 2014 -0500
----------------------------------------------------------------------
.../accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/d2aeb5ef/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
----------------------------------------------------------------------
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
index bd1f943..5d6f002 100644
--- a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
@@ -25,7 +25,6 @@ import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
import org.apache.accumulo.start.classloader.AccumuloClassLoader;
import org.apache.accumulo.start.classloader.vfs.providers.HdfsFileObject;
[5/7] accumulo git commit: ACCUMULO-3383 Remove unused import
Posted by ct...@apache.org.
ACCUMULO-3383 Remove unused import
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/d2aeb5ef
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/d2aeb5ef
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/d2aeb5ef
Branch: refs/heads/master
Commit: d2aeb5ef2443d3f320906f6d3fd99f60b5bd9d8a
Parents: 97f16db
Author: Christopher Tubbs <ct...@apache.org>
Authored: Thu Dec 18 16:50:30 2014 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Dec 18 16:50:30 2014 -0500
----------------------------------------------------------------------
.../accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/d2aeb5ef/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
----------------------------------------------------------------------
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
index bd1f943..5d6f002 100644
--- a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
@@ -25,7 +25,6 @@ import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
import org.apache.accumulo.start.classloader.AccumuloClassLoader;
import org.apache.accumulo.start.classloader.vfs.providers.HdfsFileObject;
[3/7] accumulo git commit: ACCUMULO-3383 Fix for
AccumuloVFSClassloader conflicting cache directories
Posted by ct...@apache.org.
ACCUMULO-3383 Fix for AccumuloVFSClassloader conflicting cache directories
. AccumuloVFSClassloader no longer creates conflicting local cache directory names when vfs.cache.dir property is set.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/97f16db4
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/97f16db4
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/97f16db4
Branch: refs/heads/master
Commit: 97f16db4d31db63b46985da07228b89f0c346270
Parents: e572d56
Author: Drew Farris <dr...@apache.org>
Authored: Sat Dec 13 23:36:24 2014 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Dec 18 16:47:32 2014 -0500
----------------------------------------------------------------------
.../classloader/vfs/AccumuloVFSClassLoader.java | 8 +-
.../vfs/AccumuloVFSClassLoaderTest.java | 80 ++++++++++++++++++++
2 files changed, 82 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/97f16db4/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
----------------------------------------------------------------------
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
index 983ad7c..bd1f943 100644
--- a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
@@ -92,8 +92,6 @@ public class AccumuloVFSClassLoader {
public static final String VFS_CACHE_DIR = "general.vfs.cache.dir";
- public static final AtomicInteger uniqueDirectoryGenerator = new AtomicInteger(0);
-
private static ClassLoader parent = null;
private static volatile ReloadingClassLoader loader = null;
private static final Object lock = new Object();
@@ -279,10 +277,7 @@ public class AccumuloVFSClassLoader {
vfs.addMimeTypeMap("application/zip", "zip");
vfs.setFileContentInfoFactory(new FileContentInfoFilenameFactory());
vfs.setFilesCache(new SoftRefFilesCache());
- String cacheDirPath = AccumuloClassLoader.getAccumuloString(VFS_CACHE_DIR, "");
File cacheDir = computeTopCacheDir();
- if (!cacheDirPath.isEmpty())
- cacheDir = new File(cacheDirPath, "" + uniqueDirectoryGenerator.getAndIncrement());
vfs.setReplicator(new UniqueFileReplicator(cacheDir));
vfs.setCacheStrategy(CacheStrategy.ON_RESOLVE);
vfs.init();
@@ -291,8 +286,9 @@ public class AccumuloVFSClassLoader {
}
private static File computeTopCacheDir() {
+ String cacheDirPath = AccumuloClassLoader.getAccumuloString(VFS_CACHE_DIR, System.getProperty("java.io.tmpdir"));
String procName = ManagementFactory.getRuntimeMXBean().getName();
- return new File(System.getProperty("java.io.tmpdir"), "accumulo-vfs-cache-" + procName + "-" + System.getProperty("user.name", "nouser"));
+ return new File(cacheDirPath, "accumulo-vfs-cache-" + procName + "-" + System.getProperty("user.name", "nouser"));
}
public interface Printer {
http://git-wip-us.apache.org/repos/asf/accumulo/blob/97f16db4/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
----------------------------------------------------------------------
diff --git a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
index e7c369e..522c870 100644
--- a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
+++ b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
@@ -23,6 +23,7 @@ import java.net.URLClassLoader;
import org.apache.accumulo.start.classloader.AccumuloClassLoader;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.vfs2.impl.DefaultFileSystemManager;
import org.apache.commons.vfs2.impl.VFSClassLoader;
import org.junit.After;
import org.junit.Assert;
@@ -126,4 +127,83 @@ public class AccumuloVFSClassLoaderTest {
Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
}
+ @Test
+ public void testDefaultCacheDirectory() throws Exception {
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+
+ File conf = folder1.newFile("accumulo-site.xml");
+ FileWriter out = new FileWriter(conf);
+ out.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ out.append("<configuration>\n");
+ out.append("<property>\n");
+ out.append("<name>general.classpaths</name>\n");
+ out.append("<value></value>\n");
+ out.append("</property>\n");
+ out.append("<property>\n");
+ out.append("<name>general.vfs.classpaths</name>\n");
+ out.append("<value></value>\n");
+ out.append("</property>\n");
+ out.append("</configuration>\n");
+ out.close();
+
+ Whitebox.setInternalState(AccumuloClassLoader.class, "SITE_CONF", conf.toURI().toURL().toString());
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "lock", new Object());
+ AccumuloVFSClassLoader.getClassLoader();
+ AccumuloReloadingVFSClassLoader loader = Whitebox.getInternalState(AccumuloVFSClassLoader.class, "loader");
+ DefaultFileSystemManager manager = Whitebox.getInternalState(loader, "vfs");
+ UniqueFileReplicator replicator = Whitebox.getInternalState(manager, "fileReplicator");
+ File tempDir = Whitebox.getInternalState(replicator, "tempDir");
+ String tempDirParent = tempDir.getParent();
+ String tempDirName = tempDir.getName();
+ String javaIoTmpDir = System.getProperty("java.io.tmpdir");
+
+ // trim off any final separator, because java.io.File does the same.
+ if (javaIoTmpDir.endsWith(File.separator)) {
+ javaIoTmpDir = javaIoTmpDir.substring(0, javaIoTmpDir.length() - File.separator.length());
+ }
+
+ Assert.assertTrue(javaIoTmpDir.equals(tempDirParent));
+ Assert.assertTrue(tempDirName.startsWith("accumulo-vfs-cache-"));
+ Assert.assertTrue(tempDirName.endsWith(System.getProperty("user.name", "nouser")));
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+ }
+
+ @Test
+ public void testCacheDirectoryConfigured() throws Exception {
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+ String cacheDir = "/some/random/cache/dir";
+
+ File conf = folder1.newFile("accumulo-site.xml");
+ FileWriter out = new FileWriter(conf);
+ out.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ out.append("<configuration>\n");
+ out.append("<property>\n");
+ out.append("<name>general.classpaths</name>\n");
+ out.append("<value></value>\n");
+ out.append("</property>\n");
+ out.append("<property>\n");
+ out.append("<name>" + AccumuloVFSClassLoader.VFS_CACHE_DIR + "</name>\n");
+ out.append("<value>" + cacheDir + "</value>\n");
+ out.append("</property>\n");
+ out.append("</configuration>\n");
+ out.close();
+
+ Whitebox.setInternalState(AccumuloClassLoader.class, "SITE_CONF", conf.toURI().toURL().toString());
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "lock", new Object());
+ AccumuloVFSClassLoader.getClassLoader();
+ AccumuloReloadingVFSClassLoader loader = Whitebox.getInternalState(AccumuloVFSClassLoader.class, "loader");
+ DefaultFileSystemManager manager = Whitebox.getInternalState(loader, "vfs");
+ UniqueFileReplicator replicator = Whitebox.getInternalState(manager, "fileReplicator");
+ File tempDir = Whitebox.getInternalState(replicator, "tempDir");
+ String tempDirParent = tempDir.getParent();
+ String tempDirName = tempDir.getName();
+ Assert.assertTrue(cacheDir.equals(tempDirParent));
+ Assert.assertTrue(tempDirName.startsWith("accumulo-vfs-cache-"));
+ Assert.assertTrue(tempDirName.endsWith(System.getProperty("user.name", "nouser")));
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+ }
}
[7/7] accumulo git commit: Merge branch '1.6'
Posted by ct...@apache.org.
Merge branch '1.6'
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/79c0a5ea
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/79c0a5ea
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/79c0a5ea
Branch: refs/heads/master
Commit: 79c0a5eacb47fb6ba1223bc931619c9d498dd2d1
Parents: aa73e7f d2aeb5e
Author: Christopher Tubbs <ct...@apache.org>
Authored: Thu Dec 18 16:53:38 2014 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Dec 18 16:53:38 2014 -0500
----------------------------------------------------------------------
README | 20 +++--
.../classloader/vfs/AccumuloVFSClassLoader.java | 9 +--
.../vfs/AccumuloVFSClassLoaderTest.java | 80 ++++++++++++++++++++
3 files changed, 97 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/79c0a5ea/README
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/79c0a5ea/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
----------------------------------------------------------------------
[4/7] accumulo git commit: ACCUMULO-3383 Fix for
AccumuloVFSClassloader conflicting cache directories
Posted by ct...@apache.org.
ACCUMULO-3383 Fix for AccumuloVFSClassloader conflicting cache directories
. AccumuloVFSClassloader no longer creates conflicting local cache directory names when vfs.cache.dir property is set.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/97f16db4
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/97f16db4
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/97f16db4
Branch: refs/heads/1.6
Commit: 97f16db4d31db63b46985da07228b89f0c346270
Parents: e572d56
Author: Drew Farris <dr...@apache.org>
Authored: Sat Dec 13 23:36:24 2014 -0500
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Thu Dec 18 16:47:32 2014 -0500
----------------------------------------------------------------------
.../classloader/vfs/AccumuloVFSClassLoader.java | 8 +-
.../vfs/AccumuloVFSClassLoaderTest.java | 80 ++++++++++++++++++++
2 files changed, 82 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/97f16db4/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
----------------------------------------------------------------------
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
index 983ad7c..bd1f943 100644
--- a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
@@ -92,8 +92,6 @@ public class AccumuloVFSClassLoader {
public static final String VFS_CACHE_DIR = "general.vfs.cache.dir";
- public static final AtomicInteger uniqueDirectoryGenerator = new AtomicInteger(0);
-
private static ClassLoader parent = null;
private static volatile ReloadingClassLoader loader = null;
private static final Object lock = new Object();
@@ -279,10 +277,7 @@ public class AccumuloVFSClassLoader {
vfs.addMimeTypeMap("application/zip", "zip");
vfs.setFileContentInfoFactory(new FileContentInfoFilenameFactory());
vfs.setFilesCache(new SoftRefFilesCache());
- String cacheDirPath = AccumuloClassLoader.getAccumuloString(VFS_CACHE_DIR, "");
File cacheDir = computeTopCacheDir();
- if (!cacheDirPath.isEmpty())
- cacheDir = new File(cacheDirPath, "" + uniqueDirectoryGenerator.getAndIncrement());
vfs.setReplicator(new UniqueFileReplicator(cacheDir));
vfs.setCacheStrategy(CacheStrategy.ON_RESOLVE);
vfs.init();
@@ -291,8 +286,9 @@ public class AccumuloVFSClassLoader {
}
private static File computeTopCacheDir() {
+ String cacheDirPath = AccumuloClassLoader.getAccumuloString(VFS_CACHE_DIR, System.getProperty("java.io.tmpdir"));
String procName = ManagementFactory.getRuntimeMXBean().getName();
- return new File(System.getProperty("java.io.tmpdir"), "accumulo-vfs-cache-" + procName + "-" + System.getProperty("user.name", "nouser"));
+ return new File(cacheDirPath, "accumulo-vfs-cache-" + procName + "-" + System.getProperty("user.name", "nouser"));
}
public interface Printer {
http://git-wip-us.apache.org/repos/asf/accumulo/blob/97f16db4/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
----------------------------------------------------------------------
diff --git a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
index e7c369e..522c870 100644
--- a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
+++ b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoaderTest.java
@@ -23,6 +23,7 @@ import java.net.URLClassLoader;
import org.apache.accumulo.start.classloader.AccumuloClassLoader;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.vfs2.impl.DefaultFileSystemManager;
import org.apache.commons.vfs2.impl.VFSClassLoader;
import org.junit.After;
import org.junit.Assert;
@@ -126,4 +127,83 @@ public class AccumuloVFSClassLoaderTest {
Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
}
+ @Test
+ public void testDefaultCacheDirectory() throws Exception {
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+
+ File conf = folder1.newFile("accumulo-site.xml");
+ FileWriter out = new FileWriter(conf);
+ out.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ out.append("<configuration>\n");
+ out.append("<property>\n");
+ out.append("<name>general.classpaths</name>\n");
+ out.append("<value></value>\n");
+ out.append("</property>\n");
+ out.append("<property>\n");
+ out.append("<name>general.vfs.classpaths</name>\n");
+ out.append("<value></value>\n");
+ out.append("</property>\n");
+ out.append("</configuration>\n");
+ out.close();
+
+ Whitebox.setInternalState(AccumuloClassLoader.class, "SITE_CONF", conf.toURI().toURL().toString());
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "lock", new Object());
+ AccumuloVFSClassLoader.getClassLoader();
+ AccumuloReloadingVFSClassLoader loader = Whitebox.getInternalState(AccumuloVFSClassLoader.class, "loader");
+ DefaultFileSystemManager manager = Whitebox.getInternalState(loader, "vfs");
+ UniqueFileReplicator replicator = Whitebox.getInternalState(manager, "fileReplicator");
+ File tempDir = Whitebox.getInternalState(replicator, "tempDir");
+ String tempDirParent = tempDir.getParent();
+ String tempDirName = tempDir.getName();
+ String javaIoTmpDir = System.getProperty("java.io.tmpdir");
+
+ // trim off any final separator, because java.io.File does the same.
+ if (javaIoTmpDir.endsWith(File.separator)) {
+ javaIoTmpDir = javaIoTmpDir.substring(0, javaIoTmpDir.length() - File.separator.length());
+ }
+
+ Assert.assertTrue(javaIoTmpDir.equals(tempDirParent));
+ Assert.assertTrue(tempDirName.startsWith("accumulo-vfs-cache-"));
+ Assert.assertTrue(tempDirName.endsWith(System.getProperty("user.name", "nouser")));
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+ }
+
+ @Test
+ public void testCacheDirectoryConfigured() throws Exception {
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+ String cacheDir = "/some/random/cache/dir";
+
+ File conf = folder1.newFile("accumulo-site.xml");
+ FileWriter out = new FileWriter(conf);
+ out.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ out.append("<configuration>\n");
+ out.append("<property>\n");
+ out.append("<name>general.classpaths</name>\n");
+ out.append("<value></value>\n");
+ out.append("</property>\n");
+ out.append("<property>\n");
+ out.append("<name>" + AccumuloVFSClassLoader.VFS_CACHE_DIR + "</name>\n");
+ out.append("<value>" + cacheDir + "</value>\n");
+ out.append("</property>\n");
+ out.append("</configuration>\n");
+ out.close();
+
+ Whitebox.setInternalState(AccumuloClassLoader.class, "SITE_CONF", conf.toURI().toURL().toString());
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "lock", new Object());
+ AccumuloVFSClassLoader.getClassLoader();
+ AccumuloReloadingVFSClassLoader loader = Whitebox.getInternalState(AccumuloVFSClassLoader.class, "loader");
+ DefaultFileSystemManager manager = Whitebox.getInternalState(loader, "vfs");
+ UniqueFileReplicator replicator = Whitebox.getInternalState(manager, "fileReplicator");
+ File tempDir = Whitebox.getInternalState(replicator, "tempDir");
+ String tempDirParent = tempDir.getParent();
+ String tempDirName = tempDir.getName();
+ Assert.assertTrue(cacheDir.equals(tempDirParent));
+ Assert.assertTrue(tempDirName.startsWith("accumulo-vfs-cache-"));
+ Assert.assertTrue(tempDirName.endsWith(System.getProperty("user.name", "nouser")));
+
+ Whitebox.setInternalState(AccumuloVFSClassLoader.class, "loader", (AccumuloReloadingVFSClassLoader) null);
+ }
}