Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
queryserver-6.0.1
-
None
-
Due to an incompatible change in the way phoenix-client is shaded and relocated, when using PQS with Phoenix 5.1.0 - 5.1.3 or 4.16.x, PQS must be built with the "shade-javax-servlet" maven profile enabled.
Description
We've made to relatively recent changes to javax.servelt in the shaded PQS client JAR.
In PHOENIX-6151 we've applied shading to it, then in PHOENIX-6703 we've removed it altogether from the embedded client JAR.
Also relatively recently, we have added a dependency for org.apache.hadoop.jmx.JMXJsonServlet to PQS.
As a result, we have mutually incompatible requirements for the PQS classpath.
For old phoenix-client versions, and for current 5.2 phoenix-client versions with PHOENIX-6703, we need to have unshaded javax.servlet, both for Avatica, and for JMXJsonServlet on the classpath.
On the other hand, for Phoenix versions that have PHOENIX-6151, but not PHOENIX-6703, we need to shade javax.servlet so that it matches with shading applied for JMXJsonServlet (which is coming via phoenix-client, which shades javax.servlet).
We need to find some kind of solution to this mess, ideally so that the same PQS binary works with as many Phoenix versions as possible.
Attachments
Issue Links
- is caused by
-
PHOENIX-6703 Exclude Jetty and servlet-api from phoenix-client
- Resolved
- is duplicated by
-
PHOENIX-6605 Cancel the shade relocation on javax.servlet
- Resolved
- is related to
-
PHOENIX-6294 javax.servlet relocation added by PHOENIX-6151 breaks PQS
- Closed
- links to