Difficult to comment without seeing what the workaround is and whether the project can even support Liberty in the end without compromising quality/simplicity too much. The bare minimum bar is getting things to work on both Liberty and Payara. After that, let’s see.
Hi Reza and Cargo Tracker dev team,
After inquiring with an OL developer, I found that
Payara does JAXRS
Context injection before the @PostConstruct is executed, but CXF/Liberty for JAXRS 2.x does not. This results in the SSE errors that I was encountering, but the dev said this was a non-trivial OL change that is unlikely to happen — there are also discussions about removing context injection entirely as well in future versions: https://github.com/jakartaee/rest/issues/951.
The developer mentioned that it could be possible to move the broadcaster creation to the method that registers the eventSink (in this case, the tracking() method) since a broadcaster is not necessary until we actually try to broadcast. This might allow things to work identically in both Liberty and Payara.
Let me know what you think of this approach; I'm continuing to tinker with the source code as of now.
Best,
Chanun Ong
University of California, Berkeley
Electrical Engineering & Computer Science, B.S.
Class of 2022