Repository: incubator-apex-core Updated Branches: refs/heads/devel-3 9d83a4445 -> 6c2425948
APEX-111 #resolve show-logical-plan command should check the first arg whether it's an app package before counting arguments Project: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/commit/6c242594 Tree: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/tree/6c242594 Diff: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/diff/6c242594 Branch: refs/heads/devel-3 Commit: 6c2425948a50a6c76a93e359356cbb387155ed22 Parents: 9d83a44 Author: David Yan <[email protected]> Authored: Thu Sep 10 14:03:34 2015 -0700 Committer: Chandni Singh <[email protected]> Committed: Thu Sep 10 15:00:23 2015 -0700 ---------------------------------------------------------------------- .../java/com/datatorrent/stram/cli/DTCli.java | 143 +++++++++---------- 1 file changed, 68 insertions(+), 75 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/6c242594/engine/src/main/java/com/datatorrent/stram/cli/DTCli.java ---------------------------------------------------------------------- diff --git a/engine/src/main/java/com/datatorrent/stram/cli/DTCli.java b/engine/src/main/java/com/datatorrent/stram/cli/DTCli.java index 53ad0ca..6ac1b9d 100644 --- a/engine/src/main/java/com/datatorrent/stram/cli/DTCli.java +++ b/engine/src/main/java/com/datatorrent/stram/cli/DTCli.java @@ -2777,95 +2777,88 @@ public class DTCli } } - if (commandLineInfo.args.length >= 2) { - String jarfile = expandFileName(commandLineInfo.args[0], true); - AppPackage ap = null; + if (commandLineInfo.args.length > 0) { + String filename = expandFileName(commandLineInfo.args[0], true); + // see if the first argument is actually an app package try { - ap = new AppPackage(new File(jarfile)); - } - catch (Exception ex) { - // fall through - } - if (ap != null) { + AppPackage ap = new AppPackage(new File(filename)); + ap.close(); new ShowLogicalPlanAppPackageCommand().execute(args, reader); return; + } catch (Exception ex) { + // fall through } - String appName = commandLineInfo.args[1]; - StramAppLauncher submitApp = getStramAppLauncher(jarfile, config, commandLineInfo.ignorePom); - submitApp.loadDependencies(); - List<AppFactory> matchingAppFactories = getMatchingAppFactories(submitApp, appName, commandLineInfo.exactMatch); - if (matchingAppFactories == null || matchingAppFactories.isEmpty()) { - throw new CliException("No application in jar file matches '" + appName + "'"); - } - else if (matchingAppFactories.size() > 1) { - throw new CliException("More than one application in jar file match '" + appName + "'"); - } - else { - Map<String, Object> map = new HashMap<String, Object>(); - PrintStream originalStream = System.out; - AppFactory appFactory = matchingAppFactories.get(0); - try { - if (raw) { - PrintStream dummyStream = new PrintStream(new OutputStream() - { - @Override - public void write(int b) + + if (commandLineInfo.args.length >= 2) { + String appName = commandLineInfo.args[1]; + StramAppLauncher submitApp = getStramAppLauncher(filename, config, commandLineInfo.ignorePom); + submitApp.loadDependencies(); + List<AppFactory> matchingAppFactories = getMatchingAppFactories(submitApp, appName, commandLineInfo.exactMatch); + if (matchingAppFactories == null || matchingAppFactories.isEmpty()) { + throw new CliException("No application in jar file matches '" + appName + "'"); + } else if (matchingAppFactories.size() > 1) { + throw new CliException("More than one application in jar file match '" + appName + "'"); + } else { + Map<String, Object> map = new HashMap<String, Object>(); + PrintStream originalStream = System.out; + AppFactory appFactory = matchingAppFactories.get(0); + try { + if (raw) { + PrintStream dummyStream = new PrintStream(new OutputStream() { - // no-op - } + @Override + public void write(int b) + { + // no-op + } - }); - System.setOut(dummyStream); + }); + System.setOut(dummyStream); + } + LogicalPlan logicalPlan = appFactory.createApp(submitApp.getLogicalPlanConfiguration()); + map.put("applicationName", appFactory.getName()); + map.put("logicalPlan", LogicalPlanSerializer.convertToMap(logicalPlan)); + } finally { + if (raw) { + System.setOut(originalStream); + } } + printJson(map); + } + } else { + if (filename.endsWith(".json")) { + File file = new File(filename); + StramAppLauncher submitApp = new StramAppLauncher(file.getName(), config); + AppFactory appFactory = new StramAppLauncher.JsonFileAppFactory(file); LogicalPlan logicalPlan = appFactory.createApp(submitApp.getLogicalPlanConfiguration()); + Map<String, Object> map = new HashMap<String, Object>(); map.put("applicationName", appFactory.getName()); map.put("logicalPlan", LogicalPlanSerializer.convertToMap(logicalPlan)); - } - finally { - if (raw) { - System.setOut(originalStream); + printJson(map); + } else if (filename.endsWith(".properties")) { + File file = new File(filename); + StramAppLauncher submitApp = new StramAppLauncher(file.getName(), config); + AppFactory appFactory = new StramAppLauncher.PropertyFileAppFactory(file); + LogicalPlan logicalPlan = appFactory.createApp(submitApp.getLogicalPlanConfiguration()); + Map<String, Object> map = new HashMap<String, Object>(); + map.put("applicationName", appFactory.getName()); + map.put("logicalPlan", LogicalPlanSerializer.convertToMap(logicalPlan)); + printJson(map); + } else { + StramAppLauncher submitApp = getStramAppLauncher(filename, config, commandLineInfo.ignorePom); + submitApp.loadDependencies(); + List<Map<String, Object>> appList = new ArrayList<Map<String, Object>>(); + List<AppFactory> appFactoryList = submitApp.getBundledTopologies(); + for (AppFactory appFactory : appFactoryList) { + Map<String, Object> m = new HashMap<String, Object>(); + m.put("name", appFactory.getName()); + appList.add(m); } + printJson(appList, "applications"); } - printJson(map); } - } - else if (commandLineInfo.args.length == 1) { - String filename = expandFileName(commandLineInfo.args[0], true); - if (filename.endsWith(".json")) { - File file = new File(filename); - StramAppLauncher submitApp = new StramAppLauncher(file.getName(), config); - AppFactory appFactory = new StramAppLauncher.JsonFileAppFactory(file); - LogicalPlan logicalPlan = appFactory.createApp(submitApp.getLogicalPlanConfiguration()); - Map<String, Object> map = new HashMap<String, Object>(); - map.put("applicationName", appFactory.getName()); - map.put("logicalPlan", LogicalPlanSerializer.convertToMap(logicalPlan)); - printJson(map); - } - else if (filename.endsWith(".properties")) { - File file = new File(filename); - StramAppLauncher submitApp = new StramAppLauncher(file.getName(), config); - AppFactory appFactory = new StramAppLauncher.PropertyFileAppFactory(file); - LogicalPlan logicalPlan = appFactory.createApp(submitApp.getLogicalPlanConfiguration()); - Map<String, Object> map = new HashMap<String, Object>(); - map.put("applicationName", appFactory.getName()); - map.put("logicalPlan", LogicalPlanSerializer.convertToMap(logicalPlan)); - printJson(map); - } - else { - StramAppLauncher submitApp = getStramAppLauncher(filename, config, commandLineInfo.ignorePom); - submitApp.loadDependencies(); - List<Map<String, Object>> appList = new ArrayList<Map<String, Object>>(); - List<AppFactory> appFactoryList = submitApp.getBundledTopologies(); - for (AppFactory appFactory : appFactoryList) { - Map<String, Object> m = new HashMap<String, Object>(); - m.put("name", appFactory.getName()); - appList.add(m); - } - printJson(appList, "applications"); - } - } - else { + } else { if (currentApp == null) { throw new CliException("No application selected"); }
