CAMEL-11258 Use TracerResolver to locate Tracer without modifying code/config
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/153cfd14 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/153cfd14 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/153cfd14 Branch: refs/heads/master Commit: 153cfd1429c0c9e66fe749f8ebb92c7a476306db Parents: b18b638 Author: Gary Brown <g...@brownuk.com> Authored: Wed May 10 16:48:57 2017 +0100 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Thu May 11 10:58:42 2017 +0200 ---------------------------------------------------------------------- components/camel-opentracing/pom.xml | 5 +++++ .../org/apache/camel/opentracing/OpenTracingTracer.java | 11 ++--------- parent/pom.xml | 3 ++- 3 files changed, 9 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/153cfd14/components/camel-opentracing/pom.xml ---------------------------------------------------------------------- diff --git a/components/camel-opentracing/pom.xml b/components/camel-opentracing/pom.xml index 8cea9f2..1fd5ffe 100644 --- a/components/camel-opentracing/pom.xml +++ b/components/camel-opentracing/pom.xml @@ -62,6 +62,11 @@ <artifactId>opentracing-noop</artifactId> <version>${opentracing-version}</version> </dependency> + <dependency> + <groupId>io.opentracing.contrib</groupId> + <artifactId>opentracing-tracerresolver</artifactId> + <version>${opentracing-tracerresolver-version}</version> + </dependency> <!-- test dependencies --> <dependency> http://git-wip-us.apache.org/repos/asf/camel/blob/153cfd14/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java ---------------------------------------------------------------------- diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java index 0a03044..2cafa59 100644 --- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java +++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/OpenTracingTracer.java @@ -19,7 +19,6 @@ package org.apache.camel.opentracing; import java.net.URI; import java.util.EventObject; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import java.util.ServiceLoader; import java.util.Set; @@ -28,6 +27,7 @@ import io.opentracing.NoopTracerFactory; import io.opentracing.Span; import io.opentracing.Tracer; import io.opentracing.Tracer.SpanBuilder; +import io.opentracing.contrib.tracerresolver.TracerResolver; import io.opentracing.propagation.Format; import io.opentracing.tag.Tags; import org.apache.camel.CamelContext; @@ -147,14 +147,7 @@ public class OpenTracingTracer extends ServiceSupport implements RoutePolicyFact } if (tracer == null) { - // Attempt to load tracer using ServiceLoader - Iterator<Tracer> iter = ServiceLoader.load(Tracer.class).iterator(); - if (iter.hasNext()) { - tracer = iter.next(); - if (iter.hasNext()) { - LOG.warn("Multiple Tracer implementations available - selected: " + tracer); - } - } + tracer = TracerResolver.resolveTracer(); } if (tracer == null) { http://git-wip-us.apache.org/repos/asf/camel/blob/153cfd14/parent/pom.xml ---------------------------------------------------------------------- diff --git a/parent/pom.xml b/parent/pom.xml index abb6673..62822c3 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -503,8 +503,9 @@ <openshift-java-client-version>2.7.0.Final</openshift-java-client-version> <openstack4j-version>3.0.2</openstack4j-version> <openstack4j-guava-version>17.0</openstack4j-guava-version> - <opentracing-java-agent-version>0.0.11</opentracing-java-agent-version> + <opentracing-java-agent-version>0.0.12</opentracing-java-agent-version> <opentracing-version>0.22.0</opentracing-version> + <opentracing-tracerresolver-version>0.1.0</opentracing-tracerresolver-version> <ops4j-base-version>1.5.0</ops4j-base-version> <optaplanner-version>6.5.0.Final</optaplanner-version> <oro-bundle-version>2.0.8_6</oro-bundle-version>