-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Description
We currently have a shared version of http client and its dependencies (eg various apache commons libs). This version must be used across any plugin/module that uses the ES test framework. Note that we have no such dependency in core, yet still the version must alight because the test framework is pulled in everywhere, and the rest client is part of the test framework. This is particularly troublesome as we sometimes force a version of these dependencies which does not align with what the plugin requires from other dependencies (eg see discussion in #24067).
In order to allow each plugin to use their own version of httpclient and its deps, we should shade http client and all other deps of the rest client, and package it in an uber jar. This will make the rest client standalone, so that no conflict will occur when the client is on the test classpath with any plugin also depending on http client.