[ https://issues.apache.org/jira/browse/GEODE-2270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Wes Williams updated GEODE-2270: -------------------------------- Description: GIVEN: 1) The GfshParser and CommandResult are internal classes. 2) CommandResult returns headings, line.separator's and UI concerns along with the answer WHEN: I pass a gfsh command into a public gfsh API from code THEN: I get back an XML or JSON representation of the core results without the headings, line.separator's and UI concerns EXAMPLE (idea node and not actual implementation): WHEN: String gfshResults = gfshPublicAPI("list regions"); return gfshResults; String gfshPublicAPI(String gfshCommand) { ParseResult parseResult = gfshParser.parse(gfshCommand); String results = (String) parseResult.getMethod()+"Json" .invoke(parseResult.getInstance(), parseResult.getArguments()) return results; } CommandResult gfshInternalAPI(String gfshCommand) { ParseResult parseResult = gfshParser.parse(gfshCommand); CommandResult results = (CommandResult) parseResult.getMethod() .invoke(parseResult.getInstance(), parseResult.getArguments()) return results; } Another option is to include a new property --output=json into gfsh commands that return the core results without the UI concerns, per https://mail-archives.apache.org/mod_mbox/incubator-geode-dev/201611.mbox/browser was: GIVEN: 1) The GfshParser and CommandResult are internal classes. 2) CommandResult returns headings, line.separator's and UI concerns along with the answer WHEN: I pass a gfsh command into a public gfsh API from code THEN: I get back an XML representation of the core results without the headings, line.separator's and UI concerns EXAMPLE (idea node and not actual implementation): WHEN: String gfshResults = gfshPublicAPI("list regions"); return gfshResults; String gfshPublicAPI(String gfshCommand) { ParseResult parseResult = gfshParser.parse(gfshCommand); XmlResult results = (XmlResult) parseResult.getMethod()+"Xml" .invoke(parseResult.getInstance(), parseResult.getArguments()) return results; } CommandResult gfshInternalAPI(String gfshCommand) { ParseResult parseResult = gfshParser.parse(gfshCommand); CommandResult results = (CommandResult) parseResult.getMethod() .invoke(parseResult.getInstance(), parseResult.getArguments()) return results; } > Need API to call gfsh and get results dynamically from code > ----------------------------------------------------------- > > Key: GEODE-2270 > URL: https://issues.apache.org/jira/browse/GEODE-2270 > Project: Geode > Issue Type: Improvement > Components: gfsh > Reporter: Wes Williams > Fix For: 1.1.0 > > > GIVEN: > 1) The GfshParser and CommandResult are internal classes. > 2) CommandResult returns headings, line.separator's and UI concerns along > with the answer > WHEN: > I pass a gfsh command into a public gfsh API from code > THEN: > I get back an XML or JSON representation of the core results without the > headings, line.separator's and UI concerns > EXAMPLE (idea node and not actual implementation): > WHEN: > String gfshResults = gfshPublicAPI("list regions"); > return gfshResults; > String gfshPublicAPI(String gfshCommand) { > ParseResult parseResult = gfshParser.parse(gfshCommand); > String results = (String) parseResult.getMethod()+"Json" > .invoke(parseResult.getInstance(), parseResult.getArguments()) > return results; > } > CommandResult gfshInternalAPI(String gfshCommand) { > ParseResult parseResult = gfshParser.parse(gfshCommand); > CommandResult results = (CommandResult) parseResult.getMethod() > .invoke(parseResult.getInstance(), parseResult.getArguments()) > return results; > } > Another option is to include a new property --output=json into gfsh commands > that return the core results without the UI concerns, per > https://mail-archives.apache.org/mod_mbox/incubator-geode-dev/201611.mbox/browser -- This message was sent by Atlassian JIRA (v6.3.4#6332)