Hey all,
I’ve been discussing with Richard lately in private about dropping openejb-http
and think we should be bringint it to the list. Looking at openejb-http we
noticed it's really two things in one module: the embedded HTTP server
("httpejbd") and the HttpListener / request / response / servlet adapter types
that CXF, tomee-jaxrs and tomee-webservices plug into.
On TomEE the server never runs. TomEEServiceManager skips httpejbd (along with
ejbd, ejbds and admin) and Tomcat's connectors handle all HTTP [1]. The only
things that still start it are:
- the openejb-standalone assembly, where it's the HTTP transport for remote EJB
calls
- ApplicationComposer tests with @EnableServices("jaxrs"/"jaxws"), ~80 test
classes, most of them in openejb-cxf-rs (57) and openejb-cxf (10)
- openejb.embedded.remotable and the arquillian-openejb-embedded adapter
- ~19 examples (simple-rest, rest-cdi, the jsonb ones,
applicationcomposer-jaxws-cdi, the webservice-* ones)
So the only real runtime user is openejb-standalone, the rest is test tooling.
IMO we should drop both httpejbd and the openejb-standalone assembly and move
the affected tests/examples over to a Tomcat based setup (tomee-embedded /
arquillian-tomee-embedded). The adapter types would stay since TomEE needs
them, so this is more a split of the module than a removal.
Independent of that: the Jetty backend in openejb-http checks for
org.mortbay.jetty.Connector (Jetty 6) while the pom pulls Jetty 12, so it
always falls back to the OpenEJB server and can never run [2]. I'd remove that
in any case.
Does anyone still use openejb-standalone or rely on httpejbd outside of tests?
WDYT?
Thanks
Markus
[1]
https://github.com/apache/tomee/blob/main/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEServiceManager.java
[2]
https://github.com/apache/tomee/blob/main/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpServerFactory.java