This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 0b38b054636327f1ac6e5dcebefbe08877954e04
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Wed Dec 20 12:26:09 2017 +0800

    Updates to brave libraries that are OSGi friendly
    
    This moves to latest brave, which backports span v2 format to the old
    api. It also corrects some OSGi and packaging glitches.
    
    Fixes CAMEL-12088
---
 components/camel-zipkin/pom.xml                    | 17 +++++--
 .../camel/zipkin/ZipkinLegacyReporterAdapter.java  | 48 -------------------
 .../java/org/apache/camel/zipkin/ZipkinTracer.java | 55 ++++++++++------------
 parent/pom.xml                                     |  6 +--
 .../karaf/features/src/main/resources/features.xml |  5 +-
 5 files changed, 43 insertions(+), 88 deletions(-)

diff --git a/components/camel-zipkin/pom.xml b/components/camel-zipkin/pom.xml
index 1e77677..28b1f24 100644
--- a/components/camel-zipkin/pom.xml
+++ b/components/camel-zipkin/pom.xml
@@ -54,11 +54,6 @@
       <artifactId>brave-core</artifactId>
       <version>${brave-zipkin-version}</version>
     </dependency>
-    <dependency>
-      <groupId>io.zipkin.brave</groupId>
-      <artifactId>brave</artifactId>
-      <version>${brave-zipkin-version}</version>
-    </dependency>
     <!-- to send to zipkin server -->
     <dependency>
       <groupId>io.zipkin.reporter2</groupId>
@@ -107,6 +102,18 @@
           </environmentVariables>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
+            <Export-Package>org.apache.camel.zipkin*</Export-Package>
+            
<Import-Package>!com.github.kristofa.brave.internal,!zipkin2.internal,!zipkin.internal,*</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
 
diff --git 
a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinLegacyReporterAdapter.java
 
b/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinLegacyReporterAdapter.java
deleted file mode 100644
index c5ebcdb..0000000
--- 
a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinLegacyReporterAdapter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * 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.zipkin;
-
-import com.github.kristofa.brave.SpanCollector;
-import com.github.kristofa.brave.internal.DefaultSpanCodec;
-import com.twitter.zipkin.gen.Span;
-import zipkin.internal.V2SpanConverter;
-import zipkin2.reporter.Reporter;
-
-final class ZipkinLegacyReporterAdapter implements SpanCollector, 
Reporter<zipkin2.Span> {
-
-    final SpanCollector delegate;
-
-    ZipkinLegacyReporterAdapter(SpanCollector delegate) {
-        this.delegate = delegate;
-    }
-
-    @Override
-    public void report(zipkin2.Span span) {
-        collect(DefaultSpanCodec.fromZipkin(V2SpanConverter.toSpan(span)));
-    }
-
-    @Override
-    public void collect(Span span) {
-        delegate.collect(span);
-    }
-
-    @Deprecated
-    @Override
-    public void addDefaultAnnotation(String key, String value) {
-        delegate.addDefaultAnnotation(key, value);
-    }
-}
diff --git 
a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java
 
b/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java
index 7f507c9..4e238f4 100644
--- 
a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java
+++ 
b/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java
@@ -16,23 +16,19 @@
  */
 package org.apache.camel.zipkin;
 
-import java.io.Closeable;
-import java.util.EventObject;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import brave.Tracing;
-import brave.sampler.Sampler;
 import com.github.kristofa.brave.Brave;
 import com.github.kristofa.brave.ClientSpanThreadBinder;
 import com.github.kristofa.brave.ServerSpan;
 import com.github.kristofa.brave.ServerSpanThreadBinder;
 import com.github.kristofa.brave.SpanCollector;
-import com.github.kristofa.brave.TracerAdapter;
 import com.github.kristofa.brave.scribe.ScribeSpanCollector;
 import com.twitter.zipkin.gen.Span;
+import java.io.Closeable;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Endpoint;
@@ -232,7 +228,6 @@ public class ZipkinTracer extends ServiceSupport implements 
RoutePolicyFactory,
     /** @deprecated use {@link #setSpanReporter(Reporter)} */
     @Deprecated
     public void setSpanCollector(SpanCollector spanCollector) {
-        this.spanReporter = new ZipkinLegacyReporterAdapter(spanCollector);
         this.spanCollector = spanCollector;
     }
 
@@ -351,13 +346,12 @@ public class ZipkinTracer extends ServiceSupport 
implements RoutePolicyFactory,
 
         if (spanReporter == null) {
             if (spanCollector != null) { // possible via setter
-                spanReporter = new ZipkinLegacyReporterAdapter(spanCollector);
             } else if (endpoint != null) {
                 LOG.info("Configuring Zipkin URLConnectionSender using 
endpoint: {} ", endpoint);
                 spanReporter = 
AsyncReporter.create(URLConnectionSender.create(endpoint));
             } else if (hostName != null && port > 0) {
                 LOG.info("Configuring Zipkin ScribeSpanCollector using host: 
{} and port: {}", hostName, port);
-                spanReporter = new ZipkinLegacyReporterAdapter(new 
ScribeSpanCollector(hostName, port));
+                spanCollector = new ScribeSpanCollector(hostName, port);
             } else {
                 // is there a zipkin service setup as ENV variable to auto 
register a span reporter
                 String host = new 
ServiceHostPropertiesFunction().apply(ZIPKIN_COLLECTOR_HTTP_SERVICE);
@@ -373,13 +367,13 @@ public class ZipkinTracer extends ServiceSupport 
implements RoutePolicyFactory,
                     if (ObjectHelper.isNotEmpty(host) && 
ObjectHelper.isNotEmpty(port)) {
                         LOG.info("Auto-configuring Zipkin ScribeSpanCollector 
using host: {} and port: {}", host, port);
                         int num = 
camelContext.getTypeConverter().mandatoryConvertTo(Integer.class, port);
-                        spanReporter = new ZipkinLegacyReporterAdapter(new 
ScribeSpanCollector(host, num));
+                        spanCollector = new ScribeSpanCollector(host, num);
                     }
                 }
             }
         }
 
-        if (spanReporter == null) {
+        if (spanReporter == null && spanCollector == null) {
             // Try to lookup the span reporter from the registry if only one 
instance is present
             Set<Reporter> reporters = 
camelContext.getRegistry().findByType(Reporter.class);
             if (reporters.size() == 1) {
@@ -387,7 +381,9 @@ public class ZipkinTracer extends ServiceSupport implements 
RoutePolicyFactory,
             }
         }
 
-        ObjectHelper.notNull(spanReporter, "Reporter<zipkin2.Span>", this);
+        if (spanCollector == null) {
+            ObjectHelper.notNull(spanReporter, "Reporter<zipkin2.Span>", this);
+        }
 
         if (clientServiceMappings.isEmpty() && 
serverServiceMappings.isEmpty()) {
             LOG.warn("No service name(s) has been mapped in 
clientServiceMappings or serverServiceMappings. Camel will fallback and use 
endpoint uris as service names.");
@@ -526,29 +522,30 @@ public class ZipkinTracer extends ServiceSupport 
implements RoutePolicyFactory,
     private void createBraveForService(String pattern, String serviceName) {
         Brave brave = braves.get(pattern);
         if (brave == null && !braves.containsKey(serviceName)) {
-            Tracing.Builder builder = 
Tracing.newBuilder().localServiceName(serviceName);
-            builder = builder.sampler(Sampler.create(rate));
-            if (spanReporter != null) {
-                builder = builder.spanReporter(spanReporter);
-            }
-            brave = TracerAdapter.newBrave(builder.build().tracer());
+            brave = newBrave(serviceName);
             braves.put(serviceName, brave);
         }
     }
 
+    private Brave newBrave(String serviceName) {
+        Brave.Builder builder = new Brave.Builder(serviceName)
+            .traceSampler(com.github.kristofa.brave.Sampler.create(rate));
+        if (spanReporter != null) {
+            builder = builder.spanReporter(spanReporter);
+        } else if (spanCollector != null) {
+            builder.spanCollector(spanCollector);
+        }
+        return builder.build();
+    }
+
     private Brave getBrave(String serviceName) {
         Brave brave = null;
         if (serviceName != null) {
             brave = braves.get(serviceName);
 
             if (brave == null && useFallbackServiceNames) {
-                LOG.debug("Creating Tracing assigned to serviceName: {}", 
serviceName + " as fallback");
-                Tracing.Builder builder = 
Tracing.newBuilder().localServiceName(serviceName);
-                builder = builder.sampler(Sampler.create(rate));
-                if (spanReporter != null) {
-                    builder = builder.spanReporter(spanReporter);
-                }
-                brave = TracerAdapter.newBrave(builder.build().tracer());
+                LOG.debug("Creating Brave assigned to serviceName: {}", 
serviceName + " as fallback");
+                brave = newBrave(serviceName);
                 braves.put(serviceName, brave);
             }
         }
diff --git a/parent/pom.xml b/parent/pom.xml
index eb93453..c71dd41 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -98,7 +98,7 @@
     <boxjavalibv2.version>3.2.1</boxjavalibv2.version>
     <box-java-sdk-version>2.8.2</box-java-sdk-version>
     <braintree-gateway-version>2.63.0</braintree-gateway-version>
-    <brave-zipkin-version>4.12.0</brave-zipkin-version>
+    <brave-zipkin-version>4.13.1</brave-zipkin-version>
     <build-helper-maven-plugin-version>1.10</build-helper-maven-plugin-version>
     <c3p0-version>0.9.5.2</c3p0-version>
     <c3p0-bundle-version>0.9.5.2_1</c3p0-bundle-version>
@@ -742,8 +742,8 @@
     <yammer-metrics-version>2.2.0</yammer-metrics-version>
     <zendesk-client-version>0.5.4</zendesk-client-version>
     <zipkin-libthrift-version>0.9.3</zipkin-libthrift-version>
-    <zipkin-reporter-version>2.2.1</zipkin-reporter-version>
-    <zipkin-version>2.4.1</zipkin-version>
+    <zipkin-reporter-version>2.2.2</zipkin-reporter-version>
+    <zipkin-version>2.4.2</zipkin-version>
     <zjsonpatch-version>0.3.0</zjsonpatch-version>
     <zookeeper-version>3.4.10</zookeeper-version>
     <zookeeper-guava-version>16.0</zookeeper-guava-version>
diff --git a/platforms/karaf/features/src/main/resources/features.xml 
b/platforms/karaf/features/src/main/resources/features.xml
index 8f78ec5..9d0352a 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -2412,14 +2412,13 @@
     <feature version='${project.version}'>camel-core</feature>
     <bundle>mvn:org.apache.camel/camel-zipfile/${project.version}</bundle>
   </feature>
-  <!-- TODO: camel-zipkin does not work in OSGi: CAMEL-12088 -->
   <feature name='camel-zipkin' version='${project.version}' resolver='(obr)' 
start-level='50'>
-    <details>camel-zipkin does not work in OSGi, see more at 
CAMEL-12088</details>
     <feature version='${project.version}'>camel-core</feature>
-    <bundle 
dependency='true'>mvn:io.zipkin.brave/brave/${brave-zipkin-version}</bundle>
     <bundle 
dependency='true'>mvn:io.zipkin.brave/brave-core/${brave-zipkin-version}</bundle>
     <bundle 
dependency='true'>mvn:io.zipkin.brave/brave-spancollector-scribe/${brave-zipkin-version}</bundle>
+    <!-- io.zipkin.brave/brave-core depends on both versions of zipkin, 
io.zipkin.brave/brave does not -->
     <bundle 
dependency='true'>mvn:io.zipkin.java/zipkin/${zipkin-version}</bundle>
+    <bundle 
dependency='true'>mvn:io.zipkin.zipkin2/zipkin/${zipkin-version}</bundle>
     <bundle 
dependency='true'>mvn:io.zipkin.reporter2/zipkin-reporter/${zipkin-reporter-version}</bundle>
     <bundle 
dependency='true'>mvn:io.zipkin.reporter2/zipkin-sender-urlconnection/${zipkin-reporter-version}</bundle>
     <bundle 
dependency='true'>mvn:org.apache.thrift/libthrift/${zipkin-libthrift-version}</bundle>

-- 
To stop receiving notification emails like this one, please contact
"commits@camel.apache.org" <commits@camel.apache.org>.

Reply via email to