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:22 UTC

[incubator-zipkin-brave-karaf] branch dont-sign-snapshots created (now 9dacc4b)

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

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


      at 9dacc4b  [jenkins] Don't try to sign snapshot builds

This branch includes the following new commits:

     new 13c2949  Initial commit
     new 48ae3d8  Added parent
     new af6ca7a  First version of features and test
     new 49ea3de  Fixing feature uri and logging
     new 4d87ae1  Add exporter for Brave and Reporter service (#1)
     new 03b5790  Add kafka exporter and improve itest
     new 349f7ea  Add unit test for kafka builder, support overrides
     new ecafa23  Update to brave 4.1.0
     new d91fe96  Update to brave 4.4.1-SNAPSHOT
     new abe37ee  Adding okhttp3 reporter and tracer
     new b32f77f  Merge pull request #3 from kameshsampath/issue-2
     new e299dc6  Adding release files
     new 69c2263  Updated maven wrapper
     new b79823a  build-support
     new 9999cfb  Adding maven-wrapper
     new f745840  Updated to brave 4.5.0
     new e932bd7  Exclude license checks in build-support
     new 9ff54a9  Also install top make jars available for pax exam
     new aba2143  Add settings
     new d1a9ad5  Exclude settings in license check
     new 0a0933f  Fixed name
     new 2f89c73  Fix maven commands
     new da4cc9b  Migrates to CircleCI 2.0 (#6)
     new a9f4e85  Revamps project to recent version of Brave and refactors senders
     new 6c0685a  spaces not tabs
     new ead68b7  Fix type and update to karaf 4.2.0
     new 43ae7e4  Fix component setup to be compatible to OSGi R6
     new 0eb1b7a  Fix feature and test
     new 18f6b2c  Merge pull request #5 from openzipkin/revamp
     new cefbdb2  [circleci] Run `build` step for publishing
     new 709bf19  [circleci] `trigger_publish` doesn't depend on `build`
     new d5ae1e2  version bumps
     new 187152c  [maven-release-plugin] prepare release 0.1.1
     new 695ab2b  [maven-release-plugin] prepare for next development iteration
     new 8d3d416  Uses implicit versions in itests (#8)
     new a32fc5d  Updates build and deps to work with JDK 11 (#9)
     new 7cce24d  Enables Apache RAT plugin for verifying dependency licenses (#10)
     new 0cd1637  [circleci] Update publish fork check to `apache`
     new a0e5739  Switches to ASF license header (#11)
     new 9b18b45  Uses ASF parent and moves to ASF group IDs (#12)
     new 6558b93  Create Jenkinsfile (#13)
     new 21495d3  Jenkinsfile tweaks (#15)
     new cbd41f8  Switches build to Apache repositories (#16)
     new cf4f23f  Uses newer build parent
     new cb45f09  fixes repository drift
     new 9dacc4b  [jenkins] Don't try to sign snapshot builds

The 46 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-zipkin-brave-karaf] 44/46: Uses newer build parent

Posted by ab...@apache.org.
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 cf4f23f533dc07b8b402ad6d3d6d30953c9a1a5a
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Thu Jan 31 12:03:28 2019 +0100

    Uses newer build parent
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 4c1ebe8..f9e7840 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
-    <version>10</version>
+    <version>21</version>
   </parent>
 
   <groupId>org.apache.zipkin.brave.karaf</groupId>


[incubator-zipkin-brave-karaf] 28/46: Fix feature and test

Posted by ab...@apache.org.
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 0eb1b7a153086698595cface19429d2903fd4343
Author: Christian Schneider <cs...@adobe.com>
AuthorDate: Wed Aug 1 14:44:51 2018 +0200

    Fix feature and test
---
 features/src/main/resources/features.xml           |  7 +--
 .../java/io/zipkin/brave/itests/BraveTest.java     | 55 ++++++++++++++--------
 2 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
index b8a827a..440a43a 100644
--- a/features/src/main/resources/features.xml
+++ b/features/src/main/resources/features.xml
@@ -31,14 +31,15 @@
 	<feature name="brave-sender-kafka">
 		<feature>brave</feature>
 		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/1.1.0_1</bundle>
-		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-kafka11/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-kafka11/${zipkin-reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-kafka/${project.version}</bundle>
 	</feature>
 
-	<feature name="brave-sender-okhttp`">
+	<feature name="brave-sender-okhttp">
 		<feature>brave</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/1.14.0_1</bundle>
 		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.10.0_2</bundle>
-		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-okhttp3/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-okhttp3/${zipkin-reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
 	</feature>
 </features>
diff --git a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index 6552801..7b3f15c 100644
--- a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -13,8 +13,18 @@
  */
 package io.zipkin.brave.itests;
 
+import static org.ops4j.pax.exam.CoreOptions.maven;
+import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
+
 import java.util.Collection;
+
 import javax.inject.Inject;
+
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -27,17 +37,9 @@ import org.ops4j.pax.exam.options.MavenUrlReference;
 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
-import zipkin2.reporter.Sender;
 
-import static org.ops4j.pax.exam.CoreOptions.maven;
-import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
+import zipkin2.reporter.Sender;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
@@ -46,6 +48,7 @@ public class BraveTest {
   private static final String FILTER_OKHTTP = "(component.name=io.zipkin.sender.okhttp)";
   private static final String FILTER_URLCONNECTION =
       "(component.name=io.zipkin.sender.urlconnection)";
+  private static final long TIMEOUT = 10000;
 
   @Inject
   BundleContext context;
@@ -53,7 +56,7 @@ public class BraveTest {
   @Configuration
   public static Option[] configuration() {
     MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
-        .type("zip").version("4.2.0");
+        .type("zip").version("4.1.5");
     MavenUrlReference brave =
         maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
             .classifier("features").version("0.1.0-SNAPSHOT");
@@ -62,7 +65,7 @@ public class BraveTest {
         configureConsole().ignoreLocalConsole(),
         logLevel(LogLevel.INFO),
         keepRuntimeFolder(),
-        features(brave, "brave", "brave-kafka", "brave-okhttp"),
+        features(brave, "brave", "brave-sender-kafka", "brave-sender-okhttp"),
         // Create an empty config to trigger creation of component
         newConfiguration("io.zipkin.sender.urlconnection").asOption(),
         newConfiguration("io.zipkin.sender.okhttp").asOption(),
@@ -71,27 +74,39 @@ public class BraveTest {
   }
 
   @Test
-  public void checkSenderUrlConnection() throws InvalidSyntaxException {
+  public void checkSenderUrlConnection() {
     ServiceReference<Sender> ref = getSingleSender(FILTER_URLCONNECTION);
     Assert.assertEquals(10000, ref.getProperty("connectTimeout"));
   }
 
   @Test
-  public void checkSenderKafka() throws InvalidSyntaxException {
+  public void checkSenderKafka() {
     ServiceReference<Sender> ref = getSingleSender(FILTER_KAFKA);
     Assert.assertEquals("zipkin", ref.getProperty("topic"));
   }
 
   @Test
-  public void checkSenderOkHttp() throws InvalidSyntaxException {
+  public void checkSenderOkHttp() {
     ServiceReference<Sender> ref = getSingleSender(FILTER_OKHTTP);
-    Assert.assertEquals("zipkin", ref.getProperty("topic"));
+    Assert.assertEquals("http://localhost:9411/api/v2/spans", ref.getProperty("endpoint"));
   }
 
-  @SuppressWarnings("rawtypes")
-  private ServiceReference<Sender> getSingleSender(String filter) throws InvalidSyntaxException {
-    Collection<ServiceReference<Sender>> refs = context.getServiceReferences(Sender.class, filter);
-    Assert.assertEquals(1, refs.size());
-    return refs.iterator().next();
+  private ServiceReference<Sender> getSingleSender(String filter) {
+	  long startTime = System.currentTimeMillis();
+	  while (System.currentTimeMillis() - startTime < TIMEOUT) {
+		  try {
+			  Collection<ServiceReference<Sender>> allRefs = context.getServiceReferences(Sender.class, null);
+			  System.out.println(allRefs);
+			  Collection<ServiceReference<Sender>> refs = context.getServiceReferences(Sender.class, filter);
+			  if (refs.size() >= 1) {
+				  Assert.assertEquals(1, refs.size());
+				  return refs.iterator().next();
+			  }
+			  Thread.sleep(100);
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	  }
+	  throw new RuntimeException("Timeout finding service");
   }
 }


[incubator-zipkin-brave-karaf] 22/46: Fix maven commands

Posted by ab...@apache.org.
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 2f89c734058e741175a9f108442ab38449cc8d3a
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 14:45:35 2017 +0200

    Fix maven commands
---
 build-support/publish-snapshot.sh | 2 +-
 build-support/publish-stable.sh   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/build-support/publish-snapshot.sh b/build-support/publish-snapshot.sh
index 169b870..ee42e0b 100755
--- a/build-support/publish-snapshot.sh
+++ b/build-support/publish-snapshot.sh
@@ -17,7 +17,7 @@ set -euo pipefail
 set -x
 
 if ./mvnw help:evaluate -N -Dexpression=project.version | grep -v '\['  | grep -q SNAPSHOT; then
-    ./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests -pl deploy
+    ./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests deploy
 else
     echo "Not building release versions, those are built by the tag builder using the publish-stable.sh script"
 fi
diff --git a/build-support/publish-stable.sh b/build-support/publish-stable.sh
index e5724e3..0dc7479 100755
--- a/build-support/publish-stable.sh
+++ b/build-support/publish-stable.sh
@@ -17,5 +17,5 @@ set -euo pipefail
 set -x
 
 ./mvnw -DskipTests install -nsu
-./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests -pl deploy
+./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests deploy
 ./mvnw --batch-mode -s ./.settings.xml -nsu -N io.zipkin.centralsync-maven-plugin:centralsync-maven-plugin:sync


[incubator-zipkin-brave-karaf] 43/46: Switches build to Apache repositories (#16)

Posted by ab...@apache.org.
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 cbd41f8a5c345e15526391c9c8eb60c312f089c5
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Thu Jan 31 11:56:03 2019 +0100

    Switches build to Apache repositories (#16)
---
 .circleci/config.yml                              | 143 ----------------------
 .settings.xml                                     |  47 -------
 DISCLAIMER                                        |   5 +
 Jenkinsfile                                       |   5 +-
 RELEASE.md                                        |  41 -------
 build-support/go-offline.sh                       |  37 ------
 build-support/pom-no-crossmodule-dependencies.xsl |  29 -----
 build-support/publish-snapshot.sh                 |  26 ----
 build-support/publish-stable.sh                   |  24 ----
 build-support/trigger-publish.sh                  |  41 -------
 pom.xml                                           |  59 ++++-----
 11 files changed, 33 insertions(+), 424 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index f0befa3..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,143 +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.
-#
-
-version: 2
-jobs:
-  build:
-    docker:
-      - image: circleci/openjdk:11-jdk
-
-    steps:
-      - checkout
-
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-
-      - run:
-          name: Download dependencies
-          command: |
-            sudo apt-get install xsltproc
-            ./build-support/go-offline.sh
-      - save_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-          paths:
-            - ~/.m2
-
-      - run:
-          name: Tests
-          # use install, as opposed to verify, to ensure invoker tests use latest code
-          command: ./mvnw clean install
-
-      - run:
-          name: Collect test reports
-          command: |
-            mkdir -p /tmp/test-reports/unit-tests/
-            find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} /tmp/test-reports/unit-tests/ \;
-
-      - store_test_results:
-          path: /tmp/test-reports/
-
-  publish_snapshot:
-    docker:
-      - image: circleci/openjdk:11-jdk
-    steps:
-      - checkout
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-      - run:
-          name: Publish snapshot
-          command: |
-            # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "apache" ] || exit 0
-            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
-            ./build-support/publish-snapshot.sh
-
-  publish_stable:
-    docker:
-      - image: circleci/openjdk:11-jdk
-    steps:
-      - checkout
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-      - run:
-          name: Publish stable version
-          # triples the timeout to 30 minutes as maven central sync takes a lot longer than 10m
-          no_output_timeout: 30m
-          command: |
-            # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "apache" ] || exit 0
-            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
-            ./build-support/publish-stable.sh
-
-  trigger_publish:
-    docker:
-      - image: circleci/openjdk:11-jdk
-    steps:
-      - checkout
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-      - run:
-          name: Configure Git for release
-          command: |
-            # parameters used during release
-            # allocate commits to CI, not the owner of the deploy key
-            git config user.name "zipkinci"
-            git config user.email "zipkinci+zipkin-dev@googlegroups.com"
-            # setup https authentication credentials, used by ./mvnw release:prepare
-            git config credential.helper "store --file=.git/credentials"
-            echo "https://$GH_TOKEN:@github.com" > .git/credentials
-      - run:
-          name: Trigger publish
-          command: |
-            # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
-            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
-            ./build-support/trigger-publish.sh
-
-
-workflows:
-  version: 2
-  build_and_publish:
-    jobs:
-      - build:
-          filters:
-           tags:
-              only: /\d+\.\d+\.\d+/
-      - publish_snapshot:
-          requires:
-            - build
-          filters:
-            branches:
-              only: master
-      - publish_stable:
-          requires:
-            - build
-          filters:
-            branches:
-              ignore: /.*/
-            tags:
-              only: /\d+\.\d+\.\d+/
-      - trigger_publish:
-          filters:
-            branches:
-              ignore: /.*/
-            tags:
-              only: /release-\d+\.\d+\.\d+/
-
-notify:
-  webhooks:
-    - url: https://webhooks.gitter.im/e/22adbb9973299092e6ae
diff --git a/.settings.xml b/.settings.xml
deleted file mode 100644
index 4238612..0000000
--- a/.settings.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
-      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
-                          http://maven.apache.org/xsd/settings-1.0.0.xsd">
-  <servers>
-    <server>
-      <id>sonatype</id>
-      <username>${env.SONATYPE_USER}</username>
-      <password>${env.SONATYPE_PASSWORD}</password>
-    </server>
-    <server>
-      <id>bintray</id>
-      <username>${env.BINTRAY_USER}</username>
-      <password>${env.BINTRAY_KEY}</password>
-    </server>
-    <server>
-      <id>jfrog-snapshots</id>
-      <username>${env.BINTRAY_USER}</username>
-      <password>${env.BINTRAY_KEY}</password>
-    </server>
-    <server>
-      <id>github.com</id>
-      <username>${env.GH_USER}</username>
-      <password>${env.GH_TOKEN}</password>
-    </server>
-  </servers>
-</settings>
-
diff --git a/DISCLAIMER b/DISCLAIMER
new file mode 100644
index 0000000..f73ab06
--- /dev/null
+++ b/DISCLAIMER
@@ -0,0 +1,5 @@
+Apache Zipkin (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.
+Incubation is required of all newly accepted projects until a further review indicates 
+that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. 
+While incubation status is not necessarily a reflection of the completeness or stability of the code, 
+it does indicate that the project has yet to be fully endorsed by the ASF.
diff --git a/Jenkinsfile b/Jenkinsfile
index e21450b..99e7438 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -57,17 +57,14 @@ pipeline {
             }
         }
 
-        /*
-        TODO uncomment and finish up the command here once we're ready to release snapshots
         stage('Publish snapshot') {
             when {
                 branch 'master'
             }
             steps {
-                sh './mvnw $TODO'
+                sh './mvnw clean deploy -Papache-release'
             }
         }
-         */
     }
 
     post {
diff --git a/RELEASE.md b/RELEASE.md
deleted file mode 100644
index bdb1b4c..0000000
--- a/RELEASE.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Zipkin AWS Release Process
-
-This repo uses semantic versions. Please keep this in mind when choosing version numbers.
-
-1. **Alert others you are releasing**
-
-   There should be no commits made to master while the release is in progress (about 10 minutes). Before you start
-   a release, alert others on [gitter](https://gitter.im/openzipkin/zipkin) so that they don't accidentally merge
-   anything. If they do, and the build fails because of that, you'll have to recreate the release tag described below.
-
-1. **Push a git tag**
-
-   The tag should be of the format `release-N.M.L`, for example `release-3.7.1`.
-
-1. **Wait for CircleCI**
-
-   This part is controlled by [`build-support/publish-stable.sh`](build-support/publish-stable.sh). It creates a bunch of new commits, bumps
-   the version, publishes artifacts, and syncs to Maven Central. https://circleci.com/gh/openzipkin/brave
-
-## Credentials
-
-Credentials of various kind are needed for the release process to work. If you notice something
-failing due to unauthorized, re-save them as [environment variables](https://circleci.com/gh/openzipkin/brave/edit#env-vars).
-
-## First release of the year
-
-The license plugin verifies license headers of files include a copyright notice indicating the years a file was affected.
-This information is taken from git history. There's a once-a-year problem with files that include version numbers (pom.xml).
-When a release tag is made, it increments version numbers, then commits them to git. On the first release of the year,
-further commands will fail due to the version increments invalidating the copyright statement. The way to sort this out is
-the following:
-
-Before you do the first release of the year, move the SNAPSHOT version back and forth from whatever the current is.
-In-between, re-apply the licenses.
-```bash
-$ ./mvnw versions:set -DnewVersion=1.3.3-SNAPSHOT -DgenerateBackupPoms=false
-$ ./mvnw com.mycila:license-maven-plugin:format
-$ ./mvnw versions:set -DnewVersion=1.3.2-SNAPSHOT -DgenerateBackupPoms=false
-$ git commit -am"Adjusts copyright headers for this year"
-```
-
diff --git a/build-support/go-offline.sh b/build-support/go-offline.sh
deleted file mode 100755
index 745320f..0000000
--- a/build-support/go-offline.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-#
-# 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.
-#
-
-# Due to https://issues.apache.org/jira/browse/MDEP-323 and cross-module dependencies,
-# we can't easily run mvn dependency:go-offline. This is a workaround for that.
-# It removes all dependencies on io.zipkin.java and ${project.groupId} using XSLT,
-# then runs go-offline on the resulting POMs.
-
-set -xeuo pipefail
-
-rm -rf go-offline-builddir
-mkdir -p go-offline-builddir
-trap "rm -rf $(pwd)/go-offline-builddir" EXIT
-
-for f in $(find . -name 'pom.xml'); do
-    echo $f
-    mkdir -p $(dirname go-offline-builddir/$f)
-    xsltproc ./build-support/pom-no-crossmodule-dependencies.xsl $f > go-offline-builddir/$f
-done
-
-cd go-offline-builddir
-../mvnw dependency:go-offline
diff --git a/build-support/pom-no-crossmodule-dependencies.xsl b/build-support/pom-no-crossmodule-dependencies.xsl
deleted file mode 100644
index bb7a4b3..0000000
--- a/build-support/pom-no-crossmodule-dependencies.xsl
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pom="http://maven.apache.org/POM/4.0.0">
-  <xsl:template match="@*|node()">
-    <xsl:copy>
-      <xsl:apply-templates select="@*|node()"/>
-    </xsl:copy>
-  </xsl:template>
-
-  <xsl:template match="pom:dependency[pom:groupId = 'org.apache.zipkin.brave.karaf']" />
-  <xsl:template match="pom:dependency[pom:groupId = '${project.groupId}']" />
-</xsl:stylesheet>
diff --git a/build-support/publish-snapshot.sh b/build-support/publish-snapshot.sh
deleted file mode 100755
index 6038bb2..0000000
--- a/build-support/publish-snapshot.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -euo pipefail
-set -x
-
-if ./mvnw help:evaluate -N -Dexpression=project.version | grep -v '\['  | grep -q SNAPSHOT; then
-    ./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests deploy
-else
-    echo "Not building release versions, those are built by the tag builder using the publish-stable.sh script"
-fi
diff --git a/build-support/publish-stable.sh b/build-support/publish-stable.sh
deleted file mode 100755
index 2ea161d..0000000
--- a/build-support/publish-stable.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -euo pipefail
-set -x
-
-./mvnw -DskipTests install -nsu
-./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests deploy
-./mvnw --batch-mode -s ./.settings.xml -nsu -N io.zipkin.centralsync-maven-plugin:centralsync-maven-plugin:sync
diff --git a/build-support/trigger-publish.sh b/build-support/trigger-publish.sh
deleted file mode 100755
index 059dd95..0000000
--- a/build-support/trigger-publish.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -euo pipefail
-set -x
-
-release_version() {
-    echo "${CIRCLE_TAG}" | sed 's/^release-//'
-}
-
-safe_checkout_master() {
-  # We need to be on a branch for release:perform to be able to create commits, and we want that branch to be master.
-  # But we also want to make sure that we build and release exactly the tagged version, so we verify that the remote
-  # master is where our tag is.
-  git checkout -B master
-  git fetch origin master:origin/master
-  commit_local_master="$(git show --pretty='format:%H' master)"
-  commit_remote_master="$(git show --pretty='format:%H' origin/master)"
-  if [ "$commit_local_master" != "$commit_remote_master" ]; then
-    echo "Master on remote 'origin' has commits since the version under release, aborting"
-    exit 1
-  fi
-}
-
-safe_checkout_master
-./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DreleaseVersion="$(release_version)" -Darguments="-DskipTests" release:prepare
diff --git a/pom.xml b/pom.xml
index 1cf4581..4c1ebe8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,12 +64,12 @@
 
   <name>Brave Karaf (Parent)</name>
   <description>Brave Karaf (Parent)</description>
-  <url>https://github.com/openzipkin/brave-karaf</url>
+  <url>https://github.com/apache/incubator-zipkin-brave-karaf</url>
   <inceptionYear>2016</inceptionYear>
 
   <organization>
-    <name>OpenZipkin</name>
-    <url>http://zipkin.io/</url>
+    <name>The Apache Software Foundation</name>
+    <url>http://www.apache.org/</url>
   </organization>
 
   <licenses>
@@ -81,9 +81,9 @@
   </licenses>
 
   <scm>
-    <url>https://github.com/openzipkin/brave-karaf</url>
-    <connection>scm:git:https://github.com/openzipkin/brave-karaf.git</connection>
-    <developerConnection>scm:git:https://github.com/openzipkin/brave-karaf.git</developerConnection>
+    <url>https://github.com/apache/incubator-zipkin-brave-karaf</url>
+    <connection>scm:git:https://github.com/apache/incubator-zipkin-brave-karaf.git</connection>
+    <developerConnection>scm:git:https://github.com/apache/incubator-zipkin-brave-karaf.git</developerConnection>
     <tag>HEAD</tag>
   </scm>
 
@@ -96,20 +96,35 @@
     </developer>
   </developers>
 
+  <mailingLists>
+    <mailingList>
+      <name>Zipkin Developer List</name>
+      <post>dev@zipkin.apache.org</post>
+      <subscribe>dev-subscribe@zipkin.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@zipkin.apache.org</unsubscribe>
+    </mailingList>
+    <mailingList>
+      <name>Zipkin Commits</name>
+      <post>commits@zipkin.apache.org</post>
+      <subscribe>commits-subscribe@zipkin.apache.org</subscribe>
+      <unsubscribe>commits-unsubscribe@zipkin.apache.org</unsubscribe>
+    </mailingList>
+  </mailingLists>
+
   <distributionManagement>
     <repository>
-      <id>bintray</id>
-      <url>https://api.bintray.com/maven/openzipkin/maven/brave-karaf/;publish=1</url>
+      <id>apache.releases</id>
+      <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
     </repository>
     <snapshotRepository>
-      <id>jfrog-snapshots</id>
-      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
+      <id>apache.snapshots</id>
+      <url>https://repository.apache.org/content/repositories/snapshots/</url>
     </snapshotRepository>
   </distributionManagement>
 
   <issueManagement>
     <system>Github</system>
-    <url>https://github.com/openzipkin/brave-karaf/issues</url>
+    <url>https://github.com/apache/incubator-zipkin-brave-karaf/issues</url>
   </issueManagement>
 
   <dependencyManagement>
@@ -211,7 +226,6 @@
     </dependency>
   </dependencies>
 
-
   <build>
     <pluginManagement>
       <plugins>
@@ -339,6 +353,7 @@
             <exclude>etc/header.txt</exclude>
             <exclude>**/.idea/**</exclude>
             <exclude>LICENSE</exclude>
+            <exclude>DISCLAIMER</exclude>
             <exclude>**/*.md</exclude>
           </excludes>
           <strictCheck>true</strictCheck>
@@ -423,26 +438,6 @@
           </execution>
         </executions>
       </plugin>
-
-      <plugin>
-        <artifactId>maven-release-plugin</artifactId>
-        <version>2.5.3</version>
-        <configuration>
-          <useReleaseProfile>false</useReleaseProfile>
-          <releaseProfiles>release</releaseProfiles>
-          <autoVersionSubmodules>true</autoVersionSubmodules>
-          <tagNameFormat>@{project.version}</tagNameFormat>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>io.zipkin.centralsync-maven-plugin</groupId>
-        <artifactId>centralsync-maven-plugin</artifactId>
-        <version>0.1.0</version>
-        <configuration>
-          <packageName>brave-karaf</packageName>
-        </configuration>
-      </plugin>
     </plugins>
   </build>
 


[incubator-zipkin-brave-karaf] 16/46: Updated to brave 4.5.0

Posted by ab...@apache.org.
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 f745840a9952a5ada74b47cab24a54f576fa638a
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 13:26:44 2017 +0200

    Updated to brave 4.5.0
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 03dec1a..1cfb0a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@ the License.
 
 		<license-maven-plugin.version>2.11</license-maven-plugin.version>
 
-		<brave.version>4.4.1-SNAPSHOT</brave.version>
+		<brave.version>4.5.0</brave.version>
 		<zipkin.version>1.24.0</zipkin.version>
 		<zipkin.reporter.version>0.10.0</zipkin.reporter.version>
 


[incubator-zipkin-brave-karaf] 38/46: [circleci] Update publish fork check to `apache`

Posted by ab...@apache.org.
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 0cd1637c5a72826686ae7741e017053d5bd3c46b
Author: Zoltán Nagy <ab...@gmail.com>
AuthorDate: Wed Jan 30 14:35:54 2019 +0000

    [circleci] Update publish fork check to `apache`
    
    Before publishing a snapshot or release, we make double sure that we're on the right fork (ie. the official one). With the move to `apache`, this check needs an update.
---
 .circleci/config.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 91ed2c0..a7b9525 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -59,7 +59,7 @@ jobs:
           name: Publish snapshot
           command: |
             # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
+            [ "$CIRCLE_PROJECT_USERNAME" == "apache" ] || exit 0
             [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
             ./build-support/publish-snapshot.sh
 
@@ -76,7 +76,7 @@ jobs:
           no_output_timeout: 30m
           command: |
             # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
+            [ "$CIRCLE_PROJECT_USERNAME" == "apache" ] || exit 0
             [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
             ./build-support/publish-stable.sh
 


[incubator-zipkin-brave-karaf] 01/46: Initial commit

Posted by ab...@apache.org.
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 13c2949670a363812224b0a29aa4747e646ab0d6
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Thu Dec 8 21:42:38 2016 +0800

    Initial commit
---
 .gitignore |  12 ++++
 LICENSE    | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..32858aa
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+*.class
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..8dada3e
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   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.


[incubator-zipkin-brave-karaf] 06/46: Add kafka exporter and improve itest

Posted by ab...@apache.org.
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 03b5790d8bd566fe261261a6061d0024d541e53d
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Mon Dec 12 16:07:29 2016 +0100

    Add kafka exporter and improve itest
---
 brave-exporter-kafka08/pom.xml                     | 83 ++++++++++++++++++++++
 .../osgi/exporter/kafka/KafkaReporterExporter.java | 77 ++++++++++++++++++++
 brave-features/src/main/resources/features.xml     |  3 +-
 brave-itests/pom.xml                               | 24 +++++++
 .../java/io/zipkin/brave/itests/BraveTest.java     | 51 ++++++++++++-
 brave-itests/src/test/resources/exam.properties    | 11 +++
 brave-itests/src/test/resources/logback.xml        | 15 ++++
 pom.xml                                            |  6 ++
 8 files changed, 267 insertions(+), 3 deletions(-)

diff --git a/brave-exporter-kafka08/pom.xml b/brave-exporter-kafka08/pom.xml
new file mode 100644
index 0000000..8dc9b93
--- /dev/null
+++ b/brave-exporter-kafka08/pom.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>io.zipkin.brave.karaf</groupId>
+		<artifactId>brave-karaf-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>brave-exporter-kafka08</artifactId>
+	
+	<properties>
+        <main.basedir>${project.basedir}/..</main.basedir>
+	</properties>
+	
+	<dependencies>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>osgi.core</artifactId>
+			<version>6.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>osgi.cmpn</artifactId>
+			<version>6.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.brave</groupId>
+			<artifactId>brave-core</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.reporter</groupId>
+			<artifactId>zipkin-reporter</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.reporter</groupId>
+			<artifactId>zipkin-sender-kafka08</artifactId>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>biz.aQute.bnd</groupId>
+				<artifactId>bnd-maven-plugin</artifactId>
+				<version>3.3.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>bnd-process</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>3.0.2</version>
+				<configuration>
+					<archive>
+						<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+					</archive>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
\ No newline at end of file
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
new file mode 100644
index 0000000..46dc6a4
--- /dev/null
+++ b/brave-exporter-kafka08/src/main/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporter.java
@@ -0,0 +1,77 @@
+/**
+ * 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 java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin.Span;
+import zipkin.reporter.AsyncReporter;
+import zipkin.reporter.Encoding;
+import zipkin.reporter.Reporter;
+import zipkin.reporter.kafka08.KafkaSender;
+
+@Component //
+( //
+    immediate = true, //
+    name = "io.zipkin.reporter.kafka08", //
+    configurationPolicy = ConfigurationPolicy.REQUIRE
+)
+@Designate(ocd = KafkaReporterExporter.Config.class)
+public class KafkaReporterExporter {
+
+    @SuppressWarnings("rawtypes")
+    private ServiceRegistration<Reporter> reg;
+    private AsyncReporter<Span> reporter;
+
+    @ObjectClassDefinition(name = "Zipkin Reporter Kafka08")
+    @interface Config {
+        String bootstrapServers() default "localhost:9092";
+        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 = KafkaSender.builder() //
+            .bootstrapServers(config.bootstrapServers()) //
+            .encoding(config.encoding()) //
+            .messageMaxBytes(config.messageMaxBytes()) //
+            .overrides(overrides) //
+            .topic(config.topic()) //
+            .build();
+        reporter = AsyncReporter.builder(sender).build();
+        reg = context.registerService(Reporter.class, reporter, new Hashtable<String, String>(properties));
+    }
+    
+    @Deactivate
+    public void deactive() {
+        reg.unregister();
+        reporter.close();
+    }
+
+}
diff --git a/brave-features/src/main/resources/features.xml b/brave-features/src/main/resources/features.xml
index d2fe602..16c4c9c 100644
--- a/brave-features/src/main/resources/features.xml
+++ b/brave-features/src/main/resources/features.xml
@@ -27,10 +27,11 @@
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter/${project.version}</bundle>
 	</feature>
 	
-	<feature name="brave-kafka">
+	<feature name="brave-kafka08">
 		<feature>brave-core</feature>
 		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/0.8.2.2_1</bundle>
 		<bundle>mvn:io.zipkin.reporter/zipkin-sender-kafka08/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-kafka08/${project.version}</bundle>
 	</feature>
 	
 	<feature name="brave-jaxrs2">
diff --git a/brave-itests/pom.xml b/brave-itests/pom.xml
index 46a39e6..ce934df 100644
--- a/brave-itests/pom.xml
+++ b/brave-itests/pom.xml
@@ -40,6 +40,24 @@
 			<groupId>io.zipkin.brave</groupId>
 			<artifactId>brave-core</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>io.zipkin.brave.karaf</groupId>
+			<artifactId>brave-exporter</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.brave.karaf</groupId>
+			<artifactId>brave-exporter-kafka08</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.reporter</groupId>
+			<artifactId>zipkin-sender-urlconnection</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.reporter</groupId>
+			<artifactId>zipkin-sender-kafka08</artifactId>
+		</dependency>
 
 		<dependency>
 			<groupId>junit</groupId>
@@ -56,6 +74,12 @@
 		</dependency>
 		<dependency>
 			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-cm</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
 			<artifactId>pax-exam-invoker-junit</artifactId>
 			<version>${pax.exam.version}</version>
 			<scope>test</scope>
diff --git a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index abdd14f..1e32ba8 100644
--- a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -16,6 +16,7 @@ package io.zipkin.brave.itests;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.ops4j.pax.exam.CoreOptions.maven;
+import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
@@ -23,8 +24,11 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRunti
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
+import javax.inject.Inject;
+
 import com.github.kristofa.brave.Brave;
 import org.junit.Assert;
 import org.junit.Test;
@@ -37,14 +41,33 @@ import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
 import org.ops4j.pax.exam.options.MavenUrlReference;
 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
+import org.ops4j.pax.exam.util.Filter;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
 import zipkin.Span;
 import zipkin.reporter.Reporter;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
 public class BraveTest {
+    private static final String FILTER_KAFKA08 = "(component.name=io.zipkin.reporter.kafka08)";
+
+    private static final String FILTER_URLCONNECT = "(component.name=io.zipkin.reporter.urlconnect)";
+
     List<Span> spans = new ArrayList<Span>();
 
+    @Inject
+    @Filter(FILTER_URLCONNECT)
+    Reporter<Span> reporter;
+    
+    @Inject
+    @Filter(FILTER_KAFKA08)
+    Reporter<Span> reporterKafka;
+    
+    @Inject
+    BundleContext context;
+
     @Configuration
     public static Option[] configuration() throws Exception {
         MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
@@ -57,12 +80,15 @@ public class BraveTest {
          configureConsole().ignoreLocalConsole(), //
          logLevel(LogLevel.INFO), //
          keepRuntimeFolder(), //
-         features(brave, "brave-core")
+         features(brave, "brave-core", "brave-kafka08"),
+         // Create an empty config to trigger creation of component 
+         newConfiguration("io.zipkin.reporter.urlconnect").asOption(),
+         newConfiguration("io.zipkin.reporter.kafka08").asOption()
         };
     }
 
     @Test
-    public void shouldHaveBundleContext() {
+    public void inlineBraveSetup() {
         Reporter<Span> local = new Reporter<Span>() {
 
             @Override
@@ -75,5 +101,26 @@ public class BraveTest {
         brave.localTracer().finishSpan();
         Assert.assertThat(1, equalTo(spans.size()));
     }
+    
+    @SuppressWarnings("rawtypes")
+    @Test
+    public void checkReporterUrlConnect() throws InvalidSyntaxException {
+        ServiceReference<Reporter> ref = getSingleService(FILTER_URLCONNECT);
+        Assert.assertEquals(10000, ref.getProperty("connectTimeout"));
+    }
 
+    @SuppressWarnings("rawtypes")
+    @Test
+    public void checkReporterKafka() throws InvalidSyntaxException {
+        ServiceReference<Reporter> ref = getSingleService(FILTER_KAFKA08);
+        Assert.assertEquals("zipkin", ref.getProperty("topic"));
+    }
+
+    @SuppressWarnings("rawtypes")
+    private ServiceReference<Reporter> getSingleService(String filter) throws InvalidSyntaxException {
+        Collection<ServiceReference<Reporter>> refs = context.getServiceReferences(Reporter.class, filter);
+        Assert.assertEquals(1, refs.size());
+        return refs.iterator().next();
+    }
+    
 }
diff --git a/brave-itests/src/test/resources/exam.properties b/brave-itests/src/test/resources/exam.properties
index 4936b4a..14f97f7 100644
--- a/brave-itests/src/test/resources/exam.properties
+++ b/brave-itests/src/test/resources/exam.properties
@@ -1,2 +1,13 @@
+#    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.
 pax.exam.logging = none
 pax.exam.service.timeout = 5000
diff --git a/brave-itests/src/test/resources/logback.xml b/brave-itests/src/test/resources/logback.xml
index 7f3f081..56da3f3 100644
--- a/brave-itests/src/test/resources/logback.xml
+++ b/brave-itests/src/test/resources/logback.xml
@@ -1,4 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
 <configuration>
 
   <!--  log to System.out on console  -->
diff --git a/pom.xml b/pom.xml
index e032207..ff559c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,7 @@
 		<module>brave-features</module>
 		<module>brave-itests</module>
 		<module>brave-exporter</module>
+		<module>brave-exporter-kafka08</module>
 	</modules>
 
 	<properties>
@@ -109,6 +110,11 @@
 				<artifactId>zipkin-sender-urlconnection</artifactId>
 				<version>${zipkin.reporter.version}</version>
 			</dependency>
+			<dependency>
+				<groupId>io.zipkin.reporter</groupId>
+				<artifactId>zipkin-sender-kafka08</artifactId>
+				<version>${zipkin.reporter.version}</version>
+			</dependency>
 			
 			<dependency>
 				<groupId>io.zipkin.brave</groupId>


[incubator-zipkin-brave-karaf] 34/46: [maven-release-plugin] prepare for next development iteration

Posted by ab...@apache.org.
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 695ab2b90bdbea0bcb517c21bc3a8fa05a984781
Author: zipkinci <zi...@googlegroups.com>
AuthorDate: Sat Sep 8 12:55:23 2018 +0000

    [maven-release-plugin] prepare for next development iteration
---
 exporter-sender-kafka/pom.xml  | 2 +-
 exporter-sender-okhttp/pom.xml | 2 +-
 exporter/pom.xml               | 2 +-
 features/pom.xml               | 2 +-
 itests/pom.xml                 | 2 +-
 pom.xml                        | 4 ++--
 6 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/exporter-sender-kafka/pom.xml b/exporter-sender-kafka/pom.xml
index a699636..1911a7c 100644
--- a/exporter-sender-kafka/pom.xml
+++ b/exporter-sender-kafka/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.1</version>
+    <version>0.1.2-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/exporter-sender-okhttp/pom.xml b/exporter-sender-okhttp/pom.xml
index 010272d..9149e56 100644
--- a/exporter-sender-okhttp/pom.xml
+++ b/exporter-sender-okhttp/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.1</version>
+    <version>0.1.2-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/exporter/pom.xml b/exporter/pom.xml
index 27cc1c0..a62e348 100644
--- a/exporter/pom.xml
+++ b/exporter/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.1</version>
+    <version>0.1.2-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/features/pom.xml b/features/pom.xml
index 0f83408..73b01f3 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.1</version>
+    <version>0.1.2-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>brave-features</artifactId>
diff --git a/itests/pom.xml b/itests/pom.xml
index b538480..f100dbf 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.1</version>
+    <version>0.1.2-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>brave-itests</artifactId>
diff --git a/pom.xml b/pom.xml
index 77d65d8..f176186 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
 
   <groupId>io.zipkin.brave.karaf</groupId>
   <artifactId>brave-karaf-parent</artifactId>
-  <version>0.1.1</version>
+  <version>0.1.2-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <modules>
@@ -71,7 +71,7 @@
     <url>https://github.com/openzipkin/brave-karaf</url>
     <connection>scm:git:https://github.com/openzipkin/brave-karaf.git</connection>
     <developerConnection>scm:git:https://github.com/openzipkin/brave-karaf.git</developerConnection>
-    <tag>0.1.1</tag>
+    <tag>HEAD</tag>
   </scm>
 
   <!-- Developer section is needed for Maven Central, but doesn't need to include each person -->


[incubator-zipkin-brave-karaf] 26/46: Fix type and update to karaf 4.2.0

Posted by ab...@apache.org.
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 ead68b7516d339a6a7a831b70e419c2635178db0
Author: Christian Schneider <cs...@adobe.com>
AuthorDate: Wed Aug 1 11:26:51 2018 +0200

    Fix type and update to karaf 4.2.0
---
 .gitignore                                                 | 5 +++++
 features/src/main/resources/features.xml                   | 8 ++++----
 itests/src/test/java/io/zipkin/brave/itests/BraveTest.java | 2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index e1f45e2..fb3a2f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,8 @@ target/
 
 # macOS
 .DS_Store
+
+# Eclipse
+.classpath
+.project
+.settings/
diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
index 72377d7..b8a827a 100644
--- a/features/src/main/resources/features.xml
+++ b/features/src/main/resources/features.xml
@@ -21,13 +21,13 @@
 	<feature name="brave">
 		<feature>scr</feature>
 		<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>mvn:io.zipkin.reporter2/zipkin-sender-urlconnection/${zipkin.reporter.version}</bundle>
+		<bundle dependency="true">mvn:io.zipkin.reporter2/zipkin-reporter/${zipkin-reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-urlconnection/${zipkin-reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave/brave/${brave.version}</bundle>
 		<bundle>mvn:io.zipkin.brave/brave-instrumentation-http/${brave.version}</bundle>
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter/${project.version}</bundle>
 	</feature>
-	
+
 	<feature name="brave-sender-kafka">
 		<feature>brave</feature>
 		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/1.1.0_1</bundle>
@@ -41,4 +41,4 @@
 		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-okhttp3/${zipkin.reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
 	</feature>
-</features>
\ No newline at end of file
+</features>
diff --git a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index 6698d4e..6552801 100644
--- a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -53,7 +53,7 @@ public class BraveTest {
   @Configuration
   public static Option[] configuration() {
     MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
-        .type("zip").version("4.0.7");
+        .type("zip").version("4.2.0");
     MavenUrlReference brave =
         maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
             .classifier("features").version("0.1.0-SNAPSHOT");


[incubator-zipkin-brave-karaf] 30/46: [circleci] Run `build` step for publishing

Posted by ab...@apache.org.
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 cefbdb2f68638069c3167f590cd4476979bcbbef
Author: Zoltan Nagy <ab...@gmail.com>
AuthorDate: Thu Aug 2 19:49:50 2018 +0800

    [circleci] Run `build` step for publishing
---
 .circleci/config.yml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index be9d727..bcc066d 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -110,7 +110,10 @@ workflows:
   version: 2
   build_and_publish:
     jobs:
-      - build
+      - build:
+          filters:
+           tags:
+              only: /\d+\.\d+\.\d+/
       - publish_snapshot:
           requires:
             - build


[incubator-zipkin-brave-karaf] 09/46: Update to brave 4.4.1-SNAPSHOT

Posted by ab...@apache.org.
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 d91fe965179e1fb4dbab94fc3dae3ae104ae04cf
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Mon Jul 3 09:59:38 2017 +0200

    Update to brave 4.4.1-SNAPSHOT
---
 pom.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pom.xml b/pom.xml
index d433e05..5861972 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,9 +40,9 @@ the License.
 
 		<license-maven-plugin.version>2.11</license-maven-plugin.version>
 
-		<brave.version>4.1.0</brave.version>
-		<zipkin.version>1.19.2</zipkin.version>
-		<zipkin.reporter.version>0.6.13</zipkin.reporter.version>
+		<brave.version>4.4.1-SNAPSHOT</brave.version>
+		<zipkin.version>1.24.0</zipkin.version>
+		<zipkin.reporter.version>0.10.0</zipkin.reporter.version>
 
 		<slf4j.version>1.7.21</slf4j.version>
 	</properties>


[incubator-zipkin-brave-karaf] 37/46: Enables Apache RAT plugin for verifying dependency licenses (#10)

Posted by ab...@apache.org.
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 7cce24d130d9e6e0664cc2c7299db1a5626c99c8
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Wed Jan 30 15:30:34 2019 +0100

    Enables Apache RAT plugin for verifying dependency licenses (#10)
---
 pom.xml | 46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5ec2fdf..ace6669 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2016-2018 The OpenZipkin Authors
+    Copyright 2016-2019 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
@@ -375,6 +375,50 @@
       </plugin>
 
       <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>0.13</version>
+        <configuration>
+          <excludes>
+            <exclude>**/target/**</exclude>
+
+            <!-- IDE files -->
+            <exclude>**/*.iml</exclude>
+            <exclude>**/.idea/**</exclude>
+            <exclude>**/*.classpath</exclude>
+            <exclude>**/.project</exclude>
+            <exclude>**/.settings/**</exclude>
+            <exclude>**/dependency-reduced-pom.xml</exclude>
+
+            <!-- git files -->
+            <exclude>**/.gitignore</exclude>
+            <exclude>**/.gitmodules</exclude>
+            <exclude>**/.git/**</exclude>
+
+            <!-- CI files -->
+            <exclude>**/.travis.yml</exclude>
+
+            <!-- GitHub files -->
+            <exclude>**/.github/**</exclude>
+
+            <!-- document files -->
+            <exclude>**/*.md</exclude>
+
+            <!-- Maven Wrapper generated files -->
+            <exclude>.mvn/wrapper/maven-wrapper.properties</exclude>
+          </excludes>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>verify</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
         <artifactId>maven-release-plugin</artifactId>
         <version>2.5.3</version>
         <configuration>


[incubator-zipkin-brave-karaf] 27/46: Fix component setup to be compatible to OSGi R6

Posted by ab...@apache.org.
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 43ae7e42c4cc792291ec6d611a2676bbc765f744
Author: Christian Schneider <cs...@adobe.com>
AuthorDate: Wed Aug 1 14:44:24 2018 +0200

    Fix component setup to be compatible to OSGi R6
---
 .../io/zipkin/brave/exporter/AsyncReporterExporter.java     | 10 +++-------
 .../java/io/zipkin/brave/exporter/HttpTracingExporter.java  | 13 +++++--------
 .../main/java/io/zipkin/brave/exporter/TracingExporter.java |  2 +-
 .../sender/urlconnection/URLConnectionSenderExporter.java   |  2 +-
 4 files changed, 10 insertions(+), 17 deletions(-)

diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
index 6d32a38..29d6650 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
@@ -15,14 +15,14 @@ package io.zipkin.brave.exporter;
 
 import java.util.Hashtable;
 import java.util.Map;
+
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.metatype.annotations.Designate;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+
 import zipkin2.Span;
 import zipkin2.reporter.AsyncReporter;
 import zipkin2.reporter.Reporter;
@@ -32,7 +32,6 @@ import zipkin2.reporter.Sender;
     immediate = true,
     name = "io.zipkin.asyncreporter"
 )
-@Designate(ocd = AsyncReporterExporter.Config.class)
 public class AsyncReporterExporter {
   @Reference
   Sender sender;
@@ -42,7 +41,7 @@ public class AsyncReporterExporter {
   private ServiceRegistration<Reporter> reg;
 
   @Activate
-  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+  public void activate(BundleContext context, Map<String, String> properties) {
     reporter = AsyncReporter.builder(sender)
         .build();
     reg = context.registerService(Reporter.class, reporter,
@@ -54,7 +53,4 @@ public class AsyncReporterExporter {
     reg.unregister();
     if (reporter != null) reporter.close();
   }
-
-  @ObjectClassDefinition(name = "AsyncReporter") @interface Config {
-  }
 }
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
index be6dcd7..87d700b 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
@@ -13,24 +13,23 @@
  */
 package io.zipkin.brave.exporter;
 
-import brave.Tracing;
-import brave.http.HttpTracing;
 import java.util.Hashtable;
 import java.util.Map;
+
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.metatype.annotations.Designate;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+
+import brave.Tracing;
+import brave.http.HttpTracing;
 
 @Component(
     immediate = true,
     name = "io.zipkin.brave.http"
 )
-@Designate(ocd = HttpTracingExporter.Config.class)
 public class HttpTracingExporter {
   @Reference
   Tracing tracing;
@@ -38,7 +37,7 @@ public class HttpTracingExporter {
   private ServiceRegistration<HttpTracing> reg;
 
   @Activate
-  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+  public void activate(BundleContext context, Map<String, String> properties) {
     HttpTracing httpTracing = HttpTracing.newBuilder(tracing)
         .build();
     reg = context.registerService(HttpTracing.class, httpTracing,
@@ -50,6 +49,4 @@ public class HttpTracingExporter {
     reg.unregister();
   }
 
-  @ObjectClassDefinition(name = "HttpTracing") @interface Config {
-  }
 }
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
index eae174d..67e660c 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
@@ -58,7 +58,7 @@ public class TracingExporter {
     if (tracing != null) tracing.close();
   }
 
-  @ObjectClassDefinition(name = "Tracing") @interface Config {
+  public static @ObjectClassDefinition(name = "Tracing") @interface Config {
     String name() default "unknown";
 
     boolean traceId128Bit() default false;
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
index 78c8b11..1d292eb 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
@@ -54,7 +54,7 @@ public class URLConnectionSenderExporter {
     if (sender != null) sender.close();
   }
 
-  @ObjectClassDefinition(name = "Zipkin Sender URLConnection") @interface Config {
+  public static @ObjectClassDefinition(name = "Zipkin Sender URLConnection") @interface Config {
     String endpoint() default "http://localhost:9411/api/v2/spans";
 
     boolean compressionEnabled() default true;


[incubator-zipkin-brave-karaf] 17/46: Exclude license checks in build-support

Posted by ab...@apache.org.
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 e932bd7004ba1291c8d7219f33e6279e9350d80e
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 13:35:03 2017 +0200

    Exclude license checks in build-support
---
 pom.xml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pom.xml b/pom.xml
index 1cfb0a1..752b1ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -242,12 +242,14 @@ the License.
 						<exclude>.gitignore</exclude>
 						<exclude>.mvn/**</exclude>
 						<exclude>mvnw*</exclude>
+						<exclude>build-support/**</exclude>
 						<exclude>etc/header.txt</exclude>
 						<exclude>**/.idea/**</exclude>
 						<exclude>LICENSE</exclude>
 						<exclude>**/*.md</exclude>
 						<exclude>src/test/resources/**</exclude>
 						<exclude>src/main/resources/**</exclude>
+
 					</excludes>
 					<strictCheck>true</strictCheck>
 				</configuration>


[incubator-zipkin-brave-karaf] 36/46: Updates build and deps to work with JDK 11 (#9)

Posted by ab...@apache.org.
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 a32fc5d9f23cd7efa865b5f055a65661bf824264
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Thu Oct 18 13:29:13 2018 +0800

    Updates build and deps to work with JDK 11 (#9)
---
 .circleci/config.yml                     |   8 +--
 features/src/main/resources/features.xml |   8 ++-
 itests/pom.xml                           |   2 +-
 pom.xml                                  | 104 +++++++++++++++++++++++++------
 4 files changed, 94 insertions(+), 28 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 971fdab..91ed2c0 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -16,7 +16,7 @@ version: 2
 jobs:
   build:
     docker:
-      - image: circleci/openjdk:8-jdk
+      - image: circleci/openjdk:11-jdk
 
     steps:
       - checkout
@@ -50,7 +50,7 @@ jobs:
 
   publish_snapshot:
     docker:
-      - image: circleci/openjdk:8-jdk
+      - image: circleci/openjdk:11-jdk
     steps:
       - checkout
       - restore_cache:
@@ -65,7 +65,7 @@ jobs:
 
   publish_stable:
     docker:
-      - image: circleci/openjdk:8-jdk
+      - image: circleci/openjdk:11-jdk
     steps:
       - checkout
       - restore_cache:
@@ -82,7 +82,7 @@ jobs:
 
   trigger_publish:
     docker:
-      - image: circleci/openjdk:8-jdk
+      - image: circleci/openjdk:11-jdk
     steps:
       - checkout
       - restore_cache:
diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
index 440a43a..2933d20 100644
--- a/features/src/main/resources/features.xml
+++ b/features/src/main/resources/features.xml
@@ -30,15 +30,17 @@
 
 	<feature name="brave-sender-kafka">
 		<feature>brave</feature>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/1.1.0_1</bundle>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/2.0.0_1</bundle>
 		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-kafka11/${zipkin-reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-kafka/${project.version}</bundle>
 	</feature>
 
 	<feature name="brave-sender-okhttp">
 		<feature>brave</feature>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/1.14.0_1</bundle>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.10.0_2</bundle>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/1.15.0_1</bundle>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.11.0_1</bundle>
+		<!-- for javax.annotation.Nullable used by OkHttp. Lacking this is a problem in JDK 11 -->
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/3.0.2_1</bundle>
 		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-okhttp3/${zipkin-reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
 	</feature>
diff --git a/itests/pom.xml b/itests/pom.xml
index 65addcb..ebef717 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -26,7 +26,7 @@
 
   <properties>
     <pax-exam.version>4.12.0</pax-exam.version>
-    <karaf.version>4.2.0</karaf.version>
+    <karaf.version>4.2.1</karaf.version>
     <main.basedir>${project.basedir}/..</main.basedir>
   </properties>
 
diff --git a/pom.xml b/pom.xml
index 3847d1b..5ec2fdf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,13 +40,17 @@
 
     <main.basedir>${project.basedir}</main.basedir>
 
+    <!-- override to set exclusions per-project -->
+    <errorprone.args />
+    <errorprone.version>2.3.2</errorprone.version>
+
     <!-- Make sure these versions match brave-bom -->
-    <brave.version>5.3.0</brave.version>
-    <zipkin.version>2.11.5</zipkin.version>
-    <zipkin-reporter.version>2.7.8</zipkin-reporter.version>
+    <brave.version>5.4.3</brave.version>
+    <zipkin.version>2.11.7</zipkin.version>
+    <zipkin-reporter.version>2.7.10</zipkin-reporter.version>
 
     <license-maven-plugin.version>2.11</license-maven-plugin.version>
-    <maven-failsafe-plugin.version>2.22.0</maven-failsafe-plugin.version>
+    <maven-failsafe-plugin.version>2.22.1</maven-failsafe-plugin.version>
   </properties>
 
   <name>Brave Karaf (Parent)</name>
@@ -227,33 +231,20 @@
       <plugin>
         <inherited>true</inherited>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.7.0</version>
+        <version>3.8.0</version>
         <configuration>
           <!-- Retrolambda will rewrite lambdas as Java 6 bytecode -->
           <source>1.8</source>
           <target>1.8</target>
-          <compilerId>javac-with-errorprone</compilerId>
           <forceJavacCompilerUse>true</forceJavacCompilerUse>
           <showWarnings>true</showWarnings>
         </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-compiler-javac-errorprone</artifactId>
-            <version>2.8.4</version>
-          </dependency>
-          <dependency>
-            <groupId>com.google.errorprone</groupId>
-            <artifactId>error_prone_core</artifactId>
-            <version>2.3.1</version>
-          </dependency>
-        </dependencies>
       </plugin>
 
       <plugin>
         <groupId>net.orfjackal.retrolambda</groupId>
         <artifactId>retrolambda-maven-plugin</artifactId>
-        <version>2.5.4</version>
+        <version>2.5.5</version>
         <executions>
           <execution>
             <goals>
@@ -375,7 +366,7 @@
             <configuration>
               <rules>
                 <requireJavaVersion>
-                  <version>[1.8,9)</version>
+                  <version>[1.8,12)</version>
                 </requireJavaVersion>
               </rules>
             </configuration>
@@ -407,6 +398,79 @@
 
   <profiles>
     <profile>
+      <id>error-prone-1.8</id>
+      <activation>
+        <jdk>1.8</jdk>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <!-- running errorprone even on test tree to avoid
+                 java.lang.NoSuchFieldError: ANNOTATION_PROCESSOR_MODULE_PATH compiling tests -->
+            <configuration>
+              <compilerId>javac-with-errorprone</compilerId>
+              <forceJavacCompilerUse>true</forceJavacCompilerUse>
+              <compilerArgs>
+                <arg>${errorprone.args}</arg>
+              </compilerArgs>
+            </configuration>
+            <dependencies>
+              <dependency>
+                <groupId>org.codehaus.plexus</groupId>
+                <artifactId>plexus-compiler-javac-errorprone</artifactId>
+                <version>2.8.5</version>
+              </dependency>
+              <dependency>
+                <groupId>com.google.errorprone</groupId>
+                <artifactId>error_prone_core</artifactId>
+                <version>${errorprone.version}</version>
+              </dependency>
+            </dependencies>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>error-prone-9+</id>
+      <activation>
+        <jdk>[9,)</jdk>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <executions>
+              <execution>
+                <!-- only use errorprone on main source tree -->
+                <id>default-compile</id>
+                <phase>compile</phase>
+                <goals>
+                  <goal>compile</goal>
+                </goals>
+                <configuration>
+                  <forceJavacCompilerUse>true</forceJavacCompilerUse>
+                  <compilerArgs>
+                    <arg>-XDcompilePolicy=simple</arg>
+                    <arg>-Xplugin:ErrorProne ${errorprone.args}</arg>
+                  </compilerArgs>
+                  <annotationProcessorPaths>
+                    <processorPath>
+                      <groupId>com.google.errorprone</groupId>
+                      <artifactId>error_prone_core</artifactId>
+                      <version>${errorprone.version}</version>
+                    </processorPath>
+                  </annotationProcessorPaths>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
       <id>release</id>
       <build>
         <plugins>


[incubator-zipkin-brave-karaf] 19/46: Add settings

Posted by ab...@apache.org.
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 aba21436e3ebd1870db6f4a0442a2c41c677f574
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 14:29:34 2017 +0200

    Add settings
---
 .settings.xml | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/.settings.xml b/.settings.xml
new file mode 100644
index 0000000..74dd284
--- /dev/null
+++ b/.settings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2015-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.
+
+-->
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+                          http://maven.apache.org/xsd/settings-1.0.0.xsd">
+  <servers>
+    <server>
+      <id>sonatype</id>
+      <username>${env.SONATYPE_USER}</username>
+      <password>${env.SONATYPE_PASSWORD}</password>
+    </server>
+    <server>
+      <id>bintray</id>
+      <username>${env.BINTRAY_USER}</username>
+      <password>${env.BINTRAY_KEY}</password>
+    </server>
+    <server>
+      <id>jfrog-snapshots</id>
+      <username>${env.BINTRAY_USER}</username>
+      <password>${env.BINTRAY_KEY}</password>
+    </server>
+    <server>
+      <id>github.com</id>
+      <username>${env.GH_USER}</username>
+      <password>${env.GH_TOKEN}</password>
+    </server>
+  </servers>
+</settings>
+


[incubator-zipkin-brave-karaf] 35/46: Uses implicit versions in itests (#8)

Posted by ab...@apache.org.
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 8d3d416974117d7bd008faf676df45be86b201ee
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Thu Oct 18 11:36:46 2018 +0800

    Uses implicit versions in itests (#8)
---
 features/pom.xml                                   |  2 --
 itests/pom.xml                                     |  8 +++++++
 .../java/io/zipkin/brave/itests/BraveTest.java     | 27 ++++++++++++++++++----
 itests/src/test/resources/exam.properties          |  1 +
 pom.xml                                            |  5 ++++
 5 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/features/pom.xml b/features/pom.xml
index 73b01f3..cc1b1ef 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -38,9 +38,7 @@
     </resources>
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-resources-plugin</artifactId>
-        <version>3.1.0</version>
         <executions>
           <execution>
             <id>filter</id>
diff --git a/itests/pom.xml b/itests/pom.xml
index f100dbf..65addcb 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -151,4 +151,12 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
+  <build>
+    <testResources>
+      <testResource>
+        <directory>src/test/resources</directory>
+        <filtering>true</filtering>
+      </testResource>
+    </testResources>
+  </build>
 </project>
diff --git a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index 7b3f15c..47054f7 100644
--- a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -21,8 +21,9 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDist
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
 
+import java.io.InputStream;
 import java.util.Collection;
-
+import java.util.Properties;
 import javax.inject.Inject;
 
 import org.junit.Assert;
@@ -54,12 +55,13 @@ public class BraveTest {
   BundleContext context;
 
   @Configuration
-  public static Option[] configuration() {
+  public static Option[] configuration() throws Exception {
     MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
-        .type("zip").version("4.1.5");
+        .type("zip")
+        .version(getVersionFromMaven("org.apache.karaf.features/org.apache.karaf.features.core"));
     MavenUrlReference brave =
         maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
-            .classifier("features").version("0.1.0-SNAPSHOT");
+            .classifier("features").version(getBraveKarafVersion());
     return new Option[] {
         karafDistributionConfiguration().frameworkUrl(karaf).useDeployFolder(false),
         configureConsole().ignoreLocalConsole(),
@@ -109,4 +111,21 @@ public class BraveTest {
 	  }
 	  throw new RuntimeException("Timeout finding service");
   }
+
+  static String getVersionFromMaven(String path) throws Exception {
+    InputStream is =
+        BraveTest.class.getResourceAsStream("/META-INF/maven/" + path + "/pom.properties");
+    Assert.assertNotNull(is);
+    Properties p = new Properties();
+    p.load(is);
+    return p.getProperty("version");
+  }
+
+  static String getBraveKarafVersion() throws Exception {
+    InputStream is = BraveTest.class.getResourceAsStream("/exam.properties");
+    Assert.assertNotNull(is);
+    Properties p = new Properties();
+    p.load(is);
+    return p.getProperty("brave-karaf.version");
+  }
 }
diff --git a/itests/src/test/resources/exam.properties b/itests/src/test/resources/exam.properties
index 14f97f7..1c7a353 100644
--- a/itests/src/test/resources/exam.properties
+++ b/itests/src/test/resources/exam.properties
@@ -11,3 +11,4 @@
 #    the License.
 pax.exam.logging = none
 pax.exam.service.timeout = 5000
+brave-karaf.version=@project.version@
diff --git a/pom.xml b/pom.xml
index f176186..3847d1b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -317,6 +317,11 @@
       </plugin>
 
       <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>3.1.0</version>
+      </plugin>
+
+      <plugin>
         <groupId>com.mycila</groupId>
         <artifactId>license-maven-plugin</artifactId>
         <version>${license-maven-plugin.version}</version>


[incubator-zipkin-brave-karaf] 14/46: build-support

Posted by ab...@apache.org.
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 b79823a3e7c72eb9bfb27a7e5d2a3c3fae879dc1
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 11:58:53 2017 +0200

    build-support
---
 build-support/go-offline.sh                       | 34 ++++++++++++
 build-support/pom-no-crossmodule-dependencies.xsl | 26 +++++++++
 build-support/publish-snapshot.sh                 | 23 ++++++++
 build-support/publish-stable.sh                   | 21 ++++++++
 build-support/trigger-publish.sh                  | 38 +++++++++++++
 circle.yml                                        | 65 +++++++++++++++++++++++
 6 files changed, 207 insertions(+)

diff --git a/build-support/go-offline.sh b/build-support/go-offline.sh
new file mode 100755
index 0000000..908a863
--- /dev/null
+++ b/build-support/go-offline.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# 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.
+#
+
+# Due to https://issues.apache.org/jira/browse/MDEP-323 and cross-module dependencies,
+# we can't easily run mvn dependency:go-offline. This is a workaround for that.
+# It removes all dependencies on io.zipkin.java and ${project.groupId} using XSLT,
+# then runs go-offline on the resulting POMs.
+
+set -xeuo pipefail
+
+rm -rf go-offline-builddir
+mkdir -p go-offline-builddir
+trap "rm -rf $(pwd)/go-offline-builddir" EXIT
+
+for f in $(find . -name 'pom.xml'); do
+    echo $f
+    mkdir -p $(dirname go-offline-builddir/$f)
+    xsltproc ./build-support/pom-no-crossmodule-dependencies.xsl $f > go-offline-builddir/$f
+done
+
+cd go-offline-builddir
+../mvnw dependency:go-offline
diff --git a/build-support/pom-no-crossmodule-dependencies.xsl b/build-support/pom-no-crossmodule-dependencies.xsl
new file mode 100644
index 0000000..1eab405
--- /dev/null
+++ b/build-support/pom-no-crossmodule-dependencies.xsl
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pom="http://maven.apache.org/POM/4.0.0">
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="pom:dependency[pom:groupId = 'io.zipkin.brave.karaf']" />
+  <xsl:template match="pom:dependency[pom:groupId = '${project.groupId}']" />
+</xsl:stylesheet>
diff --git a/build-support/publish-snapshot.sh b/build-support/publish-snapshot.sh
new file mode 100755
index 0000000..169b870
--- /dev/null
+++ b/build-support/publish-snapshot.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+#
+# Copyright 2016-2017 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.
+#
+
+set -euo pipefail
+set -x
+
+if ./mvnw help:evaluate -N -Dexpression=project.version | grep -v '\['  | grep -q SNAPSHOT; then
+    ./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests -pl deploy
+else
+    echo "Not building release versions, those are built by the tag builder using the publish-stable.sh script"
+fi
diff --git a/build-support/publish-stable.sh b/build-support/publish-stable.sh
new file mode 100755
index 0000000..e5724e3
--- /dev/null
+++ b/build-support/publish-stable.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+#
+# 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.
+#
+
+set -euo pipefail
+set -x
+
+./mvnw -DskipTests install -nsu
+./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests -pl deploy
+./mvnw --batch-mode -s ./.settings.xml -nsu -N io.zipkin.centralsync-maven-plugin:centralsync-maven-plugin:sync
diff --git a/build-support/trigger-publish.sh b/build-support/trigger-publish.sh
new file mode 100755
index 0000000..04bcd80
--- /dev/null
+++ b/build-support/trigger-publish.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+#
+# 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.
+#
+
+set -euo pipefail
+set -x
+
+release_version() {
+    echo "${CIRCLE_TAG}" | sed 's/^release-//'
+}
+
+safe_checkout_master() {
+  # We need to be on a branch for release:perform to be able to create commits, and we want that branch to be master.
+  # But we also want to make sure that we build and release exactly the tagged version, so we verify that the remote
+  # master is where our tag is.
+  git checkout -B master
+  git fetch origin master:origin/master
+  commit_local_master="$(git show --pretty='format:%H' master)"
+  commit_remote_master="$(git show --pretty='format:%H' origin/master)"
+  if [ "$commit_local_master" != "$commit_remote_master" ]; then
+    echo "Master on remote 'origin' has commits since the version under release, aborting"
+    exit 1
+  fi
+}
+
+safe_checkout_master
+./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DreleaseVersion="$(release_version)" -Darguments="-DskipTests" release:prepare
diff --git a/circle.yml b/circle.yml
new file mode 100644
index 0000000..aa6c311
--- /dev/null
+++ b/circle.yml
@@ -0,0 +1,65 @@
+#
+# Copyright 2016-2017 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.
+#
+
+machine:
+  java:
+    version: openjdk8
+  services:
+    - mysql
+  environment:
+    MYSQL_USER: root
+
+dependencies:
+  override:
+    - sudo apt-get install xsltproc
+    - ./build-support/go-offline.sh
+
+test:
+  override:
+    - ./mvnw verify
+  post:
+    # parameters used during release
+    # allocate commits to CI, not the owner of the deploy key
+    - git config user.name "zipkinci"
+    - git config user.email "zipkinci+zipkin-dev@googlegroups.com"
+    # setup https authentication credentials, used by ./mvnw release:prepare
+    - git config credential.helper "store --file=.git/credentials"
+    - echo "https://$GH_TOKEN:@github.com" > .git/credentials
+    # copy test reports to CircleCI test reports directory
+    - mkdir -p $CIRCLE_TEST_REPORTS/junit/
+    - find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;
+
+# Send notifications to Gitter
+notify:
+  webhooks:
+    - url: https://webhooks.gitter.im/e/22adbb9973299092e6ae
+
+deployment:
+  trigger:
+    owner: openzipkin
+    tag: /release-\d+\.\d+\.\d+/
+    commands:
+      - ./build-support/trigger-publish.sh
+  publish-stable:
+    owner: openzipkin
+    tag: /\d+\.\d+\.\d+/
+    # triples the timeout to 30 minutes as maven central sync takes a lot longer than 10m
+    commands:
+      - ./build-support/publish-stable.sh:
+        timeout: 1800
+  publish-snapshot:
+    owner: openzipkin
+    branch: master
+    commands:
+      - ./build-support/publish-snapshot.sh


[incubator-zipkin-brave-karaf] 08/46: Update to brave 4.1.0

Posted by ab...@apache.org.
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 ecafa23bc97ff3ba2becf7096cd1257dd736ed98
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Apr 6 18:09:41 2017 +0200

    Update to brave 4.1.0
---
 pom.xml | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/pom.xml b/pom.xml
index 8bf7248..d433e05 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,18 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
+Copyright 2016, 2017 The OpenZipkin Authors
 
-    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
 
-    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.
+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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -42,9 +40,9 @@
 
 		<license-maven-plugin.version>2.11</license-maven-plugin.version>
 
-		<brave.version>3.16.0</brave.version>
-		<zipkin.version>1.16.0</zipkin.version>
-		<zipkin.reporter.version>0.6.9</zipkin.reporter.version>
+		<brave.version>4.1.0</brave.version>
+		<zipkin.version>1.19.2</zipkin.version>
+		<zipkin.reporter.version>0.6.13</zipkin.reporter.version>
 
 		<slf4j.version>1.7.21</slf4j.version>
 	</properties>
@@ -238,6 +236,7 @@
 				<configuration>
 					<header>${main.basedir}/src/etc/header.txt</header>
 					<excludes>
+                        <exclude>pom.xml</exclude>
 						<exclude>.travis.yml</exclude>
 						<exclude>.gitignore</exclude>
 						<exclude>.mvn/**</exclude>


[incubator-zipkin-brave-karaf] 42/46: Jenkinsfile tweaks (#15)

Posted by ab...@apache.org.
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 21495d30941bb9628cef60fd2f03f048f29e81b1
Author: Zoltán Nagy <ab...@gmail.com>
AuthorDate: Thu Jan 31 10:42:36 2019 +0000

    Jenkinsfile tweaks (#15)
    
    * Keep 30 builds instead of 10
    * Don't run any stages after tests if tests fail
    * Time out after 30 minutes
    * WIP code for releasing snapshots from master
    * Mail notifications on master build status change
    * Add License header to Jenkinsfile
    * Remove unneeded poll trigger
---
 Jenkinsfile | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 50 insertions(+), 8 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index f521de9..e21450b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,19 +1,36 @@
+/*
+ * 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.
+ */
+
 pipeline {
     agent {
         label 'ubuntu'
     }
-    
+
     tools {
         jdk 'JDK 1.8 (latest)'
     }
 
     options {
-        buildDiscarder(logRotator(numToKeepStr: '10'))
+        buildDiscarder(logRotator(
+            numToKeepStr: '30',
+        ))
         timestamps()
-    }
-
-    triggers {
-        pollSCM('H/15 * * * *')
+        skipStagesAfterUnstable()
+        timeout time: 30, unit: 'MINUTES'
     }
 
     stages {
@@ -23,7 +40,7 @@ pipeline {
                 checkout scm
             }
         }
-        
+
         stage('Check environment') {
             steps {
                 sh 'env'
@@ -39,13 +56,38 @@ pipeline {
                 sh './mvnw clean install'
             }
         }
-    }
 
+        /*
+        TODO uncomment and finish up the command here once we're ready to release snapshots
+        stage('Publish snapshot') {
+            when {
+                branch 'master'
+            }
+            steps {
+                sh './mvnw $TODO'
+            }
+        }
+         */
+    }
 
     post {
         always {
             junit '**/target/surefire-reports/*.xml'
             deleteDir()
         }
+
+        changed {
+            script {
+                if (env.BRANCH_NAME == 'master') {
+                    emailext(
+                        subject: "[${currentBuild.projectName}] master is ${currentBuild.currentResult} (#${currentBuild.number})",
+                        to: 'notifications@zipkin.apache.org',
+                        replyTo: 'dev@zipkin.apache.org',
+                        body: "See <${currentBuild.absoluteUrl}>"
+                    )
+                }
+            }
+
+        }
     }
 }


[incubator-zipkin-brave-karaf] 12/46: Adding release files

Posted by ab...@apache.org.
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 e299dc674b7fa879f564909aadb9b23a6766f784
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 11:50:14 2017 +0200

    Adding release files
---
 RELEASE.md |  41 +++++++++++
 mvnw       | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 mvnw.cmd   | 146 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 423 insertions(+)

diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 0000000..bdb1b4c
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,41 @@
+# Zipkin AWS Release Process
+
+This repo uses semantic versions. Please keep this in mind when choosing version numbers.
+
+1. **Alert others you are releasing**
+
+   There should be no commits made to master while the release is in progress (about 10 minutes). Before you start
+   a release, alert others on [gitter](https://gitter.im/openzipkin/zipkin) so that they don't accidentally merge
+   anything. If they do, and the build fails because of that, you'll have to recreate the release tag described below.
+
+1. **Push a git tag**
+
+   The tag should be of the format `release-N.M.L`, for example `release-3.7.1`.
+
+1. **Wait for CircleCI**
+
+   This part is controlled by [`build-support/publish-stable.sh`](build-support/publish-stable.sh). It creates a bunch of new commits, bumps
+   the version, publishes artifacts, and syncs to Maven Central. https://circleci.com/gh/openzipkin/brave
+
+## Credentials
+
+Credentials of various kind are needed for the release process to work. If you notice something
+failing due to unauthorized, re-save them as [environment variables](https://circleci.com/gh/openzipkin/brave/edit#env-vars).
+
+## First release of the year
+
+The license plugin verifies license headers of files include a copyright notice indicating the years a file was affected.
+This information is taken from git history. There's a once-a-year problem with files that include version numbers (pom.xml).
+When a release tag is made, it increments version numbers, then commits them to git. On the first release of the year,
+further commands will fail due to the version increments invalidating the copyright statement. The way to sort this out is
+the following:
+
+Before you do the first release of the year, move the SNAPSHOT version back and forth from whatever the current is.
+In-between, re-apply the licenses.
+```bash
+$ ./mvnw versions:set -DnewVersion=1.3.3-SNAPSHOT -DgenerateBackupPoms=false
+$ ./mvnw com.mycila:license-maven-plugin:format
+$ ./mvnw versions:set -DnewVersion=1.3.2-SNAPSHOT -DgenerateBackupPoms=false
+$ git commit -am"Adjusts copyright headers for this year"
+```
+
diff --git a/mvnw b/mvnw
new file mode 100755
index 0000000..6ecc150
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,236 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# 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.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+           #
+           # Look for the Apple JDKs first to preserve the existing behaviour, and then look
+           # for the new JDKs provided by Oracle.
+           #
+           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
+             #
+             # Apple JDKs
+             #
+             export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
+           fi
+
+           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
+             #
+             # Apple JDKs
+             #
+             export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
+           fi
+
+           if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
+             #
+             # Oracle JDKs
+             #
+             export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
+           fi
+
+           if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
+             #
+             # Apple JDKs
+             #
+             export JAVA_HOME=`/usr/libexec/java_home`
+           fi
+           ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+  local basedir=$(pwd)
+  local wdir=$(pwd)
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    wdir=$(cd "$wdir/.."; pwd)
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in $@
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..8e2b745
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,146 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %*
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar""
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in %*
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%


[incubator-zipkin-brave-karaf] 32/46: version bumps

Posted by ab...@apache.org.
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 d5ae1e2c3b3cc6e63ca93ad6491cff0a7765fbb8
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Sat Sep 8 08:48:37 2018 -0400

    version bumps
---
 pom.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2616e8d..8ebe8cf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,9 +43,9 @@
     <main.basedir>${project.basedir}</main.basedir>
 
     <!-- Make sure these versions match brave-bom -->
-    <brave.version>5.1.5</brave.version>
-    <zipkin.version>2.10.4</zipkin.version>
-    <zipkin-reporter.version>2.7.7</zipkin-reporter.version>
+    <brave.version>5.3.0</brave.version>
+    <zipkin.version>2.11.5</zipkin.version>
+    <zipkin-reporter.version>2.7.8</zipkin-reporter.version>
 
     <license-maven-plugin.version>2.11</license-maven-plugin.version>
     <maven-failsafe-plugin.version>2.22.0</maven-failsafe-plugin.version>


[incubator-zipkin-brave-karaf] 45/46: fixes repository drift

Posted by ab...@apache.org.
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 cb45f09bffd0fe1acc4eef1eeb388eb7136b10c8
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Thu Jan 31 12:13:08 2019 +0100

    fixes repository drift
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index f9e7840..3b8e9ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -113,11 +113,11 @@
 
   <distributionManagement>
     <repository>
-      <id>apache.releases</id>
+      <id>apache.releases.https</id>
       <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
     </repository>
     <snapshotRepository>
-      <id>apache.snapshots</id>
+      <id>apache.snapshots.https</id>
       <url>https://repository.apache.org/content/repositories/snapshots/</url>
     </snapshotRepository>
   </distributionManagement>


[incubator-zipkin-brave-karaf] 18/46: Also install top make jars available for pax exam

Posted by ab...@apache.org.
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 9ff54a9585bb819ee1e8ec071c10ec3097df535f
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 13:50:02 2017 +0200

    Also install top make jars available for pax exam
---
 circle.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/circle.yml b/circle.yml
index aa6c311..cf12423 100644
--- a/circle.yml
+++ b/circle.yml
@@ -27,7 +27,7 @@ dependencies:
 
 test:
   override:
-    - ./mvnw verify
+    - ./mvnw verify install
   post:
     # parameters used during release
     # allocate commits to CI, not the owner of the deploy key


[incubator-zipkin-brave-karaf] 39/46: Switches to ASF license header (#11)

Posted by ab...@apache.org.
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 a0e57396a40473b5c412f708e12b8affff676244
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Wed Jan 30 15:47:14 2019 +0100

    Switches to ASF license header (#11)
---
 .circleci/config.yml                               | 21 ++++++++++--------
 .settings.xml                                      | 21 ++++++++++--------
 build-support/go-offline.sh                        | 21 ++++++++++--------
 build-support/pom-no-crossmodule-dependencies.xsl  | 21 ++++++++++--------
 build-support/publish-snapshot.sh                  | 21 ++++++++++--------
 build-support/publish-stable.sh                    | 21 ++++++++++--------
 build-support/trigger-publish.sh                   | 21 ++++++++++--------
 exporter-sender-kafka/pom.xml                      | 21 ++++++++++--------
 .../exporter/sender/kafka/KafkaSenderExporter.java | 21 ++++++++++--------
 .../sender/kafka/KafkaSenderExporterTest.java      | 21 ++++++++++--------
 exporter-sender-okhttp/pom.xml                     | 21 ++++++++++--------
 .../sender/okhttp/SenderOkHttpExporter.java        | 21 ++++++++++--------
 exporter/pom.xml                                   | 21 ++++++++++--------
 .../brave/exporter/AsyncReporterExporter.java      | 21 ++++++++++--------
 .../zipkin/brave/exporter/HttpTracingExporter.java | 21 ++++++++++--------
 .../io/zipkin/brave/exporter/TracingExporter.java  | 21 ++++++++++--------
 .../urlconnection/URLConnectionSenderExporter.java | 21 ++++++++++--------
 features/pom.xml                                   | 21 ++++++++++--------
 features/src/main/resources/features.xml           | 25 ++++++++++++----------
 itests/pom.xml                                     | 25 ++++++++++++----------
 .../java/io/zipkin/brave/itests/BraveTest.java     | 21 ++++++++++--------
 itests/src/test/resources/exam.properties          | 22 ++++++++++++-------
 itests/src/test/resources/logback.xml              | 21 ++++++++++--------
 pom.xml                                            | 24 ++++++++++-----------
 src/etc/header.txt                                 | 21 ++++++++++--------
 25 files changed, 306 insertions(+), 231 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index a7b9525..f0befa3 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,15 +1,18 @@
 #
-# Copyright 2016-2018 The OpenZipkin Authors
+# 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
 #
-# 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
 #
-# 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.
+# 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.
 #
 
 version: 2
diff --git a/.settings.xml b/.settings.xml
index 15f5f03..4238612 100644
--- a/.settings.xml
+++ b/.settings.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2016-2018 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
diff --git a/build-support/go-offline.sh b/build-support/go-offline.sh
index 908a863..745320f 100755
--- a/build-support/go-offline.sh
+++ b/build-support/go-offline.sh
@@ -1,16 +1,19 @@
 #!/bin/bash
 #
-# Copyright 2016 The OpenZipkin Authors
+# 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
 #
-# 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
 #
-# 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.
+# 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.
 #
 
 # Due to https://issues.apache.org/jira/browse/MDEP-323 and cross-module dependencies,
diff --git a/build-support/pom-no-crossmodule-dependencies.xsl b/build-support/pom-no-crossmodule-dependencies.xsl
index 1eab405..c2cc56d 100644
--- a/build-support/pom-no-crossmodule-dependencies.xsl
+++ b/build-support/pom-no-crossmodule-dependencies.xsl
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2016 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pom="http://maven.apache.org/POM/4.0.0">
diff --git a/build-support/publish-snapshot.sh b/build-support/publish-snapshot.sh
index ee42e0b..6038bb2 100755
--- a/build-support/publish-snapshot.sh
+++ b/build-support/publish-snapshot.sh
@@ -1,16 +1,19 @@
 #!/usr/bin/env bash
 #
-# Copyright 2016-2017 The OpenZipkin Authors
+# 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
 #
-# 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
 #
-# 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.
+# 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.
 #
 
 set -euo pipefail
diff --git a/build-support/publish-stable.sh b/build-support/publish-stable.sh
index 0dc7479..2ea161d 100755
--- a/build-support/publish-stable.sh
+++ b/build-support/publish-stable.sh
@@ -1,16 +1,19 @@
 #!/usr/bin/env bash
 #
-# Copyright 2016 The OpenZipkin Authors
+# 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
 #
-# 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
 #
-# 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.
+# 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.
 #
 
 set -euo pipefail
diff --git a/build-support/trigger-publish.sh b/build-support/trigger-publish.sh
index 04bcd80..059dd95 100755
--- a/build-support/trigger-publish.sh
+++ b/build-support/trigger-publish.sh
@@ -1,16 +1,19 @@
 #!/usr/bin/env bash
 #
-# Copyright 2016 The OpenZipkin Authors
+# 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
 #
-# 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
 #
-# 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.
+# 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.
 #
 
 set -euo pipefail
diff --git a/exporter-sender-kafka/pom.xml b/exporter-sender-kafka/pom.xml
index 1911a7c..93d9415 100644
--- a/exporter-sender-kafka/pom.xml
+++ b/exporter-sender-kafka/pom.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright 2016-2018 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
diff --git a/exporter-sender-kafka/src/main/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporter.java b/exporter-sender-kafka/src/main/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporter.java
index 48d2b38..6e3a05b 100644
--- a/exporter-sender-kafka/src/main/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporter.java
+++ b/exporter-sender-kafka/src/main/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporter.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.exporter.sender.kafka;
 
diff --git a/exporter-sender-kafka/src/test/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporterTest.java b/exporter-sender-kafka/src/test/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporterTest.java
index 3c685c3..b01f33d 100644
--- a/exporter-sender-kafka/src/test/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporterTest.java
+++ b/exporter-sender-kafka/src/test/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporterTest.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.exporter.sender.kafka;
 
diff --git a/exporter-sender-okhttp/pom.xml b/exporter-sender-okhttp/pom.xml
index 9149e56..d349186 100644
--- a/exporter-sender-okhttp/pom.xml
+++ b/exporter-sender-okhttp/pom.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright 2016-2018 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
diff --git a/exporter-sender-okhttp/src/main/java/io/zipkin/brave/exporter/sender/okhttp/SenderOkHttpExporter.java b/exporter-sender-okhttp/src/main/java/io/zipkin/brave/exporter/sender/okhttp/SenderOkHttpExporter.java
index 4899f1b..5072838 100644
--- a/exporter-sender-okhttp/src/main/java/io/zipkin/brave/exporter/sender/okhttp/SenderOkHttpExporter.java
+++ b/exporter-sender-okhttp/src/main/java/io/zipkin/brave/exporter/sender/okhttp/SenderOkHttpExporter.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.exporter.sender.okhttp;
 
diff --git a/exporter/pom.xml b/exporter/pom.xml
index a62e348..82c5c22 100644
--- a/exporter/pom.xml
+++ b/exporter/pom.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright 2016-2018 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
index 29d6650..93c6465 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.exporter;
 
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
index 87d700b..f8630c3 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.exporter;
 
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
index 67e660c..e5f3b25 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.exporter;
 
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
index 1d292eb..0c091d7 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.exporter.sender.urlconnection;
 
diff --git a/features/pom.xml b/features/pom.xml
index cc1b1ef..a4a1a82 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2016-2018 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
index 2933d20..ab19bde 100644
--- a/features/src/main/resources/features.xml
+++ b/features/src/main/resources/features.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    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.
+    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.
 
 -->
 <features name="brave" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
diff --git a/itests/pom.xml b/itests/pom.xml
index ebef717..8d4564d 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2016-2018 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.
+    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.
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
diff --git a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index 47054f7..604f21c 100644
--- a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -1,15 +1,18 @@
 /*
- * Copyright 2016-2018 The OpenZipkin Authors
+ * 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
  *
- * 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
  *
- * 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.
+ * 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.itests;
 
diff --git a/itests/src/test/resources/exam.properties b/itests/src/test/resources/exam.properties
index 1c7a353..c0512eb 100644
--- a/itests/src/test/resources/exam.properties
+++ b/itests/src/test/resources/exam.properties
@@ -1,14 +1,20 @@
-#    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
+# 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
+#     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.
+# 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.
+#
+
 pax.exam.logging = none
 pax.exam.service.timeout = 5000
 brave-karaf.version=@project.version@
diff --git a/itests/src/test/resources/logback.xml b/itests/src/test/resources/logback.xml
index 56da3f3..344307d 100644
--- a/itests/src/test/resources/logback.xml
+++ b/itests/src/test/resources/logback.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2016 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <configuration>
diff --git a/pom.xml b/pom.xml
index ace6669..7af9ba2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2016-2019 The OpenZipkin Authors
+    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
 
-    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
 
-    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.
+    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.
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -331,9 +334,6 @@
             <exclude>**/.idea/**</exclude>
             <exclude>LICENSE</exclude>
             <exclude>**/*.md</exclude>
-            <exclude>src/test/resources/**</exclude>
-            <exclude>src/main/resources/**</exclude>
-            <exclude>build-support/**</exclude>
           </excludes>
           <strictCheck>true</strictCheck>
         </configuration>
diff --git a/src/etc/header.txt b/src/etc/header.txt
index 6dba3bd..1745cfe 100644
--- a/src/etc/header.txt
+++ b/src/etc/header.txt
@@ -1,11 +1,14 @@
-Copyright ${license.git.copyrightYears} The OpenZipkin Authors
+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
 
-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
 
-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.
+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.


[incubator-zipkin-brave-karaf] 29/46: Merge pull request #5 from openzipkin/revamp

Posted by ab...@apache.org.
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 18f6b2cf617aca3fb5afd9d1de61143301576444
Merge: da4cc9b 0eb1b7a
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Wed Aug 1 14:47:01 2018 +0200

    Merge pull request #5 from openzipkin/revamp
    
    Revamps project to recent version of Brave and refactors senders

 .gitignore                                         |  14 +-
 .mvn/wrapper/MavenWrapperDownloader.java           | 110 +++
 .mvn/wrapper/maven-wrapper.jar                     | Bin 49519 -> 48337 bytes
 .mvn/wrapper/maven-wrapper.properties              |   2 +-
 .settings.xml                                      |   2 +-
 brave-exporter-kafka08/pom.xml                     |  90 ---
 .../osgi/exporter/kafka/KafkaReporterExporter.java |  90 ---
 brave-exporter-okhttp3/pom.xml                     | 103 ---
 .../okhttp3/internal/OkHttp3ReporterExporter.java  | 140 ----
 brave-exporter/pom.xml                             |  85 ---
 .../zipkin/brave/osgi/exporter/BraveExporter.java  |  66 --
 .../urlconnect/SenderUrlConnectExporter.java       |  71 --
 brave-features/.classpath                          |  36 -
 brave-features/pom.xml                             |  80 ---
 brave-features/src/main/resources/features.xml     |  60 --
 brave-itests/pom.xml                               | 175 -----
 .../java/io/zipkin/brave/itests/BraveTest.java     | 126 ----
 exporter-sender-kafka/pom.xml                      |  78 +++
 .../exporter/sender/kafka/KafkaSenderExporter.java |  80 +++
 .../sender/kafka/KafkaSenderExporterTest.java      |  45 +-
 exporter-sender-okhttp/pom.xml                     |  73 ++
 .../sender/okhttp/SenderOkHttpExporter.java        |  63 ++
 exporter/pom.xml                                   |  77 +++
 .../brave/exporter/AsyncReporterExporter.java      |  56 ++
 .../zipkin/brave/exporter/HttpTracingExporter.java |  52 ++
 .../io/zipkin/brave/exporter/TracingExporter.java  |  68 ++
 .../urlconnection/URLConnectionSenderExporter.java |  66 ++
 features/pom.xml                                   |  81 +++
 features/src/main/resources/features.xml           |  45 ++
 {brave-itests => itests}/.gitignore                |   0
 itests/pom.xml                                     | 156 +++++
 .../java/io/zipkin/brave/itests/BraveTest.java     | 112 +++
 .../src/test/resources/exam.properties             |   0
 .../src/test/resources/logback.xml                 |   0
 mvnw                                               | 158 +++--
 mvnw.cmd                                           |  26 +-
 pom.xml                                            | 766 ++++++++++++---------
 37 files changed, 1715 insertions(+), 1537 deletions(-)


[incubator-zipkin-brave-karaf] 03/46: First version of features and test

Posted by ab...@apache.org.
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 af6ca7a151475731a70954708f757a25fecd2750
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Dec 8 18:35:20 2016 +0100

    First version of features and test
---
 .gitignore                                         |   3 +
 brave-features/.classpath                          |  36 +++++
 brave-features/pom.xml                             |  80 +++++++++++
 brave-features/src/main/resources/features.xml     |  43 ++++++
 brave-features/target/classes/features.xml         |  43 ++++++
 brave-itests/.classpath                            |  31 +++++
 brave-itests/.gitignore                            |   1 +
 brave-itests/pom.xml                               | 153 +++++++++++++++++++++
 .../java/io/zipkin/brave/itests/BraveTest.java     |  79 +++++++++++
 brave-itests/src/test/resources/exam.properties    |   2 +
 brave-itests/src/test/resources/logback.xml        |  25 ++++
 brave-itests/test.log                              |  12 ++
 pom.xml                                            |   4 +-
 13 files changed, 511 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 32858aa..acd2dc3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,6 @@
 
 # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 hs_err_pid*
+
+.project
+.settings
diff --git a/brave-features/.classpath b/brave-features/.classpath
new file mode 100644
index 0000000..fae1a2b
--- /dev/null
+++ b/brave-features/.classpath
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/brave-features/pom.xml b/brave-features/pom.xml
new file mode 100644
index 0000000..2a1bb0f
--- /dev/null
+++ b/brave-features/pom.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+        <groupId>io.zipkin.brave.karaf</groupId>
+        <artifactId>brave-karaf-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+	</parent>
+	<artifactId>brave-features</artifactId>
+	<packaging>pom</packaging>
+    
+    <properties>
+        <main.basedir>${project.basedir}/..</main.basedir>
+    </properties>
+
+	<build>
+		<resources>
+			<resource>
+				<directory>src/main/resources</directory>
+				<filtering>true</filtering>
+			</resource>
+		</resources>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+				<version>2.7</version>
+				<executions>
+					<execution>
+						<id>filter</id>
+						<phase>generate-resources</phase>
+						<goals>
+							<goal>resources</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<version>1.7</version>
+				<executions>
+					<execution>
+						<id>attach-artifacts</id>
+						<phase>package</phase>
+						<goals>
+							<goal>attach-artifact</goal>
+						</goals>
+						<configuration>
+							<artifacts>
+								<artifact>
+									<file>target/classes/features.xml</file>
+									<type>xml</type>
+									<classifier>features</classifier>
+								</artifact>
+							</artifacts>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/brave-features/src/main/resources/features.xml b/brave-features/src/main/resources/features.xml
new file mode 100644
index 0000000..2b70909
--- /dev/null
+++ b/brave-features/src/main/resources/features.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<features name="brave" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
+
+	<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.8/xml/features</repository>
+
+	<feature name="brave-core">
+		<bundle dependency="true">mvn:io.zipkin.java/zipkin/${zipkin.version}</bundle>
+		<bundle dependency="true">mvn:io.zipkin.reporter/zipkin-reporter/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.reporter/zipkin-sender-urlconnection/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-core/${brave.version}</bundle>
+	</feature>
+	
+	<feature name="brave-kafka">
+		<feature>brave-core</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/0.8.2.2_1</bundle>
+		<bundle>mvn:io.zipkin.reporter/zipkin-sender-kafka08/${zipkin.reporter.version}</bundle>
+	</feature>
+	
+	<feature name="brave-jaxrs2">
+		<feature>brave-core</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_2</bundle>
+		<bundle dependency="true">mvn:io.zipkin.brave/brave-http/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-jaxrs2/${brave.version}</bundle>
+	</feature>
+
+</features>
\ No newline at end of file
diff --git a/brave-features/target/classes/features.xml b/brave-features/target/classes/features.xml
new file mode 100644
index 0000000..dbde578
--- /dev/null
+++ b/brave-features/target/classes/features.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<features name="brave" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
+
+	<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.8/xml/features</repository>
+
+	<feature name="brave-core">
+		<bundle dependency="true">mvn:io.zipkin.java/zipkin/1.16.0</bundle>
+		<bundle dependency="true">mvn:io.zipkin.reporter/zipkin-reporter/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.reporter/zipkin-sender-urlconnection/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-core/3.16.0</bundle>
+	</feature>
+	
+	<feature name="brave-kafka">
+		<feature>brave-core</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/0.8.2.2_1</bundle>
+		<bundle>mvn:io.zipkin.reporter/zipkin-sender-kafka08/${zipkin.reporter.version}</bundle>
+	</feature>
+	
+	<feature name="brave-jaxrs2">
+		<feature>brave-core</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_2</bundle>
+		<bundle dependency="true">mvn:io.zipkin.brave/brave-http/3.16.0</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-jaxrs2/3.16.0</bundle>
+	</feature>
+
+</features>
\ No newline at end of file
diff --git a/brave-itests/.classpath b/brave-itests/.classpath
new file mode 100644
index 0000000..b2acffc
--- /dev/null
+++ b/brave-itests/.classpath
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/brave-itests/.gitignore b/brave-itests/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/brave-itests/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/brave-itests/pom.xml b/brave-itests/pom.xml
new file mode 100644
index 0000000..158a9a7
--- /dev/null
+++ b/brave-itests/pom.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+        <groupId>io.zipkin.brave.karaf</groupId>
+        <artifactId>brave-karaf-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+	</parent>
+	<artifactId>brave-itests</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+
+	<properties>
+		<pax.exam.version>4.5.0</pax.exam.version>
+		<pax.url.version>2.1.0</pax.url.version>
+		<logback.version>1.0.4</logback.version>
+		<slf4j.version>1.7.4</slf4j.version>
+		<karaf.version>4.0.7</karaf.version>
+		<junit.version>4.12</junit.version>
+        <main.basedir>${project.basedir}/..</main.basedir>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>io.zipkin.brave</groupId>
+			<artifactId>brave-core</artifactId>
+			<version>${brave.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<scope>test</scope>
+		</dependency>
+
+		<!-- Pax Exam Dependencies -->
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-junit4</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-invoker-junit</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<!-- Karaf Container -->
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-container-karaf</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-inject</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-extender-service</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<!-- Preferred link because it does not require an mvn url handler implicitely. -->
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-link-mvn</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.ops4j.pax.exam</groupId>
+			<artifactId>pax-exam-link-assembly</artifactId>
+			<version>${pax.exam.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>ch.qos.logback</groupId>
+			<artifactId>logback-core</artifactId>
+			<version>${logback.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>ch.qos.logback</groupId>
+			<artifactId>logback-classic</artifactId>
+			<version>${logback.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.geronimo.specs</groupId>
+			<artifactId>geronimo-atinject_1.0_spec</artifactId>
+			<version>1.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.core</artifactId>
+			<version>4.3.1</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.compendium</artifactId>
+			<version>4.3.1</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- framework to test with -->
+		<dependency>
+			<groupId>org.apache.karaf.features</groupId>
+			<artifactId>standard</artifactId>
+			<version>${karaf.version}</version>
+			<type>xml</type>
+			<classifier>features</classifier>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.karaf.features</groupId>
+			<artifactId>org.apache.karaf.features.core</artifactId>
+			<version>${karaf.version}</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+</project>
diff --git a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
new file mode 100644
index 0000000..580bf4c
--- /dev/null
+++ b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -0,0 +1,79 @@
+/**
+ * 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.itests;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.ops4j.pax.exam.CoreOptions.maven;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.github.kristofa.brave.Brave;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
+import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
+import org.ops4j.pax.exam.options.MavenUrlReference;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+import zipkin.Span;
+import zipkin.reporter.Reporter;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class BraveTest {
+    List<Object> spans = new ArrayList<>();
+
+    @Configuration
+    public static Option[] configuration() throws Exception {
+        MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
+            .type("zip").version("4.0.7");
+        MavenUrlReference brave = maven().groupId("net.lr.brave.osgi").artifactId("brave-features").type("xml")
+           .classifier("features").version("0.0.1-SNAPSHOT");
+        return new Option[] //
+        {
+         karafDistributionConfiguration().frameworkUrl(karaf).useDeployFolder(false),
+         configureConsole().ignoreLocalConsole(), //
+         logLevel(LogLevel.INFO), //
+         keepRuntimeFolder(), //
+         features(brave, "brave-core")
+        };
+    }
+
+    @Test
+    public void shouldHaveBundleContext() {
+        Reporter<Span> local = new Reporter<Span>() {
+
+            @Override
+            public void report(Span span) {
+                spans.add(span);
+            }
+        };
+        Brave brave = new Brave.Builder().reporter(local).build();
+        brave.localTracer().startNewSpan("test", "testop");
+        brave.localTracer().finishSpan();
+        Assert.assertThat(1, equalTo(spans.size()));
+    }
+
+}
diff --git a/brave-itests/src/test/resources/exam.properties b/brave-itests/src/test/resources/exam.properties
new file mode 100644
index 0000000..4936b4a
--- /dev/null
+++ b/brave-itests/src/test/resources/exam.properties
@@ -0,0 +1,2 @@
+pax.exam.logging = none
+pax.exam.service.timeout = 5000
diff --git a/brave-itests/src/test/resources/logback.xml b/brave-itests/src/test/resources/logback.xml
new file mode 100644
index 0000000..c35d3ca
--- /dev/null
+++ b/brave-itests/src/test/resources/logback.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+
+  <!--  log to System.out on console  -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+    </appender>
+  
+  <!--  log to file test.log  -->
+    <appender name="TEST_LOG" class="ch.qos.logback.core.FileAppender">
+        <file>test.log</file>
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+    </appender>
+
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="TEST_LOG" />
+    </root>
+    <logger name="org.ops4j.pax.exam" level="INFO" />
+
+</configuration>
\ No newline at end of file
diff --git a/brave-itests/test.log b/brave-itests/test.log
new file mode 100644
index 0000000..816493b
--- /dev/null
+++ b/brave-itests/test.log
@@ -0,0 +1,12 @@
+18:31:51.236 [main] INFO  o.o.pax.exam.spi.DefaultExamSystem - Pax Exam System (Version: 4.5.0) created.
+18:31:51.259 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - creating PaxExam runner for class io.zipkin.brave.itests.BraveTest
+18:31:51.296 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - running test class io.zipkin.brave.itests.BraveTest
+18:31:51.887 [main] INFO  o.o.p.e.k.c.i.KarafTestContainer - Wait for test container to finish its initialization [ RelativeTimeout value = 180000 ]
+18:31:51.887 [main] INFO  o.o.p.e.r.c.RemoteBundleContextClient - Waiting for remote bundle context.. on 21000 name: 8e7b7902-4f23-4c53-b6ce-f0e9726bb409 timout: [ RelativeTimeout value = 180000 ]
+18:31:55.829 [main] INFO  o.o.p.e.spi.reactors.ReactorManager - suite finished
+18:34:24.681 [main] INFO  o.o.pax.exam.spi.DefaultExamSystem - Pax Exam System (Version: 4.5.0) created.
+18:34:24.706 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - creating PaxExam runner for class io.zipkin.brave.itests.BraveTest
+18:34:24.748 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - running test class io.zipkin.brave.itests.BraveTest
+18:34:25.317 [main] INFO  o.o.p.e.k.c.i.KarafTestContainer - Wait for test container to finish its initialization [ RelativeTimeout value = 180000 ]
+18:34:25.318 [main] INFO  o.o.p.e.r.c.RemoteBundleContextClient - Waiting for remote bundle context.. on 21000 name: a46215d8-24fb-41ee-b43b-6abd9c827388 timout: [ RelativeTimeout value = 180000 ]
+18:34:29.355 [main] INFO  o.o.p.e.spi.reactors.ReactorManager - suite finished
diff --git a/pom.xml b/pom.xml
index d31d811..fe8f27a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,6 +23,8 @@
   <packaging>pom</packaging>
 
   <modules>
+      <module>brave-features</module>
+      <module>brave-itests</module>
   </modules>
 
   <properties>
@@ -37,6 +39,7 @@
 
     <license-maven-plugin.version>2.11</license-maven-plugin.version>
 
+    <brave.version>3.16.0</brave.version>
     <zipkin.version>1.16.0</zipkin.version>
     <zipkin-reporter.version>0.6.7</zipkin-reporter.version>
 
@@ -116,7 +119,6 @@
     <dependency>
       <groupId>io.zipkin.java</groupId>
       <artifactId>zipkin</artifactId>
-      <version>${zipkin.version}</version>
     </dependency>
 
     <!-- don't worry. auto-* are source retention, not runtime -->


[incubator-zipkin-brave-karaf] 46/46: [jenkins] Don't try to sign snapshot builds

Posted by ab...@apache.org.
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 9dacc4b7376c9ed6fd0eadbd2de2e0b8bd268ea9
Author: Zoltan Nagy <ab...@fb.com>
AuthorDate: Thu Jan 31 11:19:01 2019 +0000

    [jenkins] Don't try to sign snapshot builds
---
 Jenkinsfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 99e7438..89fbca9 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -62,7 +62,7 @@ pipeline {
                 branch 'master'
             }
             steps {
-                sh './mvnw clean deploy -Papache-release'
+                sh './mvnw clean deploy -Papache-release -Dgpg.skip=true'
             }
         }
     }


[incubator-zipkin-brave-karaf] 15/46: Adding maven-wrapper

Posted by ab...@apache.org.
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 9999cfb5af992192e5a204db1bd592399bd78789
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 13:23:04 2017 +0200

    Adding maven-wrapper
---
 .gitignore                     |   1 -
 .mvn/wrapper/maven-wrapper.jar | Bin 0 -> 49519 bytes
 2 files changed, 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 249346c..3e4494c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,6 @@
 .mtj.tmp/
 
 # Package Files #
-*.jar
 *.war
 *.ear
 
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..c6feb8b
Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ


[incubator-zipkin-brave-karaf] 40/46: Uses ASF parent and moves to ASF group IDs (#12)

Posted by ab...@apache.org.
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 9b18b454479d9be98fbbfb4d592b983d962bcd7b
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Wed Jan 30 17:59:17 2019 +0100

    Uses ASF parent and moves to ASF group IDs (#12)
---
 build-support/pom-no-crossmodule-dependencies.xsl          | 2 +-
 exporter-sender-kafka/pom.xml                              | 2 +-
 exporter-sender-okhttp/pom.xml                             | 2 +-
 exporter/pom.xml                                           | 2 +-
 features/pom.xml                                           | 2 +-
 features/src/main/resources/features.xml                   | 6 +++---
 itests/pom.xml                                             | 8 ++++----
 itests/src/test/java/io/zipkin/brave/itests/BraveTest.java | 2 +-
 pom.xml                                                    | 8 +++++++-
 9 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/build-support/pom-no-crossmodule-dependencies.xsl b/build-support/pom-no-crossmodule-dependencies.xsl
index c2cc56d..bb7a4b3 100644
--- a/build-support/pom-no-crossmodule-dependencies.xsl
+++ b/build-support/pom-no-crossmodule-dependencies.xsl
@@ -24,6 +24,6 @@
     </xsl:copy>
   </xsl:template>
 
-  <xsl:template match="pom:dependency[pom:groupId = 'io.zipkin.brave.karaf']" />
+  <xsl:template match="pom:dependency[pom:groupId = 'org.apache.zipkin.brave.karaf']" />
   <xsl:template match="pom:dependency[pom:groupId = '${project.groupId}']" />
 </xsl:stylesheet>
diff --git a/exporter-sender-kafka/pom.xml b/exporter-sender-kafka/pom.xml
index 93d9415..5857b82 100644
--- a/exporter-sender-kafka/pom.xml
+++ b/exporter-sender-kafka/pom.xml
@@ -19,7 +19,7 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
-    <groupId>io.zipkin.brave.karaf</groupId>
+    <groupId>org.apache.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.2-SNAPSHOT</version>
   </parent>
diff --git a/exporter-sender-okhttp/pom.xml b/exporter-sender-okhttp/pom.xml
index d349186..dafb41b 100644
--- a/exporter-sender-okhttp/pom.xml
+++ b/exporter-sender-okhttp/pom.xml
@@ -19,7 +19,7 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
-    <groupId>io.zipkin.brave.karaf</groupId>
+    <groupId>org.apache.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.2-SNAPSHOT</version>
   </parent>
diff --git a/exporter/pom.xml b/exporter/pom.xml
index 82c5c22..637bf43 100644
--- a/exporter/pom.xml
+++ b/exporter/pom.xml
@@ -19,7 +19,7 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
-    <groupId>io.zipkin.brave.karaf</groupId>
+    <groupId>org.apache.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.2-SNAPSHOT</version>
   </parent>
diff --git a/features/pom.xml b/features/pom.xml
index a4a1a82..837ebfc 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -20,7 +20,7 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>io.zipkin.brave.karaf</groupId>
+    <groupId>org.apache.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.2-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
index ab19bde..0c2d711 100644
--- a/features/src/main/resources/features.xml
+++ b/features/src/main/resources/features.xml
@@ -28,14 +28,14 @@
 		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-urlconnection/${zipkin-reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave/brave/${brave.version}</bundle>
 		<bundle>mvn:io.zipkin.brave/brave-instrumentation-http/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter/${project.version}</bundle>
+		<bundle>mvn:org.apache.zipkin.brave.karaf/brave-exporter/${project.version}</bundle>
 	</feature>
 
 	<feature name="brave-sender-kafka">
 		<feature>brave</feature>
 		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/2.0.0_1</bundle>
 		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-kafka11/${zipkin-reporter.version}</bundle>
-		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-kafka/${project.version}</bundle>
+		<bundle>mvn:org.apache.zipkin.brave.karaf/brave-exporter-sender-kafka/${project.version}</bundle>
 	</feature>
 
 	<feature name="brave-sender-okhttp">
@@ -45,6 +45,6 @@
 		<!-- for javax.annotation.Nullable used by OkHttp. Lacking this is a problem in JDK 11 -->
 		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/3.0.2_1</bundle>
 		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-okhttp3/${zipkin-reporter.version}</bundle>
-		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
+		<bundle>mvn:org.apache.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
 	</feature>
 </features>
diff --git a/itests/pom.xml b/itests/pom.xml
index 8d4564d..bd447a4 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -20,7 +20,7 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>io.zipkin.brave.karaf</groupId>
+    <groupId>org.apache.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.2-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -35,7 +35,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>io.zipkin.brave.karaf</groupId>
+      <groupId>org.apache.zipkin.brave.karaf</groupId>
       <artifactId>brave-exporter</artifactId>
     </dependency>
     <dependency>
@@ -48,7 +48,7 @@
     </dependency>
 
     <dependency>
-      <groupId>io.zipkin.brave.karaf</groupId>
+      <groupId>org.apache.zipkin.brave.karaf</groupId>
       <artifactId>brave-exporter-sender-kafka</artifactId>
     </dependency>
     <dependency>
@@ -57,7 +57,7 @@
     </dependency>
 
     <dependency>
-      <groupId>io.zipkin.brave.karaf</groupId>
+      <groupId>org.apache.zipkin.brave.karaf</groupId>
       <artifactId>brave-exporter-sender-okhttp</artifactId>
     </dependency>
     <dependency>
diff --git a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index 604f21c..456649a 100644
--- a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -63,7 +63,7 @@ public class BraveTest {
         .type("zip")
         .version(getVersionFromMaven("org.apache.karaf.features/org.apache.karaf.features.core"));
     MavenUrlReference brave =
-        maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
+        maven().groupId("org.apache.zipkin.brave.karaf").artifactId("brave-features").type("xml")
             .classifier("features").version(getBraveKarafVersion());
     return new Option[] {
         karafDistributionConfiguration().frameworkUrl(karaf).useDeployFolder(false),
diff --git a/pom.xml b/pom.xml
index 7af9ba2..1cf4581 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,13 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
-  <groupId>io.zipkin.brave.karaf</groupId>
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>10</version>
+  </parent>
+
+  <groupId>org.apache.zipkin.brave.karaf</groupId>
   <artifactId>brave-karaf-parent</artifactId>
   <version>0.1.2-SNAPSHOT</version>
   <packaging>pom</packaging>


[incubator-zipkin-brave-karaf] 05/46: Add exporter for Brave and Reporter service (#1)

Posted by ab...@apache.org.
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 4d87ae198b64b9cc7312800b4867881a3679a33f
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Fri Dec 9 17:54:17 2016 +0100

    Add exporter for Brave and Reporter service (#1)
---
 .gitignore                                         |   1 +
 brave-exporter/pom.xml                             |  83 +++
 .../zipkin/brave/osgi/exporter/BraveExporter.java  |  66 +++
 .../urlconnect/SenderUrlConnectExporter.java       |  71 +++
 brave-features/src/main/resources/features.xml     |   5 +-
 brave-itests/.classpath                            |  31 -
 brave-itests/pom.xml                               |   1 -
 .../java/io/zipkin/brave/itests/BraveTest.java     |   2 +-
 pom.xml                                            | 636 ++++++++++-----------
 9 files changed, 533 insertions(+), 363 deletions(-)

diff --git a/.gitignore b/.gitignore
index 40b20c3..249346c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@
 # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 hs_err_pid*
 
+.classpath
 .project
 .settings
 target
diff --git a/brave-exporter/pom.xml b/brave-exporter/pom.xml
new file mode 100644
index 0000000..e1b38b5
--- /dev/null
+++ b/brave-exporter/pom.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>io.zipkin.brave.karaf</groupId>
+		<artifactId>brave-karaf-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>brave-exporter</artifactId>
+	
+	<properties>
+        <main.basedir>${project.basedir}/..</main.basedir>
+	</properties>
+	
+	<dependencies>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>osgi.core</artifactId>
+			<version>6.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>osgi.cmpn</artifactId>
+			<version>6.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.brave</groupId>
+			<artifactId>brave-core</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.reporter</groupId>
+			<artifactId>zipkin-reporter</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.reporter</groupId>
+			<artifactId>zipkin-sender-urlconnection</artifactId>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>biz.aQute.bnd</groupId>
+				<artifactId>bnd-maven-plugin</artifactId>
+				<version>3.3.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>bnd-process</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>3.0.2</version>
+				<configuration>
+					<archive>
+						<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+					</archive>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
\ No newline at end of file
diff --git a/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/BraveExporter.java b/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/BraveExporter.java
new file mode 100644
index 0000000..04b9536
--- /dev/null
+++ b/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/BraveExporter.java
@@ -0,0 +1,66 @@
+/**
+ * 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;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import com.github.kristofa.brave.Brave;
+import com.github.kristofa.brave.Sampler;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin.Span;
+import zipkin.reporter.Reporter;
+
+@Component //
+( //
+    immediate = true, //
+    name = "io.zipkin.brave" //
+)
+@Designate(ocd = BraveExporter.Config.class)
+public class BraveExporter {
+    @Reference
+    Reporter<Span> reporter;
+
+    private ServiceRegistration<Brave> reg;
+
+    @ObjectClassDefinition(name = "Brave")
+    @interface Config {
+        String name() default "default";
+        boolean traceId128Bit() default false;
+        float rate() default 1;
+    }
+
+    @Activate
+    public void activate(Config config, BundleContext context, Map<String, String> properties) {
+        Brave brave = new Brave.Builder(config.name())
+            .reporter(reporter) //
+            .traceId128Bit(config.traceId128Bit()) //
+            .traceSampler(Sampler.create(config.rate()))
+            .build();
+        reg = context.registerService(Brave.class, brave, new Hashtable<String, String>(properties));
+    }
+    
+    @Deactivate
+    public void deactive() {
+        reg.unregister();
+    }
+
+}
diff --git a/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/urlconnect/SenderUrlConnectExporter.java b/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/urlconnect/SenderUrlConnectExporter.java
new file mode 100644
index 0000000..94f85b9
--- /dev/null
+++ b/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/urlconnect/SenderUrlConnectExporter.java
@@ -0,0 +1,71 @@
+/**
+ * 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.urlconnect;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin.Span;
+import zipkin.reporter.AsyncReporter;
+import zipkin.reporter.Reporter;
+import zipkin.reporter.urlconnection.URLConnectionSender;
+
+@Component //
+( //
+    immediate = true, //
+    name = "io.zipkin.reporter.urlconnect", //
+    configurationPolicy = ConfigurationPolicy.REQUIRE
+)
+@Designate(ocd = SenderUrlConnectExporter.Config.class)
+public class SenderUrlConnectExporter {
+
+    @SuppressWarnings("rawtypes")
+    private ServiceRegistration<Reporter> reg;
+    private AsyncReporter<Span> reporter;
+
+    @ObjectClassDefinition(name = "Zipkin Reporter URLConnect")
+    @interface Config {
+        String endpoint() default "http://localhost:9411/api/v1/spans";
+        boolean compressionEnabled() default true;
+        int connectTimeout() default 10 * 1000;
+        int messageMaxBytes() default 5 * 1024 * 1024;
+    }
+
+    @Activate
+    public void activate(Config config, BundleContext context, Map<String,String> properties) {
+        URLConnectionSender sender = URLConnectionSender.builder()
+            .endpoint(config.endpoint()) //
+            .compressionEnabled(config.compressionEnabled()) //
+            .connectTimeout(config.connectTimeout())
+            .messageMaxBytes(config.messageMaxBytes())
+            .build();
+        reporter = AsyncReporter.builder(sender).build();
+        reg = context.registerService(Reporter.class, reporter, new Hashtable<String, String>(properties));
+    }
+    
+    @Deactivate
+    public void deactive() {
+        reg.unregister();
+        reporter.close();
+    }
+
+}
diff --git a/brave-features/src/main/resources/features.xml b/brave-features/src/main/resources/features.xml
index 2b70909..d2fe602 100644
--- a/brave-features/src/main/resources/features.xml
+++ b/brave-features/src/main/resources/features.xml
@@ -18,13 +18,13 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
 
-	<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.8/xml/features</repository>
-
 	<feature name="brave-core">
+		<feature>scr</feature>
 		<bundle dependency="true">mvn:io.zipkin.java/zipkin/${zipkin.version}</bundle>
 		<bundle dependency="true">mvn:io.zipkin.reporter/zipkin-reporter/${zipkin.reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.reporter/zipkin-sender-urlconnection/${zipkin.reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave/brave-core/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter/${project.version}</bundle>
 	</feature>
 	
 	<feature name="brave-kafka">
@@ -35,6 +35,7 @@
 	
 	<feature name="brave-jaxrs2">
 		<feature>brave-core</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-2.0.1/2.6.0</bundle>
 		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_2</bundle>
 		<bundle dependency="true">mvn:io.zipkin.brave/brave-http/${brave.version}</bundle>
 		<bundle>mvn:io.zipkin.brave/brave-jaxrs2/${brave.version}</bundle>
diff --git a/brave-itests/.classpath b/brave-itests/.classpath
deleted file mode 100644
index b2acffc..0000000
--- a/brave-itests/.classpath
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/brave-itests/pom.xml b/brave-itests/pom.xml
index 2836630..46a39e6 100644
--- a/brave-itests/pom.xml
+++ b/brave-itests/pom.xml
@@ -39,7 +39,6 @@
 		<dependency>
 			<groupId>io.zipkin.brave</groupId>
 			<artifactId>brave-core</artifactId>
-			<version>${brave.version}</version>
 		</dependency>
 
 		<dependency>
diff --git a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index 898817b..abdd14f 100644
--- a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -43,7 +43,7 @@ import zipkin.reporter.Reporter;
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
 public class BraveTest {
-    List<Object> spans = new ArrayList<>();
+    List<Span> spans = new ArrayList<Span>();
 
     @Configuration
     public static Option[] configuration() throws Exception {
diff --git a/pom.xml b/pom.xml
index 89d7f78..e032207 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,332 +14,312 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>io.zipkin.brave.karaf</groupId>
-  <artifactId>brave-karaf-parent</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <modules>
-      <module>brave-features</module>
-      <module>brave-itests</module>
-  </modules>
-
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
-
-    <!-- default bytecode version for src/main -->
-    <main.java.version>1.6</main.java.version>
-    <main.signature.artifact>java16</main.signature.artifact>
-
-    <main.basedir>${project.basedir}</main.basedir>
-
-    <license-maven-plugin.version>2.11</license-maven-plugin.version>
-
-    <brave.version>3.16.0</brave.version>
-    <zipkin.version>1.16.0</zipkin.version>
-    <zipkin.reporter.version>0.6.7</zipkin.reporter.version>
-
-    <slf4j.version>1.7.21</slf4j.version>
-  </properties>
-
-  <name>Brave Karaf Parent</name>
-  <description>Brave Karaf Parent</description>
-  <url>https://github.com/openzipkin/brave-karaf</url>
-  <inceptionYear>2016</inceptionYear>
-
-  <organization>
-    <name>OpenZipkin</name>
-    <url>http://zipkin.io/</url>
-  </organization>
-
-  <licenses>
-    <license>
-      <name>The Apache Software License, Version 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-
-  <scm>
-    <url>https://github.com/openzipkin/brave-karaf</url>
-    <connection>scm:git:https://github.com/openzipkin/brave-karaf</connection>
-    <developerConnection>scm:git:https://github.com/openzipkin/brave-karaf</developerConnection>
-    <tag>0.0.1</tag>
-  </scm>
-
-  <developers>
-  </developers>
-
-  <distributionManagement>
-    <repository>
-      <id>bintray</id>
-      <url>https://api.bintray.com/maven/openzipkin/maven/brave-karaf/;publish=1</url>
-    </repository>
-    <snapshotRepository>
-      <id>jfrog-snapshots</id>
-      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
-    </snapshotRepository>
-  </distributionManagement>
-
-  <issueManagement>
-    <system>Github</system>
-    <url>https://github.com/openzipkin/brave-karaf/issues</url>
-  </issueManagement>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>io.zipkin.java</groupId>
-        <artifactId>zipkin</artifactId>
-        <version>${zipkin.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>io.zipkin.reporter</groupId>
-        <artifactId>zipkin-reporter</artifactId>
-        <version>${zipkin.reporter.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>4.12</version>
-      </dependency>
-      <dependency>
-        <groupId>org.awaitility</groupId>
-        <artifactId>awaitility</artifactId>
-        <version>2.0.0</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>io.zipkin.java</groupId>
-      <artifactId>zipkin</artifactId>
-    </dependency>
-
-    <!-- don't worry. auto-* are source retention, not runtime -->
-    <dependency>
-      <groupId>com.google.auto.value</groupId>
-      <artifactId>auto-value</artifactId>
-      <version>1.3</version>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.assertj</groupId>
-      <artifactId>assertj-core</artifactId>
-      <version>3.5.2</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>io.zipkin.java</groupId>
-      <artifactId>zipkin</artifactId>
-      <version>${zipkin.version}</version>
-      <type>test-jar</type>
-    </dependency>
-    <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
-      <version>1.1.7</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-
-  <build>
-    <pluginManagement>
-      <plugins>
-        <!-- mvn -N io.takari:maven:wrapper -Dmaven=3.3.9 -->
-        <plugin>
-          <groupId>io.takari</groupId>
-          <artifactId>maven</artifactId>
-          <version>0.3.3</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-
-    <plugins>
-      <plugin>
-        <inherited>true</inherited>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.5.1</version>
-        <configuration>
-          <!-- Retrolambda will rewrite lambdas as Java 6 bytecode -->
-          <source>1.8</source>
-          <target>1.8</target>
-          <compilerId>javac-with-errorprone</compilerId>
-          <forceJavacCompilerUse>true</forceJavacCompilerUse>
-          <showWarnings>true</showWarnings>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-compiler-javac-errorprone</artifactId>
-            <version>2.8</version>
-          </dependency>
-          <dependency>
-            <groupId>com.google.errorprone</groupId>
-            <artifactId>error_prone_core</artifactId>
-            <version>2.0.9</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-
-      <plugin>
-        <groupId>net.orfjackal.retrolambda</groupId>
-        <artifactId>retrolambda-maven-plugin</artifactId>
-        <version>2.3.0</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>process-main</goal>
-            </goals>
-            <configuration>
-              <target>${main.java.version}</target>
-              <fork>false</fork>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>animal-sniffer-maven-plugin</artifactId>
-        <version>1.15</version>
-        <configuration>
-          <signature>
-            <groupId>org.codehaus.mojo.signature</groupId>
-            <artifactId>${main.signature.artifact}</artifactId>
-            <version>1.0</version>
-          </signature>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>check</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- Ensures checksums are added to published jars -->
-      <plugin>
-        <artifactId>maven-install-plugin</artifactId>
-        <version>2.5.2</version>
-        <configuration>
-          <createChecksum>true</createChecksum>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>com.mycila</groupId>
-        <artifactId>license-maven-plugin</artifactId>
-        <version>${license-maven-plugin.version}</version>
-        <configuration>
-          <header>${main.basedir}/src/etc/header.txt</header>
-          <excludes>
-            <exclude>.travis.yml</exclude>
-            <exclude>.gitignore</exclude>
-            <exclude>.mvn/**</exclude>
-            <exclude>mvnw*</exclude>
-            <exclude>etc/header.txt</exclude>
-            <exclude>**/.idea/**</exclude>
-            <exclude>LICENSE</exclude>
-            <exclude>**/*.md</exclude>
-            <exclude>src/test/resources/**</exclude>
-            <exclude>src/main/resources/**</exclude>
-          </excludes>
-          <strictCheck>true</strictCheck>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>com.mycila</groupId>
-            <artifactId>license-maven-plugin-git</artifactId>
-            <version>${license-maven-plugin.version}</version>
-          </dependency>
-        </dependencies>
-        <executions>
-          <execution>
-            <goals>
-              <goal>check</goal>
-            </goals>
-            <phase>compile</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <artifactId>maven-release-plugin</artifactId>
-        <version>2.5.3</version>
-        <configuration>
-          <useReleaseProfile>false</useReleaseProfile>
-          <releaseProfiles>release</releaseProfiles>
-          <autoVersionSubmodules>true</autoVersionSubmodules>
-          <tagNameFormat>@{project.version}</tagNameFormat>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>io.zipkin.centralsync-maven-plugin</groupId>
-        <artifactId>centralsync-maven-plugin</artifactId>
-        <version>0.1.0</version>
-        <configuration>
-          <packageName>zipkin-aws</packageName>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>release</id>
-      <build>
-        <plugins>
-          <!-- Creates source jar -->
-          <plugin>
-            <artifactId>maven-source-plugin</artifactId>
-            <version>3.0.1</version>
-            <executions>
-              <execution>
-                <id>attach-sources</id>
-                <goals>
-                  <goal>jar</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-
-          <plugin>
-            <artifactId>maven-javadoc-plugin</artifactId>
-            <version>2.10.4</version>
-            <configuration>
-              <failOnError>false</failOnError>
-              <excludePackageNames>zipkin.aws.internal,zipkin.aws.internal.*
-              </excludePackageNames>
-              <!-- hush pedantic warnings: we don't put param and return on everything! -->
-              <additionalparam>-Xdoclint:none</additionalparam>
-            </configuration>
-            <executions>
-              <execution>
-                <id>attach-javadocs</id>
-                <goals>
-                  <goal>jar</goal>
-                </goals>
-                <phase>package</phase>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>io.zipkin.brave.karaf</groupId>
+	<artifactId>brave-karaf-parent</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<modules>
+		<module>brave-features</module>
+		<module>brave-itests</module>
+		<module>brave-exporter</module>
+	</modules>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
+
+		<!-- default bytecode version for src/main -->
+		<main.java.version>1.6</main.java.version>
+		<main.signature.artifact>java16</main.signature.artifact>
+
+		<main.basedir>${project.basedir}</main.basedir>
+
+		<license-maven-plugin.version>2.11</license-maven-plugin.version>
+
+		<brave.version>3.16.0</brave.version>
+		<zipkin.version>1.16.0</zipkin.version>
+		<zipkin.reporter.version>0.6.9</zipkin.reporter.version>
+
+		<slf4j.version>1.7.21</slf4j.version>
+	</properties>
+
+	<name>Brave Karaf Parent</name>
+	<description>Brave Karaf Parent</description>
+	<url>https://github.com/openzipkin/brave-karaf</url>
+	<inceptionYear>2016</inceptionYear>
+
+	<organization>
+		<name>OpenZipkin</name>
+		<url>http://zipkin.io/</url>
+	</organization>
+
+	<licenses>
+		<license>
+			<name>The Apache Software License, Version 2.0</name>
+			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+
+	<scm>
+		<url>https://github.com/openzipkin/brave-karaf</url>
+		<connection>scm:git:https://github.com/openzipkin/brave-karaf</connection>
+		<developerConnection>scm:git:https://github.com/openzipkin/brave-karaf</developerConnection>
+		<tag>0.0.1</tag>
+	</scm>
+
+	<developers>
+	</developers>
+
+	<distributionManagement>
+		<repository>
+			<id>bintray</id>
+			<url>https://api.bintray.com/maven/openzipkin/maven/brave-karaf/;publish=1</url>
+		</repository>
+		<snapshotRepository>
+			<id>jfrog-snapshots</id>
+			<url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
+		</snapshotRepository>
+	</distributionManagement>
+
+	<issueManagement>
+		<system>Github</system>
+		<url>https://github.com/openzipkin/brave-karaf/issues</url>
+	</issueManagement>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>io.zipkin.java</groupId>
+				<artifactId>zipkin</artifactId>
+				<version>${zipkin.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>io.zipkin.reporter</groupId>
+				<artifactId>zipkin-reporter</artifactId>
+				<version>${zipkin.reporter.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>io.zipkin.reporter</groupId>
+				<artifactId>zipkin-sender-urlconnection</artifactId>
+				<version>${zipkin.reporter.version}</version>
+			</dependency>
+			
+			<dependency>
+				<groupId>io.zipkin.brave</groupId>
+				<artifactId>brave-core</artifactId>
+				<version>${brave.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>junit</groupId>
+				<artifactId>junit</artifactId>
+				<version>4.12</version>
+			</dependency>
+			<dependency>
+				<groupId>org.awaitility</groupId>
+				<artifactId>awaitility</artifactId>
+				<version>2.0.0</version>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>io.zipkin.java</groupId>
+			<artifactId>zipkin</artifactId>
+		</dependency>
+
+		<!-- don't worry. auto-* are source retention, not runtime -->
+		<dependency>
+			<groupId>com.google.auto.value</groupId>
+			<artifactId>auto-value</artifactId>
+			<version>1.3</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.assertj</groupId>
+			<artifactId>assertj-core</artifactId>
+			<version>3.5.2</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>io.zipkin.java</groupId>
+			<artifactId>zipkin</artifactId>
+			<version>${zipkin.version}</version>
+			<type>test-jar</type>
+		</dependency>
+		<dependency>
+			<groupId>ch.qos.logback</groupId>
+			<artifactId>logback-classic</artifactId>
+			<version>1.1.7</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<!-- mvn -N io.takari:maven:wrapper -Dmaven=3.3.9 -->
+				<plugin>
+					<groupId>io.takari</groupId>
+					<artifactId>maven</artifactId>
+					<version>0.3.3</version>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+
+		<plugins>
+			<plugin>
+				<inherited>true</inherited>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.5.1</version>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>animal-sniffer-maven-plugin</artifactId>
+				<version>1.15</version>
+				<configuration>
+					<signature>
+						<groupId>org.codehaus.mojo.signature</groupId>
+						<artifactId>${main.signature.artifact}</artifactId>
+						<version>1.0</version>
+					</signature>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<goal>check</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- Ensures checksums are added to published jars -->
+			<plugin>
+				<artifactId>maven-install-plugin</artifactId>
+				<version>2.5.2</version>
+				<configuration>
+					<createChecksum>true</createChecksum>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>com.mycila</groupId>
+				<artifactId>license-maven-plugin</artifactId>
+				<version>${license-maven-plugin.version}</version>
+				<configuration>
+					<header>${main.basedir}/src/etc/header.txt</header>
+					<excludes>
+						<exclude>.travis.yml</exclude>
+						<exclude>.gitignore</exclude>
+						<exclude>.mvn/**</exclude>
+						<exclude>mvnw*</exclude>
+						<exclude>etc/header.txt</exclude>
+						<exclude>**/.idea/**</exclude>
+						<exclude>LICENSE</exclude>
+						<exclude>**/*.md</exclude>
+						<exclude>src/test/resources/**</exclude>
+						<exclude>src/main/resources/**</exclude>
+					</excludes>
+					<strictCheck>true</strictCheck>
+				</configuration>
+				<dependencies>
+					<dependency>
+						<groupId>com.mycila</groupId>
+						<artifactId>license-maven-plugin-git</artifactId>
+						<version>${license-maven-plugin.version}</version>
+					</dependency>
+				</dependencies>
+				<executions>
+					<execution>
+						<goals>
+							<goal>check</goal>
+						</goals>
+						<phase>compile</phase>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
+				<artifactId>maven-release-plugin</artifactId>
+				<version>2.5.3</version>
+				<configuration>
+					<useReleaseProfile>false</useReleaseProfile>
+					<releaseProfiles>release</releaseProfiles>
+					<autoVersionSubmodules>true</autoVersionSubmodules>
+					<tagNameFormat>@{project.version}</tagNameFormat>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>io.zipkin.centralsync-maven-plugin</groupId>
+				<artifactId>centralsync-maven-plugin</artifactId>
+				<version>0.1.0</version>
+				<configuration>
+					<packageName>zipkin-aws</packageName>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>release</id>
+			<build>
+				<plugins>
+					<!-- Creates source jar -->
+					<plugin>
+						<artifactId>maven-source-plugin</artifactId>
+						<version>3.0.1</version>
+						<executions>
+							<execution>
+								<id>attach-sources</id>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<artifactId>maven-javadoc-plugin</artifactId>
+						<version>2.10.4</version>
+						<configuration>
+							<failOnError>false</failOnError>
+							<excludePackageNames>zipkin.aws.internal,zipkin.aws.internal.*
+							</excludePackageNames>
+							<!-- hush pedantic warnings: we don't put param and return on everything! -->
+							<additionalparam>-Xdoclint:none</additionalparam>
+						</configuration>
+						<executions>
+							<execution>
+								<id>attach-javadocs</id>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+								<phase>package</phase>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
 </project>


[incubator-zipkin-brave-karaf] 33/46: [maven-release-plugin] prepare release 0.1.1

Posted by ab...@apache.org.
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 187152ccf19db299cd375794df5f2f53edb35519
Author: zipkinci <zi...@googlegroups.com>
AuthorDate: Sat Sep 8 12:55:18 2018 +0000

    [maven-release-plugin] prepare release 0.1.1
---
 exporter-sender-kafka/pom.xml  | 6 ++----
 exporter-sender-okhttp/pom.xml | 6 ++----
 exporter/pom.xml               | 6 ++----
 features/pom.xml               | 6 ++----
 itests/pom.xml                 | 6 ++----
 pom.xml                        | 8 +++-----
 6 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/exporter-sender-kafka/pom.xml b/exporter-sender-kafka/pom.xml
index d294f02..a699636 100644
--- a/exporter-sender-kafka/pom.xml
+++ b/exporter-sender-kafka/pom.xml
@@ -14,13 +14,11 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <version>0.1.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/exporter-sender-okhttp/pom.xml b/exporter-sender-okhttp/pom.xml
index 9d919ba..010272d 100644
--- a/exporter-sender-okhttp/pom.xml
+++ b/exporter-sender-okhttp/pom.xml
@@ -14,13 +14,11 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <version>0.1.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/exporter/pom.xml b/exporter/pom.xml
index dfb4c0f..27cc1c0 100644
--- a/exporter/pom.xml
+++ b/exporter/pom.xml
@@ -14,13 +14,11 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <version>0.1.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/features/pom.xml b/features/pom.xml
index 5f6256d..0f83408 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -14,14 +14,12 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <version>0.1.1</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>brave-features</artifactId>
diff --git a/itests/pom.xml b/itests/pom.xml
index 7bed232..b538480 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -14,14 +14,12 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <version>0.1.1</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>brave-itests</artifactId>
diff --git a/pom.xml b/pom.xml
index 8ebe8cf..77d65d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,14 +14,12 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>io.zipkin.brave.karaf</groupId>
   <artifactId>brave-karaf-parent</artifactId>
-  <version>0.1.0-SNAPSHOT</version>
+  <version>0.1.1</version>
   <packaging>pom</packaging>
 
   <modules>
@@ -73,7 +71,7 @@
     <url>https://github.com/openzipkin/brave-karaf</url>
     <connection>scm:git:https://github.com/openzipkin/brave-karaf.git</connection>
     <developerConnection>scm:git:https://github.com/openzipkin/brave-karaf.git</developerConnection>
-    <tag>HEAD</tag>
+    <tag>0.1.1</tag>
   </scm>
 
   <!-- Developer section is needed for Maven Central, but doesn't need to include each person -->


[incubator-zipkin-brave-karaf] 11/46: Merge pull request #3 from kameshsampath/issue-2

Posted by ab...@apache.org.
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 b32f77f6adcfe4e83c2b96b1d9a64da0557c0ea7
Merge: d91fe96 abe37ee
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Mon Jul 3 14:13:12 2017 +0200

    Merge pull request #3 from kameshsampath/issue-2
    
    Adding okhttp3 reporter and tracer

 brave-exporter-okhttp3/pom.xml                     | 103 +++++++++++++++
 .../okhttp3/internal/OkHttp3ReporterExporter.java  | 140 +++++++++++++++++++++
 brave-features/src/main/resources/features.xml     |  15 +++
 pom.xml                                            |   3 +-
 4 files changed, 260 insertions(+), 1 deletion(-)


[incubator-zipkin-brave-karaf] 23/46: Migrates to CircleCI 2.0 (#6)

Posted by ab...@apache.org.
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 da4cc9b59703b71aee901b1c500446b3952923df
Author: Zoltán Nagy <ab...@gmail.com>
AuthorDate: Fri Jul 27 09:52:08 2018 +0200

    Migrates to CircleCI 2.0 (#6)
---
 .circleci/config.yml                  | 139 ++++++++++++++++++++++++++++++++++
 .mvn/wrapper/maven-wrapper.properties |   2 +-
 circle.yml                            |  65 ----------------
 3 files changed, 140 insertions(+), 66 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 0000000..be9d727
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,139 @@
+#
+# Copyright 2016-2018 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.
+#
+
+version: 2
+jobs:
+  build:
+    docker:
+      - image: circleci/openjdk:8-jdk
+
+    steps:
+      - checkout
+
+      - restore_cache:
+          key: maven-dependencies-{{ checksum "pom.xml" }}
+
+      - run:
+          name: Download dependencies
+          command: |
+            sudo apt-get install xsltproc
+            ./build-support/go-offline.sh
+      - save_cache:
+          key: maven-dependencies-{{ checksum "pom.xml" }}
+          paths:
+            - ~/.m2
+
+      - run:
+          name: Tests
+          # use install, as opposed to verify, to ensure invoker tests use latest code
+          command: ./mvnw clean install
+
+      - run:
+          name: Collect test reports
+          command: |
+            mkdir -p /tmp/test-reports/unit-tests/
+            find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} /tmp/test-reports/unit-tests/ \;
+
+      - store_test_results:
+          path: /tmp/test-reports/
+
+  publish_snapshot:
+    docker:
+      - image: circleci/openjdk:8-jdk
+    steps:
+      - checkout
+      - restore_cache:
+          key: maven-dependencies-{{ checksum "pom.xml" }}
+      - run:
+          name: Publish snapshot
+          command: |
+            # Guard against running this on pull requests or forks
+            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
+            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
+            ./build-support/publish-snapshot.sh
+
+  publish_stable:
+    docker:
+      - image: circleci/openjdk:8-jdk
+    steps:
+      - checkout
+      - restore_cache:
+          key: maven-dependencies-{{ checksum "pom.xml" }}
+      - run:
+          name: Publish stable version
+          # triples the timeout to 30 minutes as maven central sync takes a lot longer than 10m
+          no_output_timeout: 30m
+          command: |
+            # Guard against running this on pull requests or forks
+            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
+            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
+            ./build-support/publish-stable.sh
+
+  trigger_publish:
+    docker:
+      - image: circleci/openjdk:8-jdk
+    steps:
+      - checkout
+      - restore_cache:
+          key: maven-dependencies-{{ checksum "pom.xml" }}
+      - run:
+          name: Configure Git for release
+          command: |
+            # parameters used during release
+            # allocate commits to CI, not the owner of the deploy key
+            git config user.name "zipkinci"
+            git config user.email "zipkinci+zipkin-dev@googlegroups.com"
+            # setup https authentication credentials, used by ./mvnw release:prepare
+            git config credential.helper "store --file=.git/credentials"
+            echo "https://$GH_TOKEN:@github.com" > .git/credentials
+      - run:
+          name: Trigger publish
+          command: |
+            # Guard against running this on pull requests or forks
+            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
+            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
+            ./build-support/trigger-publish.sh
+
+
+workflows:
+  version: 2
+  build_and_publish:
+    jobs:
+      - build
+      - publish_snapshot:
+          requires:
+            - build
+          filters:
+            branches:
+              only: master
+      - publish_stable:
+          requires:
+            - build
+          filters:
+            branches:
+              ignore: /.*/
+            tags:
+              only: /\d+\.\d+\.\d+/
+      - trigger_publish:
+          requires:
+            - build
+          filters:
+            branches:
+              ignore: /.*/
+            tags:
+              only: /release-\d+\.\d+\.\d+/
+
+notify:
+  webhooks:
+    - url: https://webhooks.gitter.im/e/22adbb9973299092e6ae
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
index 56bb016..c9023ed 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -1 +1 @@
-distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip
\ No newline at end of file
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
\ No newline at end of file
diff --git a/circle.yml b/circle.yml
deleted file mode 100644
index cf12423..0000000
--- a/circle.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Copyright 2016-2017 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.
-#
-
-machine:
-  java:
-    version: openjdk8
-  services:
-    - mysql
-  environment:
-    MYSQL_USER: root
-
-dependencies:
-  override:
-    - sudo apt-get install xsltproc
-    - ./build-support/go-offline.sh
-
-test:
-  override:
-    - ./mvnw verify install
-  post:
-    # parameters used during release
-    # allocate commits to CI, not the owner of the deploy key
-    - git config user.name "zipkinci"
-    - git config user.email "zipkinci+zipkin-dev@googlegroups.com"
-    # setup https authentication credentials, used by ./mvnw release:prepare
-    - git config credential.helper "store --file=.git/credentials"
-    - echo "https://$GH_TOKEN:@github.com" > .git/credentials
-    # copy test reports to CircleCI test reports directory
-    - mkdir -p $CIRCLE_TEST_REPORTS/junit/
-    - find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;
-
-# Send notifications to Gitter
-notify:
-  webhooks:
-    - url: https://webhooks.gitter.im/e/22adbb9973299092e6ae
-
-deployment:
-  trigger:
-    owner: openzipkin
-    tag: /release-\d+\.\d+\.\d+/
-    commands:
-      - ./build-support/trigger-publish.sh
-  publish-stable:
-    owner: openzipkin
-    tag: /\d+\.\d+\.\d+/
-    # triples the timeout to 30 minutes as maven central sync takes a lot longer than 10m
-    commands:
-      - ./build-support/publish-stable.sh:
-        timeout: 1800
-  publish-snapshot:
-    owner: openzipkin
-    branch: master
-    commands:
-      - ./build-support/publish-snapshot.sh


[incubator-zipkin-brave-karaf] 41/46: Create Jenkinsfile (#13)

Posted by ab...@apache.org.
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 6558b9372c1354a51893c00b48f6a92f9e42f327
Author: Zoltán Nagy <ab...@gmail.com>
AuthorDate: Wed Jan 30 17:11:32 2019 +0000

    Create Jenkinsfile (#13)
    
    Create Jenkinsfile running tests
---
 Jenkinsfile | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..f521de9
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,51 @@
+pipeline {
+    agent {
+        label 'ubuntu'
+    }
+    
+    tools {
+        jdk 'JDK 1.8 (latest)'
+    }
+
+    options {
+        buildDiscarder(logRotator(numToKeepStr: '10'))
+        timestamps()
+    }
+
+    triggers {
+        pollSCM('H/15 * * * *')
+    }
+
+    stages {
+        stage('SCM Checkout') {
+            steps {
+                deleteDir()
+                checkout scm
+            }
+        }
+        
+        stage('Check environment') {
+            steps {
+                sh 'env'
+                sh 'pwd'
+                sh 'ls'
+                sh 'git status'
+            }
+        }
+
+        stage('Run tests') {
+            steps {
+                // use install, as opposed to verify, to ensure invoker tests use latest code
+                sh './mvnw clean install'
+            }
+        }
+    }
+
+
+    post {
+        always {
+            junit '**/target/surefire-reports/*.xml'
+            deleteDir()
+        }
+    }
+}


[incubator-zipkin-brave-karaf] 31/46: [circleci] `trigger_publish` doesn't depend on `build`

Posted by ab...@apache.org.
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 709bf19b7afc81faa8eb2b38e6b766cfcc279e3d
Author: Zoltan Nagy <ab...@gmail.com>
AuthorDate: Thu Aug 2 19:50:43 2018 +0800

    [circleci] `trigger_publish` doesn't depend on `build`
---
 .circleci/config.yml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index bcc066d..971fdab 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -129,8 +129,6 @@ workflows:
             tags:
               only: /\d+\.\d+\.\d+/
       - trigger_publish:
-          requires:
-            - build
           filters:
             branches:
               ignore: /.*/


[incubator-zipkin-brave-karaf] 04/46: Fixing feature uri and logging

Posted by ab...@apache.org.
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 49ea3de2f44b754276bd0665813a4ac25eb1f108
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Fri Dec 9 10:32:43 2016 +0100

    Fixing feature uri and logging
---
 .gitignore                                         |  1 +
 brave-features/target/classes/features.xml         | 43 ----------------------
 brave-itests/pom.xml                               |  1 -
 .../java/io/zipkin/brave/itests/BraveTest.java     |  4 +-
 brave-itests/src/test/resources/logback.xml        |  9 -----
 brave-itests/test.log                              | 12 ------
 pom.xml                                            |  4 +-
 7 files changed, 5 insertions(+), 69 deletions(-)

diff --git a/.gitignore b/.gitignore
index acd2dc3..40b20c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,4 @@ hs_err_pid*
 
 .project
 .settings
+target
diff --git a/brave-features/target/classes/features.xml b/brave-features/target/classes/features.xml
deleted file mode 100644
index dbde578..0000000
--- a/brave-features/target/classes/features.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<features name="brave" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-
-	<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.8/xml/features</repository>
-
-	<feature name="brave-core">
-		<bundle dependency="true">mvn:io.zipkin.java/zipkin/1.16.0</bundle>
-		<bundle dependency="true">mvn:io.zipkin.reporter/zipkin-reporter/${zipkin.reporter.version}</bundle>
-		<bundle>mvn:io.zipkin.reporter/zipkin-sender-urlconnection/${zipkin.reporter.version}</bundle>
-		<bundle>mvn:io.zipkin.brave/brave-core/3.16.0</bundle>
-	</feature>
-	
-	<feature name="brave-kafka">
-		<feature>brave-core</feature>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/0.8.2.2_1</bundle>
-		<bundle>mvn:io.zipkin.reporter/zipkin-sender-kafka08/${zipkin.reporter.version}</bundle>
-	</feature>
-	
-	<feature name="brave-jaxrs2">
-		<feature>brave-core</feature>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_2</bundle>
-		<bundle dependency="true">mvn:io.zipkin.brave/brave-http/3.16.0</bundle>
-		<bundle>mvn:io.zipkin.brave/brave-jaxrs2/3.16.0</bundle>
-	</feature>
-
-</features>
\ No newline at end of file
diff --git a/brave-itests/pom.xml b/brave-itests/pom.xml
index 158a9a7..2836630 100644
--- a/brave-itests/pom.xml
+++ b/brave-itests/pom.xml
@@ -24,7 +24,6 @@
         <relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>brave-itests</artifactId>
-	<version>0.0.1-SNAPSHOT</version>
 
 	<properties>
 		<pax.exam.version>4.5.0</pax.exam.version>
diff --git a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
index 580bf4c..898817b 100644
--- a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -49,8 +49,8 @@ public class BraveTest {
     public static Option[] configuration() throws Exception {
         MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
             .type("zip").version("4.0.7");
-        MavenUrlReference brave = maven().groupId("net.lr.brave.osgi").artifactId("brave-features").type("xml")
-           .classifier("features").version("0.0.1-SNAPSHOT");
+        MavenUrlReference brave = maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
+           .classifier("features").version("1.0.0-SNAPSHOT");
         return new Option[] //
         {
          karafDistributionConfiguration().frameworkUrl(karaf).useDeployFolder(false),
diff --git a/brave-itests/src/test/resources/logback.xml b/brave-itests/src/test/resources/logback.xml
index c35d3ca..7f3f081 100644
--- a/brave-itests/src/test/resources/logback.xml
+++ b/brave-itests/src/test/resources/logback.xml
@@ -8,17 +8,8 @@
         </encoder>
     </appender>
   
-  <!--  log to file test.log  -->
-    <appender name="TEST_LOG" class="ch.qos.logback.core.FileAppender">
-        <file>test.log</file>
-        <encoder>
-            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
-        </encoder>
-    </appender>
-
     <root level="INFO">
         <appender-ref ref="STDOUT" />
-        <appender-ref ref="TEST_LOG" />
     </root>
     <logger name="org.ops4j.pax.exam" level="INFO" />
 
diff --git a/brave-itests/test.log b/brave-itests/test.log
deleted file mode 100644
index 816493b..0000000
--- a/brave-itests/test.log
+++ /dev/null
@@ -1,12 +0,0 @@
-18:31:51.236 [main] INFO  o.o.pax.exam.spi.DefaultExamSystem - Pax Exam System (Version: 4.5.0) created.
-18:31:51.259 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - creating PaxExam runner for class io.zipkin.brave.itests.BraveTest
-18:31:51.296 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - running test class io.zipkin.brave.itests.BraveTest
-18:31:51.887 [main] INFO  o.o.p.e.k.c.i.KarafTestContainer - Wait for test container to finish its initialization [ RelativeTimeout value = 180000 ]
-18:31:51.887 [main] INFO  o.o.p.e.r.c.RemoteBundleContextClient - Waiting for remote bundle context.. on 21000 name: 8e7b7902-4f23-4c53-b6ce-f0e9726bb409 timout: [ RelativeTimeout value = 180000 ]
-18:31:55.829 [main] INFO  o.o.p.e.spi.reactors.ReactorManager - suite finished
-18:34:24.681 [main] INFO  o.o.pax.exam.spi.DefaultExamSystem - Pax Exam System (Version: 4.5.0) created.
-18:34:24.706 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - creating PaxExam runner for class io.zipkin.brave.itests.BraveTest
-18:34:24.748 [main] INFO  o.o.pax.exam.junit.impl.ProbeRunner - running test class io.zipkin.brave.itests.BraveTest
-18:34:25.317 [main] INFO  o.o.p.e.k.c.i.KarafTestContainer - Wait for test container to finish its initialization [ RelativeTimeout value = 180000 ]
-18:34:25.318 [main] INFO  o.o.p.e.r.c.RemoteBundleContextClient - Waiting for remote bundle context.. on 21000 name: a46215d8-24fb-41ee-b43b-6abd9c827388 timout: [ RelativeTimeout value = 180000 ]
-18:34:29.355 [main] INFO  o.o.p.e.spi.reactors.ReactorManager - suite finished
diff --git a/pom.xml b/pom.xml
index fe8f27a..89d7f78 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
 
     <brave.version>3.16.0</brave.version>
     <zipkin.version>1.16.0</zipkin.version>
-    <zipkin-reporter.version>0.6.7</zipkin-reporter.version>
+    <zipkin.reporter.version>0.6.7</zipkin.reporter.version>
 
     <slf4j.version>1.7.21</slf4j.version>
   </properties>
@@ -100,7 +100,7 @@
       <dependency>
         <groupId>io.zipkin.reporter</groupId>
         <artifactId>zipkin-reporter</artifactId>
-        <version>${zipkin-reporter.version}</version>
+        <version>${zipkin.reporter.version}</version>
       </dependency>
       <dependency>
         <groupId>junit</groupId>


[incubator-zipkin-brave-karaf] 20/46: Exclude settings in license check

Posted by ab...@apache.org.
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 d1a9ad573ab612191a284756d2bb065160876837
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 14:34:28 2017 +0200

    Exclude settings in license check
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 752b1ee..90611cd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -241,6 +241,7 @@ the License.
 						<exclude>.travis.yml</exclude>
 						<exclude>.gitignore</exclude>
 						<exclude>.mvn/**</exclude>
+						<exclude>.settings</exclude>
 						<exclude>mvnw*</exclude>
 						<exclude>build-support/**</exclude>
 						<exclude>etc/header.txt</exclude>
@@ -249,7 +250,6 @@ the License.
 						<exclude>**/*.md</exclude>
 						<exclude>src/test/resources/**</exclude>
 						<exclude>src/main/resources/**</exclude>
-
 					</excludes>
 					<strictCheck>true</strictCheck>
 				</configuration>


[incubator-zipkin-brave-karaf] 10/46: Adding okhttp3 reporter and tracer

Posted by ab...@apache.org.
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 abe37eeef3bf576a402891582c9033f3992988e1
Author: Kamesh Sampath <ka...@hotmail.com>
AuthorDate: Mon Jul 3 17:13:56 2017 +0530

    Adding okhttp3 reporter and tracer
---
 brave-exporter-okhttp3/pom.xml                     | 103 +++++++++++++++
 .../okhttp3/internal/OkHttp3ReporterExporter.java  | 140 +++++++++++++++++++++
 brave-features/src/main/resources/features.xml     |  15 +++
 pom.xml                                            |   3 +-
 4 files changed, 260 insertions(+), 1 deletion(-)

diff --git a/brave-exporter-okhttp3/pom.xml b/brave-exporter-okhttp3/pom.xml
new file mode 100644
index 0000000..17827bb
--- /dev/null
+++ b/brave-exporter-okhttp3/pom.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2017 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>brave-karaf-parent</artifactId>
+        <groupId>io.zipkin.brave.karaf</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>brave-exporter-okhttp3</artifactId>
+
+    <properties>
+        <main.basedir>${project.basedir}/..</main.basedir>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <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.java</groupId>
+            <artifactId>zipkin</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>io.zipkin.brave</groupId>
+            <artifactId>brave-context-slf4j</artifactId>
+            <version>${brave.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.zipkin.reporter</groupId>
+            <artifactId>zipkin-reporter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>io.zipkin.reporter</groupId>
+            <artifactId>zipkin-sender-okhttp3</artifactId>
+            <version>${zipkin.reporter.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
+                <version>3.3.0</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>bnd-process</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>3.0.2</version>
+                <configuration>
+                    <archive>
+                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file
diff --git a/brave-exporter-okhttp3/src/main/java/io/zipkin/brave/osgi/exporter/okhttp3/internal/OkHttp3ReporterExporter.java b/brave-exporter-okhttp3/src/main/java/io/zipkin/brave/osgi/exporter/okhttp3/internal/OkHttp3ReporterExporter.java
new file mode 100644
index 0000000..55aecac
--- /dev/null
+++ b/brave-exporter-okhttp3/src/main/java/io/zipkin/brave/osgi/exporter/okhttp3/internal/OkHttp3ReporterExporter.java
@@ -0,0 +1,140 @@
+/**
+ * Copyright 2016-2017 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.okhttp3.internal;
+
+import brave.Tracing;
+import brave.context.slf4j.MDCCurrentTraceContext;
+import brave.sampler.Sampler;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin.Span;
+import zipkin.reporter.AsyncReporter;
+import zipkin.reporter.Encoding;
+import zipkin.reporter.Reporter;
+import zipkin.reporter.okhttp3.OkHttpSender;
+
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+
+@Component(
+        immediate = true,
+        name = "io.zipkin.reporter.okhttp3",
+        property = {"sender=okhttp3"},
+        configurationPolicy = ConfigurationPolicy.REQUIRE
+)
+@Designate(ocd = OkHttp3ReporterExporter.Config.class)
+public class OkHttp3ReporterExporter {
+
+    private static final String OVERRIDE_PREFIX = "okhttp3.";
+
+    @SuppressWarnings("rawtypes")
+    private ServiceRegistration<Reporter> reporterServiceRegistration;
+    @SuppressWarnings("rawtypes")
+    private ServiceRegistration<Tracing> tracingServiceRegistration;
+
+    private AsyncReporter<Span> reporter;
+    private Tracing tracing;
+
+    private BundleContext context;
+
+    @ObjectClassDefinition(name = "Zipkin Reporter OkHttp3")
+    @interface Config {
+        String zipkinUrl() default "localhost:9411";
+
+        boolean compressionEnabled() default true;
+
+        Encoding encoding() default Encoding.THRIFT;
+
+        int messageMaxBytes() default 1000000;
+
+        String localServiceName() default "zipkin-okhttp3";
+
+        String samplerFilter() default "(type=always)";
+    }
+
+    @Activate
+    public void activate(Config config, BundleContext context, Map<String, String> properties) {
+        this.context = context;
+        OkHttpSender sender = createSender(config, properties);
+        reporter = AsyncReporter.create(sender);
+
+        reporterServiceRegistration = context.registerService(Reporter.class, reporter,
+                new Hashtable<String, String>(properties));
+
+        tracing = httpTracer(config, properties, reporter);
+        tracingServiceRegistration = context.registerService(Tracing.class, tracing,
+                new Hashtable<String, String>(properties));
+    }
+
+    @SuppressWarnings("unchecked")
+    public Tracing httpTracer(Config config, Map<String, String> properties, Reporter reporter) {
+
+        Sampler sampler = Sampler.ALWAYS_SAMPLE;
+
+        try {
+            ServiceReference<Sampler>[] samplers =
+                    (ServiceReference<Sampler>[]) context.getAllServiceReferences(
+                            Sampler.class.getName(), config.samplerFilter());
+            if (samplers != null && samplers.length > 0) {
+                sampler = context.getService(samplers[0]);
+            }
+
+        } catch (InvalidSyntaxException e) {
+
+        }
+
+        Tracing.Builder tracingBuilder = Tracing.newBuilder();
+        tracingBuilder.localServiceName(config.localServiceName());
+        tracingBuilder.sampler(sampler);
+        tracingBuilder.reporter(reporter);
+        tracingBuilder.currentTraceContext(MDCCurrentTraceContext.create());
+
+        return tracingBuilder.build();
+    }
+
+
+    OkHttpSender createSender(Config config, Map<String, String> properties) {
+        return OkHttpSender.builder()
+                .endpoint(config.zipkinUrl())
+                .compressionEnabled(config.compressionEnabled())
+                .messageMaxBytes(config.messageMaxBytes())
+                .build();
+    }
+
+    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
+    public void deactive() {
+        tracingServiceRegistration.unregister();
+        reporterServiceRegistration.unregister();
+        reporter.close();
+    }
+}
diff --git a/brave-features/src/main/resources/features.xml b/brave-features/src/main/resources/features.xml
index 16c4c9c..9cb5b49 100644
--- a/brave-features/src/main/resources/features.xml
+++ b/brave-features/src/main/resources/features.xml
@@ -33,6 +33,21 @@
 		<bundle>mvn:io.zipkin.reporter/zipkin-sender-kafka08/${zipkin.reporter.version}</bundle>
 		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-kafka08/${project.version}</bundle>
 	</feature>
+
+	<feature name="brave-okhttp3`">
+		<feature>brave-core</feature>
+		<bundle>mvn:org.apache.httpcomponents/httpcore-osgi/4.4.5</bundle>
+		<bundle>mvn:org.apache.httpcomponents/httpclient-osgi/4.5.3</bundle>
+		<bundle>mvn:io.zipkin.brave/brave/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-instrumentation-http/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-instrumentation-httpclient/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-context-slf4j/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.reporter/zipkin-sender-okhttp3/${zipkin.reporter.version}</bundle>
+		<bundle>wrap:mvn:com.squareup.okhttp3/okhttp/3.8.0</bundle>
+		<bundle>wrap:mvn:com.squareup.okio/okio/1.13.0</bundle>
+		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-okhttp3/${project.version}</bundle>
+	</feature>
 	
 	<feature name="brave-jaxrs2">
 		<feature>brave-core</feature>
diff --git a/pom.xml b/pom.xml
index 5861972..03dec1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,8 @@ the License.
 		<module>brave-itests</module>
 		<module>brave-exporter</module>
 		<module>brave-exporter-kafka08</module>
-	</modules>
+		<module>brave-exporter-okhttp3</module>
+  </modules>
 
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>


[incubator-zipkin-brave-karaf] 13/46: Updated maven wrapper

Posted by ab...@apache.org.
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 69c226391f85f4ce4e48b4aea3d737910237190e
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 11:51:44 2017 +0200

    Updated maven wrapper
---
 .mvn/wrapper/maven-wrapper.properties |  1 +
 mvnw                                  | 36 +++++++++++++++++------------------
 mvnw.cmd                              |  3 +--
 3 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..56bb016
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip
\ No newline at end of file
diff --git a/mvnw b/mvnw
index 6ecc150..fc7efd1 100755
--- a/mvnw
+++ b/mvnw
@@ -57,27 +57,27 @@ case "`uname`" in
            #
            # Look for the Apple JDKs first to preserve the existing behaviour, and then look
            # for the new JDKs provided by Oracle.
-           #
+           # 
            if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
              #
              # Apple JDKs
              #
              export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
            fi
-
+           
            if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
              #
              # Apple JDKs
              #
              export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
            fi
-
+             
            if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
              #
              # Oracle JDKs
              #
              export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
-           fi
+           fi           
 
            if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
              #
@@ -184,6 +184,16 @@ fi
 
 CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
 
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+fi
+
 # traverses directory structure from process work directory to filesystem root
 # first directory with .mvn subdirectory is considered project base directory
 find_maven_basedir() {
@@ -209,28 +219,16 @@ concat_lines() {
 export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
 MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
 
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --path --windows "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
-    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
-fi
-
-# Provide a "standardized" way to retrieve the CLI args that will
+# Provide a "standardized" way to retrieve the CLI args that will 
 # work with both Windows and non-Windows executions.
 MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
 export MAVEN_CMD_LINE_ARGS
 
 WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
 
-# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in $@
 exec "$JAVACMD" \
   $MAVEN_OPTS \
   -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
   "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
-  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
+  ${WRAPPER_LAUNCHER} $MAVEN_CMD_LINE_ARGS
+
diff --git a/mvnw.cmd b/mvnw.cmd
index 8e2b745..0d49a2d 100644
--- a/mvnw.cmd
+++ b/mvnw.cmd
@@ -121,8 +121,7 @@ SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
 set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar""
 set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
 
-# avoid using MAVEN_CMD_LINE_ARGS below since that would loose parameter escaping in %*
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
 if ERRORLEVEL 1 goto error
 goto end
 


[incubator-zipkin-brave-karaf] 21/46: Fixed name

Posted by ab...@apache.org.
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 0a0933fa3628569e97b9eb02f635344432c4a28a
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Jul 6 14:38:34 2017 +0200

    Fixed name
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 90611cd..1d271c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -241,7 +241,7 @@ the License.
 						<exclude>.travis.yml</exclude>
 						<exclude>.gitignore</exclude>
 						<exclude>.mvn/**</exclude>
-						<exclude>.settings</exclude>
+						<exclude>.settings.xml</exclude>
 						<exclude>mvnw*</exclude>
 						<exclude>build-support/**</exclude>
 						<exclude>etc/header.txt</exclude>


[incubator-zipkin-brave-karaf] 25/46: spaces not tabs

Posted by ab...@apache.org.
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 6c0685ae3ad6958f937966f7d836e3c78595db4c
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Wed Aug 1 14:36:45 2018 +0800

    spaces not tabs
---
 pom.xml | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/pom.xml b/pom.xml
index 5008b36..2616e8d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,9 @@
     the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>io.zipkin.brave.karaf</groupId>
@@ -23,20 +25,20 @@
   <packaging>pom</packaging>
 
   <modules>
-		<module>features</module>
-		<module>itests</module>
-		<module>exporter</module>
-		<module>exporter-sender-kafka</module>
-		<module>exporter-sender-okhttp</module>
+    <module>features</module>
+    <module>itests</module>
+    <module>exporter</module>
+    <module>exporter-sender-kafka</module>
+    <module>exporter-sender-okhttp</module>
   </modules>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
 
-		<!-- default bytecode version for src/main -->
-		<main.java.version>1.6</main.java.version>
-		<main.signature.artifact>java16</main.signature.artifact>
+    <!-- default bytecode version for src/main -->
+    <main.java.version>1.6</main.java.version>
+    <main.signature.artifact>java16</main.signature.artifact>
 
     <main.basedir>${project.basedir}</main.basedir>
 


[incubator-zipkin-brave-karaf] 02/46: Added parent

Posted by ab...@apache.org.
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 48ae3d86bcaf6e8503ee488a228b61fb60f98757
Author: Christian Schneider <ch...@die-schneider.net>
AuthorDate: Thu Dec 8 17:59:24 2016 +0100

    Added parent
---
 pom.xml            | 343 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/etc/header.txt |  11 ++
 2 files changed, 354 insertions(+)

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..d31d811
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>io.zipkin.brave.karaf</groupId>
+  <artifactId>brave-karaf-parent</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <modules>
+  </modules>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
+
+    <!-- default bytecode version for src/main -->
+    <main.java.version>1.6</main.java.version>
+    <main.signature.artifact>java16</main.signature.artifact>
+
+    <main.basedir>${project.basedir}</main.basedir>
+
+    <license-maven-plugin.version>2.11</license-maven-plugin.version>
+
+    <zipkin.version>1.16.0</zipkin.version>
+    <zipkin-reporter.version>0.6.7</zipkin-reporter.version>
+
+    <slf4j.version>1.7.21</slf4j.version>
+  </properties>
+
+  <name>Brave Karaf Parent</name>
+  <description>Brave Karaf Parent</description>
+  <url>https://github.com/openzipkin/brave-karaf</url>
+  <inceptionYear>2016</inceptionYear>
+
+  <organization>
+    <name>OpenZipkin</name>
+    <url>http://zipkin.io/</url>
+  </organization>
+
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
+  <scm>
+    <url>https://github.com/openzipkin/brave-karaf</url>
+    <connection>scm:git:https://github.com/openzipkin/brave-karaf</connection>
+    <developerConnection>scm:git:https://github.com/openzipkin/brave-karaf</developerConnection>
+    <tag>0.0.1</tag>
+  </scm>
+
+  <developers>
+  </developers>
+
+  <distributionManagement>
+    <repository>
+      <id>bintray</id>
+      <url>https://api.bintray.com/maven/openzipkin/maven/brave-karaf/;publish=1</url>
+    </repository>
+    <snapshotRepository>
+      <id>jfrog-snapshots</id>
+      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
+    </snapshotRepository>
+  </distributionManagement>
+
+  <issueManagement>
+    <system>Github</system>
+    <url>https://github.com/openzipkin/brave-karaf/issues</url>
+  </issueManagement>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>io.zipkin.java</groupId>
+        <artifactId>zipkin</artifactId>
+        <version>${zipkin.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.zipkin.reporter</groupId>
+        <artifactId>zipkin-reporter</artifactId>
+        <version>${zipkin-reporter.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.12</version>
+      </dependency>
+      <dependency>
+        <groupId>org.awaitility</groupId>
+        <artifactId>awaitility</artifactId>
+        <version>2.0.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>io.zipkin.java</groupId>
+      <artifactId>zipkin</artifactId>
+      <version>${zipkin.version}</version>
+    </dependency>
+
+    <!-- don't worry. auto-* are source retention, not runtime -->
+    <dependency>
+      <groupId>com.google.auto.value</groupId>
+      <artifactId>auto-value</artifactId>
+      <version>1.3</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.assertj</groupId>
+      <artifactId>assertj-core</artifactId>
+      <version>3.5.2</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.java</groupId>
+      <artifactId>zipkin</artifactId>
+      <version>${zipkin.version}</version>
+      <type>test-jar</type>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>1.1.7</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <!-- mvn -N io.takari:maven:wrapper -Dmaven=3.3.9 -->
+        <plugin>
+          <groupId>io.takari</groupId>
+          <artifactId>maven</artifactId>
+          <version>0.3.3</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+
+    <plugins>
+      <plugin>
+        <inherited>true</inherited>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.5.1</version>
+        <configuration>
+          <!-- Retrolambda will rewrite lambdas as Java 6 bytecode -->
+          <source>1.8</source>
+          <target>1.8</target>
+          <compilerId>javac-with-errorprone</compilerId>
+          <forceJavacCompilerUse>true</forceJavacCompilerUse>
+          <showWarnings>true</showWarnings>
+        </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-compiler-javac-errorprone</artifactId>
+            <version>2.8</version>
+          </dependency>
+          <dependency>
+            <groupId>com.google.errorprone</groupId>
+            <artifactId>error_prone_core</artifactId>
+            <version>2.0.9</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+
+      <plugin>
+        <groupId>net.orfjackal.retrolambda</groupId>
+        <artifactId>retrolambda-maven-plugin</artifactId>
+        <version>2.3.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process-main</goal>
+            </goals>
+            <configuration>
+              <target>${main.java.version}</target>
+              <fork>false</fork>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>animal-sniffer-maven-plugin</artifactId>
+        <version>1.15</version>
+        <configuration>
+          <signature>
+            <groupId>org.codehaus.mojo.signature</groupId>
+            <artifactId>${main.signature.artifact}</artifactId>
+            <version>1.0</version>
+          </signature>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!-- Ensures checksums are added to published jars -->
+      <plugin>
+        <artifactId>maven-install-plugin</artifactId>
+        <version>2.5.2</version>
+        <configuration>
+          <createChecksum>true</createChecksum>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>com.mycila</groupId>
+        <artifactId>license-maven-plugin</artifactId>
+        <version>${license-maven-plugin.version}</version>
+        <configuration>
+          <header>${main.basedir}/src/etc/header.txt</header>
+          <excludes>
+            <exclude>.travis.yml</exclude>
+            <exclude>.gitignore</exclude>
+            <exclude>.mvn/**</exclude>
+            <exclude>mvnw*</exclude>
+            <exclude>etc/header.txt</exclude>
+            <exclude>**/.idea/**</exclude>
+            <exclude>LICENSE</exclude>
+            <exclude>**/*.md</exclude>
+            <exclude>src/test/resources/**</exclude>
+            <exclude>src/main/resources/**</exclude>
+          </excludes>
+          <strictCheck>true</strictCheck>
+        </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>com.mycila</groupId>
+            <artifactId>license-maven-plugin-git</artifactId>
+            <version>${license-maven-plugin.version}</version>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <phase>compile</phase>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-release-plugin</artifactId>
+        <version>2.5.3</version>
+        <configuration>
+          <useReleaseProfile>false</useReleaseProfile>
+          <releaseProfiles>release</releaseProfiles>
+          <autoVersionSubmodules>true</autoVersionSubmodules>
+          <tagNameFormat>@{project.version}</tagNameFormat>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>io.zipkin.centralsync-maven-plugin</groupId>
+        <artifactId>centralsync-maven-plugin</artifactId>
+        <version>0.1.0</version>
+        <configuration>
+          <packageName>zipkin-aws</packageName>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>release</id>
+      <build>
+        <plugins>
+          <!-- Creates source jar -->
+          <plugin>
+            <artifactId>maven-source-plugin</artifactId>
+            <version>3.0.1</version>
+            <executions>
+              <execution>
+                <id>attach-sources</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>2.10.4</version>
+            <configuration>
+              <failOnError>false</failOnError>
+              <excludePackageNames>zipkin.aws.internal,zipkin.aws.internal.*
+              </excludePackageNames>
+              <!-- hush pedantic warnings: we don't put param and return on everything! -->
+              <additionalparam>-Xdoclint:none</additionalparam>
+            </configuration>
+            <executions>
+              <execution>
+                <id>attach-javadocs</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+                <phase>package</phase>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/src/etc/header.txt b/src/etc/header.txt
new file mode 100644
index 0000000..6dba3bd
--- /dev/null
+++ b/src/etc/header.txt
@@ -0,0 +1,11 @@
+Copyright ${license.git.copyrightYears} 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.


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

Posted by ab...@apache.org.
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>
 


[incubator-zipkin-brave-karaf] 24/46: Revamps project to recent version of Brave and refactors senders

Posted by ab...@apache.org.
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 a9f4e8578ff14a9edc0b02a1a559b5a45d0f7c9c
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Sat Feb 24 15:59:32 2018 +0800

    Revamps project to recent version of Brave and refactors senders
    
    Before, I think we accidentally conflated zipkin reporter's senders with
    instrumentation. When we go to instrument okhttp, for example, that will
    different than the sender (what sends spans to zipkin).
    
    This doesn't pass tests, so could use a hand.
---
 .gitignore                                         |  13 +-
 .mvn/wrapper/MavenWrapperDownloader.java           | 110 +++
 .mvn/wrapper/maven-wrapper.jar                     | Bin 49519 -> 48337 bytes
 .mvn/wrapper/maven-wrapper.properties              |   2 +-
 .settings.xml                                      |   2 +-
 brave-exporter-kafka08/pom.xml                     |  90 ---
 .../osgi/exporter/kafka/KafkaReporterExporter.java |  90 ---
 brave-exporter-okhttp3/pom.xml                     | 103 ---
 .../okhttp3/internal/OkHttp3ReporterExporter.java  | 140 ----
 brave-exporter/pom.xml                             |  85 ---
 .../zipkin/brave/osgi/exporter/BraveExporter.java  |  66 --
 .../urlconnect/SenderUrlConnectExporter.java       |  71 --
 brave-features/.classpath                          |  36 -
 brave-features/pom.xml                             |  80 ---
 brave-features/src/main/resources/features.xml     |  60 --
 brave-itests/pom.xml                               | 175 -----
 .../java/io/zipkin/brave/itests/BraveTest.java     | 126 ----
 exporter-sender-kafka/pom.xml                      |  78 +++
 .../exporter/sender/kafka/KafkaSenderExporter.java |  80 +++
 .../sender/kafka/KafkaSenderExporterTest.java      |  45 +-
 exporter-sender-okhttp/pom.xml                     |  73 ++
 .../sender/okhttp/SenderOkHttpExporter.java        |  63 ++
 exporter/pom.xml                                   |  77 +++
 .../brave/exporter/AsyncReporterExporter.java      |  60 ++
 .../zipkin/brave/exporter/HttpTracingExporter.java |  55 ++
 .../io/zipkin/brave/exporter/TracingExporter.java  |  68 ++
 .../urlconnection/URLConnectionSenderExporter.java |  66 ++
 features/pom.xml                                   |  81 +++
 features/src/main/resources/features.xml           |  44 ++
 {brave-itests => itests}/.gitignore                |   0
 itests/pom.xml                                     | 156 +++++
 .../java/io/zipkin/brave/itests/BraveTest.java     |  97 +++
 .../src/test/resources/exam.properties             |   0
 .../src/test/resources/logback.xml                 |   0
 mvnw                                               | 158 +++--
 mvnw.cmd                                           |  26 +-
 pom.xml                                            | 754 ++++++++++++---------
 37 files changed, 1696 insertions(+), 1534 deletions(-)

diff --git a/.gitignore b/.gitignore
index 3e4494c..e1f45e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,7 +10,12 @@
 # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 hs_err_pid*
 
-.classpath
-.project
-.settings
-target
+# Maven
+target/
+
+# IntelliJ
+.idea/
+*.iml
+
+# macOS
+.DS_Store
diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100755
index 0000000..fa4f7b4
--- /dev/null
+++ b/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,110 @@
+/*
+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.
+*/
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL =
+            "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if(mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if(mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: : " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if(!outputFile.getParentFile().exists()) {
+            if(!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
old mode 100644
new mode 100755
index c6feb8b..01e6799
Binary files a/.mvn/wrapper/maven-wrapper.jar and b/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
old mode 100644
new mode 100755
index c9023ed..00d32aa
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -1 +1 @@
-distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
\ No newline at end of file
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
\ No newline at end of file
diff --git a/.settings.xml b/.settings.xml
index 74dd284..15f5f03 100644
--- a/.settings.xml
+++ b/.settings.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright 2015-2016 The OpenZipkin Authors
+    Copyright 2016-2018 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
diff --git a/brave-exporter-kafka08/pom.xml b/brave-exporter-kafka08/pom.xml
deleted file mode 100644
index 1ad63a1..0000000
--- a/brave-exporter-kafka08/pom.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>io.zipkin.brave.karaf</groupId>
-		<artifactId>brave-karaf-parent</artifactId>
-		<version>1.0.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>brave-exporter-kafka08</artifactId>
-	
-	<properties>
-        <main.basedir>${project.basedir}/..</main.basedir>
-	</properties>
-	
-	<dependencies>
-		<dependency>
-			<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>
-			<artifactId>brave-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.reporter</groupId>
-			<artifactId>zipkin-reporter</artifactId>
-		</dependency>
-		<dependency>
-			<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>
-		<plugins>
-			<plugin>
-				<groupId>biz.aQute.bnd</groupId>
-				<artifactId>bnd-maven-plugin</artifactId>
-				<version>3.3.0</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>bnd-process</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<version>3.0.2</version>
-				<configuration>
-					<archive>
-						<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-					</archive>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
\ No newline at end of file
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
deleted file mode 100644
index 4c48df2..0000000
--- a/brave-exporter-kafka08/src/main/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporter.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * 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 java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.osgi.service.component.annotations.Deactivate;
-import org.osgi.service.metatype.annotations.Designate;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
-import zipkin.Span;
-import zipkin.reporter.AsyncReporter;
-import zipkin.reporter.Encoding;
-import zipkin.reporter.Reporter;
-import zipkin.reporter.kafka08.KafkaSender;
-
-@Component //
-( //
-    immediate = true, //
-    name = "io.zipkin.reporter.kafka08", //
-    configurationPolicy = ConfigurationPolicy.REQUIRE
-)
-@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;
-
-    @ObjectClassDefinition(name = "Zipkin Reporter Kafka08")
-    @interface Config {
-        String bootstrapServers() default "localhost:9092";
-        Encoding encoding() default Encoding.THRIFT;
-        int messageMaxBytes() default 1000000;
-        String topic() default "zipkin";
-    }
-
-    @Activate
-    public void activate(Config config, BundleContext context, Map<String,String> properties) {
-        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(getOverrides(properties)) //
-            .topic(config.topic()) //
-            .build();
-        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
-    public void deactive() {
-        reg.unregister();
-        reporter.close();
-    }
-
-}
diff --git a/brave-exporter-okhttp3/pom.xml b/brave-exporter-okhttp3/pom.xml
deleted file mode 100644
index 17827bb..0000000
--- a/brave-exporter-okhttp3/pom.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright 2017 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>brave-karaf-parent</artifactId>
-        <groupId>io.zipkin.brave.karaf</groupId>
-        <version>1.0.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>brave-exporter-okhttp3</artifactId>
-
-    <properties>
-        <main.basedir>${project.basedir}/..</main.basedir>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <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.java</groupId>
-            <artifactId>zipkin</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>io.zipkin.brave</groupId>
-            <artifactId>brave-context-slf4j</artifactId>
-            <version>${brave.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>io.zipkin.reporter</groupId>
-            <artifactId>zipkin-reporter</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>io.zipkin.reporter</groupId>
-            <artifactId>zipkin-sender-okhttp3</artifactId>
-            <version>${zipkin.reporter.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>biz.aQute.bnd</groupId>
-                <artifactId>bnd-maven-plugin</artifactId>
-                <version>3.3.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>bnd-process</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>3.0.2</version>
-                <configuration>
-                    <archive>
-                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-                    </archive>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/brave-exporter-okhttp3/src/main/java/io/zipkin/brave/osgi/exporter/okhttp3/internal/OkHttp3ReporterExporter.java b/brave-exporter-okhttp3/src/main/java/io/zipkin/brave/osgi/exporter/okhttp3/internal/OkHttp3ReporterExporter.java
deleted file mode 100644
index 55aecac..0000000
--- a/brave-exporter-okhttp3/src/main/java/io/zipkin/brave/osgi/exporter/okhttp3/internal/OkHttp3ReporterExporter.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Copyright 2016-2017 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.okhttp3.internal;
-
-import brave.Tracing;
-import brave.context.slf4j.MDCCurrentTraceContext;
-import brave.sampler.Sampler;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.osgi.service.component.annotations.Deactivate;
-import org.osgi.service.metatype.annotations.Designate;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
-import zipkin.Span;
-import zipkin.reporter.AsyncReporter;
-import zipkin.reporter.Encoding;
-import zipkin.reporter.Reporter;
-import zipkin.reporter.okhttp3.OkHttpSender;
-
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-@Component(
-        immediate = true,
-        name = "io.zipkin.reporter.okhttp3",
-        property = {"sender=okhttp3"},
-        configurationPolicy = ConfigurationPolicy.REQUIRE
-)
-@Designate(ocd = OkHttp3ReporterExporter.Config.class)
-public class OkHttp3ReporterExporter {
-
-    private static final String OVERRIDE_PREFIX = "okhttp3.";
-
-    @SuppressWarnings("rawtypes")
-    private ServiceRegistration<Reporter> reporterServiceRegistration;
-    @SuppressWarnings("rawtypes")
-    private ServiceRegistration<Tracing> tracingServiceRegistration;
-
-    private AsyncReporter<Span> reporter;
-    private Tracing tracing;
-
-    private BundleContext context;
-
-    @ObjectClassDefinition(name = "Zipkin Reporter OkHttp3")
-    @interface Config {
-        String zipkinUrl() default "localhost:9411";
-
-        boolean compressionEnabled() default true;
-
-        Encoding encoding() default Encoding.THRIFT;
-
-        int messageMaxBytes() default 1000000;
-
-        String localServiceName() default "zipkin-okhttp3";
-
-        String samplerFilter() default "(type=always)";
-    }
-
-    @Activate
-    public void activate(Config config, BundleContext context, Map<String, String> properties) {
-        this.context = context;
-        OkHttpSender sender = createSender(config, properties);
-        reporter = AsyncReporter.create(sender);
-
-        reporterServiceRegistration = context.registerService(Reporter.class, reporter,
-                new Hashtable<String, String>(properties));
-
-        tracing = httpTracer(config, properties, reporter);
-        tracingServiceRegistration = context.registerService(Tracing.class, tracing,
-                new Hashtable<String, String>(properties));
-    }
-
-    @SuppressWarnings("unchecked")
-    public Tracing httpTracer(Config config, Map<String, String> properties, Reporter reporter) {
-
-        Sampler sampler = Sampler.ALWAYS_SAMPLE;
-
-        try {
-            ServiceReference<Sampler>[] samplers =
-                    (ServiceReference<Sampler>[]) context.getAllServiceReferences(
-                            Sampler.class.getName(), config.samplerFilter());
-            if (samplers != null && samplers.length > 0) {
-                sampler = context.getService(samplers[0]);
-            }
-
-        } catch (InvalidSyntaxException e) {
-
-        }
-
-        Tracing.Builder tracingBuilder = Tracing.newBuilder();
-        tracingBuilder.localServiceName(config.localServiceName());
-        tracingBuilder.sampler(sampler);
-        tracingBuilder.reporter(reporter);
-        tracingBuilder.currentTraceContext(MDCCurrentTraceContext.create());
-
-        return tracingBuilder.build();
-    }
-
-
-    OkHttpSender createSender(Config config, Map<String, String> properties) {
-        return OkHttpSender.builder()
-                .endpoint(config.zipkinUrl())
-                .compressionEnabled(config.compressionEnabled())
-                .messageMaxBytes(config.messageMaxBytes())
-                .build();
-    }
-
-    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
-    public void deactive() {
-        tracingServiceRegistration.unregister();
-        reporterServiceRegistration.unregister();
-        reporter.close();
-    }
-}
diff --git a/brave-exporter/pom.xml b/brave-exporter/pom.xml
deleted file mode 100644
index dbc38ac..0000000
--- a/brave-exporter/pom.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>io.zipkin.brave.karaf</groupId>
-		<artifactId>brave-karaf-parent</artifactId>
-		<version>1.0.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>brave-exporter</artifactId>
-	
-	<properties>
-        <main.basedir>${project.basedir}/..</main.basedir>
-	</properties>
-	
-	<dependencies>
-		<dependency>
-			<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>
-			<artifactId>brave-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.reporter</groupId>
-			<artifactId>zipkin-reporter</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.reporter</groupId>
-			<artifactId>zipkin-sender-urlconnection</artifactId>
-		</dependency>
-	</dependencies>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>biz.aQute.bnd</groupId>
-				<artifactId>bnd-maven-plugin</artifactId>
-				<version>3.3.0</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>bnd-process</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<version>3.0.2</version>
-				<configuration>
-					<archive>
-						<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-					</archive>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
\ No newline at end of file
diff --git a/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/BraveExporter.java b/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/BraveExporter.java
deleted file mode 100644
index 04b9536..0000000
--- a/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/BraveExporter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * 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;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import com.github.kristofa.brave.Brave;
-import com.github.kristofa.brave.Sampler;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Deactivate;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.metatype.annotations.Designate;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
-import zipkin.Span;
-import zipkin.reporter.Reporter;
-
-@Component //
-( //
-    immediate = true, //
-    name = "io.zipkin.brave" //
-)
-@Designate(ocd = BraveExporter.Config.class)
-public class BraveExporter {
-    @Reference
-    Reporter<Span> reporter;
-
-    private ServiceRegistration<Brave> reg;
-
-    @ObjectClassDefinition(name = "Brave")
-    @interface Config {
-        String name() default "default";
-        boolean traceId128Bit() default false;
-        float rate() default 1;
-    }
-
-    @Activate
-    public void activate(Config config, BundleContext context, Map<String, String> properties) {
-        Brave brave = new Brave.Builder(config.name())
-            .reporter(reporter) //
-            .traceId128Bit(config.traceId128Bit()) //
-            .traceSampler(Sampler.create(config.rate()))
-            .build();
-        reg = context.registerService(Brave.class, brave, new Hashtable<String, String>(properties));
-    }
-    
-    @Deactivate
-    public void deactive() {
-        reg.unregister();
-    }
-
-}
diff --git a/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/urlconnect/SenderUrlConnectExporter.java b/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/urlconnect/SenderUrlConnectExporter.java
deleted file mode 100644
index 94f85b9..0000000
--- a/brave-exporter/src/main/java/io/zipkin/brave/osgi/exporter/urlconnect/SenderUrlConnectExporter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * 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.urlconnect;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.osgi.service.component.annotations.Deactivate;
-import org.osgi.service.metatype.annotations.Designate;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
-import zipkin.Span;
-import zipkin.reporter.AsyncReporter;
-import zipkin.reporter.Reporter;
-import zipkin.reporter.urlconnection.URLConnectionSender;
-
-@Component //
-( //
-    immediate = true, //
-    name = "io.zipkin.reporter.urlconnect", //
-    configurationPolicy = ConfigurationPolicy.REQUIRE
-)
-@Designate(ocd = SenderUrlConnectExporter.Config.class)
-public class SenderUrlConnectExporter {
-
-    @SuppressWarnings("rawtypes")
-    private ServiceRegistration<Reporter> reg;
-    private AsyncReporter<Span> reporter;
-
-    @ObjectClassDefinition(name = "Zipkin Reporter URLConnect")
-    @interface Config {
-        String endpoint() default "http://localhost:9411/api/v1/spans";
-        boolean compressionEnabled() default true;
-        int connectTimeout() default 10 * 1000;
-        int messageMaxBytes() default 5 * 1024 * 1024;
-    }
-
-    @Activate
-    public void activate(Config config, BundleContext context, Map<String,String> properties) {
-        URLConnectionSender sender = URLConnectionSender.builder()
-            .endpoint(config.endpoint()) //
-            .compressionEnabled(config.compressionEnabled()) //
-            .connectTimeout(config.connectTimeout())
-            .messageMaxBytes(config.messageMaxBytes())
-            .build();
-        reporter = AsyncReporter.builder(sender).build();
-        reg = context.registerService(Reporter.class, reporter, new Hashtable<String, String>(properties));
-    }
-    
-    @Deactivate
-    public void deactive() {
-        reg.unregister();
-        reporter.close();
-    }
-
-}
diff --git a/brave-features/.classpath b/brave-features/.classpath
deleted file mode 100644
index fae1a2b..0000000
--- a/brave-features/.classpath
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/brave-features/pom.xml b/brave-features/pom.xml
deleted file mode 100644
index 2a1bb0f..0000000
--- a/brave-features/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-        <groupId>io.zipkin.brave.karaf</groupId>
-        <artifactId>brave-karaf-parent</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-	</parent>
-	<artifactId>brave-features</artifactId>
-	<packaging>pom</packaging>
-    
-    <properties>
-        <main.basedir>${project.basedir}/..</main.basedir>
-    </properties>
-
-	<build>
-		<resources>
-			<resource>
-				<directory>src/main/resources</directory>
-				<filtering>true</filtering>
-			</resource>
-		</resources>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-resources-plugin</artifactId>
-				<version>2.7</version>
-				<executions>
-					<execution>
-						<id>filter</id>
-						<phase>generate-resources</phase>
-						<goals>
-							<goal>resources</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>build-helper-maven-plugin</artifactId>
-				<version>1.7</version>
-				<executions>
-					<execution>
-						<id>attach-artifacts</id>
-						<phase>package</phase>
-						<goals>
-							<goal>attach-artifact</goal>
-						</goals>
-						<configuration>
-							<artifacts>
-								<artifact>
-									<file>target/classes/features.xml</file>
-									<type>xml</type>
-									<classifier>features</classifier>
-								</artifact>
-							</artifacts>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-</project>
diff --git a/brave-features/src/main/resources/features.xml b/brave-features/src/main/resources/features.xml
deleted file mode 100644
index 9cb5b49..0000000
--- a/brave-features/src/main/resources/features.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<features name="brave" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-
-	<feature name="brave-core">
-		<feature>scr</feature>
-		<bundle dependency="true">mvn:io.zipkin.java/zipkin/${zipkin.version}</bundle>
-		<bundle dependency="true">mvn:io.zipkin.reporter/zipkin-reporter/${zipkin.reporter.version}</bundle>
-		<bundle>mvn:io.zipkin.reporter/zipkin-sender-urlconnection/${zipkin.reporter.version}</bundle>
-		<bundle>mvn:io.zipkin.brave/brave-core/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter/${project.version}</bundle>
-	</feature>
-	
-	<feature name="brave-kafka08">
-		<feature>brave-core</feature>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/0.8.2.2_1</bundle>
-		<bundle>mvn:io.zipkin.reporter/zipkin-sender-kafka08/${zipkin.reporter.version}</bundle>
-		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-kafka08/${project.version}</bundle>
-	</feature>
-
-	<feature name="brave-okhttp3`">
-		<feature>brave-core</feature>
-		<bundle>mvn:org.apache.httpcomponents/httpcore-osgi/4.4.5</bundle>
-		<bundle>mvn:org.apache.httpcomponents/httpclient-osgi/4.5.3</bundle>
-		<bundle>mvn:io.zipkin.brave/brave/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.brave/brave/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.brave/brave-instrumentation-http/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.brave/brave-instrumentation-httpclient/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.brave/brave-context-slf4j/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.reporter/zipkin-sender-okhttp3/${zipkin.reporter.version}</bundle>
-		<bundle>wrap:mvn:com.squareup.okhttp3/okhttp/3.8.0</bundle>
-		<bundle>wrap:mvn:com.squareup.okio/okio/1.13.0</bundle>
-		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-okhttp3/${project.version}</bundle>
-	</feature>
-	
-	<feature name="brave-jaxrs2">
-		<feature>brave-core</feature>
-		<bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-2.0.1/2.6.0</bundle>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_2</bundle>
-		<bundle dependency="true">mvn:io.zipkin.brave/brave-http/${brave.version}</bundle>
-		<bundle>mvn:io.zipkin.brave/brave-jaxrs2/${brave.version}</bundle>
-	</feature>
-
-</features>
\ No newline at end of file
diff --git a/brave-itests/pom.xml b/brave-itests/pom.xml
deleted file mode 100644
index ce934df..0000000
--- a/brave-itests/pom.xml
+++ /dev/null
@@ -1,175 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-        <groupId>io.zipkin.brave.karaf</groupId>
-        <artifactId>brave-karaf-parent</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-	</parent>
-	<artifactId>brave-itests</artifactId>
-
-	<properties>
-		<pax.exam.version>4.5.0</pax.exam.version>
-		<pax.url.version>2.1.0</pax.url.version>
-		<logback.version>1.0.4</logback.version>
-		<slf4j.version>1.7.4</slf4j.version>
-		<karaf.version>4.0.7</karaf.version>
-		<junit.version>4.12</junit.version>
-        <main.basedir>${project.basedir}/..</main.basedir>
-	</properties>
-
-	<dependencies>
-		<dependency>
-			<groupId>io.zipkin.brave</groupId>
-			<artifactId>brave-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.brave.karaf</groupId>
-			<artifactId>brave-exporter</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.brave.karaf</groupId>
-			<artifactId>brave-exporter-kafka08</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.reporter</groupId>
-			<artifactId>zipkin-sender-urlconnection</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.reporter</groupId>
-			<artifactId>zipkin-sender-kafka08</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Pax Exam Dependencies -->
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-junit4</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-cm</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-invoker-junit</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Karaf Container -->
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-container-karaf</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-inject</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-extender-service</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Preferred link because it does not require an mvn url handler implicitely. -->
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-link-mvn</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.ops4j.pax.exam</groupId>
-			<artifactId>pax-exam-link-assembly</artifactId>
-			<version>${pax.exam.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>ch.qos.logback</groupId>
-			<artifactId>logback-core</artifactId>
-			<version>${logback.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>ch.qos.logback</groupId>
-			<artifactId>logback-classic</artifactId>
-			<version>${logback.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.geronimo.specs</groupId>
-			<artifactId>geronimo-atinject_1.0_spec</artifactId>
-			<version>1.0</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-			<version>4.3.1</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.3.1</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- framework to test with -->
-		<dependency>
-			<groupId>org.apache.karaf.features</groupId>
-			<artifactId>standard</artifactId>
-			<version>${karaf.version}</version>
-			<type>xml</type>
-			<classifier>features</classifier>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.karaf.features</groupId>
-			<artifactId>org.apache.karaf.features.core</artifactId>
-			<version>${karaf.version}</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-
-</project>
diff --git a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
deleted file mode 100644
index 1e32ba8..0000000
--- a/brave-itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * 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.itests;
-
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.ops4j.pax.exam.CoreOptions.maven;
-import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import com.github.kristofa.brave.Brave;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
-import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
-import org.ops4j.pax.exam.options.MavenUrlReference;
-import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
-import org.ops4j.pax.exam.spi.reactors.PerClass;
-import org.ops4j.pax.exam.util.Filter;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import zipkin.Span;
-import zipkin.reporter.Reporter;
-
-@RunWith(PaxExam.class)
-@ExamReactorStrategy(PerClass.class)
-public class BraveTest {
-    private static final String FILTER_KAFKA08 = "(component.name=io.zipkin.reporter.kafka08)";
-
-    private static final String FILTER_URLCONNECT = "(component.name=io.zipkin.reporter.urlconnect)";
-
-    List<Span> spans = new ArrayList<Span>();
-
-    @Inject
-    @Filter(FILTER_URLCONNECT)
-    Reporter<Span> reporter;
-    
-    @Inject
-    @Filter(FILTER_KAFKA08)
-    Reporter<Span> reporterKafka;
-    
-    @Inject
-    BundleContext context;
-
-    @Configuration
-    public static Option[] configuration() throws Exception {
-        MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
-            .type("zip").version("4.0.7");
-        MavenUrlReference brave = maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
-           .classifier("features").version("1.0.0-SNAPSHOT");
-        return new Option[] //
-        {
-         karafDistributionConfiguration().frameworkUrl(karaf).useDeployFolder(false),
-         configureConsole().ignoreLocalConsole(), //
-         logLevel(LogLevel.INFO), //
-         keepRuntimeFolder(), //
-         features(brave, "brave-core", "brave-kafka08"),
-         // Create an empty config to trigger creation of component 
-         newConfiguration("io.zipkin.reporter.urlconnect").asOption(),
-         newConfiguration("io.zipkin.reporter.kafka08").asOption()
-        };
-    }
-
-    @Test
-    public void inlineBraveSetup() {
-        Reporter<Span> local = new Reporter<Span>() {
-
-            @Override
-            public void report(Span span) {
-                spans.add(span);
-            }
-        };
-        Brave brave = new Brave.Builder().reporter(local).build();
-        brave.localTracer().startNewSpan("test", "testop");
-        brave.localTracer().finishSpan();
-        Assert.assertThat(1, equalTo(spans.size()));
-    }
-    
-    @SuppressWarnings("rawtypes")
-    @Test
-    public void checkReporterUrlConnect() throws InvalidSyntaxException {
-        ServiceReference<Reporter> ref = getSingleService(FILTER_URLCONNECT);
-        Assert.assertEquals(10000, ref.getProperty("connectTimeout"));
-    }
-
-    @SuppressWarnings("rawtypes")
-    @Test
-    public void checkReporterKafka() throws InvalidSyntaxException {
-        ServiceReference<Reporter> ref = getSingleService(FILTER_KAFKA08);
-        Assert.assertEquals("zipkin", ref.getProperty("topic"));
-    }
-
-    @SuppressWarnings("rawtypes")
-    private ServiceReference<Reporter> getSingleService(String filter) throws InvalidSyntaxException {
-        Collection<ServiceReference<Reporter>> refs = context.getServiceReferences(Reporter.class, filter);
-        Assert.assertEquals(1, refs.size());
-        return refs.iterator().next();
-    }
-    
-}
diff --git a/exporter-sender-kafka/pom.xml b/exporter-sender-kafka/pom.xml
new file mode 100644
index 0000000..d294f02
--- /dev/null
+++ b/exporter-sender-kafka/pom.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--
+
+    Copyright 2016-2018 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <groupId>io.zipkin.brave.karaf</groupId>
+    <artifactId>brave-karaf-parent</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>brave-exporter-sender-kafka</artifactId>
+  <name>Brave OSGi Exporter: Kafka Sender</name>
+
+  <properties>
+    <main.basedir>${project.basedir}/..</main.basedir>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.cmpn</artifactId>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-reporter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-sender-kafka11</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>biz.aQute.bnd</groupId>
+        <artifactId>bnd-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+          <archive>
+            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+          </archive>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/exporter-sender-kafka/src/main/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporter.java b/exporter-sender-kafka/src/main/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporter.java
new file mode 100644
index 0000000..48d2b38
--- /dev/null
+++ b/exporter-sender-kafka/src/main/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporter.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2016-2018 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.exporter.sender.kafka;
+
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin2.codec.Encoding;
+import zipkin2.reporter.Sender;
+import zipkin2.reporter.kafka11.KafkaSender;
+
+@Component(
+    immediate = true,
+    name = "io.zipkin.sender.kafka",
+    configurationPolicy = ConfigurationPolicy.REQUIRE
+)
+@Designate(ocd = KafkaSenderExporter.Config.class)
+public class KafkaSenderExporter {
+
+  private static final String OVERRIDE_PREFIX = "kafka.";
+  private ServiceRegistration<Sender> reg;
+  private KafkaSender sender;
+
+  @Activate
+  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+    sender = KafkaSender.newBuilder()
+        .bootstrapServers(config.bootstrapServers())
+        .encoding(config.encoding())
+        .messageMaxBytes(config.messageMaxBytes())
+        .overrides(getOverrides(properties))
+        .topic(config.topic())
+        .build();
+    reg = context.registerService(Sender.class, sender, new Hashtable<String, String>(properties));
+  }
+
+  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
+  public void deactive() {
+    reg.unregister();
+    sender.close();
+  }
+
+  @ObjectClassDefinition(name = "Zipkin Sender Kafka") @interface Config {
+    String bootstrapServers() default "localhost:9092";
+
+    Encoding encoding() default Encoding.JSON;
+
+    int messageMaxBytes() default 1000000;
+
+    String topic() default "zipkin";
+  }
+}
diff --git a/brave-exporter-kafka08/src/test/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporterTest.java b/exporter-sender-kafka/src/test/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporterTest.java
similarity index 50%
rename from brave-exporter-kafka08/src/test/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporterTest.java
rename to exporter-sender-kafka/src/test/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporterTest.java
index 8b6b10e..3c685c3 100644
--- a/brave-exporter-kafka08/src/test/java/io/zipkin/brave/osgi/exporter/kafka/KafkaReporterExporterTest.java
+++ b/exporter-sender-kafka/src/test/java/io/zipkin/brave/exporter/sender/kafka/KafkaSenderExporterTest.java
@@ -1,5 +1,5 @@
-/**
- * Copyright 2016 The OpenZipkin Authors
+/*
+ * Copyright 2016-2018 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
@@ -11,34 +11,31 @@
  * 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;
+package io.zipkin.brave.exporter.sender.kafka;
 
+import io.zipkin.brave.exporter.sender.kafka.KafkaSenderExporter.Config;
 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;
+import zipkin2.codec.Encoding;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
-@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);
-    }
+@Config(bootstrapServers = "server1", messageMaxBytes = 10, topic = "mytopic")
+public class KafkaSenderExporterTest {
 
+  @Test
+  public void testConfig() {
+    KafkaSenderExporter exporter = new KafkaSenderExporter();
+    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.JSON);
+    when(config.topic()).thenReturn("mytopic");
+    exporter.activate(config, context, properties);
+  }
 }
diff --git a/exporter-sender-okhttp/pom.xml b/exporter-sender-okhttp/pom.xml
new file mode 100644
index 0000000..9d919ba
--- /dev/null
+++ b/exporter-sender-okhttp/pom.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+
+    Copyright 2016-2018 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <groupId>io.zipkin.brave.karaf</groupId>
+    <artifactId>brave-karaf-parent</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>brave-exporter-sender-okhttp</artifactId>
+  <name>Brave OSGi Exporter: OkHttp Sender</name>
+
+  <properties>
+    <main.basedir>${project.basedir}/..</main.basedir>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.cmpn</artifactId>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-reporter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-sender-okhttp3</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>biz.aQute.bnd</groupId>
+        <artifactId>bnd-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+          <archive>
+            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+          </archive>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/exporter-sender-okhttp/src/main/java/io/zipkin/brave/exporter/sender/okhttp/SenderOkHttpExporter.java b/exporter-sender-okhttp/src/main/java/io/zipkin/brave/exporter/sender/okhttp/SenderOkHttpExporter.java
new file mode 100644
index 0000000..4899f1b
--- /dev/null
+++ b/exporter-sender-okhttp/src/main/java/io/zipkin/brave/exporter/sender/okhttp/SenderOkHttpExporter.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2016-2018 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.exporter.sender.okhttp;
+
+import java.util.Hashtable;
+import java.util.Map;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin2.reporter.Sender;
+import zipkin2.reporter.okhttp3.OkHttpSender;
+
+@Component(
+    immediate = true,
+    name = "io.zipkin.sender.okhttp",
+    configurationPolicy = ConfigurationPolicy.REQUIRE
+)
+@Designate(ocd = SenderOkHttpExporter.Config.class)
+public class SenderOkHttpExporter {
+
+  private ServiceRegistration<Sender> reg;
+  private OkHttpSender sender;
+
+  @ObjectClassDefinition(name = "Zipkin Sender OkHttp") @interface Config {
+    String endpoint() default "http://localhost:9411/api/v2/spans";
+
+    boolean compressionEnabled() default true;
+
+    int messageMaxBytes() default 5 * 1024 * 1024;
+  }
+
+  @Activate
+  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+    sender = OkHttpSender.newBuilder()
+        .endpoint(config.endpoint())
+        .compressionEnabled(config.compressionEnabled())
+        .messageMaxBytes(config.messageMaxBytes())
+        .build();
+    reg = context.registerService(Sender.class, sender, new Hashtable<>(properties));
+  }
+
+  @Deactivate
+  public void deactive() {
+    reg.unregister();
+    if (sender != null) sender.close();
+  }
+}
\ No newline at end of file
diff --git a/exporter/pom.xml b/exporter/pom.xml
new file mode 100644
index 0000000..dfb4c0f
--- /dev/null
+++ b/exporter/pom.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--
+
+    Copyright 2016-2018 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <groupId>io.zipkin.brave.karaf</groupId>
+    <artifactId>brave-karaf-parent</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>brave-exporter</artifactId>
+  <name>Brave OSGi Exporter</name>
+
+  <properties>
+    <main.basedir>${project.basedir}/..</main.basedir>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.cmpn</artifactId>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>io.zipkin.brave</groupId>
+      <artifactId>brave</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.brave</groupId>
+      <artifactId>brave-instrumentation-http</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-sender-urlconnection</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>biz.aQute.bnd</groupId>
+        <artifactId>bnd-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+          <archive>
+            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+          </archive>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
new file mode 100644
index 0000000..6d32a38
--- /dev/null
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2016-2018 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.exporter;
+
+import java.util.Hashtable;
+import java.util.Map;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin2.Span;
+import zipkin2.reporter.AsyncReporter;
+import zipkin2.reporter.Reporter;
+import zipkin2.reporter.Sender;
+
+@Component(
+    immediate = true,
+    name = "io.zipkin.asyncreporter"
+)
+@Designate(ocd = AsyncReporterExporter.Config.class)
+public class AsyncReporterExporter {
+  @Reference
+  Sender sender;
+
+  private AsyncReporter<Span> reporter;
+  @SuppressWarnings("rawtypes")
+  private ServiceRegistration<Reporter> reg;
+
+  @Activate
+  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+    reporter = AsyncReporter.builder(sender)
+        .build();
+    reg = context.registerService(Reporter.class, reporter,
+        new Hashtable<String, String>(properties));
+  }
+
+  @Deactivate
+  public void deactive() {
+    reg.unregister();
+    if (reporter != null) reporter.close();
+  }
+
+  @ObjectClassDefinition(name = "AsyncReporter") @interface Config {
+  }
+}
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
new file mode 100644
index 0000000..be6dcd7
--- /dev/null
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2016-2018 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.exporter;
+
+import brave.Tracing;
+import brave.http.HttpTracing;
+import java.util.Hashtable;
+import java.util.Map;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+
+@Component(
+    immediate = true,
+    name = "io.zipkin.brave.http"
+)
+@Designate(ocd = HttpTracingExporter.Config.class)
+public class HttpTracingExporter {
+  @Reference
+  Tracing tracing;
+
+  private ServiceRegistration<HttpTracing> reg;
+
+  @Activate
+  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+    HttpTracing httpTracing = HttpTracing.newBuilder(tracing)
+        .build();
+    reg = context.registerService(HttpTracing.class, httpTracing,
+        new Hashtable<String, String>(properties));
+  }
+
+  @Deactivate
+  public void deactive() {
+    reg.unregister();
+  }
+
+  @ObjectClassDefinition(name = "HttpTracing") @interface Config {
+  }
+}
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
new file mode 100644
index 0000000..eae174d
--- /dev/null
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2016-2018 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.exporter;
+
+import brave.Tracing;
+import brave.sampler.Sampler;
+import java.util.Hashtable;
+import java.util.Map;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin2.Span;
+import zipkin2.reporter.Reporter;
+
+@Component(
+    immediate = true,
+    name = "io.zipkin.brave"
+)
+@Designate(ocd = TracingExporter.Config.class)
+public class TracingExporter {
+  @Reference
+  Reporter<Span> reporter;
+
+  private Tracing tracing;
+  private ServiceRegistration<Tracing> reg;
+
+  @Activate
+  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+    tracing = Tracing.newBuilder()
+        .localServiceName(config.name())
+        .spanReporter(reporter)
+        .traceId128Bit(config.traceId128Bit())
+        .sampler(Sampler.create(config.rate()))
+        .build();
+    reg =
+        context.registerService(Tracing.class, tracing, new Hashtable<String, String>(properties));
+  }
+
+  @Deactivate
+  public void deactive() {
+    reg.unregister();
+    if (tracing != null) tracing.close();
+  }
+
+  @ObjectClassDefinition(name = "Tracing") @interface Config {
+    String name() default "unknown";
+
+    boolean traceId128Bit() default false;
+
+    float rate() default 1;
+  }
+}
diff --git a/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java b/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
new file mode 100644
index 0000000..78c8b11
--- /dev/null
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/sender/urlconnection/URLConnectionSenderExporter.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2016-2018 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.exporter.sender.urlconnection;
+
+import java.util.Hashtable;
+import java.util.Map;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import zipkin2.reporter.Sender;
+import zipkin2.reporter.urlconnection.URLConnectionSender;
+
+@Component(
+    immediate = true,
+    name = "io.zipkin.sender.urlconnection",
+    configurationPolicy = ConfigurationPolicy.REQUIRE
+)
+@Designate(ocd = URLConnectionSenderExporter.Config.class)
+public class URLConnectionSenderExporter {
+
+  private ServiceRegistration<Sender> reg;
+  private URLConnectionSender sender;
+
+  @Activate
+  public void activate(Config config, BundleContext context, Map<String, String> properties) {
+    sender = URLConnectionSender.newBuilder()
+        .endpoint(config.endpoint())
+        .compressionEnabled(config.compressionEnabled())
+        .connectTimeout(config.connectTimeout())
+        .messageMaxBytes(config.messageMaxBytes())
+        .build();
+    reg = context.registerService(Sender.class, sender, new Hashtable<String, String>(properties));
+  }
+
+  @Deactivate
+  public void deactive() {
+    reg.unregister();
+    if (sender != null) sender.close();
+  }
+
+  @ObjectClassDefinition(name = "Zipkin Sender URLConnection") @interface Config {
+    String endpoint() default "http://localhost:9411/api/v2/spans";
+
+    boolean compressionEnabled() default true;
+
+    int connectTimeout() default 10 * 1000;
+
+    int messageMaxBytes() default 5 * 1024 * 1024;
+  }
+}
\ No newline at end of file
diff --git a/features/pom.xml b/features/pom.xml
new file mode 100644
index 0000000..5f6256d
--- /dev/null
+++ b/features/pom.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2016-2018 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>io.zipkin.brave.karaf</groupId>
+    <artifactId>brave-karaf-parent</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+  <artifactId>brave-features</artifactId>
+  <packaging>pom</packaging>
+
+  <properties>
+    <main.basedir>${project.basedir}/..</main.basedir>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+          <execution>
+            <id>filter</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <version>3.0.0</version>
+        <executions>
+          <execution>
+            <id>attach-artifacts</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>target/classes/features.xml</file>
+                  <type>xml</type>
+                  <classifier>features</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
new file mode 100644
index 0000000..72377d7
--- /dev/null
+++ b/features/src/main/resources/features.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<features name="brave" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
+
+	<feature name="brave">
+		<feature>scr</feature>
+		<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>mvn:io.zipkin.reporter2/zipkin-sender-urlconnection/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave/brave-instrumentation-http/${brave.version}</bundle>
+		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter/${project.version}</bundle>
+	</feature>
+	
+	<feature name="brave-sender-kafka">
+		<feature>brave</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/1.1.0_1</bundle>
+		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-kafka11/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-kafka/${project.version}</bundle>
+	</feature>
+
+	<feature name="brave-sender-okhttp`">
+		<feature>brave</feature>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.10.0_2</bundle>
+		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-okhttp3/${zipkin.reporter.version}</bundle>
+		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
+	</feature>
+</features>
\ No newline at end of file
diff --git a/brave-itests/.gitignore b/itests/.gitignore
similarity index 100%
rename from brave-itests/.gitignore
rename to itests/.gitignore
diff --git a/itests/pom.xml b/itests/pom.xml
new file mode 100644
index 0000000..7bed232
--- /dev/null
+++ b/itests/pom.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2016-2018 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>io.zipkin.brave.karaf</groupId>
+    <artifactId>brave-karaf-parent</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+  <artifactId>brave-itests</artifactId>
+
+  <properties>
+    <pax-exam.version>4.12.0</pax-exam.version>
+    <karaf.version>4.2.0</karaf.version>
+    <main.basedir>${project.basedir}/..</main.basedir>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>io.zipkin.brave.karaf</groupId>
+      <artifactId>brave-exporter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-sender-urlconnection</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.brave</groupId>
+      <artifactId>brave</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>io.zipkin.brave.karaf</groupId>
+      <artifactId>brave-exporter-sender-kafka</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-sender-kafka11</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>io.zipkin.brave.karaf</groupId>
+      <artifactId>brave-exporter-sender-okhttp</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.zipkin.reporter2</groupId>
+      <artifactId>zipkin-sender-okhttp3</artifactId>
+    </dependency>
+
+    <!-- Pax Exam Dependencies -->
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-junit4</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-cm</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-invoker-junit</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <!-- Karaf Container -->
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-container-karaf</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-inject</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-extender-service</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <!-- Preferred link because it does not require an mvn url handler implicitly. -->
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-link-mvn</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.ops4j.pax.exam</groupId>
+      <artifactId>pax-exam-link-assembly</artifactId>
+      <version>${pax-exam.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-atinject_1.0_spec</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi.cmpn</artifactId>
+      <scope>provided</scope>
+    </dependency>
+
+    <!-- framework to test with -->
+    <dependency>
+      <groupId>org.apache.karaf.features</groupId>
+      <artifactId>standard</artifactId>
+      <version>${karaf.version}</version>
+      <type>xml</type>
+      <classifier>features</classifier>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.karaf.features</groupId>
+      <artifactId>org.apache.karaf.features.core</artifactId>
+      <version>${karaf.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
new file mode 100644
index 0000000..6698d4e
--- /dev/null
+++ b/itests/src/test/java/io/zipkin/brave/itests/BraveTest.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright 2016-2018 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.itests;
+
+import java.util.Collection;
+import javax.inject.Inject;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
+import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
+import org.ops4j.pax.exam.options.MavenUrlReference;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import zipkin2.reporter.Sender;
+
+import static org.ops4j.pax.exam.CoreOptions.maven;
+import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
+import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class BraveTest {
+  private static final String FILTER_KAFKA = "(component.name=io.zipkin.sender.kafka)";
+  private static final String FILTER_OKHTTP = "(component.name=io.zipkin.sender.okhttp)";
+  private static final String FILTER_URLCONNECTION =
+      "(component.name=io.zipkin.sender.urlconnection)";
+
+  @Inject
+  BundleContext context;
+
+  @Configuration
+  public static Option[] configuration() {
+    MavenArtifactUrlReference karaf = maven().groupId("org.apache.karaf").artifactId("apache-karaf")
+        .type("zip").version("4.0.7");
+    MavenUrlReference brave =
+        maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
+            .classifier("features").version("0.1.0-SNAPSHOT");
+    return new Option[] {
+        karafDistributionConfiguration().frameworkUrl(karaf).useDeployFolder(false),
+        configureConsole().ignoreLocalConsole(),
+        logLevel(LogLevel.INFO),
+        keepRuntimeFolder(),
+        features(brave, "brave", "brave-kafka", "brave-okhttp"),
+        // Create an empty config to trigger creation of component
+        newConfiguration("io.zipkin.sender.urlconnection").asOption(),
+        newConfiguration("io.zipkin.sender.okhttp").asOption(),
+        newConfiguration("io.zipkin.sender.kafka").asOption()
+    };
+  }
+
+  @Test
+  public void checkSenderUrlConnection() throws InvalidSyntaxException {
+    ServiceReference<Sender> ref = getSingleSender(FILTER_URLCONNECTION);
+    Assert.assertEquals(10000, ref.getProperty("connectTimeout"));
+  }
+
+  @Test
+  public void checkSenderKafka() throws InvalidSyntaxException {
+    ServiceReference<Sender> ref = getSingleSender(FILTER_KAFKA);
+    Assert.assertEquals("zipkin", ref.getProperty("topic"));
+  }
+
+  @Test
+  public void checkSenderOkHttp() throws InvalidSyntaxException {
+    ServiceReference<Sender> ref = getSingleSender(FILTER_OKHTTP);
+    Assert.assertEquals("zipkin", ref.getProperty("topic"));
+  }
+
+  @SuppressWarnings("rawtypes")
+  private ServiceReference<Sender> getSingleSender(String filter) throws InvalidSyntaxException {
+    Collection<ServiceReference<Sender>> refs = context.getServiceReferences(Sender.class, filter);
+    Assert.assertEquals(1, refs.size());
+    return refs.iterator().next();
+  }
+}
diff --git a/brave-itests/src/test/resources/exam.properties b/itests/src/test/resources/exam.properties
similarity index 100%
rename from brave-itests/src/test/resources/exam.properties
rename to itests/src/test/resources/exam.properties
diff --git a/brave-itests/src/test/resources/logback.xml b/itests/src/test/resources/logback.xml
similarity index 100%
rename from brave-itests/src/test/resources/logback.xml
rename to itests/src/test/resources/logback.xml
diff --git a/mvnw b/mvnw
index fc7efd1..5551fde 100755
--- a/mvnw
+++ b/mvnw
@@ -54,38 +54,16 @@ case "`uname`" in
   CYGWIN*) cygwin=true ;;
   MINGW*) mingw=true;;
   Darwin*) darwin=true
-           #
-           # Look for the Apple JDKs first to preserve the existing behaviour, and then look
-           # for the new JDKs provided by Oracle.
-           # 
-           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
-             #
-             # Apple JDKs
-             #
-             export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
-           fi
-           
-           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
-             #
-             # Apple JDKs
-             #
-             export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
-           fi
-             
-           if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
-             #
-             # Oracle JDKs
-             #
-             export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
-           fi           
-
-           if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
-             #
-             # Apple JDKs
-             #
-             export JAVA_HOME=`/usr/libexec/java_home`
-           fi
-           ;;
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
 esac
 
 if [ -z "$JAVA_HOME" ] ; then
@@ -130,7 +108,7 @@ if $cygwin ; then
     CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
 fi
 
-# For Migwn, ensure paths are in UNIX format before anything is touched
+# For Mingw, ensure paths are in UNIX format before anything is touched
 if $mingw ; then
   [ -n "$M2_HOME" ] &&
     M2_HOME="`(cd "$M2_HOME"; pwd)`"
@@ -184,27 +162,28 @@ fi
 
 CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
 
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --path --windows "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
-
 # traverses directory structure from process work directory to filesystem root
 # first directory with .mvn subdirectory is considered project base directory
 find_maven_basedir() {
-  local basedir=$(pwd)
-  local wdir=$(pwd)
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
   while [ "$wdir" != '/' ] ; do
     if [ -d "$wdir"/.mvn ] ; then
       basedir=$wdir
       break
     fi
-    wdir=$(cd "$wdir/.."; pwd)
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
   done
   echo "${basedir}"
 }
@@ -216,13 +195,87 @@ concat_lines() {
   fi
 }
 
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
 MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
 
-# Provide a "standardized" way to retrieve the CLI args that will 
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
-export MAVEN_CMD_LINE_ARGS
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
 
 WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
 
@@ -230,5 +283,4 @@ exec "$JAVACMD" \
   $MAVEN_OPTS \
   -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
   "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
-  ${WRAPPER_LAUNCHER} $MAVEN_CMD_LINE_ARGS
-
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
old mode 100644
new mode 100755
index 0d49a2d..48363fa
--- a/mvnw.cmd
+++ b/mvnw.cmd
@@ -35,6 +35,8 @@
 
 @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
 @echo off
+@REM set title of command window
+title %0
 @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
 @if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
 
@@ -80,8 +82,6 @@ goto error
 
 :init
 
-set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %*
-
 @REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
 @REM Fallback to current working directory if not found.
 
@@ -117,11 +117,27 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s
 :endReadAdditionalConfig
 
 SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-
-set WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar""
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
 set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
 
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
 if ERRORLEVEL 1 goto error
 goto end
 
diff --git a/pom.xml b/pom.xml
index 1d271c1..5008b36 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,338 +1,444 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-Copyright 2016, 2017 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
+    Copyright 2016-2018 The OpenZipkin Authors
 
-http://www.apache.org/licenses/LICENSE-2.0
+    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.
 
-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.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<groupId>io.zipkin.brave.karaf</groupId>
-	<artifactId>brave-karaf-parent</artifactId>
-	<version>1.0.0-SNAPSHOT</version>
-	<packaging>pom</packaging>
-
-	<modules>
-		<module>brave-features</module>
-		<module>brave-itests</module>
-		<module>brave-exporter</module>
-		<module>brave-exporter-kafka08</module>
-		<module>brave-exporter-okhttp3</module>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>io.zipkin.brave.karaf</groupId>
+  <artifactId>brave-karaf-parent</artifactId>
+  <version>0.1.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <modules>
+		<module>features</module>
+		<module>itests</module>
+		<module>exporter</module>
+		<module>exporter-sender-kafka</module>
+		<module>exporter-sender-okhttp</module>
   </modules>
 
-	<properties>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
 
 		<!-- default bytecode version for src/main -->
 		<main.java.version>1.6</main.java.version>
 		<main.signature.artifact>java16</main.signature.artifact>
 
-		<main.basedir>${project.basedir}</main.basedir>
-
-		<license-maven-plugin.version>2.11</license-maven-plugin.version>
-
-		<brave.version>4.5.0</brave.version>
-		<zipkin.version>1.24.0</zipkin.version>
-		<zipkin.reporter.version>0.10.0</zipkin.reporter.version>
-
-		<slf4j.version>1.7.21</slf4j.version>
-	</properties>
-
-	<name>Brave Karaf Parent</name>
-	<description>Brave Karaf Parent</description>
-	<url>https://github.com/openzipkin/brave-karaf</url>
-	<inceptionYear>2016</inceptionYear>
-
-	<organization>
-		<name>OpenZipkin</name>
-		<url>http://zipkin.io/</url>
-	</organization>
-
-	<licenses>
-		<license>
-			<name>The Apache Software License, Version 2.0</name>
-			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-			<distribution>repo</distribution>
-		</license>
-	</licenses>
-
-	<scm>
-		<url>https://github.com/openzipkin/brave-karaf</url>
-		<connection>scm:git:https://github.com/openzipkin/brave-karaf</connection>
-		<developerConnection>scm:git:https://github.com/openzipkin/brave-karaf</developerConnection>
-		<tag>0.0.1</tag>
-	</scm>
-
-	<developers>
-	</developers>
-
-	<distributionManagement>
-		<repository>
-			<id>bintray</id>
-			<url>https://api.bintray.com/maven/openzipkin/maven/brave-karaf/;publish=1</url>
-		</repository>
-		<snapshotRepository>
-			<id>jfrog-snapshots</id>
-			<url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
-		</snapshotRepository>
-	</distributionManagement>
-
-	<issueManagement>
-		<system>Github</system>
-		<url>https://github.com/openzipkin/brave-karaf/issues</url>
-	</issueManagement>
-
-	<dependencyManagement>
-		<dependencies>
-			<dependency>
-				<groupId>io.zipkin.java</groupId>
-				<artifactId>zipkin</artifactId>
-				<version>${zipkin.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>io.zipkin.reporter</groupId>
-				<artifactId>zipkin-reporter</artifactId>
-				<version>${zipkin.reporter.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>io.zipkin.reporter</groupId>
-				<artifactId>zipkin-sender-urlconnection</artifactId>
-				<version>${zipkin.reporter.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>io.zipkin.reporter</groupId>
-				<artifactId>zipkin-sender-kafka08</artifactId>
-				<version>${zipkin.reporter.version}</version>
-			</dependency>
-			
-			<dependency>
-				<groupId>io.zipkin.brave</groupId>
-				<artifactId>brave-core</artifactId>
-				<version>${brave.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>junit</groupId>
-				<artifactId>junit</artifactId>
-				<version>4.12</version>
-			</dependency>
-			<dependency>
-				<groupId>org.awaitility</groupId>
-				<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>
-
-	<dependencies>
-		<dependency>
-			<groupId>io.zipkin.java</groupId>
-			<artifactId>zipkin</artifactId>
-		</dependency>
-
-		<!-- don't worry. auto-* are source retention, not runtime -->
-		<dependency>
-			<groupId>com.google.auto.value</groupId>
-			<artifactId>auto-value</artifactId>
-			<version>1.3</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.assertj</groupId>
-			<artifactId>assertj-core</artifactId>
-			<version>3.5.2</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>io.zipkin.java</groupId>
-			<artifactId>zipkin</artifactId>
-			<version>${zipkin.version}</version>
-			<type>test-jar</type>
-		</dependency>
-		<dependency>
-			<groupId>ch.qos.logback</groupId>
-			<artifactId>logback-classic</artifactId>
-			<version>1.1.7</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-
-
-	<build>
-		<pluginManagement>
-			<plugins>
-				<!-- mvn -N io.takari:maven:wrapper -Dmaven=3.3.9 -->
-				<plugin>
-					<groupId>io.takari</groupId>
-					<artifactId>maven</artifactId>
-					<version>0.3.3</version>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-
-		<plugins>
-			<plugin>
-				<inherited>true</inherited>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.5.1</version>
-				<configuration>
-					<source>1.6</source>
-					<target>1.6</target>
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>animal-sniffer-maven-plugin</artifactId>
-				<version>1.15</version>
-				<configuration>
-					<signature>
-						<groupId>org.codehaus.mojo.signature</groupId>
-						<artifactId>${main.signature.artifact}</artifactId>
-						<version>1.0</version>
-					</signature>
-				</configuration>
-				<executions>
-					<execution>
-						<goals>
-							<goal>check</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-
-			<!-- Ensures checksums are added to published jars -->
-			<plugin>
-				<artifactId>maven-install-plugin</artifactId>
-				<version>2.5.2</version>
-				<configuration>
-					<createChecksum>true</createChecksum>
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>com.mycila</groupId>
-				<artifactId>license-maven-plugin</artifactId>
-				<version>${license-maven-plugin.version}</version>
-				<configuration>
-					<header>${main.basedir}/src/etc/header.txt</header>
-					<excludes>
-                        <exclude>pom.xml</exclude>
-						<exclude>.travis.yml</exclude>
-						<exclude>.gitignore</exclude>
-						<exclude>.mvn/**</exclude>
-						<exclude>.settings.xml</exclude>
-						<exclude>mvnw*</exclude>
-						<exclude>build-support/**</exclude>
-						<exclude>etc/header.txt</exclude>
-						<exclude>**/.idea/**</exclude>
-						<exclude>LICENSE</exclude>
-						<exclude>**/*.md</exclude>
-						<exclude>src/test/resources/**</exclude>
-						<exclude>src/main/resources/**</exclude>
-					</excludes>
-					<strictCheck>true</strictCheck>
-				</configuration>
-				<dependencies>
-					<dependency>
-						<groupId>com.mycila</groupId>
-						<artifactId>license-maven-plugin-git</artifactId>
-						<version>${license-maven-plugin.version}</version>
-					</dependency>
-				</dependencies>
-				<executions>
-					<execution>
-						<goals>
-							<goal>check</goal>
-						</goals>
-						<phase>compile</phase>
-					</execution>
-				</executions>
-			</plugin>
-
-			<plugin>
-				<artifactId>maven-release-plugin</artifactId>
-				<version>2.5.3</version>
-				<configuration>
-					<useReleaseProfile>false</useReleaseProfile>
-					<releaseProfiles>release</releaseProfiles>
-					<autoVersionSubmodules>true</autoVersionSubmodules>
-					<tagNameFormat>@{project.version}</tagNameFormat>
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>io.zipkin.centralsync-maven-plugin</groupId>
-				<artifactId>centralsync-maven-plugin</artifactId>
-				<version>0.1.0</version>
-				<configuration>
-					<packageName>zipkin-aws</packageName>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-
-	<profiles>
-		<profile>
-			<id>release</id>
-			<build>
-				<plugins>
-					<!-- Creates source jar -->
-					<plugin>
-						<artifactId>maven-source-plugin</artifactId>
-						<version>3.0.1</version>
-						<executions>
-							<execution>
-								<id>attach-sources</id>
-								<goals>
-									<goal>jar</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-
-					<plugin>
-						<artifactId>maven-javadoc-plugin</artifactId>
-						<version>2.10.4</version>
-						<configuration>
-							<failOnError>false</failOnError>
-							<excludePackageNames>zipkin.aws.internal,zipkin.aws.internal.*
-							</excludePackageNames>
-							<!-- hush pedantic warnings: we don't put param and return on everything! -->
-							<additionalparam>-Xdoclint:none</additionalparam>
-						</configuration>
-						<executions>
-							<execution>
-								<id>attach-javadocs</id>
-								<goals>
-									<goal>jar</goal>
-								</goals>
-								<phase>package</phase>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
+    <main.basedir>${project.basedir}</main.basedir>
+
+    <!-- Make sure these versions match brave-bom -->
+    <brave.version>5.1.5</brave.version>
+    <zipkin.version>2.10.4</zipkin.version>
+    <zipkin-reporter.version>2.7.7</zipkin-reporter.version>
+
+    <license-maven-plugin.version>2.11</license-maven-plugin.version>
+    <maven-failsafe-plugin.version>2.22.0</maven-failsafe-plugin.version>
+  </properties>
+
+  <name>Brave Karaf (Parent)</name>
+  <description>Brave Karaf (Parent)</description>
+  <url>https://github.com/openzipkin/brave-karaf</url>
+  <inceptionYear>2016</inceptionYear>
+
+  <organization>
+    <name>OpenZipkin</name>
+    <url>http://zipkin.io/</url>
+  </organization>
+
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
+  <scm>
+    <url>https://github.com/openzipkin/brave-karaf</url>
+    <connection>scm:git:https://github.com/openzipkin/brave-karaf.git</connection>
+    <developerConnection>scm:git:https://github.com/openzipkin/brave-karaf.git</developerConnection>
+    <tag>HEAD</tag>
+  </scm>
+
+  <!-- Developer section is needed for Maven Central, but doesn't need to include each person -->
+  <developers>
+    <developer>
+      <id>openzipkin</id>
+      <name>OpenZipkin Gitter</name>
+      <url>https://gitter.im/openzipkin/zipkin</url>
+    </developer>
+  </developers>
+
+  <distributionManagement>
+    <repository>
+      <id>bintray</id>
+      <url>https://api.bintray.com/maven/openzipkin/maven/brave-karaf/;publish=1</url>
+    </repository>
+    <snapshotRepository>
+      <id>jfrog-snapshots</id>
+      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
+    </snapshotRepository>
+  </distributionManagement>
+
+  <issueManagement>
+    <system>Github</system>
+    <url>https://github.com/openzipkin/brave-karaf/issues</url>
+  </issueManagement>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>brave-exporter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>brave-exporter-sender-kafka</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>brave-exporter-sender-okhttp</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>io.zipkin.zipkin2</groupId>
+        <artifactId>zipkin</artifactId>
+        <version>${zipkin.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.zipkin.reporter2</groupId>
+        <artifactId>zipkin-reporter</artifactId>
+        <version>${zipkin-reporter.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.zipkin.reporter2</groupId>
+        <artifactId>zipkin-sender-urlconnection</artifactId>
+        <version>${zipkin-reporter.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.zipkin.reporter2</groupId>
+        <artifactId>zipkin-sender-kafka11</artifactId>
+        <version>${zipkin-reporter.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.zipkin.reporter2</groupId>
+        <artifactId>zipkin-sender-okhttp3</artifactId>
+        <version>${zipkin-reporter.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.zipkin.brave</groupId>
+        <artifactId>brave</artifactId>
+        <version>${brave.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.zipkin.brave</groupId>
+        <artifactId>brave-instrumentation-http</artifactId>
+        <version>${brave.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>osgi.core</artifactId>
+        <version>6.0.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>osgi.cmpn</artifactId>
+        <version>6.0.0</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.awaitility</groupId>
+        <artifactId>awaitility</artifactId>
+        <version>3.1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>2.21.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.12</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.assertj</groupId>
+      <artifactId>assertj-core</artifactId>
+      <version>3.10.0</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>1.2.3</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <!-- mvn -N io.takari:maven:wrapper -Dmaven=3.5.4 -->
+        <plugin>
+          <groupId>io.takari</groupId>
+          <artifactId>maven</artifactId>
+          <version>0.6.1</version>
+        </plugin>
+        <plugin>
+          <groupId>biz.aQute.bnd</groupId>
+          <artifactId>bnd-maven-plugin</artifactId>
+          <version>4.0.0</version>
+          <executions>
+            <execution>
+              <goals>
+                <goal>bnd-process</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+
+    <plugins>
+      <plugin>
+        <inherited>true</inherited>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.7.0</version>
+        <configuration>
+          <!-- Retrolambda will rewrite lambdas as Java 6 bytecode -->
+          <source>1.8</source>
+          <target>1.8</target>
+          <compilerId>javac-with-errorprone</compilerId>
+          <forceJavacCompilerUse>true</forceJavacCompilerUse>
+          <showWarnings>true</showWarnings>
+        </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-compiler-javac-errorprone</artifactId>
+            <version>2.8.4</version>
+          </dependency>
+          <dependency>
+            <groupId>com.google.errorprone</groupId>
+            <artifactId>error_prone_core</artifactId>
+            <version>2.3.1</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+
+      <plugin>
+        <groupId>net.orfjackal.retrolambda</groupId>
+        <artifactId>retrolambda-maven-plugin</artifactId>
+        <version>2.5.4</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process-main</goal>
+            </goals>
+            <configuration>
+              <target>${main.java.version}</target>
+              <fork>true</fork>
+              <quiet>true</quiet>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>3.1.0</version>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${maven-failsafe-plugin.version}</version>
+      </plugin>
+      <plugin>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>${maven-failsafe-plugin.version}</version>
+      </plugin>
+
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>animal-sniffer-maven-plugin</artifactId>
+        <version>1.17</version>
+        <configuration>
+          <signature>
+            <groupId>org.codehaus.mojo.signature</groupId>
+            <artifactId>${main.signature.artifact}</artifactId>
+            <version>1.0</version>
+          </signature>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!-- Ensures checksums are added to published jars -->
+      <plugin>
+        <artifactId>maven-install-plugin</artifactId>
+        <version>2.5.2</version>
+        <configuration>
+          <createChecksum>true</createChecksum>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-deploy-plugin</artifactId>
+        <version>2.8.2</version>
+      </plugin>
+
+      <plugin>
+        <groupId>com.mycila</groupId>
+        <artifactId>license-maven-plugin</artifactId>
+        <version>${license-maven-plugin.version}</version>
+        <configuration>
+          <header>${main.basedir}/src/etc/header.txt</header>
+          <mapping>
+            <!-- Don't use javadoc style as this makes code formatters break it by adding tags! -->
+            <java>SLASHSTAR_STYLE</java>
+          </mapping>
+          <excludes>
+            <exclude>.travis.yml</exclude>
+            <exclude>.gitignore</exclude>
+            <exclude>.mvn/**</exclude>
+            <exclude>mvnw*</exclude>
+            <exclude>etc/header.txt</exclude>
+            <exclude>**/.idea/**</exclude>
+            <exclude>LICENSE</exclude>
+            <exclude>**/*.md</exclude>
+            <exclude>src/test/resources/**</exclude>
+            <exclude>src/main/resources/**</exclude>
+            <exclude>build-support/**</exclude>
+          </excludes>
+          <strictCheck>true</strictCheck>
+        </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>com.mycila</groupId>
+            <artifactId>license-maven-plugin-git</artifactId>
+            <version>${license-maven-plugin.version}</version>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <phase>compile</phase>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>3.0.0-M2</version>
+        <executions>
+          <execution>
+            <id>enforce-java</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireJavaVersion>
+                  <version>[1.8,9)</version>
+                </requireJavaVersion>
+              </rules>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-release-plugin</artifactId>
+        <version>2.5.3</version>
+        <configuration>
+          <useReleaseProfile>false</useReleaseProfile>
+          <releaseProfiles>release</releaseProfiles>
+          <autoVersionSubmodules>true</autoVersionSubmodules>
+          <tagNameFormat>@{project.version}</tagNameFormat>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>io.zipkin.centralsync-maven-plugin</groupId>
+        <artifactId>centralsync-maven-plugin</artifactId>
+        <version>0.1.0</version>
+        <configuration>
+          <packageName>brave-karaf</packageName>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>release</id>
+      <build>
+        <plugins>
+          <!-- Creates source jar -->
+          <plugin>
+            <artifactId>maven-source-plugin</artifactId>
+            <version>3.0.1</version>
+            <executions>
+              <execution>
+                <id>attach-sources</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>3.0.1</version>
+            <configuration>
+              <failOnError>false</failOnError>
+              <!-- hush pedantic warnings: we don't put param and return on everything! -->
+              <doclint>none</doclint>
+            </configuration>
+            <executions>
+              <execution>
+                <id>attach-javadocs</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+                <phase>package</phase>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>