Author: kturner
Date: Mon Jan 14 22:12:08 2013
New Revision: 1433170

URL: http://svn.apache.org/viewvc?rev=1433170&view=rev
Log:
ACCUMULO-515 added min and max parameters to GenSplits

Modified:
    
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/test/continuous/GenSplits.java

Modified: 
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/test/continuous/GenSplits.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/test/continuous/GenSplits.java?rev=1433170&r1=1433169&r2=1433170&view=diff
==============================================================================
--- 
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/test/continuous/GenSplits.java
 (original)
+++ 
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/test/continuous/GenSplits.java
 Mon Jan 14 22:12:08 2013
@@ -16,30 +16,65 @@
  */
 package org.apache.accumulo.server.test.continuous;
 
+import java.util.List;
+
+import com.beust.jcommander.JCommander;
+import com.beust.jcommander.Parameter;
+import com.beust.jcommander.ParameterException;
+
 /**
  * 
  */
 public class GenSplits {
+  
+  static class Opts {
+    @Parameter(names = "--min", description = "minimum row")
+    long minRow = 0;
+    
+    @Parameter(names = "--max", description = "maximum row")
+    long maxRow = Long.MAX_VALUE;
+    
+    @Parameter(description = "<num tablets>")
+    List<String> args = null;
+  }
+
   public static void main(String[] args) {
     
-    if (args.length != 1) {
-      System.err.println("Usage: " + GenSplits.class.getName() + " <num 
tablets>");
+    Opts opts = new Opts();
+    JCommander jcommander = new JCommander(opts);
+    jcommander.setProgramName(GenSplits.class.getSimpleName());
+    
+    try {
+      jcommander.parse(args);
+    } catch (ParameterException pe) {
+      System.err.println(pe.getMessage());
+      jcommander.usage();
+      System.exit(-1);
+    }
+
+    if (opts.args == null || opts.args.size() != 1) {
+      jcommander.usage();
       System.exit(-1);
     }
     
-    int numTablets = Integer.parseInt(args[0]);
+    int numTablets = Integer.parseInt(opts.args.get(0));
     
     if (numTablets < 1) {
       System.err.println("ERROR: numTablets < 1");
       System.exit(-1);
     }
     
+    if (opts.minRow >= opts.maxRow) {
+      System.err.println("ERROR: min >= max");
+      System.exit(-1);
+    }
+
     int numSplits = numTablets - 1;
-    long distance = (Long.MAX_VALUE / numTablets) + 1;
+    long distance = ((opts.maxRow - opts.minRow) / numTablets) + 1;
     long split = distance;
     for (int i = 0; i < numSplits; i++) {
       
-      String s = String.format("%016x", split);
+      String s = String.format("%016x", split + opts.minRow);
       
       while (s.charAt(s.length() - 1) == '0') {
         s = s.substring(0, s.length() - 1);


Reply via email to