List of usage examples for org.apache.commons.cli Options addOption
public Options addOption(Option opt)
From source file:com.examples.cloud.speech.StreamingRecognizeClient.java
public static void main(String[] args) throws Exception { String audioFile = ""; String host = "speech.googleapis.com"; Integer port = 443;/* w w w.j a va 2s . co m*/ Integer sampling = 16000; CommandLineParser parser = new DefaultParser(); Options options = new Options(); options.addOption(OptionBuilder.withLongOpt("file").withDescription("path to audio file").hasArg() .withArgName("FILE_PATH").create()); options.addOption( OptionBuilder.withLongOpt("host").withDescription("endpoint for api, e.g. speech.googleapis.com") .hasArg().withArgName("ENDPOINT").create()); options.addOption(OptionBuilder.withLongOpt("port").withDescription("SSL port, usually 443").hasArg() .withArgName("PORT").create()); options.addOption(OptionBuilder.withLongOpt("sampling").withDescription("Sampling Rate, i.e. 16000") .hasArg().withArgName("RATE").create()); try { CommandLine line = parser.parse(options, args); if (line.hasOption("file")) { audioFile = line.getOptionValue("file"); } else { System.err.println("An Audio file must be specified (e.g. /foo/baz.raw)."); System.exit(1); } if (line.hasOption("host")) { host = line.getOptionValue("host"); } else { System.err.println("An API enpoint must be specified (typically speech.googleapis.com)."); System.exit(1); } if (line.hasOption("port")) { port = Integer.parseInt(line.getOptionValue("port")); } else { System.err.println("An SSL port must be specified (typically 443)."); System.exit(1); } if (line.hasOption("sampling")) { sampling = Integer.parseInt(line.getOptionValue("sampling")); } else { System.err.println("An Audio sampling rate must be specified."); System.exit(1); } } catch (ParseException exp) { System.err.println("Unexpected exception:" + exp.getMessage()); System.exit(1); } ManagedChannel channel = AsyncRecognizeClient.createChannel(host, port); StreamingRecognizeClient client = new StreamingRecognizeClient(channel, audioFile, sampling); try { client.recognize(); } finally { client.shutdown(); } }
From source file:de.prozesskraft.pkraft.Checkconsistency.java
public static void main(String[] args) throws org.apache.commons.cli.ParseException, IOException { /*---------------------------- get options from ini-file/*from w ww .j av a 2 s . co m*/ ----------------------------*/ File inifile = new java.io.File(WhereAmI.getInstallDirectoryAbsolutePath(Checkconsistency.class) + "/" + "../etc/pkraft-checkconsistency.ini"); if (inifile.exists()) { try { ini = new Ini(inifile); } catch (InvalidFileFormatException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { System.err.println("ini file does not exist: " + inifile.getAbsolutePath()); System.exit(1); } /*---------------------------- create boolean options ----------------------------*/ Option ohelp = new Option("help", "print this message"); Option ov = new Option("v", "prints version and build-date"); /*---------------------------- create argument options ----------------------------*/ Option odefinition = OptionBuilder.withArgName("definition").hasArg() .withDescription("[mandatory] process model in xml format.") // .isRequired() .create("definition"); /*---------------------------- create options object ----------------------------*/ Options options = new Options(); options.addOption(ohelp); options.addOption(ov); options.addOption(odefinition); /*---------------------------- create the parser ----------------------------*/ CommandLineParser parser = new GnuParser(); // parse the command line arguments commandline = parser.parse(options, args); /*---------------------------- usage/help ----------------------------*/ if (commandline.hasOption("help")) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("startinstance", options); System.exit(0); } if (commandline.hasOption("v")) { System.out.println("author: alexander.vogel@prozesskraft.de"); System.out.println("version: [% version %]"); System.out.println("date: [% date %]"); System.exit(0); } /*---------------------------- ueberpruefen ob eine schlechte kombination von parametern angegeben wurde ----------------------------*/ if (!(commandline.hasOption("definition"))) { System.out.println("option -definition is mandatory."); exiter(); } /*---------------------------- die lizenz ueberpruefen und ggf abbrechen ----------------------------*/ // check for valid license ArrayList<String> allPortAtHost = new ArrayList<String>(); allPortAtHost.add(ini.get("license-server", "license-server-1")); allPortAtHost.add(ini.get("license-server", "license-server-2")); allPortAtHost.add(ini.get("license-server", "license-server-3")); MyLicense lic = new MyLicense(allPortAtHost, "1", "user-edition", "0.1"); // lizenz-logging ausgeben for (String actLine : (ArrayList<String>) lic.getLog()) { System.err.println(actLine); } // abbruch, wenn lizenz nicht valide if (!lic.isValid()) { System.exit(1); } /*---------------------------- die eigentliche business logic ----------------------------*/ Process p1 = new Process(); p1.setInfilexml(commandline.getOptionValue("definition")); Process p2; try { p2 = p1.readXml(); if (p2.isProcessConsistent()) { System.out.println("process structure is consistent."); } else { System.out.println("process structure is NOT consistent."); } p2.printLog(); } catch (JAXBException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }
From source file:com.astexample.Recognize.java
public static void main(String[] args) throws Exception { String audioFile = ""; String host = "speech.googleapis.com"; Integer port = 443;//w ww. java2 s . c om Integer sampling = 16000; CommandLineParser parser = new DefaultParser(); Options options = new Options(); options.addOption(OptionBuilder.withLongOpt("file").withDescription("path to audio file").hasArg() .withArgName("FILE_PATH").create()); options.addOption( OptionBuilder.withLongOpt("host").withDescription("endpoint for api, e.g. speech.googleapis.com") .hasArg().withArgName("ENDPOINT").create()); options.addOption(OptionBuilder.withLongOpt("port").withDescription("SSL port, usually 443").hasArg() .withArgName("PORT").create()); options.addOption(OptionBuilder.withLongOpt("sampling").withDescription("Sampling Rate, i.e. 16000") .hasArg().withArgName("RATE").create()); try { CommandLine line = parser.parse(options, args); if (line.hasOption("file")) { audioFile = line.getOptionValue("file"); } else { System.err.println("An Audio file must be specified (e.g. /foo/baz.raw)."); System.exit(1); } if (line.hasOption("host")) { host = line.getOptionValue("host"); } else { System.err.println("An API enpoint must be specified (typically speech.googleapis.com)."); System.exit(1); } if (line.hasOption("port")) { port = Integer.parseInt(line.getOptionValue("port")); } else { System.err.println("An SSL port must be specified (typically 443)."); System.exit(1); } if (line.hasOption("sampling")) { sampling = Integer.parseInt(line.getOptionValue("sampling")); } else { System.err.println("An Audio sampling rate must be specified."); System.exit(1); } } catch (ParseException exp) { System.err.println("Unexpected exception:" + exp.getMessage()); System.exit(1); } Recognize client = new Recognize(host, port, audioFile, sampling); try { client.recognize(); } finally { client.shutdown(); } }
From source file:com.astexample.RecognizeGoogleTest.java
public static void main(String[] args) throws Exception { String audioFile = ""; String host = "speech.googleapis.com"; Integer port = 443;/*from w w w . j a v a 2s.c o m*/ Integer sampling = 16000; CommandLineParser parser = new DefaultParser(); Options options = new Options(); options.addOption(OptionBuilder.withLongOpt("file").withDescription("path to audio file").hasArg() .withArgName("FILE_PATH").create()); options.addOption( OptionBuilder.withLongOpt("host").withDescription("endpoint for api, e.g. speech.googleapis.com") .hasArg().withArgName("ENDPOINT").create()); options.addOption(OptionBuilder.withLongOpt("port").withDescription("SSL port, usually 443").hasArg() .withArgName("PORT").create()); options.addOption(OptionBuilder.withLongOpt("sampling").withDescription("Sampling Rate, i.e. 16000") .hasArg().withArgName("RATE").create()); try { CommandLine line = parser.parse(options, args); if (line.hasOption("file")) { audioFile = line.getOptionValue("file"); } else { System.err.println("An Audio file must be specified (e.g. /foo/baz.raw)."); System.exit(1); } if (line.hasOption("host")) { host = line.getOptionValue("host"); } else { System.err.println("An API enpoint must be specified (typically speech.googleapis.com)."); System.exit(1); } if (line.hasOption("port")) { port = Integer.parseInt(line.getOptionValue("port")); } else { System.err.println("An SSL port must be specified (typically 443)."); System.exit(1); } if (line.hasOption("sampling")) { sampling = Integer.parseInt(line.getOptionValue("sampling")); } else { System.err.println("An Audio sampling rate must be specified."); System.exit(1); } } catch (ParseException exp) { System.err.println("Unexpected exception:" + exp.getMessage()); System.exit(1); } RecognizeGoogleTest client = new RecognizeGoogleTest(host, port, audioFile, sampling); try { client.recognize(); } finally { client.shutdown(); } }
From source file:com.google.cloud.speech.grpc.demos.RecognizeClient.java
public static void main(String[] args) throws Exception { String audioFile = ""; String host = "speech.googleapis.com"; Integer port = 443;//from w w w. j ava2 s. c om Integer sampling = 16000; CommandLineParser parser = new DefaultParser(); Options options = new Options(); options.addOption(OptionBuilder.withLongOpt("file").withDescription("path to audio file").hasArg() .withArgName("FILE_PATH").create()); options.addOption( OptionBuilder.withLongOpt("host").withDescription("endpoint for api, e.g. speech.googleapis.com") .hasArg().withArgName("ENDPOINT").create()); options.addOption(OptionBuilder.withLongOpt("port").withDescription("SSL port, usually 443").hasArg() .withArgName("PORT").create()); options.addOption(OptionBuilder.withLongOpt("sampling").withDescription("Sampling Rate, i.e. 16000") .hasArg().withArgName("RATE").create()); try { CommandLine line = parser.parse(options, args); if (line.hasOption("file")) { audioFile = line.getOptionValue("file"); } else { System.err.println("An Audio file must be specified (e.g. /foo/baz.raw)."); System.exit(1); } if (line.hasOption("host")) { host = line.getOptionValue("host"); } else { System.err.println("An API enpoint must be specified (typically speech.googleapis.com)."); System.exit(1); } if (line.hasOption("port")) { port = Integer.parseInt(line.getOptionValue("port")); } else { System.err.println("An SSL port must be specified (typically 443)."); System.exit(1); } if (line.hasOption("sampling")) { sampling = Integer.parseInt(line.getOptionValue("sampling")); } else { System.err.println("An Audio sampling rate must be specified."); System.exit(1); } } catch (ParseException exp) { System.err.println("Unexpected exception:" + exp.getMessage()); System.exit(1); } RecognizeClient client = new RecognizeClient(host, port, audioFile, sampling); try { client.recognize(); } finally { client.shutdown(); } }
From source file:msuresh.raftdistdb.AtomixDB.java
/** * Main Method which runs a Apache CLI which takes 3 different options for the 3 operations <br> * @param args <br>/* ww w . j av a2s .co m*/ * Options : <br> * -setup numberOfReplicas numberOfPartitions -- which sets the system given thenumber of partitions number of replicas per partition<br> * -set key Value -- adds a key value pair to the DB<br> * -get key -- returns a value for the key if it exists<br> * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException, ExecutionException, FileNotFoundException { Options options = new Options(); Option opt = new Option("setup", true, "Sets up the replica that run the Raft Consensus Algorithm."); opt.setArgs(3); options.addOption(opt); opt = new Option("set", true, " Add a key-value pair into the Distributed Database."); opt.setArgs(3); options.addOption(opt); opt = new Option("get", true, "Given a key gets the value from the DB"); opt.setArgs(2); options.addOption(opt); opt = new Option("clean", false, "Cleans the state information."); options.addOption(opt); opt = new Option("test", true, "Cleans the state information."); opt.setArgs(2); options.addOption(opt); try { CommandLineParser parser = new BasicParser(); CommandLine line = null; line = parser.parse(options, args); if (line.hasOption("setup")) { String[] vals = line.getOptionValues("setup"); System.out.println(vals[0]); RaftCluster.createCluster(vals[0], Integer.parseInt(vals[1]), Integer.parseInt(vals[2])); } else if (line.hasOption("set")) { String[] vals = line.getOptionValues("set"); addKey(vals[0], vals[1], vals[2]); } else if (line.hasOption("get")) { String[] vals = line.getOptionValues("get"); getKey(vals[0], vals[1]); } else if (line.hasOption("clean")) { cleanState(); } else if (line.hasOption("test")) { String[] vals = line.getOptionValues("test"); TestAtomix.createCluster(vals[0], Integer.parseInt(vals[1])); } } catch (ParseException exp) { System.out.println("Unexpected exception:" + exp.getMessage()); } }
From source file:com.github.r351574nc3.amex.assignment2.App.java
public static void main(final String... args) { if (args.length < 1) { printUsage();//from w w w.j av a 2 s .c o m System.exit(0); } final Options options = new Options(); options.addOption(OptionBuilder.withArgName("test").hasArg(true).isRequired(true) .withDescription("Path for ARFF test data").create("t")); options.addOption(OptionBuilder.withArgName("output").hasArg(true).isRequired(true) .withDescription("Path for ARFF output").create("o")); options.addOption(OptionBuilder.withArgName("input").hasArg(true).isRequired(true) .withDescription("Path for ARFF input").create("i")); final CommandLineParser parser = new BasicParser(); CommandLine cmd = null; try { cmd = parser.parse(options, args); } catch (Exception e) { System.out.println(e.getMessage()); printUsage(); System.exit(0); } final String outputName = cmd.getOptionValue("o"); final String inputName = cmd.getOptionValue("i"); final String testName = cmd.getOptionValue("t"); final App app = new App(); try { if (args.length > 0) { app.setTrained(app.load(testName)); app.setTest(app.load(testName)); } } catch (Exception e) { error("There was an exception loading training and test datasets: %s", e.getMessage()); } try { app.train(); app.test(); } catch (Exception e) { error("There was an exception testing the model: %s", e.getMessage()); } try { app.predict(inputName, outputName); } catch (Exception e) { error("There was an exception predicting MPG: %s", e.getMessage()); e.printStackTrace(); } System.exit(0); }
From source file:com.hortonworks.registries.storage.tool.TablesInitializer.java
public static void main(String[] args) throws Exception { Options options = new Options(); options.addOption(Option.builder("s").numberOfArgs(1).longOpt(OPTION_SCRIPT_ROOT_PATH) .desc("Root directory of script path").build()); options.addOption(Option.builder("c").numberOfArgs(1).longOpt(OPTION_CONFIG_FILE_PATH) .desc("Config file path").build()); options.addOption(Option.builder("m").numberOfArgs(1).longOpt(OPTION_MYSQL_JAR_URL_PATH) .desc("Mysql client jar url to download").build()); options.addOption(Option.builder().hasArg(false).longOpt(OPTION_EXECUTE_CREATE_TABLE) .desc("Execute 'create table' script").build()); options.addOption(Option.builder().hasArg(false).longOpt(OPTION_EXECUTE_DROP_TABLE) .desc("Execute 'drop table' script").build()); options.addOption(Option.builder().hasArg(false).longOpt(OPTION_EXECUTE_CHECK_CONNECTION) .desc("Check the connection for configured data source").build()); CommandLineParser parser = new BasicParser(); CommandLine commandLine = parser.parse(options, args); if (!commandLine.hasOption(OPTION_CONFIG_FILE_PATH) || !commandLine.hasOption(OPTION_SCRIPT_ROOT_PATH)) { usage(options);/*from www .j a v a 2 s. co m*/ System.exit(1); } // either create or drop should be specified, not both boolean executeCreate = commandLine.hasOption(OPTION_EXECUTE_CREATE_TABLE); boolean executeDrop = commandLine.hasOption(OPTION_EXECUTE_DROP_TABLE); boolean checkConnection = commandLine.hasOption(OPTION_EXECUTE_CHECK_CONNECTION); boolean moreThanOneOperationIsSpecified = executeCreate == executeDrop ? executeCreate : checkConnection; boolean noOperationSpecified = !(executeCreate || executeDrop || checkConnection); if (moreThanOneOperationIsSpecified) { System.out.println( "Only one operation can be execute at once, please select 'create' or 'drop', or 'check-connection'."); System.exit(1); } else if (noOperationSpecified) { System.out.println( "One of 'create', 'drop', 'check-connection' operation should be specified to execute."); System.exit(1); } String confFilePath = commandLine.getOptionValue(OPTION_CONFIG_FILE_PATH); String scriptRootPath = commandLine.getOptionValue(OPTION_SCRIPT_ROOT_PATH); String mysqlJarUrl = commandLine.getOptionValue(OPTION_MYSQL_JAR_URL_PATH); StorageProviderConfiguration storageProperties; try { Map<String, Object> conf = Utils.readConfig(confFilePath); StorageProviderConfigurationReader confReader = new StorageProviderConfigurationReader(); storageProperties = confReader.readStorageConfig(conf); } catch (IOException e) { System.err.println("Error occurred while reading config file: " + confFilePath); System.exit(1); throw new IllegalStateException("Shouldn't reach here"); } String bootstrapDirPath = null; try { bootstrapDirPath = System.getProperty("bootstrap.dir"); MySqlDriverHelper.downloadMySQLJarIfNeeded(storageProperties, bootstrapDirPath, mysqlJarUrl); } catch (Exception e) { System.err.println("Error occurred while downloading MySQL jar. bootstrap dir: " + bootstrapDirPath); System.exit(1); throw new IllegalStateException("Shouldn't reach here"); } try { SQLScriptRunner sqlScriptRunner = new SQLScriptRunner(storageProperties); try { sqlScriptRunner.initializeDriver(); } catch (ClassNotFoundException e) { System.err.println( "Driver class is not found in classpath. Please ensure that driver is in classpath."); System.exit(1); } if (checkConnection) { if (!sqlScriptRunner.checkConnection()) { System.exit(1); } } else if (executeDrop) { doExecuteDrop(sqlScriptRunner, storageProperties, scriptRootPath); } else { // executeCreate doExecuteCreate(sqlScriptRunner, storageProperties, scriptRootPath); } } catch (IOException e) { System.err.println("Error occurred while reading script file. Script root path: " + scriptRootPath); System.exit(1); } }
From source file:com.ibm.soatf.SOATestingFramework.java
/** * SOA Testing Framework main static method. * * @param args Main input parameters./*from w ww. j a va 2 s .c om*/ */ public static void main(String[] args) { Options options = new Options(); options.addOption(new Option("gui", "Display a GUI")); options.addOption(OptionBuilder.withArgName("environment").hasArg() .withDescription("Environment to run the tests on").create("env")); // has a value options.addOption(OptionBuilder.withArgName("project").hasArg() .withDescription("Project to run the tests on").create("p")); // has a value options.addOption(OptionBuilder.withArgName("interface").hasArg() .withDescription("Interface to run the tests on").create("i")); // has a value CommandLineParser parser = new BasicParser(); try { CommandLine cmd = parser.parse(options, args); validate(cmd); if (cmd.hasOption("gui")) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { if (false) { //disabled the OS Look'n'Feel UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } else { for (UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } UIManager.getLookAndFeelDefaults().put("nimbusOrange", (new Color(0, 128, 255))); } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) { logger.error("Cannot set look and feel", ex); } //</editor-fold> final SOATestingFrameworkGUI soatfgui = new SOATestingFrameworkGUI(); java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { soatfgui.setVisible(true); } }); } else { //<editor-fold defaultstate="collapsed" desc="Command line mode"> try { // Initialization of configuration manager. ConfigurationManager.getInstance().init(); String env = cmd.getOptionValue("env", null); String ifaceName; boolean inboundOnly = false; if (cmd.hasOption("p")) { String projectName = cmd.getOptionValue("p"); MasterConfiguration masterConfig = ConfigurationManager.getInstance().getMasterConfig(); List<SOATestingFrameworkMasterConfiguration.Interfaces.Interface> interfaces = masterConfig .getInterfaces(); all: for (Interface iface : interfaces) { List<Project> projects = iface.getProjects().getProject(); for (Project project : projects) { if (project.getName().equals(projectName)) { inboundOnly = "INBOUND".equalsIgnoreCase(project.getDirection()); ifaceName = iface.getName(); break all; } } } throw new FrameworkExecutionException( "No such project found in master configuration: " + projectName); } else { ifaceName = cmd.getOptionValue("i"); inboundOnly = false; } DirectoryStructureManager.checkFrameworkDirectoryStructure(ifaceName); FlowExecutor flowExecutor = new FlowExecutor(inboundOnly, env, ifaceName); flowExecutor.execute(); } catch (FrameworkConfigurationException ex) { logger.fatal("Configuration corrupted. See the exception stack trace for details.", ex); } catch (FrameworkException ex) { logger.fatal(ex); } //</editor-fold> } } catch (ParseException ex) { logger.fatal("Could not parse the command line arguments. Reason: " + ex); printUsage(); } catch (Throwable ex) { logger.fatal("Unexpected error occured: ", ex); printUsage(); System.exit(-1); } }
From source file:io.bfscan.clueweb12.BuildWarcTrecIdMapping.java
@SuppressWarnings("static-access") public static void main(String[] args) throws Exception { Options options = new Options(); options.addOption(OptionBuilder.withArgName("path").hasArg().withDescription("bz2 Wikipedia XML dump file") .create(INPUT_OPTION));//from w ww. ja v a 2 s . co m options.addOption( OptionBuilder.withArgName("dir").hasArg().withDescription("index location").create(INDEX_OPTION)); options.addOption(OptionBuilder.withArgName("num").hasArg() .withDescription("maximum number of documents to index").create(MAX_OPTION)); options.addOption(OptionBuilder.withArgName("num").hasArg().withDescription("number of indexing threads") .create(THREADS_OPTION)); options.addOption(new Option(OPTIMIZE_OPTION, "merge indexes into a single segment")); CommandLine cmdline = null; CommandLineParser parser = new GnuParser(); try { cmdline = parser.parse(options, args); } catch (ParseException exp) { System.err.println("Error parsing command line: " + exp.getMessage()); System.exit(-1); } if (!cmdline.hasOption(INPUT_OPTION) || !cmdline.hasOption(INDEX_OPTION)) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp(BuildWarcTrecIdMapping.class.getCanonicalName(), options); System.exit(-1); } String indexPath = cmdline.getOptionValue(INDEX_OPTION); int maxdocs = cmdline.hasOption(MAX_OPTION) ? Integer.parseInt(cmdline.getOptionValue(MAX_OPTION)) : Integer.MAX_VALUE; int threads = cmdline.hasOption(THREADS_OPTION) ? Integer.parseInt(cmdline.getOptionValue(THREADS_OPTION)) : DEFAULT_NUM_THREADS; long startTime = System.currentTimeMillis(); String path = cmdline.getOptionValue(INPUT_OPTION); PrintStream out = new PrintStream(System.out, true, "UTF-8"); Directory dir = FSDirectory.open(new File(indexPath)); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_43, ANALYZER); config.setOpenMode(OpenMode.CREATE); IndexWriter writer = new IndexWriter(dir, config); LOG.info("Creating index at " + indexPath); LOG.info("Indexing with " + threads + " threads"); FileInputStream fis = null; BufferedReader br = null; try { fis = new FileInputStream(new File(path)); byte[] ignoreBytes = new byte[2]; fis.read(ignoreBytes); // "B", "Z" bytes from commandline tools br = new BufferedReader(new InputStreamReader(new CBZip2InputStream(fis), "UTF8")); ExecutorService executor = Executors.newFixedThreadPool(threads); int cnt = 0; String s; while ((s = br.readLine()) != null) { Runnable worker = new AddDocumentRunnable(writer, s); executor.execute(worker); cnt++; if (cnt % 1000000 == 0) { LOG.info(cnt + " articles added"); } if (cnt >= maxdocs) { break; } } executor.shutdown(); // Wait until all threads are finish while (!executor.isTerminated()) { } LOG.info("Total of " + cnt + " articles indexed."); if (cmdline.hasOption(OPTIMIZE_OPTION)) { LOG.info("Merging segments..."); writer.forceMerge(1); LOG.info("Done!"); } LOG.info("Total elapsed time: " + (System.currentTimeMillis() - startTime) + "ms"); } catch (Exception e) { e.printStackTrace(); } finally { writer.close(); dir.close(); out.close(); br.close(); fis.close(); } }