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/13 04:12:45 UTC

[incubator-zipkin-layout-factory] branch back-to-openzipkin created (now 59f08f1)

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

adriancole pushed a change to branch back-to-openzipkin
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin-layout-factory.git.


      at 59f08f1  Restores OpenZipkin publishing configuration

This branch includes the following new commits:

     new 59f08f1  Restores OpenZipkin publishing configuration

The 1 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-layout-factory] 01/01: Restores OpenZipkin publishing configuration

Posted by ad...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

adriancole pushed a commit to branch back-to-openzipkin
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin-layout-factory.git

commit 59f08f1cad825182cb85d7ea863362bcb6d64a5c
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Thu Jun 13 12:11:36 2019 +0800

    Restores OpenZipkin publishing configuration
    
    This reverts back to OpenZipkin publishing configuration.
    
    See https://github.com/apache/incubator-zipkin/issues/2629
---
 .mvn/wrapper/maven-wrapper.properties              |   2 +-
 .settings.xml                                      |  43 ++++
 .travis.yml                                        |  29 ++-
 DISCLAIMER                                         |   5 -
 Jenkinsfile                                        |  91 --------
 NOTICE                                             |   5 -
 RELEASE.adoc                                       |  51 +++++
 mvnw                                               |   4 +-
 mvnw.cmd                                           |   4 +-
 pom.xml                                            | 238 ++++++++-------------
 src/etc/header.txt                                 |  21 +-
 src/main/assemblies/source-release.xml             |  90 --------
 .../java/zipkin/layout/ZipkinLayoutFactory.java    |  21 +-
 .../zipkin/layout/ZipkinLayoutFactoryTest.java     |  21 +-
 travis/publish.sh                                  | 138 ++++++++++++
 15 files changed, 383 insertions(+), 380 deletions(-)

diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
index ec07118..fa87ad7 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -1,2 +1,2 @@
 distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.4/maven-wrapper-0.5.4.jar
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
diff --git a/.settings.xml b/.settings.xml
new file mode 100644
index 0000000..022e7dd
--- /dev/null
+++ b/.settings.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2018-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
index 59d6d38..77397f6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,6 +8,33 @@ language: java
 
 jdk: oraclejdk8
 
+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
 install: ./mvnw install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
-script: ./mvnw clean test -B
+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: "fI448ieGViV3SoFl+WlR5PtsBpqQnBdz394nXVKit+n6L09O7cUn07E7fVPf5wQpICEYziAcvu966I1ajUHhT6gf4h1SvjiRWE7GmLEc55ctBdofY5nbhMXtDQrD+pMu0Td3s/+vys3EduzynxugSzn0gSzLR7LWLySpgvhp+Pa7IAd6Z24K+Pxcrs88d/WSpGCcTJLmdXiA+UevRXX/SW4rM69y9uY1W2IWBbzN3Ev+5ylpJ5Lxp+uddmCThlAL7OB6SUHBWt6KmYA6xv5zq2DYsdpFVvwFRq3FZe4Nwh5vCidLz/Gdxk2c4z5PrJTHEoVSc3RSP1oI1E8ixaZm9RJhvmzgS0fdrSr4lm3oxvxepLnMW+OCXsFjCqc3F8DNBjGzWf8aD2EUj8fZSyr4Ffre1oRu6Y6PZErfyCDJ4qh1uxjlPdTE2s8K+yiTHYQ/xtP8sAz+7pZtXO5QgQljwpJshG4JY [...]
+    # Ex. travis encrypt BINTRAY_KEY=xxx-https://bintray.com/profile/edit-xxx --add
+    - secure: "aDtB8cBiLzXIUNXSzaMhd9y01KaVEwP9pBddk13d7ZEOvLibEt8sals/IOrrxrhPmfwrnO7EqJUOdz8rk6A4JFBzsp0iWVBPkvDOxy9zs4hiAKR3DZZl42D7ylBwMXSRW2VRYs/XlL+4qr25G9al5ClfP60pZmCJ6q9BSn5CdwNnBkQGXaS/W97pMZSxHt4lPK1kkNKclc81mWq0kZZ5VuAaH/LX2zAn90tu/+aEV5/MoivMjnyT4eZLl0uNOsjhLnK7YJqgj0kRwAqTBNqRW5hfHnWrD2mnuaPN4SE+4tfNESsCzAScSHWECPNHCIMEx2cecKQ9HTbzndnH6KJhrmkwiQ9CPOFhpkUXhCanmFLuagS2wHjMtAb5YtZPzgujArsyApoBWaHqVNHnDpw1GoH8sgImeCNq19Yho7QsRiDe1MPiOfTcUpFth+MiZOy9AG1MXntyymWJqhvMI4N032PhuwN9Z [...]
+    # Ex. travis encrypt GH_TOKEN=XXX-https://github.com/settings/tokens-XXX --add
+    - secure: "fDELe6BbxL6h24TMRjvvpQlymEnyMi5XI660mOxNV5OZ7PEGEE12o/dMx83GRupGIpAqAHFm0iSAuzofFDOXdsznedxT018KPYdkaFPGVDgfOYDaVNWeEoSIS6DbjADrTU7KS2e/aFQGpV95awvh5BTP2XxepoZIWw2ECXMsnInqg1u+IGoB5ydPZTPBmlpEhwgUFW/IGZNLodKbc8xSylfiDrDwH4NlqVJzWM0JjY7Xxt46b2NFqSbtGYj21gPaDOxmLJKIGMegeB/i1C63gONuAFBF/pgMTGISLH0O1AH48OImZa2pKFXstrAVofL1rstJjq20xNhnbzRgavc1Zobj+EhLFPPJSrG7FyiGWRVSIzkIYiMT2CXyAg5zNdV3HROd12AQhZ4bZ+UNF3Op0s+jpLfobyTm8meOq/HhF7AZwHSJfBzTA0cp5jD3CVMQjogKK9fYqiy834LsgrY81dVHBUb22 [...]
+  # Ex. travis encrypt SONATYPE_USER=your_sonatype_account
+  - secure: "PtaGo8uoPEj9xWOnrQ4eLwUtZPS2/02i8gOgOH7aX45CzT/wwv1720bXekupApbe2TF81euMe6GzIzXgZIFKM64Vy55/caKnovKoW5Vys8vHZUzI/Bgo2721vJnD1p8vssFQ83nXoymMB4m+0p726ZQfYTDSxsrnN3vRaLXII9dEm+oQ2Uag1FbwgJ04sQnR8Y8xFuvaEOyEImFG9HTBjQub/WI7R8hY/+hRNKq47DeJ/n7D01NxZ6R+WLQOVQdzeCjtVa4bVVYiiTYURhzGRkSp2mEIBrEfYoatXoEagJu4abXufvSJG0e12/NMTFmI8F2MqKAgso7+ocXtYbTwdKxFsh3T8ydSE1VujjkvEdHHTY7iv2Cc31chwluTVRGCxBXClXeVKNskHkW0Zyru4qxP7QUrIEPtxrlSlLx7Q+yZmGBHGZHXh0wCEY/qQFdWzbVe8TmWwjoPwMPvmsK5Y9re1WX6Gm2 [...]
+  # Ex. travis encrypt SONATYPE_PASSWORD=your_sonatype_password
+  - secure: "hV6ZG4sZpPy6fgQR8r/jHaIRlp9PWGI4hBmIPjlVbFuH+QawRtrZtsiWai7U/20WSan/g92gdmPJzgnXr2PnCG/d97gK/gNL6qR+eGr6iJJmhCx4NnKE5mGevzAK0FDT6gnyOafqKph8K6SemAjpgc3YlBz3yOOc7gTzcdJlxLzG7xzBfU2wHmUxPt/I+6ZglYKtNV2NG7qSURMbjDXcexijzIC6TutZD7xKKBAN2JFv0BMkxsBXd1tb7stDyz5VfDl2Y0B/CLW7zLPY0i9TjbZ00cPdUKNFm5uTin1L4qWi77+DFk/+0pS5L1SQJsH+d5RPi+YmVRLhZInqWrDCu68Q5b63oxBWwGLgqh5InNUG/32yZrPLMp1C68CjTEjcEjEDAcdON2+A/oYSK+8gvFZvaOtGKH8hGnKWN6ZaXBBvPR7BptuKJ+pqa5OXr6ViwiC0IxAEIcpCGfXKrIpeiJfJAcJ8fyw [...]
diff --git a/DISCLAIMER b/DISCLAIMER
deleted file mode 100644
index 542e797..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 d7e2215..0000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,91 +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 5aa79ee..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Spring Boot Layout Factory for Apache Zipkin (incubating)
-Copyright 2019 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/RELEASE.adoc b/RELEASE.adoc
new file mode 100644
index 0000000..95b332a
--- /dev/null
+++ b/RELEASE.adoc
@@ -0,0 +1,51 @@
+== Zipkin Custom Layout Release Process
+This repo uses semantic versions. Please keep this in mind when choosing version numbers.
+
+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 https://gitter.im/openzipkin/zipkin[gitter] 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.
+
+Push a git tag::
+
+The tag should be of the format `release-N.M.L`, for example `release-3.7.1`.
+
+Wait for Travis CI::
+
+   This part is controlled by link:travis/publish.sh[`travis/publish.sh`]. It creates a bunch of new commits, bumps
+   the version, publishes artifacts, syncs to Maven Central.
+
+=== Credentials
+
+Credentials of various kind are needed for the release process to work. If you notice something
+ failing due to unauthorized, re-encrypt them using instructions at the bottom of the `.travis.yml`
+
+Ex You'll see comments like this:
+
+ ```yaml
+ env:
+   global:
+   # Ex. travis encrypt BINTRAY_USER=your_github_account
+   - secure: "VeTO...
+ ```
+
+To re-encrypt, you literally run the commands with relevant values and replace the "secure" key with the output:
+
+ ```bash
+ $ travis encrypt BINTRAY_USER=adrianmole
+ Please add the following to your .travis.yml file:
+
+   secure: "mQnECL+dXc5l9wCYl/wUz+AaYFGt/1G31NAZcTLf2RbhKo8mUenc4hZNjHCEv+4ZvfYLd/NoTNMhTCxmtBMz1q4CahPKLWCZLoRD1ExeXwRymJPIhxZUPzx9yHPHc5dmgrSYOCJLJKJmHiOl9/bJi123456="
+ ```
+
+=== Troubleshooting invalid credentials
+
+If you receive a '401 unauthorized' failure from jCenter or Bintray, it is likely `BINTRAY_USER` or `BINTRAY_KEY` entries are invalid, or possibly the user associated with them does not have rights to upload.
+
+The least destructive test is to try to publish a snapshot manually. By passing the values Travis would use, you can kick off a snapshot from your laptop. This is a good way to validate that your unencrypted credentials are authorized.
+
+Here's an example of a snapshot deploy with specified credentials.
+
+ ```bash
+ $ BINTRAY_USER=adrianmole BINTRAY_KEY=ed6f20bde9123bbb2312b221 TRAVIS_PULL_REQUEST=false TRAVIS_TAG= TRAVIS_BRANCH=master travis/publish.sh
+ ```
+
diff --git a/mvnw b/mvnw
index 35ff643..d2f0ea3 100755
--- a/mvnw
+++ b/mvnw
@@ -212,9 +212,9 @@ else
       echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
     fi
     if [ -n "$MVNW_REPOURL" ]; then
-      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.4/maven-wrapper-0.5.4.jar"
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
     else
-      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.4/maven-wrapper-0.5.4.jar"
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
     fi
     while IFS="=" read key value; do
       case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
diff --git a/mvnw.cmd b/mvnw.cmd
index dae46d4..b26ab24 100644
--- a/mvnw.cmd
+++ b/mvnw.cmd
@@ -120,7 +120,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
 
-set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.4/maven-wrapper-0.5.4.jar"
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
 
 FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
     IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
@@ -134,7 +134,7 @@ if exist %WRAPPER_JAR% (
     )
 ) else (
     if not "%MVNW_REPOURL%" == "" (
-        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.4/maven-wrapper-0.5.4.jar"
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
     )
     if "%MVNW_VERBOSE%" == "true" (
         echo Couldn't find %WRAPPER_JAR%, downloading it ...
diff --git a/pom.xml b/pom.xml
index 9b260e3..ad4f009 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,36 +1,32 @@
 <?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 2018-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.layout</groupId>
+  <groupId>io.zipkin.layout</groupId>
   <artifactId>zipkin-layout-factory</artifactId>
   <version>0.0.6-SNAPSHOT</version>
   <packaging>jar</packaging>
 
+  <name>zipkin-layout-factory</name>
+  <description>Spring Boot Layout Factory for Zipkin</description>
+  <url>https://github.com/openzipkin/zipkin-layout-factory</url>
+  <inceptionYear>2018</inceptionYear>
+
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -41,23 +37,19 @@
     <maven.compiler.target>1.8</maven.compiler.target>
 
     <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
-    <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
+    <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
     <maven-install-plugin.version>3.0.0-M1</maven-install-plugin.version>
     <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
-    <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
+    <maven-source-plugin.version>3.1.0</maven-source-plugin.version>
+    <maven-javadoc-plugin.version>3.1.0</maven-javadoc-plugin.version>
     <maven-jar-plugin.version>3.1.0</maven-jar-plugin.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>zipkin-layout-factory</name>
-  <description>Spring Boot Layout Factory for Apache Zipkin (incubating)</description>
-  <url>https://github.com/apache/incubator-zipkin-layout-factory</url>
-  <inceptionYear>2018</inceptionYear>
-
   <organization>
-    <name>The Apache Software Foundation</name>
-    <url>http://www.apache.org/</url>
+    <name>OpenZipkin</name>
+    <url>http://zipkin.io/</url>
   </organization>
 
   <licenses>
@@ -68,13 +60,6 @@
     </license>
   </licenses>
 
-  <scm>
-    <url>https://github.com/apache/incubator-zipkin-layout-factory</url>
-    <connection>scm:git:https://github.com/apache/incubator-zipkin-layout-factory.git</connection>
-    <developerConnection>scm:git:https://github.com/apache/incubator-zipkin-layout-factory.git</developerConnection>
-    <tag>HEAD</tag>
-  </scm>
-
   <!-- Developer section is needed for Maven Central, but doesn't need to include each person -->
   <developers>
     <developer>
@@ -84,42 +69,34 @@
     </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>
+  <scm>
+    <url>https://github.com/openzipkin/zipkin-layout-factory</url>
+    <connection>scm:git:https://github.com/openzipkin/zipkin-layout-factory.git</connection>
+    <developerConnection>scm:git:https://github.com/openzipkin/zipkin-layout-factory.git</developerConnection>
+    <tag>HEAD</tag>
+  </scm>
 
   <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/openzipkin/maven/zipkin-layout-factory/;publish=1</url>
     </repository>
     <snapshotRepository>
-      <id>apache.snapshots.https</id>
-      <url>https://repository.apache.org/content/repositories/snapshots/</url>
+      <id>jfrog-snapshots</id>
+      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
     </snapshotRepository>
   </distributionManagement>
 
   <issueManagement>
     <system>Github</system>
-    <url>https://github.com/apache/incubator-zipkin-layout-factory/issues</url>
+    <url>https://github.com/openzipkin/zipkin-layout-factory/issues</url>
   </issueManagement>
 
   <dependencies>
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-loader-tools</artifactId>
-      <version>2.1.4.RELEASE</version>
+      <version>2.1.5.RELEASE</version>
     </dependency>
 
     <dependency>
@@ -143,13 +120,18 @@
         <plugin>
           <groupId>io.takari</groupId>
           <artifactId>maven</artifactId>
-          <version>0.7.5</version>
+          <version>0.7.6</version>
           <configuration>
             <maven>3.6.1</maven>
           </configuration>
         </plugin>
 
         <plugin>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>${maven-compiler-plugin.version}</version>
+        </plugin>
+
+        <plugin>
           <artifactId>maven-install-plugin</artifactId>
           <version>${maven-install-plugin.version}</version>
         </plugin>
@@ -161,41 +143,34 @@
         </plugin>
 
         <plugin>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <!-- inherit version from org.apache:parent -->
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>${maven-jar-plugin.version}</version>
+        </plugin>
+
+        <plugin>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>${maven-release-plugin.version}</version>
           <configuration>
-            <failOnError>false</failOnError>
-            <!-- hush pedantic warnings: we don't put param and return on everything! -->
-            <doclint>none</doclint>
+            <useReleaseProfile>false</useReleaseProfile>
+            <releaseProfiles>release</releaseProfiles>
+            <!-- to match zipkin-scala (openzipkin/zipkin) -->
+            <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-layout-factory</packageName>
+          </configuration>
+        </plugin>
       </plugins>
     </pluginManagement>
 
     <plugins>
       <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-          <version>${maven-jar-plugin.version}</version>
-      </plugin>
-
-      <plugin>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>${maven-failsafe-plugin.version}</version>
-      </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>
         <groupId>com.mycila</groupId>
         <artifactId>license-maven-plugin</artifactId>
         <version>${license-maven-plugin.version}</version>
@@ -214,16 +189,19 @@
             <exclude>etc/header.txt</exclude>
             <exclude>**/.idea/**</exclude>
             <exclude>LICENSE</exclude>
-            <exclude>DISCLAIMER</exclude>
-            <exclude>DEPENDENCIES</exclude>
-            <exclude>NOTICE</exclude>
-            <exclude>Jenkinsfile</exclude>
             <exclude>**/*.md</exclude>
             <exclude>**/*.adoc</exclude>
             <exclude>**/spring.factories</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>
@@ -253,77 +231,43 @@
           </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>
-
-            <!-- spring files -->
-            <exclude>**/spring.factories</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>
-            <exclude>**/*.adoc</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>
     </plugins>
-
   </build>
 
   <profiles>
     <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>${maven-source-plugin.version}</version>
+            <executions>
+              <execution>
+                <id>attach-sources</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+          <!-- Creates javadoc jar -->
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>${maven-javadoc-plugin.version}</version>
+            <configuration>
+              <failOnError>false</failOnError>
+              <!-- hush pedantic warnings: we don't put param and return on everything! -->
+              <doclint>none</doclint>
+            </configuration>
             <executions>
               <execution>
-                <id>source-release-assembly</id>
-                <configuration>
-                  <!-- make the source release zip includes the word incubating -->
-                  <finalName>apache-zipkin-layout-factory-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-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..6dba3bd 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.
diff --git a/src/main/assemblies/source-release.xml b/src/main/assemblies/source-release.xml
deleted file mode 100644
index 45506ec..0000000
--- a/src/main/assemblies/source-release.xml
+++ /dev/null
@@ -1,90 +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>zipkin-layout-factory-${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: Travis -->
-        <exclude>.travis.yml</exclude>
-
-        <!-- 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/src/main/java/zipkin/layout/ZipkinLayoutFactory.java b/src/main/java/zipkin/layout/ZipkinLayoutFactory.java
index dcfb922..b617be7 100644
--- a/src/main/java/zipkin/layout/ZipkinLayoutFactory.java
+++ b/src/main/java/zipkin/layout/ZipkinLayoutFactory.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 2018-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 zipkin.layout;
 
diff --git a/src/test/java/zipkin/layout/ZipkinLayoutFactoryTest.java b/src/test/java/zipkin/layout/ZipkinLayoutFactoryTest.java
index 2a01af8..01d20fe 100644
--- a/src/test/java/zipkin/layout/ZipkinLayoutFactoryTest.java
+++ b/src/test/java/zipkin/layout/ZipkinLayoutFactoryTest.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 2018-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 zipkin.layout;
 
diff --git a/travis/publish.sh b/travis/publish.sh
new file mode 100755
index 0000000..e586bd5
--- /dev/null
+++ b/travis/publish.sh
@@ -0,0 +1,138 @@
+#!/usr/bin/env bash
+#
+# Copyright 2018-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