package eu.dnetlib.functionality.index.solr; import jargs.gnu.CmdLineParser; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Commandline client for index solr service offline operations. * * @author claudio * */ public class SolrIndexClient { private static void printUsage() { System.err.println("Usage: -m -i -l "); } /** * @param args */ public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("eu/dnetlib/functionality/index/solr/applicationContext.xml"); Args parsedArgs = parseArgs(args); AbstractIndexSolrClient client = (AbstractIndexSolrClient) context.getBean("offlineSolrIndexClient", AbstractIndexSolrClient.class); try { try { client.prepare(context, parsedArgs); client.dispatch(parsedArgs.getMethod(), parsedArgs); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); printUsage(); System.exit(2); } } finally { context.close(); } } private static Args parseArgs(String[] args) { CmdLineParser parser = new CmdLineParser(); CmdLineParser.Option method = parser.addStringOption('m', "method"); CmdLineParser.Option input = parser.addStringOption('i', "input"); CmdLineParser.Option layout = parser.addStringOption('l', "layout"); CmdLineParser.Option solrDataDir = parser.addStringOption('d', "solrDataDir"); try { parser.parse(args); } catch (CmdLineParser.OptionException e) { System.err.println(e.getMessage()); printUsage(); System.exit(2); } Args res = new Args(); res.setMethod((String) parser.getOptionValue(method)); res.setIntput((String) parser.getOptionValue(input)); res.setLayout((String) parser.getOptionValue(layout)); res.setSolrDataDir((String) parser.getOptionValue(solrDataDir)); return res; } }