1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.util;
20
21 import java.lang.management.RuntimeMXBean;
22 import java.lang.management.ManagementFactory;
23
24 import org.apache.commons.logging.Log;
25 import org.apache.commons.logging.LogFactory;
26 import org.apache.hadoop.classification.InterfaceAudience;
27 import org.apache.hadoop.conf.Configuration;
28 import org.apache.hadoop.conf.Configured;
29 import org.apache.hadoop.hbase.HBaseConfiguration;
30 import org.apache.hadoop.util.Tool;
31 import org.apache.hadoop.util.ToolRunner;
32
33
34
35
36 @InterfaceAudience.Private
37 public abstract class ServerCommandLine extends Configured implements Tool {
38 private static final Log LOG = LogFactory.getLog(ServerCommandLine.class);
39
40
41
42
43 protected abstract String getUsage();
44
45
46
47
48
49
50 protected void usage(String message) {
51 if (message != null) {
52 System.err.println(message);
53 System.err.println("");
54 }
55
56 System.err.println(getUsage());
57 }
58
59
60
61
62 public static void logJVMInfo() {
63
64 RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
65 if (runtime != null) {
66 LOG.info("vmName=" + runtime.getVmName() + ", vmVendor=" +
67 runtime.getVmVendor() + ", vmVersion=" + runtime.getVmVersion());
68 LOG.info("vmInputArguments=" + runtime.getInputArguments());
69 }
70 }
71
72
73
74
75
76 public void doMain(String args[]) {
77 try {
78 int ret = ToolRunner.run(HBaseConfiguration.create(), this, args);
79 if (ret != 0) {
80 System.exit(ret);
81 }
82 } catch (Exception e) {
83 LOG.error("Failed to run", e);
84 System.exit(-1);
85 }
86 }
87 }