You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zipkin.apache.org by ab...@apache.org on 2019/01/31 11:19:29 UTC

[incubator-zipkin-brave-karaf] 07/46: Add unit test for kafka builder, support overrides

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

abesto pushed a commit to branch dont-sign-snapshots
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin-brave-karaf.git

commit 349f7eac23dfc356d272ac0c2d1fd692c0bb1dc5
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Wed Dec 14 13:52:20 2016 +0100

    Add unit test for kafka builder, support overrides
---
 brave-exporter-kafka08/pom.xml                     |  7 ++++
 .../osgi/exporter/kafka/KafkaReporterExporter.java | 25 +++++++++---
 .../exporter/kafka/KafkaReporterExporterTest.java  | 44 ++++++++++++++++++++++
 brave-exporter/pom.xml                             |  2 +
 pom.xml                                            |  5 +++
 5 files changed, 77 insertions(+), 6 deletions(-)

diff --git a/brave-exporter-kafka08/pom.xml b/brave-exporter-kafka08/pom.xml
index 8dc9b93..1ad63a1 100644
--- a/brave-exporter-kafka08/pom.xml
+++ b/brave-exporter-kafka08/pom.xml
@@ -34,11 +34,13 @@
 			<groupId>org.osgi</groupId>
 			<artifactId>osgi.core</artifactId>
 			<version>6.0.0</version>
+			<scope>provided</scope>
 		</dependency>
 		<dependency>
 			<groupId>org.osgi</groupId>
 			<artifactId>osgi.cmpn</artifactId>
 			<version>6.0.0</version>
+			<scope>provided</scope>
 		</dependency>
 		<dependency>
 			<groupId>io.zipkin.brave</groupId>
@@ -52,6 +54,11 @@
 			<groupId>io.zipkin.reporter</groupId>
 			<artifactId>zipkin-sender-kafka08</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-core</artifactId>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/brave-exporter-kafka08/src/main/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporter.java b/brave-exporter-kafka08/src/main/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporter.java
index 46dc6a4..4c48df2 100644
--- a/brave-exporter-kafka08/src/main/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporter.java
+++ b/brave-exporter-kafka08/src/main/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporter.java
@@ -40,6 +40,7 @@ import zipkin.reporter.kafka08.KafkaSender;
 @Designate(ocd = KafkaReporterExporter.Config.class)
 public class KafkaReporterExporter {
 
+    private static final String OVERRIDE_PREFIX = "kafka.";
     @SuppressWarnings("rawtypes")
     private ServiceRegistration<Reporter> reg;
     private AsyncReporter<Span> reporter;
@@ -50,22 +51,34 @@ public class KafkaReporterExporter {
         Encoding encoding() default Encoding.THRIFT;
         int messageMaxBytes() default 1000000;
         String topic() default "zipkin";
-        String overrides();
     }
 
     @Activate
     public void activate(Config config, BundleContext context, Map<String,String> properties) {
-        config.overrides();
-        Map<String, String> overrides = new HashMap<String, String>();
+        KafkaSender sender = createSender(config, properties);
+        reporter = AsyncReporter.builder(sender).build();
+        reg = context.registerService(Reporter.class, reporter, new Hashtable<String, String>(properties));
+    }
+
+    KafkaSender createSender(Config config, Map<String, String> properties) {
         KafkaSender sender = KafkaSender.builder() //
             .bootstrapServers(config.bootstrapServers()) //
             .encoding(config.encoding()) //
             .messageMaxBytes(config.messageMaxBytes()) //
-            .overrides(overrides) //
+            .overrides(getOverrides(properties)) //
             .topic(config.topic()) //
             .build();
-        reporter = AsyncReporter.builder(sender).build();
-        reg = context.registerService(Reporter.class, reporter, new Hashtable<String, String>(properties));
+        return sender;
+    }
+
+    private HashMap<String, String> getOverrides(Map<String, String> properties) {
+        HashMap<String, String> overrides = new HashMap<String, String>();
+        for (String key : properties.keySet()) {
+            if (key.startsWith(OVERRIDE_PREFIX)) {
+                overrides.put(key.substring(OVERRIDE_PREFIX.length() - 1), properties.get(key));
+            }
+        }
+        return overrides;
     }
     
     @Deactivate
diff --git a/brave-exporter-kafka08/src/test/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporterTest.java b/brave-exporter-kafka08/src/test/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporterTest.java
new file mode 100644
index 0000000..8b6b10e
--- /dev/null
+++ b/brave-exporter-kafka08/src/test/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporterTest.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2016 The OpenZipkin Authors
+ *
+ * Licensed 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 io.zipkin.brave.osgi.exporter.kafka;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import io.zipkin.brave.osgi.exporter.kafka.KafkaReporterExporter.Config;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import zipkin.reporter.Encoding;
+
+
+@Config(bootstrapServers = "server1", messageMaxBytes = 10, topic="mytopic")
+public class KafkaReporterExporterTest {
+
+    @Test
+    public void testConfig() {
+        KafkaReporterExporter exporter = new KafkaReporterExporter();
+        Map<String, String> properties = new HashMap<String, String>();
+        properties.put("kafka.myprop", "myvalue");
+        BundleContext context = mock(BundleContext.class);
+        Config config = mock(Config.class);
+        when(config.bootstrapServers()).thenReturn("server1");
+        when(config.encoding()).thenReturn(Encoding.THRIFT);
+        when(config.topic()).thenReturn("mytopic");
+        exporter.activate(config, context, properties);
+    }
+
+}
diff --git a/brave-exporter/pom.xml b/brave-exporter/pom.xml
index e1b38b5..dbc38ac 100644
--- a/brave-exporter/pom.xml
+++ b/brave-exporter/pom.xml
@@ -34,11 +34,13 @@
 			<groupId>org.osgi</groupId>
 			<artifactId>osgi.core</artifactId>
 			<version>6.0.0</version>
+			<scope>provided</scope>
 		</dependency>
 		<dependency>
 			<groupId>org.osgi</groupId>
 			<artifactId>osgi.cmpn</artifactId>
 			<version>6.0.0</version>
+			<scope>provided</scope>
 		</dependency>
 		<dependency>
 			<groupId>io.zipkin.brave</groupId>
diff --git a/pom.xml b/pom.xml
index ff559c9..8bf7248 100644
--- a/pom.xml
+++ b/pom.xml
@@ -131,6 +131,11 @@
 				<artifactId>awaitility</artifactId>
 				<version>2.0.0</version>
 			</dependency>
+			<dependency>
+				<groupId>org.mockito</groupId>
+				<artifactId>mockito-core</artifactId>
+				<version>2.3.0</version>
+			</dependency>
 		</dependencies>
 	</dependencyManagement>