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

[incubator-zipkin-layout-factory] 01/01: Restores OpenZipkin publishing configuration

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