Merge branch '1.5.1-SNAPSHOT' into 1.6.0-SNAPSHOT

Conflicts:
        start/src/main/java/org/apache/accumulo/start/Main.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/1d396489
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/1d396489
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/1d396489

Branch: refs/heads/1.6.0-SNAPSHOT
Commit: 1d396489d380bc533396a28ae1901e50cbb0f07b
Parents: 0e746a2 6258018
Author: Mike Drob <md...@cloudera.com>
Authored: Tue Feb 25 14:47:52 2014 -0500
Committer: Mike Drob <md...@cloudera.com>
Committed: Tue Feb 25 14:47:52 2014 -0500

----------------------------------------------------------------------
 .../java/org/apache/accumulo/start/Main.java    | 26 +++++++++++++++++---
 1 file changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/1d396489/start/src/main/java/org/apache/accumulo/start/Main.java
----------------------------------------------------------------------
diff --cc start/src/main/java/org/apache/accumulo/start/Main.java
index ead1e0f,29c47a7..8eadb9d
--- a/start/src/main/java/org/apache/accumulo/start/Main.java
+++ b/start/src/main/java/org/apache/accumulo/start/Main.java
@@@ -16,19 -16,17 +16,20 @@@
   */
  package org.apache.accumulo.start;
  
 +import java.io.IOException;
+ import java.lang.reflect.InvocationTargetException;
  import java.lang.reflect.Method;
  import java.lang.reflect.Modifier;
 - 
 +import java.util.jar.Attributes;
 +import java.util.jar.JarFile;
 +
  import org.apache.accumulo.start.classloader.AccumuloClassLoader;
  
  public class Main {
 -  
 +
-   public static void main(String[] args) throws Exception {
+   public static void main(String[] args) {
      Runnable r = null;
 -    
 +
      try {
        if (args.length == 0) {
          printUsage();
@@@ -153,29 -125,19 +159,41 @@@
      }
    }
  
+   /**
+    * Print a stack trace to stderr and exit with a non-zero status.
+    *
+    * @param t
+    *          The {@link Throwable} containing a stack trace to print.
+    */
+   private static void die(Throwable t) {
+     System.err.println("Thread \"" + Thread.currentThread().getName() + "\" 
died " + t.getMessage());
+     t.printStackTrace(System.err);
+     System.exit(1);
+   }
+ 
    private static void printUsage() {
 -    System.out.println("accumulo init | master | tserver | monitor | shell | 
admin | gc | classpath | rfile-info | login-info | tracer | proxy | zookeeper | 
info | version | <accumulo class> args");
 +    System.out
 +        .println("accumulo init | master | tserver | monitor | shell | admin 
| gc | classpath | rfile-info | login-info | tracer | minicluster | proxy | 
zookeeper | create-token | info | version | jar <jar> [<main class>] args | 
<accumulo class> args");
 +  }
 +
 +  // feature: will work even if main class isn't in the JAR
 +  static Class<?> loadClassFromJar(String[] args, JarFile f, ClassLoader cl) 
throws IOException, ClassNotFoundException {
 +    ClassNotFoundException explicitNotFound = null;
 +    if (args.length >= 3) {
 +      try {
 +        return cl.loadClass(args[2]); // jar jar-file main-class
 +      } catch (ClassNotFoundException cnfe) {
 +        // assume this is the first argument, look for main class in JAR 
manifest
 +        explicitNotFound = cnfe;
 +      }
 +    }
 +    String mainClass = 
f.getManifest().getMainAttributes().getValue(Attributes.Name.MAIN_CLASS);
 +    if (mainClass == null) {
 +      if (explicitNotFound != null) {
 +        throw explicitNotFound;
 +      }
 +      throw new ClassNotFoundException("No main class was specified, and the 
JAR manifest does not specify one");
 +    }
 +    return cl.loadClass(mainClass);
    }
  }

Reply via email to