[ 
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)

Reply via email to