HBASE-3470. Check that hbase-default.xml is loaded from within jar
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1068102 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5f64c2d27b
commit
b8482c13fa
|
@ -91,6 +91,8 @@ Release 0.90.1 - Unreleased
|
|||
BUG FIXES
|
||||
HBASE-3483 Memstore lower limit should trigger asynchronous flushes
|
||||
|
||||
IMPROVEMENTS
|
||||
HBASE-3470 Check that hbase-default.xml is loaded from within jar
|
||||
|
||||
Release 0.90.0 - January 19th, 2011
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
package org.apache.hadoop.hbase;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
@ -58,7 +59,35 @@ public class HBaseConfiguration extends Configuration {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that the hbase-defaults.xml file is being loaded from within
|
||||
* the hbase jar, rather than somewhere else on the classpath.
|
||||
*/
|
||||
private static void checkDefaultsInJar(Configuration conf) {
|
||||
ClassLoader cl = conf.getClassLoader();
|
||||
URL url = cl.getResource("hbase-default.xml");
|
||||
if (url == null) {
|
||||
// This is essentially an assertion failure - we compile this
|
||||
// into our own jar, so there's something really wacky about
|
||||
// the classloader context!
|
||||
throw new AssertionError("hbase-default.xml not on classpath");
|
||||
}
|
||||
if (!"jar".equals(url.getProtocol()) &&
|
||||
!url.getPath().endsWith("target/classes/hbase-default.xml")) {
|
||||
throw new RuntimeException(
|
||||
"hbase-defaults.xml is being loaded from " + url + " rather than " +
|
||||
"the HBase JAR. This is dangerous since you may pick up defaults " +
|
||||
"from a previously installed version of HBase. Please remove " +
|
||||
"hbase-default.xml from your configuration directory.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static Configuration addHbaseResources(Configuration conf) {
|
||||
checkDefaultsInJar(conf);
|
||||
|
||||
conf.addResource("hbase-default.xml");
|
||||
conf.addResource("hbase-site.xml");
|
||||
return conf;
|
||||
|
|
Loading…
Reference in New Issue