[
https://issues.apache.org/jira/browse/PHOENIX-6703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17531300#comment-17531300
]
Istvan Toth commented on PHOENIX-6703:
--------------------------------------
I've run a quick test of the jetty-less phoenix-client-embedded.jar with
phoenix_sandbox.py, and it started up and passed the smoke test.
The only network service I know that the client exposes are the metrics, which
are exposed via JMX.
Even on the server side, Phoenix only implements coprocessors, and the actual
network communication is handled by HBase. Of course, Jetty is provided by
HBase on the server side classpath.
The clean solution would be finishing the PHOENIX-6053 refactor, which properly
splits the client and server side phoenix code base, and removes the
hbase-server dependency from the client side, but until then this is the best
we can do. (Actually, we could probably remove more packages from the client,
but this is the one that causes the problems)
If you check my WIP patch for PHOENIX-6053 you can see that it removes the
hbase-server dependency completely from phoenix-core, which is the only module
used by the JDBC phoenix-client in that version.
That patch only shuffles code and constants around classes so that the client
doesn't need to pull constants from the coprocessor implementation classes
(which pull in hbase-server), but otherwise doesn't change anything.
This shows that the hbase-server dependency on the client side is only
accidental.
> Exclude Jetty and servlet-api from phoenix-client
> -------------------------------------------------
>
> Key: PHOENIX-6703
> URL: https://issues.apache.org/jira/browse/PHOENIX-6703
> Project: Phoenix
> Issue Type: Improvement
> Components: core
> Reporter: Istvan Toth
> Assignee: Istvan Toth
> Priority: Major
>
> phoenix-client-embedded includes a Jetty server, and the Jetty API.
> I don't think that there is a legitimate reason to have a web server in a
> JDBC driver.It adds bloat, and tries to do some stuff at startup which takes
> time.
> More pressingly, the shaded javax.servlet classes conflict with minicluster,
> which breaks the tests in phoenix-queryserver.
> Remove Jetty and the Servlet API from the shaded phoenix-client JAR.
> We could also consider excluding these dependencies in phoenix-core.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)