You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/12/04 06:21:28 UTC
[camel] branch master updated: CAMEL-14244: camel-opentracing -
Associate decorators with component FQN also
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 9d76523 CAMEL-14244: camel-opentracing - Associate decorators with component FQN also
9d76523 is described below
commit 9d7652378e084607db791fb413b24239be0f2769
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Dec 4 07:20:35 2019 +0100
CAMEL-14244: camel-opentracing - Associate decorators with component FQN also
---
.../camel/opentracing/OpenTracingTracer.java | 18 ++++-
.../apache/camel/opentracing/SpanDecorator.java | 14 +++-
.../opentracing/decorators/AhcSpanDecorator.java | 5 ++
.../opentracing/decorators/AmqpSpanDecorator.java | 5 ++
.../decorators/AwsSnsSpanDecorator.java | 5 ++
.../decorators/AwsSqsSpanDecorator.java | 5 ++
.../decorators/CometdSpanDecorator.java | 5 ++
.../opentracing/decorators/CqlSpanDecorator.java | 5 ++
.../decorators/DirectSpanDecorator.java | 5 ++
.../decorators/DirectvmSpanDecorator.java | 5 ++
.../decorators/DisruptorSpanDecorator.java | 5 ++
.../decorators/DisruptorvmSpanDecorator.java | 5 ++
.../decorators/ElasticsearchSpanDecorator.java | 7 +-
.../opentracing/decorators/HttpSpanDecorator.java | 5 ++
...cSpanDecorator.java => HttpsSpanDecorator.java} | 4 +-
.../decorators/IronmqSpanDecorator.java | 5 ++
.../opentracing/decorators/JdbcSpanDecorator.java | 5 ++
.../opentracing/decorators/JettySpanDecorator.java | 5 ++
.../opentracing/decorators/JmsSpanDecorator.java | 5 ++
.../opentracing/decorators/KafkaSpanDecorator.java | 5 ++
.../opentracing/decorators/LogSpanDecorator.java | 5 ++
.../decorators/MongoDBSpanDecorator.java | 5 ++
.../decorators/NettyHttpSpanDecorator.java | 5 ++
.../opentracing/decorators/PahoSpanDecorator.java | 5 ++
.../decorators/RabbitmqSpanDecorator.java | 5 ++
.../opentracing/decorators/RestSpanDecorator.java | 5 ++
.../opentracing/decorators/SedaSpanDecorator.java | 5 ++
.../decorators/ServletSpanDecorator.java | 5 ++
...gSpanDecorator.java => Sjms2SpanDecorator.java} | 8 +--
.../opentracing/decorators/SjmsSpanDecorator.java | 5 ++
.../opentracing/decorators/SqlSpanDecorator.java | 5 ++
.../opentracing/decorators/StompSpanDecorator.java | 5 ++
.../opentracing/decorators/TimerSpanDecorator.java | 5 ++
.../decorators/UndertowSpanDecorator.java | 5 ++
.../opentracing/decorators/VmSpanDecorator.java | 5 ++
.../org.apache.camel.opentracing.SpanDecorator | 2 +
.../opentracing/CustomComponentNameRouteTest.java | 82 ++++++++++++++++++++++
.../decorators/AbstractHttpSpanDecoratorTest.java | 35 +++++++++
.../AbstractMessagingSpanDecoratorTest.java | 16 +++++
.../decorators/AbstractSpanDecoratorTest.java | 15 ++++
40 files changed, 341 insertions(+), 10 deletions(-)
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 b336c14..4a58f11 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
@@ -31,6 +31,7 @@ import io.opentracing.propagation.Format;
import io.opentracing.tag.Tags;
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
+import org.apache.camel.Component;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.ExtendedCamelContext;
@@ -46,6 +47,7 @@ import org.apache.camel.spi.CamelLogger;
import org.apache.camel.spi.LogListener;
import org.apache.camel.spi.RoutePolicy;
import org.apache.camel.spi.RoutePolicyFactory;
+import org.apache.camel.support.DefaultEndpoint;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.support.EventNotifierSupport;
import org.apache.camel.support.RoutePolicySupport;
@@ -201,13 +203,25 @@ public class OpenTracingTracer extends ServiceSupport implements RoutePolicyFact
}
protected SpanDecorator getSpanDecorator(Endpoint endpoint) {
- SpanDecorator sd = SpanDecorator.DEFAULT;
+ SpanDecorator sd = null;
String uri = endpoint.getEndpointUri();
String splitURI[] = StringHelper.splitOnCharacter(uri, ":", 2);
if (splitURI[1] != null) {
String scheme = splitURI[0];
- sd = decorators.getOrDefault(scheme, sd);
+ sd = decorators.get(scheme);
+ }
+ if (sd == null) {
+ // okay there was no decorator found via component name (scheme), then try FQN
+ if (endpoint instanceof DefaultEndpoint) {
+ Component comp = ((DefaultEndpoint) endpoint).getComponent();
+ String fqn = comp.getClass().getName();
+ // lookup via FQN
+ sd = decorators.values().stream().filter(d -> fqn.equals(d.getComponentClassName())).findFirst().orElse(null);
+ }
+ }
+ if (sd == null) {
+ sd = SpanDecorator.DEFAULT;
}
return sd;
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/SpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/SpanDecorator.java
index 1a68633..57bf0ac 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/SpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/SpanDecorator.java
@@ -40,6 +40,11 @@ public interface SpanDecorator {
return null;
}
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
+
};
/**
@@ -51,13 +56,20 @@ public interface SpanDecorator {
boolean newSpan();
/**
- * The camel component associated with the decorator.
+ * The camel component name associated with the decorator.
*
* @return The camel component name
*/
String getComponent();
/**
+ * The camel component FQN classname associated with the decorator.
+ *
+ * @return The camel component FQN classname
+ */
+ String getComponentClassName();
+
+ /**
* This method returns the operation name to use with the Span representing
* this exchange and endpoint.
*
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AhcSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AhcSpanDecorator.java
index 2f4b950..e2a8358 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AhcSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AhcSpanDecorator.java
@@ -23,4 +23,9 @@ public class AhcSpanDecorator extends AbstractHttpSpanDecorator {
return "ahc";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.ahc.AhcComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AmqpSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AmqpSpanDecorator.java
index 040feeb..b0b0c03 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AmqpSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AmqpSpanDecorator.java
@@ -23,4 +23,9 @@ public class AmqpSpanDecorator extends AbstractMessagingSpanDecorator {
return "amqp";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.amqp.AMQPComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSnsSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSnsSpanDecorator.java
index 5d46bce..0190e97 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSnsSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSnsSpanDecorator.java
@@ -28,6 +28,11 @@ public class AwsSnsSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.aws.sns.SnsComponent";
+ }
+
+ @Override
protected String getMessageId(Exchange exchange) {
return (String)exchange.getIn().getHeader(CAMEL_AWS_SNS_MESSAGE_ID);
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSqsSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSqsSpanDecorator.java
index 8d9ed21..64a7e04 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSqsSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AwsSqsSpanDecorator.java
@@ -28,6 +28,11 @@ public class AwsSqsSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.aws.sqs.SqsComponent";
+ }
+
+ @Override
protected String getMessageId(Exchange exchange) {
return (String)exchange.getIn().getHeader(CAMEL_AWS_SQS_MESSAGE_ID);
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CometdSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CometdSpanDecorator.java
index e867818..3021bca 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CometdSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CometdSpanDecorator.java
@@ -29,6 +29,11 @@ public class CometdSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.cometd.CometdComponent";
+ }
+
+ @Override
protected String getDestination(Exchange exchange, Endpoint endpoint) {
// Extract path, and remove leading '/'
return URI.create(endpoint.getEndpointUri()).getPath().substring(1);
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CqlSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CqlSpanDecorator.java
index e4fbf33..ad4f279 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CqlSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/CqlSpanDecorator.java
@@ -36,6 +36,11 @@ public class CqlSpanDecorator extends AbstractSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.cassandra.CassandraComponent";
+ }
+
+ @Override
public void pre(Span span, Exchange exchange, Endpoint endpoint) {
super.pre(span, exchange, endpoint);
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectSpanDecorator.java
index e705ce1..98b3fd4 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectSpanDecorator.java
@@ -23,4 +23,9 @@ public class DirectSpanDecorator extends AbstractInternalSpanDecorator {
return "direct";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.direct.DirectComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectvmSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectvmSpanDecorator.java
index 6896d55..85aee6e 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectvmSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DirectvmSpanDecorator.java
@@ -23,4 +23,9 @@ public class DirectvmSpanDecorator extends AbstractInternalSpanDecorator {
return "direct-vm";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.directvm.DirectVmComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorSpanDecorator.java
index e101435..1e0f43f 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorSpanDecorator.java
@@ -23,4 +23,9 @@ public class DisruptorSpanDecorator extends AbstractInternalSpanDecorator {
return "disruptor";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.disruptor.DisruptorComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorvmSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorvmSpanDecorator.java
index 97c216e..4f8bd2c 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorvmSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/DisruptorvmSpanDecorator.java
@@ -23,4 +23,9 @@ public class DisruptorvmSpanDecorator extends AbstractInternalSpanDecorator {
return "disruptor-vm";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.disruptor.vm.DisruptorVmComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ElasticsearchSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ElasticsearchSpanDecorator.java
index 9f8721c..aadfc2f 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ElasticsearchSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ElasticsearchSpanDecorator.java
@@ -31,7 +31,12 @@ public class ElasticsearchSpanDecorator extends AbstractSpanDecorator {
@Override
public String getComponent() {
- return "elasticsearch";
+ return "elasticsearch-rest";
+ }
+
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.elasticsearch.ElasticsearchComponent";
}
@Override
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/HttpSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/HttpSpanDecorator.java
index 9061521..60d03a9 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/HttpSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/HttpSpanDecorator.java
@@ -23,4 +23,9 @@ public class HttpSpanDecorator extends AbstractHttpSpanDecorator {
return "http";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.http.HttpComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AhcSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/HttpsSpanDecorator.java
similarity index 91%
copy from components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AhcSpanDecorator.java
copy to components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/HttpsSpanDecorator.java
index 2f4b950..61ff751 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/AhcSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/HttpsSpanDecorator.java
@@ -16,11 +16,11 @@
*/
package org.apache.camel.opentracing.decorators;
-public class AhcSpanDecorator extends AbstractHttpSpanDecorator {
+public class HttpsSpanDecorator extends HttpSpanDecorator {
@Override
public String getComponent() {
- return "ahc";
+ return "https";
}
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/IronmqSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/IronmqSpanDecorator.java
index a79191e..32d140b 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/IronmqSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/IronmqSpanDecorator.java
@@ -28,6 +28,11 @@ public class IronmqSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.ironmq.IronMQComponent";
+ }
+
+ @Override
protected String getMessageId(Exchange exchange) {
return (String)exchange.getIn().getHeader(CAMEL_IRON_MQ_MESSAGE_ID);
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JdbcSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JdbcSpanDecorator.java
index 5611d19..221f782 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JdbcSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JdbcSpanDecorator.java
@@ -29,6 +29,11 @@ public class JdbcSpanDecorator extends AbstractSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.jdbc.JdbcComponent";
+ }
+
+ @Override
public void pre(Span span, Exchange exchange, Endpoint endpoint) {
super.pre(span, exchange, endpoint);
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JettySpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JettySpanDecorator.java
index 2bcc313..0f006de 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JettySpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JettySpanDecorator.java
@@ -23,4 +23,9 @@ public class JettySpanDecorator extends AbstractHttpSpanDecorator {
return "jetty";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.jetty9.JettyHttpComponent9";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JmsSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JmsSpanDecorator.java
index 85500fe..3360160 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JmsSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/JmsSpanDecorator.java
@@ -28,6 +28,11 @@ public class JmsSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.jms.JmsComponent";
+ }
+
+ @Override
protected String getMessageId(Exchange exchange) {
return (String)exchange.getIn().getHeader(JMS_MESSAGE_ID);
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/KafkaSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/KafkaSpanDecorator.java
index becdb5d..664f832 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/KafkaSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/KafkaSpanDecorator.java
@@ -44,6 +44,11 @@ public class KafkaSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.kafka.KafkaComponent";
+ }
+
+ @Override
public String getDestination(Exchange exchange, Endpoint endpoint) {
String topic = (String)exchange.getIn().getHeader(TOPIC);
if (topic == null) {
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/LogSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/LogSpanDecorator.java
index 628a1c4..d0489e4 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/LogSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/LogSpanDecorator.java
@@ -24,6 +24,11 @@ public class LogSpanDecorator extends AbstractSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.log.LogComponent";
+ }
+
+ @Override
public boolean newSpan() {
return false;
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/MongoDBSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/MongoDBSpanDecorator.java
index 20c15e5..6c1e9a2 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/MongoDBSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/MongoDBSpanDecorator.java
@@ -31,6 +31,11 @@ public class MongoDBSpanDecorator extends AbstractSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.mongodb.MongoDbComponent";
+ }
+
+ @Override
public String getOperationName(Exchange exchange, Endpoint endpoint) {
Map<String, String> queryParameters = toQueryParameters(endpoint.getEndpointUri());
String opName = queryParameters.get("operation");
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/NettyHttpSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/NettyHttpSpanDecorator.java
index 06d7533..909a01f 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/NettyHttpSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/NettyHttpSpanDecorator.java
@@ -23,4 +23,9 @@ public class NettyHttpSpanDecorator extends AbstractHttpSpanDecorator {
return "netty-http";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.netty.http.NettyHttpComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/PahoSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/PahoSpanDecorator.java
index 488b90a..5e9faa5 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/PahoSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/PahoSpanDecorator.java
@@ -23,4 +23,9 @@ public class PahoSpanDecorator extends AbstractMessagingSpanDecorator {
return "paho";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.paho.PahoComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RabbitmqSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RabbitmqSpanDecorator.java
index cf54582..1d47fb3 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RabbitmqSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RabbitmqSpanDecorator.java
@@ -32,6 +32,11 @@ public class RabbitmqSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.rabbitmq.RabbitMQComponent";
+ }
+
+ @Override
public String getDestination(Exchange exchange, Endpoint endpoint) {
return (String)exchange.getIn().getHeader(EXCHANGE_NAME);
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RestSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RestSpanDecorator.java
index b389555..3bd2ac2 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RestSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/RestSpanDecorator.java
@@ -38,6 +38,11 @@ public class RestSpanDecorator extends AbstractHttpSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.rest.RestComponent";
+ }
+
+ @Override
public String getOperationName(Exchange exchange, Endpoint endpoint) {
return getPath(endpoint.getEndpointUri());
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SedaSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SedaSpanDecorator.java
index 8a91e8f..57096ee 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SedaSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SedaSpanDecorator.java
@@ -23,4 +23,9 @@ public class SedaSpanDecorator extends AbstractInternalSpanDecorator {
return "seda";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.seda.SedaComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ServletSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ServletSpanDecorator.java
index 71f7a20..c0d03dd 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ServletSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/ServletSpanDecorator.java
@@ -23,4 +23,9 @@ public class ServletSpanDecorator extends AbstractHttpSpanDecorator {
return "servlet";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.servlet.ServletComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/LogSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/Sjms2SpanDecorator.java
similarity index 81%
copy from components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/LogSpanDecorator.java
copy to components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/Sjms2SpanDecorator.java
index 628a1c4..d3fde0f 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/LogSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/Sjms2SpanDecorator.java
@@ -16,16 +16,16 @@
*/
package org.apache.camel.opentracing.decorators;
-public class LogSpanDecorator extends AbstractSpanDecorator {
+public class Sjms2SpanDecorator extends AbstractMessagingSpanDecorator {
@Override
public String getComponent() {
- return "log";
+ return "sjms2";
}
@Override
- public boolean newSpan() {
- return false;
+ public String getComponentClassName() {
+ return "org.apache.camel.component.sjms2.Sjms2Component";
}
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SjmsSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SjmsSpanDecorator.java
index 551072d..074d941 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SjmsSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SjmsSpanDecorator.java
@@ -23,4 +23,9 @@ public class SjmsSpanDecorator extends AbstractMessagingSpanDecorator {
return "sjms";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.sjms.SjmsComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SqlSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SqlSpanDecorator.java
index 72c2b89..220ec4d 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SqlSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/SqlSpanDecorator.java
@@ -31,6 +31,11 @@ public class SqlSpanDecorator extends AbstractSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.sql.SqlComponent";
+ }
+
+ @Override
public void pre(Span span, Exchange exchange, Endpoint endpoint) {
super.pre(span, exchange, endpoint);
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/StompSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/StompSpanDecorator.java
index a3d7766..fcd2489 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/StompSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/StompSpanDecorator.java
@@ -29,6 +29,11 @@ public class StompSpanDecorator extends AbstractMessagingSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.stomp.StompComponent";
+ }
+
+ @Override
public String getDestination(Exchange exchange, Endpoint endpoint) {
String destination = super.getDestination(exchange, endpoint);
if (destination.startsWith(QUEUE_PREFIX)) {
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/TimerSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/TimerSpanDecorator.java
index da6fd69..3ba7c25 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/TimerSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/TimerSpanDecorator.java
@@ -27,6 +27,11 @@ public class TimerSpanDecorator extends AbstractSpanDecorator {
}
@Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.timer.TimerComponent";
+ }
+
+ @Override
public String getOperationName(Exchange exchange, Endpoint endpoint) {
Object name = exchange.getProperty(Exchange.TIMER_NAME);
if (name instanceof String) {
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/UndertowSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/UndertowSpanDecorator.java
index a465c0d..4ba59d2 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/UndertowSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/UndertowSpanDecorator.java
@@ -23,4 +23,9 @@ public class UndertowSpanDecorator extends AbstractHttpSpanDecorator {
return "undertow";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.undertow.UndertowComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/VmSpanDecorator.java b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/VmSpanDecorator.java
index 702e5a7..4d5c487 100644
--- a/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/VmSpanDecorator.java
+++ b/components/camel-opentracing/src/main/java/org/apache/camel/opentracing/decorators/VmSpanDecorator.java
@@ -23,4 +23,9 @@ public class VmSpanDecorator extends AbstractInternalSpanDecorator {
return "vm";
}
+ @Override
+ public String getComponentClassName() {
+ return "org.apache.camel.component.vm.VmComponent";
+ }
+
}
diff --git a/components/camel-opentracing/src/main/resources/META-INF/services/org.apache.camel.opentracing.SpanDecorator b/components/camel-opentracing/src/main/resources/META-INF/services/org.apache.camel.opentracing.SpanDecorator
index fc5873e..fa21cb4 100644
--- a/components/camel-opentracing/src/main/resources/META-INF/services/org.apache.camel.opentracing.SpanDecorator
+++ b/components/camel-opentracing/src/main/resources/META-INF/services/org.apache.camel.opentracing.SpanDecorator
@@ -28,6 +28,7 @@ org.apache.camel.opentracing.decorators.DisruptorSpanDecorator
org.apache.camel.opentracing.decorators.DisruptorvmSpanDecorator
org.apache.camel.opentracing.decorators.ElasticsearchSpanDecorator
org.apache.camel.opentracing.decorators.HttpSpanDecorator
+org.apache.camel.opentracing.decorators.HttpsSpanDecorator
org.apache.camel.opentracing.decorators.IronmqSpanDecorator
org.apache.camel.opentracing.decorators.JdbcSpanDecorator
org.apache.camel.opentracing.decorators.JettySpanDecorator
@@ -42,6 +43,7 @@ org.apache.camel.opentracing.decorators.RestSpanDecorator
org.apache.camel.opentracing.decorators.SedaSpanDecorator
org.apache.camel.opentracing.decorators.ServletSpanDecorator
org.apache.camel.opentracing.decorators.SjmsSpanDecorator
+org.apache.camel.opentracing.decorators.Sjms2SpanDecorator
org.apache.camel.opentracing.decorators.SqlSpanDecorator
org.apache.camel.opentracing.decorators.StompSpanDecorator
org.apache.camel.opentracing.decorators.TimerSpanDecorator
diff --git a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/CustomComponentNameRouteTest.java b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/CustomComponentNameRouteTest.java
new file mode 100644
index 0000000..c68929c
--- /dev/null
+++ b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/CustomComponentNameRouteTest.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.opentracing;
+
+import io.opentracing.tag.Tags;
+import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.junit.Test;
+
+public class CustomComponentNameRouteTest extends CamelOpenTracingTestSupport {
+
+ private static SpanTestData[] testdata = {
+ new SpanTestData().setLabel("myseda:b server").setUri("myseda://b").setOperation("b")
+ .setKind(Tags.SPAN_KIND_SERVER).setParentId(1).addLogMessage("routing at b"),
+ new SpanTestData().setLabel("myseda:b client").setUri("myseda://b").setOperation("b")
+ .setKind(Tags.SPAN_KIND_CLIENT).setParentId(4),
+ new SpanTestData().setLabel("myseda:c server").setUri("myseda://c").setOperation("c")
+ .setKind(Tags.SPAN_KIND_SERVER).setParentId(3).addLogMessage("Exchange[ExchangePattern: InOut, BodyType: String, Body: Hello]"),
+ new SpanTestData().setLabel("myseda:c client").setUri("myseda://c").setOperation("c")
+ .setKind(Tags.SPAN_KIND_CLIENT).setParentId(4),
+ new SpanTestData().setLabel("myseda:a server").setUri("myseda://a").setOperation("a")
+ .setKind(Tags.SPAN_KIND_SERVER).setParentId(5).addLogMessage("routing at a").addLogMessage("End of routing"),
+ new SpanTestData().setLabel("myseda:a client").setUri("myseda://a").setOperation("a")
+ .setKind(Tags.SPAN_KIND_CLIENT).setParentId(6),
+ new SpanTestData().setLabel("direct:start server").setUri("direct://start").setOperation("start")
+ .setKind(Tags.SPAN_KIND_SERVER).setParentId(7),
+ new SpanTestData().setLabel("direct:start client").setUri("direct://start").setOperation("start")
+ .setKind(Tags.SPAN_KIND_CLIENT)
+ };
+
+ public CustomComponentNameRouteTest() {
+ super(testdata);
+ }
+
+ @Test
+ public void testRoute() throws Exception {
+ template.requestBody("direct:start", "Hello");
+
+ verify();
+ }
+
+ @Override
+ protected RoutesBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ context.addComponent("myseda", context.getComponent("seda"));
+
+ from("direct:start").to("myseda:a").routeId("start");
+
+ from("myseda:a").routeId("a")
+ .log("routing at ${routeId}")
+ .to("myseda:b")
+ .delay(2000)
+ .to("myseda:c")
+ .log("End of routing");
+
+ from("myseda:b").routeId("b")
+ .log("routing at ${routeId}")
+ .delay(simple("${random(1000,2000)}"));
+
+ from("myseda:c").routeId("c")
+ .to("log:test")
+ .delay(simple("${random(0,100)}"));
+ }
+ };
+ }
+}
diff --git a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractHttpSpanDecoratorTest.java b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractHttpSpanDecoratorTest.java
index 1f0a41d..85ff71c 100644
--- a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractHttpSpanDecoratorTest.java
+++ b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractHttpSpanDecoratorTest.java
@@ -46,6 +46,11 @@ public class AbstractHttpSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
assertEquals("PUT", decorator.getOperationName(exchange, null));
@@ -132,6 +137,11 @@ public class AbstractHttpSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
MockTracer tracer = new MockTracer();
@@ -159,6 +169,11 @@ public class AbstractHttpSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
assertEquals(TEST_URI, decorator.getHttpURL(exchange, endpoint));
@@ -179,6 +194,11 @@ public class AbstractHttpSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
assertEquals(TEST_URI, decorator.getHttpURL(exchange, endpoint));
@@ -198,6 +218,11 @@ public class AbstractHttpSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
assertEquals(TEST_URI, decorator.getHttpURL(exchange, endpoint));
@@ -217,6 +242,11 @@ public class AbstractHttpSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
assertEquals(TEST_URI, decorator.getHttpURL(exchange, endpoint));
@@ -235,6 +265,11 @@ public class AbstractHttpSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
MockTracer tracer = new MockTracer();
diff --git a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractMessagingSpanDecoratorTest.java b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractMessagingSpanDecoratorTest.java
index 416eedb..90f1762 100644
--- a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractMessagingSpanDecoratorTest.java
+++ b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractMessagingSpanDecoratorTest.java
@@ -40,6 +40,11 @@ public class AbstractMessagingSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
assertEquals("MyQueue", decorator.getOperationName(null, endpoint));
@@ -56,6 +61,11 @@ public class AbstractMessagingSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
MockTracer tracer = new MockTracer();
@@ -79,6 +89,12 @@ public class AbstractMessagingSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
+
@Override
public String getMessageId(Exchange exchange) {
return messageId;
diff --git a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractSpanDecoratorTest.java b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractSpanDecoratorTest.java
index 7b0ad72..5a20ad6 100644
--- a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractSpanDecoratorTest.java
+++ b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/decorators/AbstractSpanDecoratorTest.java
@@ -42,6 +42,11 @@ public class AbstractSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
// Operation name is scheme, as no specific span decorator to
@@ -60,6 +65,11 @@ public class AbstractSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
MockTracer tracer = new MockTracer();
@@ -84,6 +94,11 @@ public class AbstractSpanDecoratorTest {
public String getComponent() {
return null;
}
+
+ @Override
+ public String getComponentClassName() {
+ return null;
+ }
};
MockTracer tracer = new MockTracer();