package siebog.starter;
import static java.lang.System.out;
import java.util.logging.Level;
import java.util.logging.Logger;
import siebog.starter.Global;
import siebog.starter.NoJBossHomeException;
import siebog.starter.NodeStarter;
import siebog.starter.Siebog;
import siebog.starter.config.NodeConfig;
public class Siebog {
private static final Logger logger = Logger.getLogger(Siebog.class.getName());
public static void main(String[] args) {
Global.printVersion();
try {
NodeConfig config = NodeConfig.get(args);
NodeStarter starter = new NodeStarter(config);
starter.start();
if (!config.isSlave())
logger.info("Siebog node ready.");
} catch (IllegalArgumentException ex) {
logger.severe(ex.getMessage());
printUsage();
} catch (NoJBossHomeException ex) {
logger.log(Level.SEVERE, ex.getMessage());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Failed to start the node, an unknown error occurred.", ex);
}
}
private static void printUsage() {
out.println("USAGE: java -jar siebog.war NodeDescription");
out.println("NodeDescription describes this Siebog node. If the node is master, use --node=address.");
out.println("Otherwise, use --node=name@address-master where name is the cluster-wide unique name of the slave node,");
out.println("address is its network address, and master is the network address of a running master node.");
}
}