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