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 2020/03/29 08:41:03 UTC
[camel] branch master updated: CAMEL-14805: Use doInit for
iniitalizing. Fixed tests
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 021b1c7 CAMEL-14805: Use doInit for iniitalizing. Fixed tests
021b1c7 is described below
commit 021b1c70ba218c4b004840dfa46b582c2e32aa91
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Mar 29 10:40:43 2020 +0200
CAMEL-14805: Use doInit for iniitalizing. Fixed tests
---
.../camel-aws-xray/src/main/docs/aws-xray.adoc | 2 +-
.../camel/component/aws/xray/XRayTracer.java | 71 ++++++++++++++--------
2 files changed, 47 insertions(+), 26 deletions(-)
diff --git a/components/camel-aws-xray/src/main/docs/aws-xray.adoc b/components/camel-aws-xray/src/main/docs/aws-xray.adoc
index a434322..6e8c5ea 100644
--- a/components/camel-aws-xray/src/main/docs/aws-xray.adoc
+++ b/components/camel-aws-xray/src/main/docs/aws-xray.adoc
@@ -20,7 +20,7 @@ To include both, AWS XRay and Camel, dependencies use the following Maven import
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-bom</artifactId>
- <version>1.3.1</version>
+ <version>2.4.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
diff --git a/components/camel-aws-xray/src/main/java/org/apache/camel/component/aws/xray/XRayTracer.java b/components/camel-aws-xray/src/main/java/org/apache/camel/component/aws/xray/XRayTracer.java
index 541dda9..e96b4ec 100644
--- a/components/camel-aws-xray/src/main/java/org/apache/camel/component/aws/xray/XRayTracer.java
+++ b/components/camel-aws-xray/src/main/java/org/apache/camel/component/aws/xray/XRayTracer.java
@@ -23,6 +23,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.ServiceLoader;
import java.util.Set;
+import java.util.regex.Pattern;
import com.amazonaws.xray.AWSXRay;
import com.amazonaws.xray.entities.Entity;
@@ -79,6 +80,8 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
private static final Logger LOG = LoggerFactory.getLogger(XRayTracer.class);
+ private static final Pattern SANITIZE_NAME_PATTERN = Pattern.compile("[^\\w.:/%&#=+\\-@]");
+
private static Map<String, SegmentDecorator> decorators = new HashMap<>();
/** Exchange property for passing a segment between threads **/
@@ -120,7 +123,7 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
}
@Override
- protected void doStart() throws Exception {
+ protected void doInit() throws Exception {
ObjectHelper.notNull(camelContext, "CamelContext", this);
camelContext.getManagementStrategy().addEventNotifier(eventNotifier);
@@ -135,17 +138,17 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
camelContext.adapt(ExtendedCamelContext.class).addInterceptStrategy(tracingStrategy);
- LOG.debug("Starting XRay tracer");
+ LOG.debug("Initialized XRay tracer");
}
@Override
- protected void doStop() throws Exception {
+ protected void doShutdown() throws Exception {
// stop event notifier
camelContext.getManagementStrategy().removeEventNotifier(eventNotifier);
ServiceHelper.stopAndShutdownService(eventNotifier);
camelContext.getRoutePolicyFactories().remove(this);
- LOG.debug("XRay tracer stopped");
+ LOG.debug("XRay tracer shutdown");
}
/**
@@ -267,9 +270,11 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
if (event instanceof ExchangeSendingEvent) {
ExchangeSendingEvent ese = (ExchangeSendingEvent) event;
- LOG.trace("-> {} - target: {} (routeId: {})",
- event.getClass().getSimpleName(), ese.getEndpoint(),
- ese.getExchange().getFromRouteId());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("-> {} - target: {} (routeId: {})",
+ event.getClass().getSimpleName(), ese.getEndpoint(),
+ ese.getExchange().getFromRouteId());
+ }
SegmentDecorator sd = getSegmentDecorator(ese.getEndpoint());
if (!sd.newSegment()) {
@@ -289,9 +294,11 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
try {
Subsegment subsegment = AWSXRay.beginSubsegment(name);
sd.pre(subsegment, ese.getExchange(), ese.getEndpoint());
- LOG.trace("Creating new subsegment with ID {} and name {} (parent {}, references: {})",
- subsegment.getId(), subsegment.getName(),
- subsegment.getParentSegment().getId(), subsegment.getParentSegment().getReferenceCount());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Creating new subsegment with ID {} and name {} (parent {}, references: {})",
+ subsegment.getId(), subsegment.getName(),
+ subsegment.getParentSegment().getId(), subsegment.getParentSegment().getReferenceCount());
+ }
ese.getExchange().setProperty(CURRENT_SEGMENT, subsegment);
} catch (AlreadyEmittedException aeEx) {
LOG.warn("Ignoring starting of subsegment " + name + " as its parent segment"
@@ -303,8 +310,10 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
} else if (event instanceof ExchangeSentEvent) {
ExchangeSentEvent ese = (ExchangeSentEvent) event;
- LOG.trace("-> {} - target: {} (routeId: {})",
- event.getClass().getSimpleName(), ese.getEndpoint(), ese.getExchange().getFromRouteId());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("-> {} - target: {} (routeId: {})",
+ event.getClass().getSimpleName(), ese.getEndpoint(), ese.getExchange().getFromRouteId());
+ }
Entity entity = getTraceEntityFromExchange(ese.getExchange());
if (entity instanceof Subsegment) {
@@ -314,9 +323,11 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
Subsegment subsegment = (Subsegment) entity;
sd.post(subsegment, ese.getExchange(), ese.getEndpoint());
subsegment.close();
- LOG.trace("Closing down subsegment with ID {} and name {}",
- subsegment.getId(), subsegment.getName());
- LOG.trace("Setting trace entity for exchange {} to {}", ese.getExchange(), subsegment.getParent());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Closing down subsegment with ID {} and name {}",
+ subsegment.getId(), subsegment.getName());
+ LOG.trace("Setting trace entity for exchange {} to {}", ese.getExchange(), subsegment.getParent());
+ }
ese.getExchange().setProperty(CURRENT_SEGMENT, subsegment.getParent());
} catch (AlreadyEmittedException aeEx) {
LOG.warn("Ignoring close of subsegment " + entity.getName()
@@ -371,7 +382,9 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
return;
}
- LOG.trace("=> RoutePolicy-Begin: Route: {} - RouteId: {}", routeId, route.getId());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("=> RoutePolicy-Begin: Route: {} - RouteId: {}", routeId, route.getId());
+ }
Entity entity = getTraceEntityFromExchange(exchange);
boolean createSegment = entity == null || !Objects.equals(entity.getName(), routeId);
@@ -392,16 +405,20 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
segment.setParent(entity);
segment.setTraceId(traceID);
sd.pre(segment, exchange, route.getEndpoint());
- LOG.trace("Created new XRay segment {} with name {}", segment.getId(), segment.getName());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Created new XRay segment {} with name {}", segment.getId(), segment.getName());
+ }
exchange.setProperty(CURRENT_SEGMENT, segment);
} else {
String segmentName = entity.getId();
try {
Subsegment subsegment = AWSXRay.beginSubsegment(route.getId());
sd.pre(subsegment, exchange, route.getEndpoint());
- LOG.trace("Creating new subsegment with ID {} and name {} (parent {}, references: {})",
- subsegment.getId(), subsegment.getName(),
- subsegment.getParentSegment().getId(), subsegment.getParentSegment().getReferenceCount());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Creating new subsegment with ID {} and name {} (parent {}, references: {})",
+ subsegment.getId(), subsegment.getName(),
+ subsegment.getParentSegment().getId(), subsegment.getParentSegment().getReferenceCount());
+ }
exchange.setProperty(CURRENT_SEGMENT, subsegment);
} catch (AlreadyEmittedException aeEx) {
LOG.warn("Ignoring opening of subsegment " + route.getId() + " as its parent segment "
@@ -417,7 +434,9 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
return;
}
- LOG.trace("=> RoutePolicy-Done: Route: {} - RouteId: {}", routeId, route.getId());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("=> RoutePolicy-Done: Route: {} - RouteId: {}", routeId, route.getId());
+ }
Entity entity = getTraceEntityFromExchange(exchange);
AWSXRay.setTraceEntity(entity);
@@ -425,9 +444,11 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
SegmentDecorator sd = getSegmentDecorator(route.getEndpoint());
sd.post(entity, exchange, route.getEndpoint());
entity.close();
- LOG.trace("Closing down (sub)segment {} with name {} (parent {}, references: {})",
- entity.getId(), entity.getName(),
- entity.getParentSegment().getId(), entity.getParentSegment().getReferenceCount());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Closing down (sub)segment {} with name {} (parent {}, references: {})",
+ entity.getId(), entity.getName(),
+ entity.getParentSegment().getId(), entity.getParentSegment().getReferenceCount());
+ }
exchange.setProperty(CURRENT_SEGMENT, entity.getParent());
} catch (AlreadyEmittedException aeEx) {
LOG.warn("Ignoring closing of (sub)segment {} as the segment was already emitted.", route.getId());
@@ -454,6 +475,6 @@ public class XRayTracer extends ServiceSupport implements RoutePolicyFactory, St
public static String sanitizeName(String name) {
// Allowed characters: a-z, A-Z, 0-9, _, ., :, /, %, &, #, =, +, \, -, @
// \w = a-zA-Z0-9_
- return name.replaceAll("[^\\w.:/%&#=+\\-@]", "_");
+ return SANITIZE_NAME_PATTERN.matcher(name).replaceAll("_");
}
}