You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zipkin.apache.org by ad...@apache.org on 2019/06/16 07:02:59 UTC

[incubator-zipkin-brave-karaf] 01/01: Restores OpenZipkin publishing configuration

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

adriancole pushed a commit to branch revert-oz
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin-brave-karaf.git

commit 6982c86efa7d68ccb2a7816de284b509d2f3da44
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Sun Jun 16 15:02:46 2019 +0800

    Restores OpenZipkin publishing configuration
    
    This reverts back to OpenZipkin publishing configuration.
    
    See https://github.com/apache/incubator-zipkin/issues/2629
---
 .github/CONTRIBUTING.md                            |  33 +++
 .settings.xml                                      |  43 ++++
 .travis.yml                                        |  40 +++
 DISCLAIMER                                         |   5 -
 Jenkinsfile                                        |  90 -------
 NOTICE                                             |   5 -
 exporter-sender-kafka/pom.xml                      |  31 +--
 .../exporter/sender/kafka/KafkaSenderExporter.java |  23 +-
 .../sender/kafka/KafkaSenderExporterTest.java      |  21 +-
 exporter-sender-okhttp/pom.xml                     |  23 +-
 .../sender/okhttp/SenderOkHttpExporter.java        |  21 +-
 exporter/pom.xml                                   |  29 +--
 .../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                                   |  29 +--
 features/src/main/resources/features.xml           |  33 ++-
 itests/pom.xml                                     |  31 ++-
 .../test/java/io/zipkin/brave/itests/ITBrave.java  |  23 +-
 itests/src/test/resources/exam.properties          |  21 +-
 itests/src/test/resources/logback.xml              |  21 +-
 pom.xml                                            | 268 +++++++++------------
 src/etc/header.txt                                 |  21 +-
 src/main/assemblies/source-release.xml             |  87 -------
 travis/publish.sh                                  | 138 +++++++++++
 26 files changed, 541 insertions(+), 579 deletions(-)

diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..b67e335
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,33 @@
+# Contributing to Zipkin
+
+If you would like to contribute code, fork this GitHub repository and
+send a pull request (on a branch other than `master` or `gh-pages`).
+
+When submitting code, please apply [Square Code Style](https://github.com/square/java-code-styles).
+* If the settings import correctly, CodeStyle/Java will be named Square and use 2 space tab and indent, with 4 space continuation indent.
+
+## License
+
+By contributing your code, you agree to license your contribution under
+the terms of the [APLv2](LICENSE).
+
+All files are released with the Apache 2.0 license.
+
+If you are adding a new file it should have a header like below. This
+can be automatically added by running `./mvnw com.mycila:license-maven-plugin:format`.
+
+```
+/**
+ * Copyright 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
+ *
+ * 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.
+ */
+ ```
diff --git a/.settings.xml b/.settings.xml
new file mode 100644
index 0000000..b2a53b1
--- /dev/null
+++ b/.settings.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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
+
+    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:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+    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>zipkinci</username>
+      <password>${env.GH_TOKEN}</password>
+    </server>
+  </servers>
+</settings>
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..d358c4a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,40 @@
+# Run `travis lint` when changing this file to avoid breaking the build.
+
+cache:
+  directories:
+  - $HOME/.m2
+
+language: java
+
+jdk: openjdk11
+
+before_install:
+  # 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
+
+# Override default travis to use the maven wrapper; skip license on travis due to #1512
+install: ./mvnw install -DskipTests=true -Dlicense.skip=true -Dmaven.javadoc.skip=true -B -V
+script: ./travis/publish.sh
+
+# Don't build release tags. This avoids publish conflicts because the version commit exists both on master and the release tag.
+# See https://github.com/travis-ci/travis-ci/issues/1532
+branches:
+  except:
+    - /^[0-9]/
+
+env:
+  global:
+    # Ex. travis encrypt BINTRAY_USER=your_github_account
+    - secure: "GoOXf1bVV6rQjXg599DxMdxS+5r1u6qTQV4luM1wnBI+JvDb84lW964Ka0mI4xFBf2u7nQRxltUpYKZRCpnREdWyd5BIP7QS/xY8j5wFTSn/gt1h+vwbPFXY708v0L8mTzkVJMKScno+1Q26Ph9R9r2oUrf6jZ/1zyUbu8N9mYOn1R7meoJ7SGJ5/kqpam29JDLt3AwIhEDLptg+QKT78VBE2zZxtuFI7ZRyJk2unRWuW93P9p8bUUlO0NXflGr7noVrNiIRdRpX73jXAgTmd5Krug+i81+sW7NmsV5QWcZAISnoeAFjtpFUCFeKUSR9cIipELc49k1RdhwvuBDptcofBDdIfoQKBIjO2k6G+LAjYX9ykLtg0Web7rA9BFtVmX5e+d/8iaSIilA0ndPju+D/rcxduBoeGfuLpI+VKh83+uibw1CY1AirS0CjmVox533+Y8coMZw8ZlxuljVShAS6RC21+ [...]
+    # Ex. travis encrypt BINTRAY_KEY=xxx-https://bintray.com/profile/edit-xxx --add
+    - secure: "iLrLMoGFuIA1amABoMErJlB/MinguI/0WHmNSJBM5VUKkoULPmRNR8kZhFgF8uwHfpjYSyE0GVWTnY5j6IFtKg6DBHrbbsJbXmijl1gzRYNsVhI3l0d7L7NPkkFiqRyDPAuZTfJTFv3M2fswVIV8ft1Pl668kXML2EvaWqQ2eZh606UtB929Q9jy8T+evVh+u1MU1rhPV2+w8iMUxLUgyNZiIyA/oyiLUafOisCInDmcb6jss+vR7+Iz5hfpzjKWNUGQnEaOIqYrfFkCjR740VvNxas4DEr4zV8VE4iYTahRPZH02MYTdIEZvQIcG7R0fj0NOFVQUa8whcVm601kN5M6KaBT2lbOrWEwk86skcV+SQjv8rXnjUz/E+sChFeJk8+fnNrzlsray7H0LGFUqwEYypyxQ17pdyizv4b1FmThGMPCg62AEkM81PkEQvDcLV+7HsT1Hm/DgMJ879GW82/WIRmqM [...]
+    # Ex. travis encrypt GH_TOKEN=XXX-https://github.com/settings/tokens-XXX --add
+    - secure: "IE8dj17ahcVpLWV+TAj6uyBX0TfoKr87X2+1GMr6HW3UwDVuTeaf5XqyQT7WvEcXDo/auQoS4yPzndX+3z5ELOTx7khMfUcbsU3P7NAXKeRGHWiQIJoLUj23+XUtDt+ZgESho8WfEjtHXUhxI7jgMp5FruQG/uyCIzwUe4ZcVRfYbfoOhETbSc2LPX1OMoSYg+LuxFieCqB4wVYaukFQZyNbRXzGYqR2wxJYMQiCqrai1mau3eZSTJIPqGKym/ZB2RKuV2H5Rv1cVN50pZR+8TddjPkHtOBR5cnS9RlBdGDQxUnMj+V31+bnOjl/8ASKqypnyxUhI65jc6CZQAPkoc75WZg08pr9rDWwc372UdR4v9JPtdPuyp7qj1Jf3DmVnypMUIJrRjyS9yi+75NIHXCD58jbvWPCjy2HcaHdTmaFnhsRKMujrnviryJmg2FnbQ9bzO66PV8VBWBg40l9MhH9yU8es [...]
+    # Ex. travis encrypt SONATYPE_USER=your_sonatype_account
+    - secure: "EEKmAkKW6EJVy9SFKlJispFaylWH+UkAtyN6WiOS0ZBMkG3rb4+NE9GGAunsR8hPud2+bQYTexf9OXCteo/JWTs+B4z69ZCkm7D08UauJVM8+WNDfpAauoTE56Bc6Ts3IZ7bx6Bg0qwdtFa4tSNIC5D6K4WOCXUjE3/vHQnFe7O4BwF1KXYCvq1yIFXz+9MacgXPf1oVdirKYwtIXkwS5N1ztgVFHrsDgG0I/5mYL6etbtBWuS1q6512azCRNQv8fDz4RcTJMLQ9L+e2qTNzsolZAVvgKs73vZCaVClwa8ci4RlGuT3HN8q69xM2KVgcLiVao7XS+ly+OewORipVj6o9JcJ4JNEZUdhWLOmpeHuugthEmPLSln8l1TUUSEM0WljRbixJhCjd3PqFu7JoJks3zppsilqB3+O1U9sEJs+YN3+kkkyXzh393sKr6/wA3gx/jOapnmU10kLcP/Vv/uSQxsTM0 [...]
+    # Ex. travis encrypt SONATYPE_PASSWORD=your_sonatype_password
+    - secure: "i71peO+Z83hTcfwThkSovwbKo4QnePdcvEsBzMUxiFmfw8kkHT26Io0EgOGbfUYcvMMeJarVFbpOj3MqlN0wNpgTG4vH1fv0y4x2xub2ViV28eTrtefo5Sc0k6JZv2x95NM/F77d1cq6TmmIQp+Oab45StWNPHLiB7VqbhLHZYTCGLMPbfdvD0hSjeS4ZCPKylg4zannQuxtbYDurMH2rWnOaABXw12s27f8KEtcMnSRC7QdxX2JIM7qSbp5FiY13gDOXsF7/qyMFh9nVqd4pPd2lIDPNtcskbLKUOIlVQ298nL5a72dYSqYRdVXfNZm9SUSbgtf+1UWjRVGyvoDAZCujcTj+lRtHZ7rXO0Cb9oHSoAwcT3J+IF8OjJpuyNHmHQVxcsIPu42WehqCVHgQw66I4VaP1L+lmPC8KGVwb3PFAgInW6xJLy7mwTz3FOGdEKry1OS4XD0sAnU9+0OhRfw1WoBW [...]
diff --git a/DISCLAIMER b/DISCLAIMER
deleted file mode 100644
index f73ab06..0000000
--- a/DISCLAIMER
+++ /dev/null
@@ -1,5 +0,0 @@
-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
deleted file mode 100644
index 5c28c35..0000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,90 +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.
- */
-
-pipeline {
-    agent {
-        label 'ubuntu'
-    }
-
-    tools {
-        jdk 'JDK 1.8 (latest)'
-    }
-
-    options {
-        buildDiscarder(logRotator(
-            numToKeepStr: '30',
-        ))
-        timestamps()
-        skipStagesAfterUnstable()
-        timeout time: 30, unit: 'MINUTES'
-    }
-
-    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 --batch-mode -nsu'
-            }
-        }
-
-        stage('Publish snapshot') {
-            when {
-                branch 'master'
-            }
-            steps {
-                sh './mvnw deploy -Papache-release -Dgpg.skip=true -DskipTests --batch-mode -nsu'
-            }
-        }
-    }
-
-    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: 'commits@zipkin.apache.org',
-                        replyTo: 'dev@zipkin.apache.org',
-                        body: "See <${currentBuild.absoluteUrl}>"
-                    )
-                }
-            }
-
-        }
-    }
-}
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index 7a7e2da..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Zipkin Brave (incubating) for Apache Karaf
-Copyright 2019 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/exporter-sender-kafka/pom.xml b/exporter-sender-kafka/pom.xml
index 2843bb1..2d5c89d 100644
--- a/exporter-sender-kafka/pom.xml
+++ b/exporter-sender-kafka/pom.xml
@@ -1,25 +1,22 @@
 <?xml version="1.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
+    Copyright 2016-2019 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
 
-    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">
   <parent>
-    <groupId>org.apache.zipkin.brave.karaf</groupId>
+    <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.3-SNAPSHOT</version>
   </parent>
@@ -50,7 +47,7 @@
     </dependency>
     <dependency>
       <groupId>io.zipkin.reporter2</groupId>
-      <artifactId>zipkin-sender-kafka11</artifactId>
+      <artifactId>zipkin-sender-kafka</artifactId>
     </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
@@ -62,12 +59,6 @@
   <build>
     <plugins>
       <plugin>
-        <artifactId>maven-remote-resources-plugin</artifactId>
-        <configuration>
-          <skip>false</skip>
-        </configuration>
-      </plugin>
-      <plugin>
         <groupId>biz.aQute.bnd</groupId>
         <artifactId>bnd-maven-plugin</artifactId>
       </plugin>
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 6e3a05b..1767c72 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,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 package io.zipkin.brave.exporter.sender.kafka;
 
@@ -29,7 +26,7 @@ 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;
+import zipkin2.reporter.kafka.KafkaSender;
 
 @Component(
     immediate = true,
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 b01f33d..53148c3 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,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 package io.zipkin.brave.exporter.sender.kafka;
 
diff --git a/exporter-sender-okhttp/pom.xml b/exporter-sender-okhttp/pom.xml
index 318ec85..8ab6487 100644
--- a/exporter-sender-okhttp/pom.xml
+++ b/exporter-sender-okhttp/pom.xml
@@ -1,25 +1,22 @@
 <?xml version="1.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
+    Copyright 2016-2019 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
 
-    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">
   <parent>
-    <groupId>org.apache.zipkin.brave.karaf</groupId>
+    <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.3-SNAPSHOT</version>
   </parent>
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 5072838..a089f94 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,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 package io.zipkin.brave.exporter.sender.okhttp;
 
diff --git a/exporter/pom.xml b/exporter/pom.xml
index 0cf4fa6..5303a7e 100644
--- a/exporter/pom.xml
+++ b/exporter/pom.xml
@@ -1,25 +1,22 @@
 <?xml version="1.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
+    Copyright 2016-2019 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
 
-    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">
   <parent>
-    <groupId>org.apache.zipkin.brave.karaf</groupId>
+    <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.3-SNAPSHOT</version>
   </parent>
@@ -61,12 +58,6 @@
   <build>
     <plugins>
       <plugin>
-        <artifactId>maven-remote-resources-plugin</artifactId>
-        <configuration>
-          <skip>false</skip>
-        </configuration>
-      </plugin>
-      <plugin>
         <groupId>biz.aQute.bnd</groupId>
         <artifactId>bnd-maven-plugin</artifactId>
       </plugin>
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 93c6465..23f2980 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/AsyncReporterExporter.java
@@ -1,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 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 f8630c3..be01fbf 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/HttpTracingExporter.java
@@ -1,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 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 e5f3b25..11bbda1 100644
--- a/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
+++ b/exporter/src/main/java/io/zipkin/brave/exporter/TracingExporter.java
@@ -1,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 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 0c091d7..e183d8a 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,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 package io.zipkin.brave.exporter.sender.urlconnection;
 
diff --git a/features/pom.xml b/features/pom.xml
index cd6e8db..791423b 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -1,26 +1,23 @@
 <?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
+    Copyright 2016-2019 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
 
-    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">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.apache.zipkin.brave.karaf</groupId>
+    <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.3-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -41,12 +38,6 @@
     </resources>
     <plugins>
       <plugin>
-        <artifactId>maven-remote-resources-plugin</artifactId>
-        <configuration>
-          <skip>false</skip>
-        </configuration>
-      </plugin>
-      <plugin>
         <artifactId>maven-resources-plugin</artifactId>
         <executions>
           <execution>
diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
index 0c2d711..72e96f4 100644
--- a/features/src/main/resources/features.xml
+++ b/features/src/main/resources/features.xml
@@ -1,20 +1,17 @@
 <?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
+    Copyright 2016-2019 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
 
-    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.
 
 -->
 <features name="brave" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
@@ -28,23 +25,23 @@
 		<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:org.apache.zipkin.brave.karaf/brave-exporter/${project.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/2.0.0_1</bundle>
-		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-kafka11/${zipkin-reporter.version}</bundle>
-		<bundle>mvn:org.apache.zipkin.brave.karaf/brave-exporter-sender-kafka/${project.version}</bundle>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/2.2.0_1</bundle>
+		<bundle>mvn:io.zipkin.reporter2/zipkin-sender-kafka/${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.15.0_1</bundle>
-		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.11.0_1</bundle>
+		<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.14.1_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:org.apache.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
+		<bundle>mvn:io.zipkin.brave.karaf/brave-exporter-sender-okhttp/${project.version}</bundle>
 	</feature>
 </features>
diff --git a/itests/pom.xml b/itests/pom.xml
index cdb61da..b32c912 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -1,26 +1,23 @@
 <?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
+    Copyright 2016-2019 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
 
-    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">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.apache.zipkin.brave.karaf</groupId>
+    <groupId>io.zipkin.brave.karaf</groupId>
     <artifactId>brave-karaf-parent</artifactId>
     <version>0.1.3-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -35,7 +32,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.apache.zipkin.brave.karaf</groupId>
+      <groupId>io.zipkin.brave.karaf</groupId>
       <artifactId>brave-exporter</artifactId>
     </dependency>
     <dependency>
@@ -48,16 +45,16 @@
     </dependency>
 
     <dependency>
-      <groupId>org.apache.zipkin.brave.karaf</groupId>
+      <groupId>io.zipkin.brave.karaf</groupId>
       <artifactId>brave-exporter-sender-kafka</artifactId>
     </dependency>
     <dependency>
       <groupId>io.zipkin.reporter2</groupId>
-      <artifactId>zipkin-sender-kafka11</artifactId>
+      <artifactId>zipkin-sender-kafka</artifactId>
     </dependency>
 
     <dependency>
-      <groupId>org.apache.zipkin.brave.karaf</groupId>
+      <groupId>io.zipkin.brave.karaf</groupId>
       <artifactId>brave-exporter-sender-okhttp</artifactId>
     </dependency>
     <dependency>
diff --git a/itests/src/test/java/io/zipkin/brave/itests/ITBrave.java b/itests/src/test/java/io/zipkin/brave/itests/ITBrave.java
index 3d93496..7420144 100644
--- a/itests/src/test/java/io/zipkin/brave/itests/ITBrave.java
+++ b/itests/src/test/java/io/zipkin/brave/itests/ITBrave.java
@@ -1,18 +1,15 @@
 /*
- * 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
+ * Copyright 2016-2019 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
  *
- * 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.
  */
 package io.zipkin.brave.itests;
 
@@ -63,7 +60,7 @@ public class ITBrave {
         .type("zip")
         .version(getVersionFromMaven("org.apache.karaf.features/org.apache.karaf.features.core"));
     MavenUrlReference brave =
-        maven().groupId("org.apache.zipkin.brave.karaf").artifactId("brave-features").type("xml")
+        maven().groupId("io.zipkin.brave.karaf").artifactId("brave-features").type("xml")
             .classifier("features").version(getBraveKarafVersion());
     return new Option[] {
         karafDistributionConfiguration().frameworkUrl(karaf).useDeployFolder(false),
diff --git a/itests/src/test/resources/exam.properties b/itests/src/test/resources/exam.properties
index c0512eb..10b85f9 100644
--- a/itests/src/test/resources/exam.properties
+++ b/itests/src/test/resources/exam.properties
@@ -1,18 +1,15 @@
 #
-# 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
+# Copyright 2016-2019 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
 #
-# 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.
 #
 
 pax.exam.logging = none
diff --git a/itests/src/test/resources/logback.xml b/itests/src/test/resources/logback.xml
index 344307d..445e61e 100644
--- a/itests/src/test/resources/logback.xml
+++ b/itests/src/test/resources/logback.xml
@@ -1,20 +1,17 @@
 <?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
+    Copyright 2016-2019 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
 
-    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.
 
 -->
 <configuration>
diff --git a/pom.xml b/pom.xml
index 1a447fd..84f000c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,32 +1,23 @@
 <?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
+    Copyright 2016-2019 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
 
-    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">
   <modelVersion>4.0.0</modelVersion>
 
-  <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>21</version>
-  </parent>
-
-  <groupId>org.apache.zipkin.brave.karaf</groupId>
+  <groupId>io.zipkin.brave.karaf</groupId>
   <artifactId>brave-karaf-parent</artifactId>
   <version>0.1.3-SNAPSHOT</version>
   <packaging>pom</packaging>
@@ -54,22 +45,22 @@
     <errorprone.version>2.3.2</errorprone.version>
 
     <!-- Make sure these versions match brave-bom -->
-    <brave.version>5.6.1</brave.version>
-    <zipkin.version>2.12.1</zipkin.version>
-    <zipkin-reporter.version>2.7.15</zipkin-reporter.version>
+    <brave.version>5.6.5</brave.version>
+    <zipkin.version>2.14.2</zipkin.version>
+    <zipkin-reporter.version>2.8.4</zipkin-reporter.version>
 
     <license-maven-plugin.version>3.0</license-maven-plugin.version>
     <maven-failsafe-plugin.version>3.0.0-M3</maven-failsafe-plugin.version>
   </properties>
 
   <name>Brave Karaf (Parent)</name>
-  <description>Apache Zipkin Brave (incubating) for Apache Karaf (Parent)</description>
-  <url>https://github.com/apache/incubator-zipkin-brave-karaf</url>
+  <description>Tracing instrumentation for Apache Karaf (Parent)</description>
+  <url>https://github.com/openzipkin/brave-karaf</url>
   <inceptionYear>2016</inceptionYear>
 
   <organization>
-    <name>The Apache Software Foundation</name>
-    <url>http://www.apache.org/</url>
+    <name>OpenZipkin</name>
+    <url>http://zipkin.io/</url>
   </organization>
 
   <licenses>
@@ -81,9 +72,9 @@
   </licenses>
 
   <scm>
-    <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>
+    <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>
 
@@ -96,35 +87,19 @@
     </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>apache.releases.https</id>
-      <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
+      <id>bintray</id>
+      <url>https://api.bintray.com/maven/openzipkin/maven/brave-cassandra/;publish=1</url>
     </repository>
     <snapshotRepository>
-      <id>apache.snapshots.https</id>
-      <url>https://repository.apache.org/content/repositories/snapshots/</url>
+      <id>jfrog-snapshots</id>
+      <url>https://oss.jfrog.org/artifactory/oss-snapshot-local</url>
     </snapshotRepository>
   </distributionManagement>
-
   <issueManagement>
     <system>Github</system>
-    <url>https://github.com/apache/incubator-zipkin-brave-karaf/issues</url>
+    <url>https://github.com/openzipkin/brave-karaf/issues</url>
   </issueManagement>
 
   <dependencyManagement>
@@ -162,7 +137,7 @@
       </dependency>
       <dependency>
         <groupId>io.zipkin.reporter2</groupId>
-        <artifactId>zipkin-sender-kafka11</artifactId>
+        <artifactId>zipkin-sender-kafka</artifactId>
         <version>${zipkin-reporter.version}</version>
       </dependency>
       <dependency>
@@ -215,7 +190,7 @@
     <dependency>
       <groupId>org.assertj</groupId>
       <artifactId>assertj-core</artifactId>
-      <version>3.11.1</version>
+      <version>3.12.1</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -233,11 +208,12 @@
         <plugin>
           <groupId>io.takari</groupId>
           <artifactId>maven</artifactId>
-          <version>0.6.1</version>
+          <version>0.7.6</version>
           <configuration>
-            <maven>3.6.0</maven>
+            <maven>3.6.1</maven>
           </configuration>
         </plugin>
+
         <plugin>
           <groupId>biz.aQute.bnd</groupId>
           <artifactId>bnd-maven-plugin</artifactId>
@@ -252,12 +228,34 @@
         </plugin>
 
         <plugin>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>${maven-failsafe-plugin.version}</version>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>3.0.0-M1</version>
         </plugin>
+
+        <!-- Uploads occur as a last step (which also adds checksums) -->
         <plugin>
-          <artifactId>maven-failsafe-plugin</artifactId>
-          <version>${maven-failsafe-plugin.version}</version>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <version>3.0.0-M1</version>
+        </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.1</version>
+          <configuration>
+            <packageName>brave-cassandra</packageName>
+          </configuration>
         </plugin>
       </plugins>
     </pluginManagement>
@@ -266,7 +264,7 @@
       <plugin>
         <inherited>true</inherited>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.8.0</version>
+        <version>3.8.1</version>
         <configuration>
           <!-- Retrolambda will rewrite lambdas as Java 6 bytecode -->
           <source>1.8</source>
@@ -296,7 +294,30 @@
 
       <plugin>
         <artifactId>maven-jar-plugin</artifactId>
-        <version>3.1.1</version>
+        <version>3.1.2</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>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
       </plugin>
 
       <plugin>
@@ -320,22 +341,6 @@
       </plugin>
 
       <plugin>
-        <artifactId>maven-install-plugin</artifactId>
-        <version>3.0.0-M1</version>
-      </plugin>
-
-      <!-- Uploads occur as a last step (which also adds checksums) -->
-      <plugin>
-        <artifactId>maven-deploy-plugin</artifactId>
-        <version>3.0.0-M1</version>
-      </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>
@@ -353,13 +358,17 @@
             <exclude>etc/header.txt</exclude>
             <exclude>**/.idea/**</exclude>
             <exclude>LICENSE</exclude>
-            <exclude>DISCLAIMER</exclude>
-            <exclude>NOTICE</exclude>
-            <exclude>Jenkinsfile</exclude>
             <exclude>**/*.md</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>
@@ -382,73 +391,13 @@
             <configuration>
               <rules>
                 <requireJavaVersion>
-                  <version>[1.8,12)</version>
+                  <version>[11,13)</version>
                 </requireJavaVersion>
               </rules>
             </configuration>
           </execution>
         </executions>
       </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>
-
-      <!-- org.apache:apache:21 sets maven-remote-resources-plugin in plugins, not pluginManagement
-           This results in execution in the parent project, and a side effect of an empty
-           DEPENDENCIES file in the assembly when packaged with the apache-release profile.
-
-           https://issues.apache.org/jira/browse/MPOM-218
-
-           This works around the problem by skipping at the parent level at the cost of having to
-           un-skip it at every deployed child.
-       -->
-      <plugin>
-        <artifactId>maven-remote-resources-plugin</artifactId>
-        <configuration>
-          <skip>true</skip>
-        </configuration>
-      </plugin>
     </plugins>
   </build>
 
@@ -527,23 +476,38 @@
       </build>
     </profile>
     <profile>
-      <id>apache-release</id>
+      <id>release</id>
       <build>
         <plugins>
+          <!-- Creates source jar -->
           <plugin>
-            <artifactId>maven-assembly-plugin</artifactId>
+            <artifactId>maven-source-plugin</artifactId>
+            <version>3.1.0</version>
             <executions>
               <execution>
-                <id>source-release-assembly</id>
-                <configuration>
-                  <!-- make the source release zip includes the word incubating -->
-                  <finalName>apache-zipkin-brave-karaf-incubating-${project.version}</finalName>
-                  <descriptors>
-                    <descriptor>src/main/assemblies/source-release.xml</descriptor>
-                  </descriptors>
-                  <!-- don't inherit the source-release as we are overriding it -->
-                  <descriptorRefs combine.self="override" />
-                </configuration>
+                <id>attach-sources</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>3.1.0</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>
diff --git a/src/etc/header.txt b/src/etc/header.txt
index 1745cfe..308c88f 100644
--- a/src/etc/header.txt
+++ b/src/etc/header.txt
@@ -1,14 +1,11 @@
-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
+Copyright ${license.git.copyrightYears} 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
 
-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.
\ No newline at end of file
diff --git a/src/main/assemblies/source-release.xml b/src/main/assemblies/source-release.xml
deleted file mode 100644
index e2a0f56..0000000
--- a/src/main/assemblies/source-release.xml
+++ /dev/null
@@ -1,87 +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.
-
--->
-<assembly>
-  <id>source-release</id>
-  <!-- the only thing being done differently here is the base directory -->
-  <baseDirectory>brave-karaf-${version}</baseDirectory>
-  <formats>
-    <format>zip</format>
-  </formats>
-
-  <!-- Inlined to exclude all maven wrapper artifacts. This allows us to avoid NOTICE citations -->
-  <fileSets>
-    <!-- main project directory structure -->
-    <fileSet>
-      <directory>.</directory>
-      <outputDirectory></outputDirectory>
-      <useDefaultExcludes>true</useDefaultExcludes>
-      <excludes>
-        <!-- PATCH: Jenkinsfile -->
-        <exclude>Jenkinsfile</exclude>
-
-        <!-- PATCH: Maven wrapper -->
-        <exclude>.mvn/**</exclude>
-        <exclude>mvnw</exclude>
-        <exclude>mvnw.cmd</exclude>
-
-        <!-- build output -->
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/).*${project.build.directory}.*]</exclude>
-
-        <!-- NOTE: Most of the following excludes should not be required
-             if the standard release process is followed. This is because the
-             release plugin checks out project sources into a location like
-             target/checkout, then runs the build from there. The result is
-             a source-release archive that comes from a pretty clean directory
-             structure.
-
-             HOWEVER, if the release plugin is configured to run extra goals
-             or generate a project website, it's definitely possible that some
-             of these files will be present. So, it's safer to exclude them.
-        -->
-
-        <!-- IDEs -->
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.classpath]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iws]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.idea(/.*)?]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?out(/.*)?]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.ipr]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iml]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.settings(/.*)?]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.externalToolBuilders(/.*)?]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.deployables(/.*)?]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.wtpmodules(/.*)?]</exclude>
-
-        <!-- misc -->
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?cobertura\.ser]</exclude>
-
-        <!-- release-plugin temp files -->
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]</exclude>
-        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]</exclude>
-      </excludes>
-    </fileSet>
-    <!-- license, readme, etc. calculated at build time -->
-    <fileSet>
-      <directory>${project.build.directory}/maven-shared-archive-resources/META-INF</directory>
-      <outputDirectory></outputDirectory>
-    </fileSet>
-  </fileSets>
-</assembly>
diff --git a/travis/publish.sh b/travis/publish.sh
new file mode 100755
index 0000000..37b0587
--- /dev/null
+++ b/travis/publish.sh
@@ -0,0 +1,138 @@
+#!/usr/bin/env bash
+#
+# 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
+#
+# 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
+
+build_started_by_tag() {
+  if [ "${TRAVIS_TAG}" == "" ]; then
+    echo "[Publishing] This build was not started by a tag, publishing snapshot"
+    return 1
+  else
+    echo "[Publishing] This build was started by the tag ${TRAVIS_TAG}, publishing release"
+    return 0
+  fi
+}
+
+is_pull_request() {
+  if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
+    echo "[Not Publishing] This is a Pull Request"
+    return 0
+  else
+    echo "[Publishing] This is not a Pull Request"
+    return 1
+  fi
+}
+
+is_travis_branch_master() {
+  if [ "${TRAVIS_BRANCH}" = master ]; then
+    echo "[Publishing] Travis branch is master"
+    return 0
+  else
+    echo "[Not Publishing] Travis branch is not master"
+    return 1
+  fi
+}
+
+check_travis_branch_equals_travis_tag() {
+  #Weird comparison comparing branch to tag because when you 'git push --tags'
+  #the branch somehow becomes the tag value
+  #github issue: https://github.com/travis-ci/travis-ci/issues/1675
+  if [ "${TRAVIS_BRANCH}" != "${TRAVIS_TAG}" ]; then
+    echo "Travis branch does not equal Travis tag, which it should, bailing out."
+    echo "  github issue: https://github.com/travis-ci/travis-ci/issues/1675"
+    exit 1
+  else
+    echo "[Publishing] Branch (${TRAVIS_BRANCH}) same as Tag (${TRAVIS_TAG})"
+  fi
+}
+
+check_release_tag() {
+    tag="${TRAVIS_TAG}"
+    if [[ "$tag" =~ ^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$ ]]; then
+        echo "Build started by version tag $tag. During the release process tags like this"
+        echo "are created by the 'release' Maven plugin. Nothing to do here."
+        exit 0
+    elif [[ ! "$tag" =~ ^release-[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$ ]]; then
+        echo "You must specify a tag of the format 'release-0.0.0' to release this project."
+        echo "The provided tag ${tag} doesn't match that. Aborting."
+        exit 1
+    fi
+}
+
+print_project_version() {
+  ./mvnw help:evaluate -N -Dexpression=project.version|sed -n '/^[0-9]/p'
+}
+
+is_release_commit() {
+  project_version="$(print_project_version)"
+  if [[ "$project_version" =~ ^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$ ]]; then
+    echo "Build started by release commit $project_version. Will synchronize to maven central."
+    return 0
+  else
+    return 1
+  fi
+}
+
+release_version() {
+    echo "${TRAVIS_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
+}
+
+#----------------------
+# MAIN
+#----------------------
+
+if ! is_pull_request && build_started_by_tag; then
+  check_travis_branch_equals_travis_tag
+  check_release_tag
+fi
+
+# skip license on travis due to #1512
+./mvnw install -nsu -Dlicense.skip=true
+
+# If we are on a pull request, our only job is to run tests, which happened above via ./mvnw install
+if is_pull_request; then
+  true
+
+# If we are on master, we will deploy the latest snapshot or release version
+#   - If a release commit fails to deploy for a transient reason, delete the broken version from bintray and click rebuild
+elif is_travis_branch_master; then
+  ./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests deploy
+
+  # If the deployment succeeded, sync it to Maven Central. Note: this needs to be done once per project, not module, hence -N
+  if is_release_commit; then
+    ./mvnw --batch-mode -s ./.settings.xml -nsu -N io.zipkin.centralsync-maven-plugin:centralsync-maven-plugin:sync
+  fi
+
+# If we are on a release tag, the following will update any version references and push a version tag for deployment.
+elif build_started_by_tag; then
+  safe_checkout_master
+  # skip license on travis due to #1512
+  ./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DreleaseVersion="$(release_version)" -Darguments="-DskipTests -Dlicense.skip=true" release:prepare
+fi