Hello,
during recent Weld release a noticed that one of Weld examples stopped working on WFLY
14.
It is an EAR (WAR + EJB JAR) that has no special stuff in it and the error shows a CNFE
from open tracing[1] upon deployment.
After some digging I realized that we also have Weld Probe (devel tool) on which basically
intercepts every bean out there to give you some stats about deployment.
That means it will try to create an interceptor from TracerProducer[2] as well and will
fail because:
1) the module (opentracing module) has no dependencies on Weld hence cannot load proxies
and will delegate this to EAR root ClassLoader[3]
- if the module's module.xml has weld-core, this won't fail (but we don't
want to dependend on core, that's nasty)
2) EAR root CL doesn't know about opentracing API, hence the CNFE
- adding some dependencies there would solve it, we do that for WARs already
Looking at opentracing extension, why are there no dependencies added to the root of
EAR[4]?
For the record I did try removing that 'if' statement and then executing test[5]
related to the PR in which it was added and it passed (and solved my deployment problem as
well).
If the above approach is fine, I can create JIRA and send a PR, I just wanted to check
with someone who has more knowledge about that opentracing extension than I do.
Regards
Matej
_______________________________________________________________________________________________________________________
[1]
https://issues.jboss.org/browse/WELD-2549
[2]
https://github.com/wildfly/wildfly/blob/master/microprofile/opentracing-s...
[3]
https://github.com/wildfly/wildfly/blob/master/weld/subsystem/src/main/ja...
[4]
https://github.com/wildfly/wildfly/blob/master/microprofile/opentracing-e...
[5]
https://github.com/wildfly/wildfly/blob/master/testsuite/integration/basi...