OpenSearch/x-pack/plugin
Nik Everett fb27f3e7f0
HLREST: Add x-pack-info API (#31870)
This is the first x-pack API we're adding to the high level REST client
so there is a lot to talk about here!

= Open source

The *client* for these APIs is open source. We're taking the previously
Elastic licensed files used for the `Request` and `Response` objects and
relicensing them under the Apache 2 license.

The implementation of these features is staying under the Elastic
license. This lines up with how the rest of the Elasticsearch language
clients work.

= Location of the new files

We're moving all of the `Request` and `Response` objects that we're
relicensing to the `x-pack/protocol` directory. We're adding a copy of
the Apache 2 license to the root fo the `x-pack/protocol` directory to
line up with the language in the root `LICENSE.txt` file. All files in
this directory will have the Apache 2 license header as well. We don't
want there to be any confusion. Even though the files are under the
`x-pack` directory, they are Apache 2 licensed.

We chose this particular directory layout because it keeps the X-Pack
stuff together and easier to think about.

= Location of the API in the REST client

We've been following the layout of the rest-api-spec files for other
APIs and we plan to do this for the X-Pack APIs with one exception:
we're dropping the `xpack` from the name of most of the APIs. So
`xpack.graph.explore` will become `graph().explore()` and
`xpack.license.get` will become `license().get()`.

`xpack.info` and `xpack.usage` are special here though because they
don't belong to any proper category. For now I'm just calling
`xpack.info` `xPackInfo()` and intend to call usage `xPackUsage` though
I'm not convinced that this is the final name for them. But it does get
us started.

= Jars, jars everywhere!

This change makes the `xpack:protocol` project a `compile` scoped
dependency of the `x-pack:plugin:core` and `client:rest-high-level`
projects. I intend to keep it a compile scoped dependency of
`x-pack:plugin:core` but I intend to bundle the contents of the protocol
jar into the `client:rest-high-level` jar in a follow up. This change
has grown large enough at this point.

In that followup I'll address javadoc issues as well.

= Breaking-Java

This breaks that transport client by a few classes around. We've
traditionally been ok with doing this to the transport client.
2018-07-08 11:03:56 -04:00
..
core HLREST: Add x-pack-info API (#31870) 2018-07-08 11:03:56 -04:00
deprecation Migrate x-pack-elasticsearch source to elasticsearch 2018-04-20 15:29:54 -07:00
graph Core: Combine doExecute methods in TransportAction (#31517) 2018-06-22 15:03:01 -07:00
logstash Remove all unused imports and fix CRLF (#31207) 2018-06-11 15:12:12 +02:00
ml HLREST: Add x-pack-info API (#31870) 2018-07-08 11:03:56 -04:00
monitoring [ML] Return statistics about forecasts as part of the jobsstats and usage API (#31647) 2018-07-04 08:15:45 +02:00
rollup mark RollupIT.testTwoJobsStartStopDeleteOne as AwaitsFix 2018-07-05 10:03:10 +02:00
security HLREST: Add x-pack-info API (#31870) 2018-07-08 11:03:56 -04:00
sql SQL: Remove restriction for single column grouping (#31818) 2018-07-06 20:55:27 +03:00
src/test Watcher: Reenable start/stop yaml tests (#31754) 2018-07-03 14:52:52 +02:00
upgrade Remove deprecation warnings to prepare for Gradle 5 (sourceSets.main.output.classesDirs) (#30389) 2018-06-28 15:14:34 +03:00
watcher Scripting: Remove support for deprecated StoredScript contexts (#31394) 2018-07-05 09:30:08 -04:00
build.gradle Fix gradle4.8 deprecation warnings (#31654) 2018-06-29 19:17:19 +00:00