commit 5ee8f930aa3d45484393c13b5a073711b33aef77 Author: Todd Lipcon Date: Tue Feb 8 16:58:31 2011 -0800 HBASE-3517. Take two at checking hbase-default diff --git pom.xml pom.xml index ee2e5b4..6988490 100644 --- pom.xml +++ pom.xml @@ -423,6 +423,19 @@ run + + process-resources + + + Replace in ${project.build.outputDirectory}/hbase-default.xml + + + + + run + + diff --git src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java index 13900c3..5666bc3 100644 --- src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java +++ src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java @@ -24,6 +24,7 @@ import java.util.Map.Entry; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.util.VersionInfo; /** * Adds HBase configuration files to a Configuration @@ -58,9 +59,21 @@ public class HBaseConfiguration extends Configuration { } } + private static void checkDefaultsVersion(Configuration conf) { + String defaultsVersion = conf.get("hbase.defaults.for.version"); + String thisVersion = VersionInfo.getVersion(); + if (!thisVersion.equals(defaultsVersion)) { + throw new RuntimeException( + "hbase-default.xml file seems to be for and old version of HBase (" + + defaultsVersion + "), this version is " + thisVersion); + } + } + public static Configuration addHbaseResources(Configuration conf) { conf.addResource("hbase-default.xml"); conf.addResource("hbase-site.xml"); + + checkDefaultsVersion(conf); return conf; } diff --git src/main/resources/hbase-default.xml src/main/resources/hbase-default.xml index aa16e5e..033f1f2 100644 --- src/main/resources/hbase-default.xml +++ src/main/resources/hbase-default.xml @@ -609,4 +609,14 @@ true: Only the GET method is permitted. + + + hbase.defaults.for.version + @@@VERSION@@@ + + This defaults file was compiled for version @@@VERSION@@@. This variable is used + to make sure that a user doesn't have an old version of hbase-default.xml on the + classpath. + +