package org.nishen.alma.toolkit; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Module; /** * This application is a framework for executing tasks. Add your custom tasks * and you can execute them via a command line interface. * * <p> * This is a demo providing a couple of task examples. * * @author nishen * */ public class ToolkitLauncher { private static final Logger log = LoggerFactory.getLogger(ToolkitLauncher.class); public static void main(String[] args) { Map<String, String> options = null; try { options = parseArgs(args); } catch (Exception e) { System.out.println("unable to process command line: " + e.getMessage()); log.error("error processing command line: {}", e.getMessage()); printUsage(); } if (options.containsKey("h")) { printUsage(); return; } // list for injector modules List<Module> modules = new ArrayList<Module>(); // module (main configuration) modules.add(new ToolkitModule(args)); // create the injector log.debug("creating injector"); Injector injector = Guice.createInjector(modules); // initialise the application object. log.debug("creating application"); ToolkitApplication app = injector.getInstance(ToolkitApplication.class); // execute the application Calendar timeStart = Calendar.getInstance(); log.info("executing: [{}]", timeStart.getTime()); app.run(); Calendar timeEnd = Calendar.getInstance(); log.info("execution complete: [{}]", timeEnd.getTime()); long diff = (timeEnd.getTimeInMillis() - timeStart.getTimeInMillis()) / 1000; log.info("time taken (seconds): {}", diff); } private static Map<String, String> parseArgs(String[] args) throws Exception { Map<String, String> options = new HashMap<String, String>(); if (args.length == 0) return options; for (int x = 0; x < args.length; x++) { options.put("", ""); if (args[x].equals("-h")) { options.put("h", "true"); } } return options; } private static void printUsage() { System.out.println("java -jar alma-tookit.jar [options]"); } }