Skip to content

Shade client jars and build uber jar #25208

@rjernst

Description

@rjernst

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions