Search in sources :

Example 51 with PosixParser

use of org.apache.commons.cli.PosixParser in project compiler by boalang.

the class BoaGenerator method main.

public static void main(final String[] args) throws IOException {
    final Options options = new Options();
    BoaGenerator.addOptions(options);
    final CommandLine cl;
    try {
        cl = new PosixParser().parse(options, args);
        BoaGenerator.handleCmdOptions(cl, options, args);
    } catch (final Exception e) {
        printHelp(options, e.getMessage());
        return;
    }
    if (jsonAvailable) {
        CacheGithubJSON.main(args);
        try {
            SeqRepoImporter.main(args);
        } catch (final InterruptedException e) {
            e.printStackTrace();
        }
        // SeqSortMerge.main(args);
        try {
            MapFileGen.main(args);
        } catch (final Exception e) {
            e.printStackTrace();
        }
    } else {
        // when user provides local repo and does not have json files
        final File output = new File(DefaultProperties.GH_JSON_CACHE_PATH);
        if (!output.exists())
            output.mkdirs();
        LocalGitSequenceGenerator.localGitSequenceGenerate(DefaultProperties.GH_GIT_PATH, DefaultProperties.GH_JSON_CACHE_PATH);
        try {
            MapFileGen.main(args);
        } catch (final Exception e) {
            e.printStackTrace();
        }
    }
    if (cl.hasOption("cache"))
        clear(true);
    else
        clear(false);
}
Also used : Options(org.apache.commons.cli.Options) CommandLine(org.apache.commons.cli.CommandLine) PosixParser(org.apache.commons.cli.PosixParser) File(java.io.File) IOException(java.io.IOException)

Example 52 with PosixParser

use of org.apache.commons.cli.PosixParser in project tomee by apache.

the class Undeploy method main.

public static void main(final String[] args) throws SystemExitException {
    final CommandLineParser parser = new PosixParser();
    // create the Options
    final Options options = new Options();
    options.addOption(Undeploy.option("v", "version", "cmd.deploy.opt.version"));
    // TODO this message doesn't exist
    options.addOption(Undeploy.option("h", "help", "cmd.undeploy.opt.help"));
    options.addOption(Undeploy.option("s", "server-url", "url", "cmd.deploy.opt.server"));
    CommandLine line = null;
    try {
        // parse the command line arguments
        line = parser.parse(options, args);
    } catch (final ParseException exp) {
        Undeploy.help(options);
        throw new SystemExitException(-1);
    }
    if (line.hasOption("help")) {
        Undeploy.help(options);
        return;
    } else if (line.hasOption("version")) {
        OpenEjbVersion.get().print(System.out);
        return;
    }
    if (line.getArgList().size() == 0) {
        System.out.println("Must specify an module id.");
        help(options);
        return;
    }
    final Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
    String serverUrl = line.getOptionValue("server-url", defaultServerUrl);
    if ("auto".equalsIgnoreCase(serverUrl.trim())) {
        try {
            final File sXml = new File(JavaSecurityManagers.getSystemProperty("openejb.base", "conf/server.xml"));
            if (sXml.exists()) {
                final QuickServerXmlParser result = QuickServerXmlParser.parse(sXml);
                serverUrl = "http://" + result.host() + ":" + result.http() + "/tomee/ejb";
            }
        } catch (final Throwable e) {
        // no-op
        }
    }
    p.put(Context.PROVIDER_URL, serverUrl);
    Deployer deployer = null;
    try {
        final InitialContext ctx = new InitialContext(p);
        deployer = (Deployer) ctx.lookup("openejb/DeployerBusinessRemote");
    } catch (final ServiceUnavailableException e) {
        System.out.println(e.getCause().getMessage());
        System.out.println(Undeploy.messages.format("cmd.deploy.serverOffline"));
        throw new SystemExitException(-1);
    } catch (final NamingException e) {
        System.out.println("DeployerEjb does not exist in server '" + serverUrl + "', check the server logs to ensure it exists and has not been removed.");
        throw new SystemExitException(-2);
    }
    int exitCode = 0;
    for (final Object obj : line.getArgList()) {
        final String moduleId = (String) obj;
        try {
            undeploy(moduleId, deployer);
        } catch (final DeploymentTerminatedException e) {
            System.out.println(e.getMessage());
            exitCode++;
        } catch (final UndeployException e) {
            System.out.println(messages.format("cmd.undeploy.failed", moduleId));
            e.printStackTrace(System.out);
            exitCode++;
        } catch (final NoSuchApplicationException e) {
            // TODO make this message
            System.out.println(messages.format("cmd.undeploy.noSuchModule", moduleId));
            exitCode++;
        }
    }
    if (exitCode != 0) {
        throw new SystemExitException(exitCode);
    }
}
Also used : Options(org.apache.commons.cli.Options) PosixParser(org.apache.commons.cli.PosixParser) SystemExitException(org.apache.openejb.cli.SystemExitException) ServiceUnavailableException(javax.naming.ServiceUnavailableException) Properties(java.util.Properties) InitialContext(javax.naming.InitialContext) CommandLine(org.apache.commons.cli.CommandLine) NamingException(javax.naming.NamingException) CommandLineParser(org.apache.commons.cli.CommandLineParser) ParseException(org.apache.commons.cli.ParseException) NoSuchApplicationException(org.apache.openejb.NoSuchApplicationException) File(java.io.File) Deployer(org.apache.openejb.assembler.Deployer) UndeployException(org.apache.openejb.UndeployException)

Example 53 with PosixParser

use of org.apache.commons.cli.PosixParser in project tomee by apache.

the class Deploy method main.

public static void main(final String... args) throws SystemExitException {
    final CommandLineParser parser = new PosixParser();
    // create the Options
    final Options options = new Options();
    options.addOption(option("v", "version", "cmd.deploy.opt.version"));
    options.addOption(option("h", "help", "cmd.deploy.opt.help"));
    options.addOption(option("o", "offline", "cmd.deploy.opt.offline"));
    options.addOption(option("s", "server-url", "url", "cmd.deploy.opt.server"));
    options.addOption(option("d", "debug", "cmd.deploy.opt.debug"));
    options.addOption(option("q", "quiet", "cmd.deploy.opt.quiet"));
    options.addOption(option("u", "undeploy", "cmd.deploy.opt.undeploy"));
    options.addOption(option(null, "dir", "cmd.deploy.opt.dir"));
    final CommandLine line;
    try {
        // parse the command line arguments
        line = parser.parse(options, args);
    } catch (final ParseException exp) {
        help(options);
        throw new SystemExitException(-1);
    }
    if (line.hasOption("help")) {
        help(options);
        return;
    } else if (line.hasOption("version")) {
        OpenEjbVersion.get().print(System.out);
        return;
    }
    if (line.getArgList().size() == 0) {
        System.out.println("Must specify an archive to deploy.");
        help(options);
        return;
    }
    // make sure that the modules given on the command line are accessible
    final List<?> modules = line.getArgList();
    for (final Object module : modules) {
        final String path = (String) module;
        final File file = new File(path);
        try {
            checkSource(file);
        } catch (final DeploymentTerminatedException e) {
            System.out.println(e.getMessage());
            // TODO: What is it for?
            throw new SystemExitException(-100);
        }
    }
    final boolean offline = line.hasOption("offline");
    final File apps;
    try {
        final String dir = line.getOptionValue("dir", "apps");
        apps = SystemInstance.get().getBase().getDirectory(dir);
    } catch (final IOException e) {
        throw new SystemExitException(-1);
    }
    if (!apps.exists()) {
        System.out.println("Directory does not exist: " + apps.getAbsolutePath());
    }
    Deployer deployer = null;
    if (!offline) {
        final Properties p = new Properties();
        p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
        String serverUrl = line.getOptionValue("server-url", defaultServerUrl);
        if ("auto".equalsIgnoreCase(serverUrl.trim())) {
            try {
                final File sXml = new File(JavaSecurityManagers.getSystemProperty("openejb.base", "conf/server.xml"));
                if (sXml.exists()) {
                    final QuickServerXmlParser result = QuickServerXmlParser.parse(sXml);
                    serverUrl = "http://" + result.host() + ":" + result.http() + "/tomee/ejb";
                }
            } catch (final Throwable e) {
            // no-op
            }
        }
        p.put(Context.PROVIDER_URL, serverUrl);
        try {
            final InitialContext ctx = new InitialContext(p);
            deployer = (Deployer) ctx.lookup("openejb/DeployerBusinessRemote");
        } catch (final ServiceUnavailableException e) {
            System.out.println(e.getCause().getMessage());
            System.out.println(messages.format("cmd.deploy.serverOffline"));
            throw new SystemExitException(-1);
        } catch (final NamingException e) {
            System.out.println("openejb/DeployerBusinessRemote does not exist in server '" + serverUrl + "', check the server logs to ensure it exists and has not been removed.");
            throw new SystemExitException(-2);
        }
    }
    final boolean undeploy = line.hasOption("undeploy");
    // We increment the exit code once for every failed deploy
    int exitCode = 0;
    for (final Object obj : line.getArgList()) {
        final String path = (String) obj;
        final File file = new File(path);
        File destFile = new File(apps, file.getName());
        try {
            if (shouldUnpack(file)) {
                final File unpacked = unpackedLocation(file, apps);
                if (undeploy) {
                    undeploy(offline, unpacked, path, deployer);
                }
                destFile = unpack(file, unpacked);
            } else {
                if (undeploy) {
                    undeploy(offline, destFile, path, deployer);
                }
                checkDest(destFile, file);
                copyFile(file, destFile);
            }
            if (offline) {
                System.out.println(messages.format("cmd.deploy.offline", path, apps.getAbsolutePath()));
                continue;
            }
            final String location;
            try {
                location = destFile.getCanonicalPath();
            } catch (final IOException e) {
                throw new OpenEJBException(messages.format("cmd.deploy.fileNotFound", path));
            }
            final AppInfo appInfo = deployer.deploy(location);
            System.out.println(messages.format("cmd.deploy.successful", path, appInfo.path));
            if (line.hasOption("quiet")) {
                continue;
            }
            print(appInfo);
        } catch (final UndeployException e) {
            System.out.println(messages.format("cmd.undeploy.failed", path));
            e.printStackTrace(System.out);
            exitCode++;
        } catch (final DeploymentTerminatedException e) {
            System.out.println(e.getMessage());
            exitCode++;
        } catch (final ValidationFailedException e) {
            System.out.println(messages.format("cmd.deploy.validationFailed", path));
            int level = 2;
            if (line.hasOption("debug")) {
                level = 3;
            }
            final AppValidator appValidator = new AppValidator(level, false, true, false);
            appValidator.printResults(e);
            exitCode++;
            if (!delete(destFile)) {
                System.out.println(messages.format("cmd.deploy.cantDelete.deploy", destFile.getAbsolutePath()));
            }
        } catch (final Throwable e) {
            System.out.println(messages.format("cmd.deploy.failed", path));
            e.printStackTrace(System.out);
            exitCode++;
            if (!delete(destFile)) {
                System.out.println(messages.format("cmd.deploy.cantDelete.deploy", destFile.getAbsolutePath()));
            }
        }
    }
    if (exitCode != 0) {
        throw new SystemExitException(exitCode);
    }
}
Also used : Options(org.apache.commons.cli.Options) OpenEJBException(org.apache.openejb.OpenEJBException) PosixParser(org.apache.commons.cli.PosixParser) SystemExitException(org.apache.openejb.cli.SystemExitException) ServiceUnavailableException(javax.naming.ServiceUnavailableException) Properties(java.util.Properties) NamingException(javax.naming.NamingException) CommandLineParser(org.apache.commons.cli.CommandLineParser) Deployer(org.apache.openejb.assembler.Deployer) IOException(java.io.IOException) InitialContext(javax.naming.InitialContext) WebAppInfo(org.apache.openejb.assembler.classic.WebAppInfo) AppInfo(org.apache.openejb.assembler.classic.AppInfo) CommandLine(org.apache.commons.cli.CommandLine) ParseException(org.apache.commons.cli.ParseException) JarFile(java.util.jar.JarFile) File(java.io.File) UndeployException(org.apache.openejb.UndeployException)

Example 54 with PosixParser

use of org.apache.commons.cli.PosixParser in project tomee by apache.

the class Info2Properties method main.

public static void main(final String[] args) {
    final CommandLineParser parser = new PosixParser();
    // create the Options
    final Options options = new Options();
    options.addOption(option("v", "version", "cmd.properties.opt.version"));
    options.addOption(option("h", "help", "cmd.properties.opt.help"));
    options.addOption(option("s", "server-url", "url", "cmd.properties.opt.server"));
    CommandLine line = null;
    try {
        // parse the command line arguments
        line = parser.parse(options, args);
    } catch (final ParseException exp) {
        help(options);
        System.exit(-1);
    }
    if (line.hasOption("help")) {
        help(options);
        System.exit(0);
    } else if (line.hasOption("version")) {
        OpenEjbVersion.get().print(System.out);
        System.exit(0);
    }
    final Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
    final String serverUrl = line.getOptionValue("server-url", defaultServerUrl);
    p.put(Context.PROVIDER_URL, serverUrl);
    ConfigurationInfo configInfo = null;
    try {
        final InitialContext ctx = new InitialContext(p);
        configInfo = (ConfigurationInfo) ctx.lookup("openejb/ConfigurationInfoBusinessRemote");
    } catch (final ServiceUnavailableException e) {
        System.out.println(e.getCause().getMessage());
        System.out.println(messages.format("cmd.deploy.serverOffline"));
        System.exit(1);
    } catch (final NamingException e) {
        System.out.println("ConfigurationInfo does not exist in server '" + serverUrl + "', check the server logs to ensure it exists and has not been removed.");
        System.exit(2);
    }
    File tempFile = null;
    try {
        try {
            tempFile = File.createTempFile("configrequest", "txt");
        } catch (final Throwable e) {
            final File tmp = new File("tmp");
            if (!tmp.exists() && !tmp.mkdirs()) {
                throw new IOException("Failed to create local tmp directory: " + tmp.getAbsolutePath());
            }
            tempFile = File.createTempFile("configrequest", "txt", tmp);
        }
        if (!tempFile.exists()) {
            throw new IllegalStateException("Failed to create tmp file: " + tempFile.getAbsolutePath());
        }
    } catch (final Exception e) {
        System.err.println("Temp file creation failed.");
        e.printStackTrace();
        System.exit(1);
    }
    OpenEjbConfiguration configuration = null;
    try {
        configuration = configInfo.getOpenEjbConfiguration(tempFile);
    } catch (final ConfigurationInfo.UnauthorizedException e) {
        System.err.println("This tool is currently crippled to only work with server's on the same physical machine.  See this JIRA issue for details: http://issues.apache.org/jira/browse/OPENEJB-621");
        System.exit(10);
    }
    printConfig(configuration);
}
Also used : Options(org.apache.commons.cli.Options) PosixParser(org.apache.commons.cli.PosixParser) ServiceUnavailableException(javax.naming.ServiceUnavailableException) IOException(java.io.IOException) Properties(java.util.Properties) SuperProperties(org.apache.openejb.util.SuperProperties) InitialContext(javax.naming.InitialContext) NamingException(javax.naming.NamingException) IOException(java.io.IOException) ServiceUnavailableException(javax.naming.ServiceUnavailableException) ParseException(org.apache.commons.cli.ParseException) OpenEjbConfiguration(org.apache.openejb.assembler.classic.OpenEjbConfiguration) CommandLine(org.apache.commons.cli.CommandLine) NamingException(javax.naming.NamingException) CommandLineParser(org.apache.commons.cli.CommandLineParser) ParseException(org.apache.commons.cli.ParseException) File(java.io.File)

Example 55 with PosixParser

use of org.apache.commons.cli.PosixParser in project tomee by apache.

the class ListSetters method main.

public static void main(final String[] args) throws Exception {
    final Options options = new Options();
    options.addOption(OptionBuilder.isRequired(true).hasArg(true).withLongOpt("class").withDescription("the class to introspect").create("c"));
    final CommandLine line;
    try {
        line = new PosixParser().parse(options, args);
    } catch (final ParseException exp) {
        help(options);
        throw new SystemExitException(-1);
    }
    if (line.hasOption("help")) {
        help(options);
        return;
    }
    final String clazz = line.getOptionValue("class");
    final Collection<Class<?>> ancestors = Classes.ancestors(Thread.currentThread().getContextClassLoader().loadClass(clazz));
    final List<String> list = new LinkedList<>();
    for (final Class<?> c : ancestors) {
        for (final Method m : c.getDeclaredMethods()) {
            if (!Modifier.isPublic(m.getModifiers())) {
                continue;
            }
            if (!m.getName().startsWith("set")) {
                continue;
            }
            if (m.getGenericParameterTypes().length != 1) {
                continue;
            }
            list.add(m.getName().substring(3));
        }
    }
    Collections.sort(list);
    for (final String s : list) {
        System.out.println("- " + s);
    }
}
Also used : Options(org.apache.commons.cli.Options) CommandLine(org.apache.commons.cli.CommandLine) PosixParser(org.apache.commons.cli.PosixParser) SystemExitException(org.apache.openejb.cli.SystemExitException) ParseException(org.apache.commons.cli.ParseException) Method(java.lang.reflect.Method) LinkedList(java.util.LinkedList)

Aggregations

PosixParser (org.apache.commons.cli.PosixParser)103 CommandLine (org.apache.commons.cli.CommandLine)97 CommandLineParser (org.apache.commons.cli.CommandLineParser)67 Options (org.apache.commons.cli.Options)56 ParseException (org.apache.commons.cli.ParseException)51 File (java.io.File)24 IOException (java.io.IOException)20 HelpFormatter (org.apache.commons.cli.HelpFormatter)16 Optional (java.util.Optional)10 Test (org.junit.Test)9 List (java.util.List)8 Configuration (org.apache.hadoop.conf.Configuration)8 GenericOptionsParser (org.apache.hadoop.util.GenericOptionsParser)7 SystemExitException (org.apache.openejb.cli.SystemExitException)7 Option (org.apache.commons.cli.Option)6 Parser (org.apache.commons.cli.Parser)6 Properties (java.util.Properties)5 Path (org.apache.hadoop.fs.Path)5 ArrayList (java.util.ArrayList)4 HBaseConfiguration (org.apache.hadoop.hbase.HBaseConfiguration)4