Package bootstrap

Source Code of bootstrap.Main

package bootstrap;

import java.io.File;
import java.io.FileNotFoundException;

import org.apache.log4j.Logger;

import com.kylin.jbosscache.demo.JBossCacheView;

public class Main extends Bootstrap {

  private final static Logger logger = Logger.getLogger(Main.class);
 
 
  public static void main(String[] args) throws Exception {
   
    logger.info("JBoss Cluster FrameWork Demo Bootstrap");
   
    parseParameters(args);
   
    displayDebugInfo(logger);

    try {
      doStart();
    } catch (Exception e) {
      logger.error("Bootstrap Failed", e);
      throw e;
    }
  }
 
  static void doStart() throws Exception {
   
    validateParams();

    if(mode.compareTo(JGROUPS) == 0) {
      runJGroupsDemo();
    } else if(mode.compareTo(JBOSSCACHE) == 0) {
      runJBossCacheDemo();
    } else if(mode.compareTo(INFINISPAN) == 0) {
      runInfinispanDemo();
    }
  }

  static void validateParams() throws FileNotFoundException {
   
    String confPath = System.getProperty("demo.conf.dir");
   
    configFile = confPath + File.separator + configFile ;
   
    logger.debug("validate " + configFile);
   
    if(!new File(configFile).exists()) {
     
      StringBuffer sb = new StringBuffer();
      sb.append(new File(configFile).getName() + " doesn't exist, available config files: ");
     
      for(File file : new File(confPath).listFiles()) {
        if(file.getName().compareTo(DEMO_LOG_CONF) != 0) {
          sb.append(file.getName() + ", ");
        }
      }
     
      throw new FileNotFoundException(sb.toString());
    }
   
   
  }

  static void runJGroupsDemo() {
   
  }

  static void runJBossCacheDemo() throws Exception {
    new JBossCacheView(useBeanShellConsole, useConsole, configFile, isDebug).doMain();
  }

  static void runInfinispanDemo() {
   
  }

  static final String JGROUPS = "jgroups";
  static final String JBOSSCACHE = "jbosscache";
  static final String INFINISPAN = "infinispan";
 
  static String mode = null;
 
  static boolean useBeanShellConsole = false;
  static boolean isDebug = false;
  static boolean useConsole = false;
 
  static String configFile = null;
 
  private static void help() {
   
    System.out.println();
   
    System.out.println("[-help] [-h] Lists All Available Commands");
    System.out.println("[-mode/-m <jgroups> <jbosscache> <infinispan>] Selects a JBoss Cluster Framework");
    System.out.println("[-b <bind address>] Binds a address");
    System.out.println("Run JBoss Cluster Framework Demo in Linux:");
    System.out.println("  run.sh [-mode/-m jgroups] [-b <IP>]");
    System.out.println("  run.sh [-mode/-m jbosscache] [-b <IP>] [-console/-bsh] [-debug] [-config <JBossCache Configuration File>]");
    System.out.println("  rim.sh [-mode/-m infinispan] [-b <IP>]");
    System.out.println("Run JBoss Cluster Framework Demo in Windows:");
    System.out.println("  run.bat [-mode/-m jgroups] [-b <IP>]");
    System.out.println("  run.bat [-mode/-m jbosscache] [-b <IP>] [-console/-bsh] [-debug] [-config <JBossCache Configuration File>]");
    System.out.println("  rim.bat [-mode/-m infinispan] [-b <IP>]");

    System.out.println();
    System.out.println("JGroups Params:");
   
    System.out.println();
    System.out.println("JBossCache Params:");
    System.out.println("[-bsh]  Enables The Embedded BeanShell Console");
    System.out.println("[-console]  Enables The Command Line Console");
    System.out.println("[-debug] Enables Print cache content and TreeNode content");
    System.out.println("[-config/-c <configuration file>] Points To A JBossCache Configuration File ");
   

    System.out.println();
    System.out.println("Infinispan Params:");
   
    Runtime.getRuntime().exit(0);
  }
 
  private static void parseParameters(String[] args) {
   
    for (int i = 0; i < args.length; i++) {
     
      if (args[i].equals("-mode") || args[i].equals("-m")) {
        mode = args[++i];
        continue;
      }
     
      if (args[i].equals("-b")) {
        System.setProperty("bind.address", args[++i]);
        continue;
      }
     
      if (args[i].equals("-bsh")) {
        useBeanShellConsole = true;
        continue;
      }
     
      if (args[i].equals("-console")) {
        useConsole = true;
        continue;
      }
     
      if (args[i].equals("-debug")) {
        isDebug = true;
        continue;
      }
     
      if (args[i].equals("-config") || args[i].equals("-c")) {
        configFile = args[++i];
        continue;
      }
     
      if (args[i].equals("-help") || args[i].equals("-h")) {
        help();
      }
     
      help();
    }
   
    if(useConsole && useBeanShellConsole) {
      System.out.println("Can not set '-bsh' and '-console' simultaneously");
      help();
    }
   
    if (configFile == null) {
      System.out.println("-config/-c <path to configuration file to use> is mandatory" );
      help();
    }
   
    if(mode == null) {
      System.out.println("-mode/-m <jgroups> <jbosscache> <infinispan> is mandatory" );
      help();
    }
  }

}
TOP

Related Classes of bootstrap.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.