Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Do
-
None
-
None
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 Anthony Baker's comment on Fri, 04 Nov, 20:31 at: https://mail-archives.apache.org/mod_mbox/incubator-geode-dev/201611.mbox/browser