Updated Branches: refs/heads/master 6d05a5e8f -> 635067314
Allow overrides in the MiniCluster configuration Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/63506731 Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/63506731 Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/63506731 Branch: refs/heads/master Commit: 6350673144a3eb9056cd2448b1639b75acaf843c Parents: 6d05a5e Author: Tim <[email protected]> Authored: Thu Sep 20 18:31:53 2012 -0400 Committer: Tim <[email protected]> Committed: Thu Sep 20 18:31:53 2012 -0400 ---------------------------------------------------------------------- .../src/test/java/org/apache/blur/MiniCluster.java | 34 ++++++++++++--- .../java/org/apache/blur/BlurConfiguration.java | 22 +++++++++ 2 files changed, 50 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/63506731/src/blur-core/src/test/java/org/apache/blur/MiniCluster.java ---------------------------------------------------------------------- diff --git a/src/blur-core/src/test/java/org/apache/blur/MiniCluster.java b/src/blur-core/src/test/java/org/apache/blur/MiniCluster.java index 2cc79d5..86791b2 100644 --- a/src/blur-core/src/test/java/org/apache/blur/MiniCluster.java +++ b/src/blur-core/src/test/java/org/apache/blur/MiniCluster.java @@ -24,7 +24,9 @@ import java.io.IOException; import java.lang.reflect.Field; import java.net.URI; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; @@ -84,7 +86,14 @@ public abstract class MiniCluster { startZooKeeper("./tmp"); startControllers(1); startShards(1); - + + //Run the controllers/shards on custom ports. + //BlurConfiguration conf = new BlurConfiguration(false); + //conf.setInt(BLUR_CONTROLLER_BIND_PORT, 40001); + //conf.setInt(BLUR_SHARD_BIND_PORT, 40002); + //startControllers(conf, 1); + //startShards(conf, 1); + try { Iface client = BlurClient.getClient(getControllerConnectionStr()); createTable("test", client); @@ -179,6 +188,15 @@ public abstract class MiniCluster { startControllers(configuration, num); } + private static BlurConfiguration getBlurConfiguration(BlurConfiguration overrides) { + BlurConfiguration conf = getBlurConfiguration(); + + for(Map.Entry<String, String> over: overrides.getProperties().entrySet()) { + conf.set(over.getKey().toString(), over.getValue().toString()); + } + return conf; + } + private static BlurConfiguration getBlurConfiguration() { BlurConfiguration configuration; try { @@ -193,16 +211,19 @@ public abstract class MiniCluster { configuration.setLong(BLUR_SHARD_SAFEMODEDELAY, 5000); configuration.setInt(BLUR_GUI_CONTROLLER_PORT, -1); configuration.setInt(BLUR_GUI_SHARD_PORT, -1); + return configuration; } public static void startControllers(BlurConfiguration configuration, int num) { StringBuilder builder = new StringBuilder(); + BlurConfiguration localConf = getBlurConfiguration(configuration); + int controllerPort = localConf.getInt(BLUR_CONTROLLER_BIND_PORT, 40010); for (int i = 0; i < num; i++) { try { - ThriftServer server = ThriftBlurControllerServer.createServer(i, configuration); + ThriftServer server = ThriftBlurControllerServer.createServer(i, localConf); controllers.add(server); - Connection connection = new Connection("localhost", 40010 + i); + Connection connection = new Connection("localhost", controllerPort + i); if (builder.length() != 0) { builder.append(','); } @@ -222,6 +243,7 @@ public abstract class MiniCluster { } public static void startShards(final BlurConfiguration configuration, int num) { + final BlurConfiguration localConf = getBlurConfiguration(configuration); ExecutorService executorService = Executors.newFixedThreadPool(num); List<Future<ThriftServer>> futures = new ArrayList<Future<ThriftServer>>(); for (int i = 0; i < num; i++) { @@ -229,16 +251,16 @@ public abstract class MiniCluster { futures.add(executorService.submit(new Callable<ThriftServer>() { @Override public ThriftServer call() throws Exception { - return ThriftBlurShardServer.createServer(index, configuration); + return ThriftBlurShardServer.createServer(index, localConf); } })); } - + int shardPort = localConf.getInt(BLUR_SHARD_BIND_PORT, 40020); for (int i = 0; i < num; i++) { try { ThriftServer server = futures.get(i).get(); shards.add(server); - Connection connection = new Connection("localhost", 40020 + i); + Connection connection = new Connection("localhost", shardPort + i); startServer(server, connection); } catch (Exception e) { LOG.error(e); http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/63506731/src/blur-util/src/main/java/org/apache/blur/BlurConfiguration.java ---------------------------------------------------------------------- diff --git a/src/blur-util/src/main/java/org/apache/blur/BlurConfiguration.java b/src/blur-util/src/main/java/org/apache/blur/BlurConfiguration.java index f1ce9ad..4034359 100644 --- a/src/blur-util/src/main/java/org/apache/blur/BlurConfiguration.java +++ b/src/blur-util/src/main/java/org/apache/blur/BlurConfiguration.java @@ -24,6 +24,12 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Properties; +/** + * The default constructor, which loads site defaults should nearly + * always be used. Instantiating a BlurConfiguration without defaults + * is rarely necessary and should generally be avoided. + * + */ public class BlurConfiguration { private Properties _properties = new Properties(); @@ -35,9 +41,25 @@ public class BlurConfiguration { System.out.println(configuration.get("test3", "def")); } + /** + * Create a BlurConfiguration including default properties. + * @throws IOException + */ public BlurConfiguration() throws IOException { init(); } + + /** + * + * @param loadDefaults - + * false to load without default properties set. + * @throws IOException + */ + public BlurConfiguration(Boolean loadDefaults) throws IOException { + if(loadDefaults == true) { + init(); + } + } private void init() throws IOException { _properties.putAll(load("/blur-default.properties"));
