It's suggested to create a module called "guava" in Druid that copies the Guava source tree (without tests) and prohibit using the real Guava in Druid source code via Checkstyle.
Shading Guava automatically using a plugin is not possible because Druid's dependencies depend on older Guava versions that are binary-incompatible with the freshest Guava. Repackaging all such dependencies doesn't seem to be a feasible task.
One could say that copying source code of a library is bad because we won't receive updates and bug fixes that happen in the upstream, but we aren't receiving them currently anyway, using the ancient 16.0.1 version!
It's suggested to create a module called "guava" in Druid that copies the Guava source tree (without tests) and prohibit using the real Guava in Druid source code via Checkstyle.
Shading Guava automatically using a plugin is not possible because Druid's dependencies depend on older Guava versions that are binary-incompatible with the freshest Guava. Repackaging all such dependencies doesn't seem to be a feasible task.
One could say that copying source code of a library is bad because we won't receive updates and bug fixes that happen in the upstream, but we aren't receiving them currently anyway, using the ancient 16.0.1 version!