// moving from VOTE to DISCUSS thread

*Re what will happen to the existing java client:*

The Java CLI is for running the *server*.  It will live in server


*Re 'brooklyn-client' or 'brooklyn-client-cli' (or ***'brooklyn-go-client' or 'brooklyn-cli' which I don't like):**

The important thing to differentiate in the repo name (ie the top level I think) is whether something is for the server, for the CLI client, for the UI, etc. Language isn't important so I don't like `go-client` -- although it's nice that the top-level usage/role/repo distinctions do align with language distinctions!

Where the language *is* relevant in the name if we're making language bindings e.g. to facility client code using the REST API. We have this currently for Java and only in the "rest-client" project. This could be renamed "rest-client-java-bindings". (On a side note it is proposed that this go into brooklyn-server for now; semantically this is wrong as it isn't server code ... but to do otherwise would result in a lot of cross-project PR's. I don't think it's worth tidying this now; maybe if we have lots of language bindings then maybe it would be -- e.g. a `brooklyn-client-rest-bindings` top-level repo.)

It would be more descriptive for the CLI repo to have `brooklyn-client-cli` and I'm not opposed to that but it seems long-winded for a project name. When I hear "client" as a devops context my default is a client command-line tool; if it's any other type of client -- eg a UI or language binding -- it would typically be named differently. As in `brooklyn-ui` and `brooklyn-client-rest-bindings`.


*Code-gen:*

I really like Swagger codegen for creating language bindings / client stub libraries. With the recent Swagger upgrade I think we do now generate compliant JSON, exposed through the REST API, and so I think it would be a simple matter to auto-generate binding stubs for most languages. I've not tried this with Brooklyn but if someone does, and wants to add a page to the docs that would be fantastic. (And maybe in future we auto-gen `brooklyn-rest-client-bindings` for many languages; but not a high priority.)

Best
Alex


On 26/11/2015 10:05, Andrea Turli wrote:
I agree with Robert, that's why I still `+1`  `brooklyn-cli` over
`brooklyn-client`

I'm tempted to suggest `brooklyn-go-client`. What happens to the existing
Java client, which is not a CLI?  Does it deserve its own repo too?  What
about future language clients?

If the brooklyn rest API will be fully Swagger compliant I think a good
documentation on how how to generate clients in different languages
starting from the same YAML spec using swagger-codegen will be enough, I
think. This will offer a good integration with other ecosystems and it will
not require brooklyn community to support all the languages available out
there.

Cheers,
Andrea


Reply via email to