[jboss-jira] [JBoss JIRA] (WFLY-10961) MP-OpenTracing Jaeger's can't see a concrete sender

Juraci Paixão Kröhling (JIRA) issues at jboss.org
Fri Aug 31 08:50:00 EDT 2018


     [ https://issues.jboss.org/browse/WFLY-10961?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juraci Paixão Kröhling updated WFLY-10961:
------------------------------------------
    Workaround Description: 
One workaround is to change the modules manually, placing the jaeger-thrift JAR within the same module as jaeger-core, and changing the module definition.

Copy the JAR:
{code}
cp modules/system/layers/base/io/jaegertracing/jaeger-thrift/main/jaeger-thrift-0.30.6.jar modules/system/layers/base/io/jaegertracing/jaeger-core/main/
{code}

Module definition at modules/system/layers/base/io/jaegertracing/jaeger-core/main/module.xml:
{code}
<module name="io.jaegertracing.jaeger-core" xmlns="urn:jboss:module:1.8">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

    <resources>
	<resource-root path="jaeger-core-0.30.6.jar"/>
        <resource-root path="jaeger-thrift-0.30.6.jar"/>
    </resources>

    <dependencies>
        <module name="com.google.code.gson"/>

        <module name="io.opentracing.opentracing-api"/>
        <module name="io.opentracing.opentracing-util"/>

        <module name="org.apache.thrift"/>
        <module name="org.slf4j"/>
    </dependencies>
</module>
{code}

Additionally, the module org.wildfly.microprofile.opentracing-smallrye should have the references to both the Apache Thrift and Jaeger Thrift removed.

A second workaround is to have the deployed artifact to embed the Jaeger Client artifact, along with a Tracer Factory. A reference can be found on Jaeger Client Java repository:

https://github.com/jaegertracing/jaeger-client-java/blob/8e9492fcc57fcf308d52096018d82237173b8eb9/jaeger-tracerresolver/src/main/java/io/jaegertracing/tracerresolver/internal/JaegerTracerFactory.java#L21-L26

  was:
One workaround is to change the modules manually, placing the jaeger-thrift JAR within the same module as jaeger-core, and changing the module definition.

Copy the JAR:
{code}
cp modules/system/layers/base/io/jaegertracing/jaeger-thrift/main/jaeger-thrift-0.30.6.jar modules/system/layers/base/io/jaegertracing/jaeger-core/main/
{code}

Module definition:
{code}
<module name="io.jaegertracing.jaeger-core" xmlns="urn:jboss:module:1.8">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

    <resources>
	<resource-root path="jaeger-core-0.30.6.jar"/>
        <resource-root path="jaeger-thrift-0.30.6.jar"/>
    </resources>

    <dependencies>
        <module name="com.google.code.gson"/>

        <module name="io.opentracing.opentracing-api"/>
        <module name="io.opentracing.opentracing-util"/>

        <module name="org.apache.thrift"/>
        <module name="org.slf4j"/>
    </dependencies>
</module>
{code}

Additionally, the module org.wildfly.microprofile.opentracing-smallrye should have the references to both the Apache Thrift and Jaeger Thrift removed.

A second workaround is to have the deployed artifact to embed the Jaeger Client artifact, along with a Tracer Factory. A reference can be found on Jaeger Client Java repository:

https://github.com/jaegertracing/jaeger-client-java/blob/8e9492fcc57fcf308d52096018d82237173b8eb9/jaeger-tracerresolver/src/main/java/io/jaegertracing/tracerresolver/internal/JaegerTracerFactory.java#L21-L26



> MP-OpenTracing Jaeger's can't see a concrete sender
> ---------------------------------------------------
>
>                 Key: WFLY-10961
>                 URL: https://issues.jboss.org/browse/WFLY-10961
>             Project: WildFly
>          Issue Type: Bug
>    Affects Versions: 14.0.0.Final
>            Reporter: Juraci Paixão Kröhling
>            Assignee: Juraci Paixão Kröhling
>
> One of the last changes made to WF 14 was to split the dependencies into smaller modules. This introduced a bug where the Jaeger Core module can't see a Sender from Jaeger Thrift. This is loaded via the Service Loader, so, Jaeger Core has to be shipped with Jaeger Thrift on the same module, to avoid a circular dependency (as Jaeger Thrift depends on classes defined on Jaeger Core).



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list