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/05/11 04:55:45 UTC

[incubator-zipkin] branch update-ASF created (now 93bb4cb)

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

adriancole pushed a change to branch update-ASF
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin.git.


      at 93bb4cb  Updates libraries and link references to ASF Zipkin

This branch includes the following new commits:

     new 93bb4cb  Updates libraries and link references to ASF Zipkin

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] 01/01: Updates libraries and link references to ASF Zipkin

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

adriancole pushed a commit to branch update-ASF
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin.git

commit 93bb4cb1ec3b070c471b3b7cdda099dcbdda905e
Author: Adrian Cole <ac...@pivotal.io>
AuthorDate: Sat May 11 12:55:12 2019 +0800

    Updates libraries and link references to ASF Zipkin
---
 .github/ISSUE_TEMPLATE/feature.md                  |  2 +-
 .mvn/wrapper/MavenWrapperDownloader.java           |  4 ++--
 .mvn/wrapper/maven-wrapper.properties              |  2 +-
 README.md                                          | 14 ++++++------
 mvnw                                               |  4 ++--
 mvnw.cmd                                           |  4 ++--
 pom.xml                                            | 25 +++++++++++-----------
 zipkin-collector/kafka/README.md                   |  2 +-
 zipkin-collector/kafka/pom.xml                     |  4 ++--
 zipkin-collector/rabbitmq/pom.xml                  |  2 +-
 zipkin-collector/scribe/pom.xml                    |  2 +-
 .../collector/scribe/ScribeInboundHandler.java     |  9 ++++----
 zipkin-lens/README.md                              |  2 +-
 zipkin-lens/package.json                           |  4 ++--
 zipkin-lens/pom.xml                                |  2 +-
 zipkin-lens/src/prop-types/index.js                |  2 +-
 zipkin-lens/src/zipkin/span-cleaner.test.js        |  2 +-
 zipkin-server/README.md                            | 12 +++++------
 zipkin-server/pom.xml                              |  2 +-
 .../server/internal/MetricsHealthController.java   |  6 +++---
 .../zipkin2/server/internal/ZipkinQueryApiV2.java  | 11 +++++-----
 .../test/kotlin/zipkin2/server/internal/Http.kt    |  4 ++--
 .../server/internal/ui/ITZipkinUiConfiguration.kt  |  9 ++++----
 .../internal/ui/ZipkinUiConfigurationTest.kt       |  7 +++---
 zipkin-storage/cassandra-v1/README.md              |  9 ++++----
 .../storage/cassandra/v1/ITCassandraStorage.java   |  2 +-
 zipkin-storage/cassandra/README.md                 |  4 ++--
 .../storage/cassandra/ITCassandraStorage.java      |  2 +-
 zipkin-storage/elasticsearch/README.md             |  2 +-
 .../elasticsearch/VersionSpecificTemplates.java    |  2 +-
 .../integration/ITElasticsearchStorageV6.java      |  2 +-
 .../integration/ITElasticsearchStorageV7.java      |  2 +-
 .../zipkin2/storage/mysql/v1/ITMySQLStorage.java   |  2 +-
 .../zipkin2/storage/mysql/v1/LazyMySQLStorage.java |  8 +++----
 .../storage/mysql/v1/ZipkinMySQLContainer.java     |  4 ++--
 zipkin-ui/README.md                                |  4 ++--
 zipkin-ui/package.json                             |  2 +-
 zipkin-ui/pom.xml                                  |  3 +--
 zipkin-ui/templates/layout.mustache                |  2 +-
 zipkin-ui/test/component_data/spanCleaner.test.js  |  2 +-
 .../main/java/zipkin2/internal/Dependencies.java   |  2 +-
 .../java/zipkin2/SpanBytesDecoderDetectorTest.java |  2 +-
 .../zipkin2/internal/DependencyLinkerTest.java     |  2 +-
 .../src/test/java/zipkin2/internal/TraceTest.java  |  2 +-
 44 files changed, 97 insertions(+), 100 deletions(-)

diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md
index 5e1edde..470274d 100644
--- a/.github/ISSUE_TEMPLATE/feature.md
+++ b/.github/ISSUE_TEMPLATE/feature.md
@@ -3,7 +3,7 @@ name: Feature Request
 about: Please first, look at existing issues to see if the feature has been requested before.
 
 ---
-Please first, look at [existing issues](https://github.com/openzipkin/zipkin/issues) to see if the feature has been requested before. If you don't find anything tell us what problem you’re trying to solve. Often a solution already exists! Don’t send pull requests to implement new features without first getting our support. Sometimes we leave features out on purpose to keep the project small.
+Please first, look at [existing issues](https://github.com/apache/incubator-zipkin/issues) to see if the feature has been requested before. If you don't find anything tell us what problem you’re trying to solve. Often a solution already exists! Don’t send pull requests to implement new features without first getting our support. Sometimes we leave features out on purpose to keep the project small.
 
 **Feature:**
 Description of the feature
diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java
index 1ef8d69..c32394f 100644
--- a/.mvn/wrapper/MavenWrapperDownloader.java
+++ b/.mvn/wrapper/MavenWrapperDownloader.java
@@ -20,12 +20,12 @@ import java.util.Properties;
 
 public class MavenWrapperDownloader {
 
-    private static final String WRAPPER_VERSION = "0.5.4";
+    private static final String WRAPPER_VERSION = "0.5.5";
     /**
      * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
      */
     private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
-        + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + " .jar";
+        + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
 
     /**
      * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
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/README.md b/README.md
index e4ed5fa..4c0e6ca 100644
--- a/README.md
+++ b/README.md
@@ -3,16 +3,16 @@
 [![Maven Central](https://img.shields.io/maven-central/v/org.apache.zipkin/zipkin-server.svg)](https://search.maven.org/search?q=g:org.apache.zipkin%20AND%20a:zipkin-server)
 
 # zipkin
-[Zipkin](http://zipkin.io) is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both the collection and lookup of this data. Zipkin’s design is based on the [Google Dapper paper](http://research.google.com/pubs/pub36356.html).
+[Zipkin](https://zipkin.apache.org) is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both the collection and lookup of this data. Zipkin’s design is based on the [Google Dapper paper](http://research.google.com/pubs/pub36356.html).
 
 This project includes a dependency-free library and a [spring-boot](http://projects.spring.io/spring-boot/) server. Storage options include in-memory, JDBC (mysql), Cassandra, and Elasticsearch.
 
 ## Quick-start
 
-The quickest way to get started is to fetch the [latest released server](https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec) as a self-contained executable jar. Note that the Zipkin server requires minimum JRE 8. For example:
+The quickest way to get started is to fetch the [latest released server](https://search.maven.org/remote_content?g=org.apache.zipkin&a=zipkin-server&v=LATEST&c=exec) as a self-contained executable jar. Note that the Zipkin server requires minimum JRE 8. For example:
 
 ```bash
-curl -sSL https://zipkin.io/quickstart.sh | bash -s
+curl -sSL https://zipkin.apache.org/quickstart.sh | bash -s
 java -jar zipkin.jar
 ```
 
@@ -23,7 +23,7 @@ docker run -d -p 9411:9411 openzipkin/zipkin
 
 Once the server is running, you can view traces with the Zipkin UI at `http://your_host:9411/zipkin/`.
 
-If your applications aren't sending traces, yet, configure them with [Zipkin instrumentation](https://zipkin.io/pages/tracers_instrumentation) or try one of our [examples](https://github.com/openzipkin?utf8=%E2%9C%93&q=example).
+If your applications aren't sending traces, yet, configure them with [Zipkin instrumentation](https://zipkin.apache.org/pages/tracers_instrumentation) or try one of our [examples](https://github.com/openzipkin?utf8=%E2%9C%93&q=example).
 
 Check out the [`zipkin-server`](/zipkin-server) documentation for configuration details, or [`docker-zipkin`](https://github.com/openzipkin/docker-zipkin) for how to use docker-compose.
 
@@ -86,13 +86,13 @@ the v2 Zipkin model in cqlsh. It is designed for scale. For example, it
 uses a combination of SASI and manually implemented indexes to make
 querying larger data more performant.
 
-Note: This store requires a [spark job](https://github.com/openzipkin/zipkin-dependencies) to aggregate dependency links.
+Note: This store requires a [spark job](https://github.com/apache/incubator-zipkin-dependencies) to aggregate dependency links.
 
 ### Elasticsearch
 The [Elasticsearch](zipkin-storage/elasticsearch) component is tested against Elasticsearch 2-6.x.
 It stores spans as json and has been designed for larger scale.
 
-Note: This store requires a [spark job](https://github.com/openzipkin/zipkin-dependencies) to aggregate dependency links.
+Note: This store requires a [spark job](https://github.com/apache/incubator-zipkin-dependencies) to aggregate dependency links.
 
 ### Disabling search
 The following API endpoints provide search features, and are enabled by
@@ -132,7 +132,7 @@ The [Cassandra v1](zipkin-storage/cassandra-v1) component is tested
 against Cassandra 2.2+. It stores spans as opaque thrifts which means
 you can't read them in cqlsh. However, it is designed for scale. For
 example, it has manually implemented indexes to make querying larger
-data more performant. This store requires a [spark job](https://github.com/openzipkin/zipkin-dependencies) to aggregate
+data more performant. This store requires a [spark job](https://github.com/apache/incubator-zipkin-dependencies) to aggregate
 dependency links.
 
 ## Running the server from source
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 612b16a..21a56db 100755
--- a/pom.xml
+++ b/pom.xml
@@ -54,13 +54,13 @@
 
     <!-- override to set exclusions per-project -->
     <errorprone.args />
-    <errorprone.version>2.3.2</errorprone.version>
+    <errorprone.version>2.3.3</errorprone.version>
 
     <main.basedir>${project.basedir}</main.basedir>
 
-    <armeria.version>0.84.0</armeria.version>
+    <armeria.version>0.85.0</armeria.version>
     <!-- This is from armeria, but be careful to avoid >= v20 apis -->
-    <guava.version>27.0.1-jre</guava.version>
+    <guava.version>27.1-jre</guava.version>
 
     <!-- only used for proto interop testing -->
     <wire.version>3.0.0-alpha01</wire.version>
@@ -68,10 +68,9 @@
 
     <brave.version>5.6.3</brave.version>
     <cassandra-driver-core.version>3.7.1</cassandra-driver-core.version>
-    <okhttp.version>3.14.0</okhttp.version>
-    <okio.version>1.17.3</okio.version>
-    <!-- important to keep this in sync with spring-boot-dependencies -->
-    <jooq.version>3.11.10</jooq.version>
+    <okhttp.version>3.14.1</okhttp.version>
+    <okio.version>1.17.4</okio.version>
+    <jooq.version>3.11.11</jooq.version>
     <micrometer.version>1.1.4</micrometer.version>
     <spring-boot.version>2.1.4.RELEASE</spring-boot.version>
     <!-- MySQL connector is GPL, even if it has an OSS exception.
@@ -85,8 +84,8 @@
     <log4j.version>2.11.2</log4j.version>
 
     <junit.version>4.12</junit.version>
-    <powermock.version>2.0.0</powermock.version>
-    <!-- Up to v2.25.7 of mockito has a conflict https://github.com/mockito/mockito/issues/1606
+    <powermock.version>2.0.2</powermock.version>
+    <!-- Up to v2.27.0 of mockito has a conflict https://github.com/mockito/mockito/issues/1606
     java.lang.NoSuchMethodError: net.bytebuddy.dynamic.loading.MultipleParentClassLoader$Builder.appendMostSpecific(Ljava/util/Collection;)Lnet/bytebuddy/dynamic/loading/MultipleParentClassLoader$Builder
     -->
     <mockito.version>2.23.4</mockito.version>
@@ -94,9 +93,9 @@
     <hamcrest.version>1.3</hamcrest.version>
     <testcontainers.version>1.11.2</testcontainers.version>
 
-    <auto-value.version>1.6.3</auto-value.version>
+    <auto-value.version>1.6.5</auto-value.version>
     <animal-sniffer-maven-plugin.version>1.17</animal-sniffer-maven-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-source-plugin.version>3.0.1</maven-source-plugin.version>
     <maven-javadoc-plugin.version>3.1.0</maven-javadoc-plugin.version>
@@ -413,7 +412,7 @@
         <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>
@@ -480,7 +479,7 @@
         <plugin>
           <groupId>org.apache.felix</groupId>
           <artifactId>maven-bundle-plugin</artifactId>
-          <version>4.1.0</version>
+          <version>4.2.0</version>
           <configuration>
             <obrRepository>NONE</obrRepository>
             <instructions>
diff --git a/zipkin-collector/kafka/README.md b/zipkin-collector/kafka/README.md
index 49eed4d..f404e37 100644
--- a/zipkin-collector/kafka/README.md
+++ b/zipkin-collector/kafka/README.md
@@ -15,7 +15,7 @@ includes defaults that will operate against a Kafka topic name `zipkin`.
 
 ## Encoding spans into Kafka messages
 The message's binary data includes a list of spans. Supported encodings
-are the same as the http [POST /spans](http://zipkin.io/zipkin-api/#/paths/%252Fspans) body.
+are the same as the http [POST /spans](https://zipkin.apache.org/zipkin-api/#/paths/%252Fspans) body.
 
 ### Json
 The message's binary data is a list of spans in json. The first character must be '[' (decimal 91).
diff --git a/zipkin-collector/kafka/pom.xml b/zipkin-collector/kafka/pom.xml
index 75f7ee0..3548c73 100644
--- a/zipkin-collector/kafka/pom.xml
+++ b/zipkin-collector/kafka/pom.xml
@@ -32,7 +32,7 @@
   <properties>
     <main.basedir>${project.basedir}/../..</main.basedir>
     <!-- when changing this, a change to the version of kafka-junit is likely needed, too -->
-    <kafka.version>2.1.1</kafka.version>
+    <kafka.version>2.2.0</kafka.version>
   </properties>
 
   <dependencies>
@@ -60,7 +60,7 @@
       <artifactId>kafka-junit</artifactId>
       <!-- This version is tightly coupled to the version of kafka-clients being used.
        https://github.com/charithe/kafka-junit -->
-      <version>4.1.4</version>
+      <version>4.1.5</version>
       <scope>test</scope>
       <exclusions>
         <exclusion>
diff --git a/zipkin-collector/rabbitmq/pom.xml b/zipkin-collector/rabbitmq/pom.xml
index 7c0c9c0..40f1d54 100644
--- a/zipkin-collector/rabbitmq/pom.xml
+++ b/zipkin-collector/rabbitmq/pom.xml
@@ -32,7 +32,7 @@
 
   <properties>
     <main.basedir>${project.basedir}/../..</main.basedir>
-    <amqp-client.version>4.10.0</amqp-client.version>
+    <amqp-client.version>4.11.0</amqp-client.version>
   </properties>
 
   <dependencies>
diff --git a/zipkin-collector/scribe/pom.xml b/zipkin-collector/scribe/pom.xml
index 286454b..4731300 100644
--- a/zipkin-collector/scribe/pom.xml
+++ b/zipkin-collector/scribe/pom.xml
@@ -58,7 +58,7 @@
 
     <dependency>
       <groupId>com.linecorp.armeria</groupId>
-      <artifactId>armeria-testing</artifactId>
+      <artifactId>armeria-testing-junit4</artifactId>
       <version>${armeria.version}</version>
       <scope>test</scope>
     </dependency>
diff --git a/zipkin-collector/scribe/src/main/java/zipkin2/collector/scribe/ScribeInboundHandler.java b/zipkin-collector/scribe/src/main/java/zipkin2/collector/scribe/ScribeInboundHandler.java
index 44b0d83..8872149 100644
--- a/zipkin-collector/scribe/src/main/java/zipkin2/collector/scribe/ScribeInboundHandler.java
+++ b/zipkin-collector/scribe/src/main/java/zipkin2/collector/scribe/ScribeInboundHandler.java
@@ -18,10 +18,10 @@ package zipkin2.collector.scribe;
 
 import com.linecorp.armeria.common.HttpData;
 import com.linecorp.armeria.common.HttpHeaderNames;
-import com.linecorp.armeria.common.HttpHeaders;
 import com.linecorp.armeria.common.HttpMethod;
 import com.linecorp.armeria.common.HttpRequest;
 import com.linecorp.armeria.common.HttpResponse;
+import com.linecorp.armeria.common.RequestHeaders;
 import com.linecorp.armeria.common.util.Exceptions;
 import com.linecorp.armeria.common.util.SafeCloseable;
 import com.linecorp.armeria.server.ServiceRequestContext;
@@ -49,12 +49,12 @@ final class ScribeInboundHandler extends ChannelInboundHandlerAdapter {
   static final Logger logger = LoggerFactory.getLogger(ScribeInboundHandler.class);
 
   // Headers mostly copied from https://github.com/apache/thrift/blob/master/lib/javame/src/org/apache/thrift/transport/THttpClient.java#L130
-  static final HttpHeaders THRIFT_HEADERS = HttpHeaders.of(
+  static final RequestHeaders THRIFT_HEADERS = RequestHeaders.builder(
     HttpMethod.POST, "/internal/zipkin-thriftrpc")
     .set(HttpHeaderNames.CONTENT_TYPE, "application/x-thrift")
     .set(HttpHeaderNames.ACCEPT, "application/x-thrift")
     .set(HttpHeaderNames.USER_AGENT, "Zipkin/ScribeInboundHandler")
-    .asImmutable();
+    .build();
 
   final THttpService scribeService;
 
@@ -125,8 +125,7 @@ final class ScribeInboundHandler extends ChannelInboundHandlerAdapter {
 
     state = ReadState.HEADER;
 
-    HttpRequest request =
-      HttpRequest.of(THRIFT_HEADERS.toMutable(), new ByteBufHttpData(payload, true));
+    HttpRequest request = HttpRequest.of(THRIFT_HEADERS, new ByteBufHttpData(payload, true));
     ServiceRequestContextBuilder requestContextBuilder = ServiceRequestContextBuilder.of(request)
       .service(scribeService)
       .alloc(ctx.alloc());
diff --git a/zipkin-lens/README.md b/zipkin-lens/README.md
index eb21c55..61965ed 100644
--- a/zipkin-lens/README.md
+++ b/zipkin-lens/README.md
@@ -1,6 +1,6 @@
 # Zipkin Lens
 
-Zipkin-lens is an alternative UI for [Zipkin](https://github.com/openzipkin/zipkin), which based on React, Netflix/vizceral and chartjs.
+Zipkin-lens is an alternative UI for [Zipkin](https://github.com/apache/incubator-zipkin), which based on React, Netflix/vizceral and chartjs.
 
 Here are a couple example screen shots:
 
diff --git a/zipkin-lens/package.json b/zipkin-lens/package.json
index 9c7d0df..df2fa73 100755
--- a/zipkin-lens/package.json
+++ b/zipkin-lens/package.json
@@ -11,7 +11,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/openzipkin/zipkin"
+    "url": "https://github.com/apache/incubator-zipkin"
   },
   "jest": {
     "setupTestFrameworkScriptFile": "./src/setup-test.js",
@@ -23,7 +23,7 @@
     }
   },
   "keywords": [],
-  "author": "https://gitter.im/openzipkin/zipkin",
+  "author": "https://gitter.im/apache/incubator-zipkin",
   "license": "Apache-2.0",
   "devDependencies": {
     "babel-core": "^6.26.3",
diff --git a/zipkin-lens/pom.xml b/zipkin-lens/pom.xml
index 38121fb..4de5763 100644
--- a/zipkin-lens/pom.xml
+++ b/zipkin-lens/pom.xml
@@ -32,7 +32,7 @@
 
   <properties>
     <main.basedir>${project.basedir}/..</main.basedir>
-    <frontend-maven-plugin.version>1.7.5</frontend-maven-plugin.version>
+    <frontend-maven-plugin.version>1.7.6</frontend-maven-plugin.version>
   </properties>
 
   <dependencies>
diff --git a/zipkin-lens/src/prop-types/index.js b/zipkin-lens/src/prop-types/index.js
index c4895d8..256548b 100644
--- a/zipkin-lens/src/prop-types/index.js
+++ b/zipkin-lens/src/prop-types/index.js
@@ -37,7 +37,7 @@ export const spanAnnotationsPropTypes = PropTypes.arrayOf(
 );
 
 // TODO: Verify which fields we should enforce here, as some are optional per
-// https://github.com/openzipkin/zipkin-api/blob/master/zipkin2-api.yaml
+// https://github.com/apache/incubator-zipkin-api/blob/master/zipkin2-api.yaml
 export const detailedSpanPropTypes = PropTypes.shape({
   spanId: PropTypes.string.isRequired,
   spanName: PropTypes.string.isRequired,
diff --git a/zipkin-lens/src/zipkin/span-cleaner.test.js b/zipkin-lens/src/zipkin/span-cleaner.test.js
index 0171347..5c33f59 100644
--- a/zipkin-lens/src/zipkin/span-cleaner.test.js
+++ b/zipkin-lens/src/zipkin/span-cleaner.test.js
@@ -387,7 +387,7 @@ describe('mergeV2ById', () => {
   /*
    * Some don't propagate the server's parent ID which creates a race condition. Try to unwind it.
    *
-   * See https://github.com/openzipkin/zipkin/pull/1745
+   * See https://github.com/apache/incubator-zipkin/pull/1745
    */
   it('should backfill missing parent id on shared span', () => {
     const spans = mergeV2ById([
diff --git a/zipkin-server/README.md b/zipkin-server/README.md
index ef02da2..7ff0f56 100644
--- a/zipkin-server/README.md
+++ b/zipkin-server/README.md
@@ -7,10 +7,10 @@ and the server listens on port 9411.
 
 ## Quick-start
 
-The quickest way to get started is to fetch the [latest released server](https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec) as a self-contained executable jar. Note that the Zipkin server requires minimum JRE 8. For example:
+The quickest way to get started is to fetch the [latest released server](https://search.maven.org/remote_content?g=org.apache.zipkin&a=zipkin-server&v=LATEST&c=exec) as a self-contained executable jar. Note that the Zipkin server requires minimum JRE 8. For example:
 
 ```bash
-$ curl -sSL https://zipkin.io/quickstart.sh | bash -s
+$ curl -sSL https://zipkin.apache.org/quickstart.sh | bash -s
 $ java -jar zipkin.jar
 ```
 
@@ -21,16 +21,16 @@ Once you've started, browse to http://your_host:9411 to find traces!
 The following endpoints are defined under the base url http://your_host:9411
 * / - [UI](../zipkin-ui)
 * /config.json - [Configuration for the UI](#configuration-for-the-ui)
-* /api/v2 - [Api](https://zipkin.io/zipkin-api/#/)
+* /api/v2 - [Api](https://zipkin.apache.org/zipkin-api/#/)
 * /health - Returns 200 status if OK
 * /info - Provides the version of the running instance
 * /metrics - Includes collector metrics broken down by transport type
 
 There are more [built-in endpoints](https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html) provided by Spring Boot, such as `/metrics`. To comprehensively list endpoints, `GET /mappings`.
 
-The [legacy /api/v1 Api](https://zipkin.io/zipkin-api/#/) is still supported. Backends are decoupled from the
+The [legacy /api/v1 Api](https://zipkin.apache.org/zipkin-api/#/) is still supported. Backends are decoupled from the
 HTTP api via data conversion. This means you can still accept legacy data on new backends and visa versa. Enter
-`https://zipkin.io/zipkin-api/zipkin-api.yaml` into the explore box of the Swagger UI to view the old definition
+`https://zipkin.apache.org/zipkin-api/zipkin-api.yaml` into the explore box of the Swagger UI to view the old definition
 
 ### CORS (Cross-origin Resource Sharing)
 
@@ -278,7 +278,7 @@ $ STORAGE_TYPE=cassandra java -jar zipkin.jar
 ```
 
 #### Service and Span names query
-The [Zipkin Api](https://zipkin.io/zipkin-api/#/default/get_services) does not include
+The [Zipkin Api](https://zipkin.apache.org/zipkin-api/#/default/get_services) does not include
 a parameter for how far back to look for service or span names. In order
 to prevent excessive load, service and span name queries are limited by
 `QUERY_LOOKBACK`, which defaults to 24hrs (two daily buckets: one for
diff --git a/zipkin-server/pom.xml b/zipkin-server/pom.xml
index b8693e9..514e6e6 100644
--- a/zipkin-server/pom.xml
+++ b/zipkin-server/pom.xml
@@ -34,7 +34,7 @@
     <main.java.version>1.8</main.java.version>
     <main.signature.artifact>java18</main.signature.artifact>
     <start-class>zipkin.server.ZipkinServer</start-class>
-    <kotlin.version>1.3.30</kotlin.version>
+    <kotlin.version>1.3.31</kotlin.version>
     <maven-invoker-plugin.version>3.2.0</maven-invoker-plugin.version>
     <proto.generatedSourceDirectory>${project.build.directory}/generated-test-sources/wire</proto.generatedSourceDirectory>
   </properties>
diff --git a/zipkin-server/src/main/java/zipkin2/server/internal/MetricsHealthController.java b/zipkin-server/src/main/java/zipkin2/server/internal/MetricsHealthController.java
index 0bcc396..ed1b531 100644
--- a/zipkin-server/src/main/java/zipkin2/server/internal/MetricsHealthController.java
+++ b/zipkin-server/src/main/java/zipkin2/server/internal/MetricsHealthController.java
@@ -22,9 +22,9 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.linecorp.armeria.common.HttpData;
 import com.linecorp.armeria.common.HttpHeaderNames;
-import com.linecorp.armeria.common.HttpHeaders;
 import com.linecorp.armeria.common.HttpResponse;
 import com.linecorp.armeria.common.MediaType;
+import com.linecorp.armeria.common.ResponseHeaders;
 import com.linecorp.armeria.server.annotation.Get;
 import com.linecorp.armeria.server.annotation.ProducesJson;
 import io.micrometer.core.instrument.Counter;
@@ -96,9 +96,9 @@ public class MetricsHealthController {
     healthJson.put("zipkin", health.getDetails().get("zipkin"));
     byte[] body = mapper.writer().writeValueAsBytes(healthJson);
 
-    HttpHeaders headers = HttpHeaders.of(statusMapper.mapStatus(health.getStatus()))
+    ResponseHeaders headers = ResponseHeaders.builder(statusMapper.mapStatus(health.getStatus()))
       .contentType(MediaType.JSON)
-      .setInt(HttpHeaderNames.CONTENT_LENGTH, body.length);
+      .setInt(HttpHeaderNames.CONTENT_LENGTH, body.length).build();
     return HttpResponse.of(headers, HttpData.of(body));
   }
 }
diff --git a/zipkin-server/src/main/java/zipkin2/server/internal/ZipkinQueryApiV2.java b/zipkin-server/src/main/java/zipkin2/server/internal/ZipkinQueryApiV2.java
index 4be6d54..8cef06c 100644
--- a/zipkin-server/src/main/java/zipkin2/server/internal/ZipkinQueryApiV2.java
+++ b/zipkin-server/src/main/java/zipkin2/server/internal/ZipkinQueryApiV2.java
@@ -19,9 +19,10 @@ package zipkin2.server.internal;
 import com.linecorp.armeria.common.AggregatedHttpMessage;
 import com.linecorp.armeria.common.HttpData;
 import com.linecorp.armeria.common.HttpHeaderNames;
-import com.linecorp.armeria.common.HttpHeaders;
 import com.linecorp.armeria.common.HttpStatus;
 import com.linecorp.armeria.common.MediaType;
+import com.linecorp.armeria.common.ResponseHeaders;
+import com.linecorp.armeria.common.ResponseHeadersBuilder;
 import com.linecorp.armeria.server.annotation.Default;
 import com.linecorp.armeria.server.annotation.Get;
 import com.linecorp.armeria.server.annotation.Param;
@@ -141,9 +142,9 @@ public class ZipkinQueryApiV2 {
   }
 
   static AggregatedHttpMessage jsonResponse(byte[] body) {
-    return AggregatedHttpMessage.of(HttpHeaders.of(200)
+    return AggregatedHttpMessage.of(ResponseHeaders.builder(200)
       .contentType(MediaType.JSON)
-      .setInt(HttpHeaderNames.CONTENT_LENGTH, body.length), HttpData.of(body));
+      .setInt(HttpHeaderNames.CONTENT_LENGTH, body.length).build(), HttpData.of(body));
   }
 
   static final Buffer.Writer<String> QUOTED_STRING_WRITER = new Buffer.Writer<String>() {
@@ -177,7 +178,7 @@ public class ZipkinQueryApiV2 {
   AggregatedHttpMessage maybeCacheNames(boolean shouldCacheControl, List<String> values) {
     Collections.sort(values);
     byte[] body = JsonCodec.writeList(QUOTED_STRING_WRITER, values);
-    HttpHeaders headers = HttpHeaders.of(200)
+    ResponseHeadersBuilder headers = ResponseHeaders.builder(200)
       .contentType(MediaType.JSON)
       .setInt(HttpHeaderNames.CONTENT_LENGTH, body.length);
     if (shouldCacheControl) {
@@ -186,7 +187,7 @@ public class ZipkinQueryApiV2 {
         CacheControl.maxAge(namesMaxAge, TimeUnit.SECONDS).mustRevalidate().getHeaderValue()
       );
     }
-    return AggregatedHttpMessage.of(headers, HttpData.of(body));
+    return AggregatedHttpMessage.of(headers.build(), HttpData.of(body));
   }
 
   // This is inlined here as there isn't enough re-use to warrant it being in the zipkin2 library
diff --git a/zipkin-server/src/test/kotlin/zipkin2/server/internal/Http.kt b/zipkin-server/src/test/kotlin/zipkin2/server/internal/Http.kt
index e4aa395..e170a56 100644
--- a/zipkin-server/src/test/kotlin/zipkin2/server/internal/Http.kt
+++ b/zipkin-server/src/test/kotlin/zipkin2/server/internal/Http.kt
@@ -50,10 +50,10 @@ object Http {
     body: ByteArray,
     headers: Headers = Headers.of()
   ): Response {
-    val body =
+    val requestBody =
       RequestBody.create(if (contentType != null) MediaType.parse(contentType) else null, body)
     val result = client.newCall(
-      Request.Builder().url(url(server, path)).headers(headers).post(body).build()).execute()
+      Request.Builder().url(url(server, path)).headers(headers).post(requestBody).build()).execute()
     return result;
   }
 
diff --git a/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ITZipkinUiConfiguration.kt b/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ITZipkinUiConfiguration.kt
index 179a233..a95ee3b 100644
--- a/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ITZipkinUiConfiguration.kt
+++ b/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ITZipkinUiConfiguration.kt
@@ -18,8 +18,8 @@ package zipkin2.server.internal.ui
 
 import com.linecorp.armeria.client.HttpClient
 import com.linecorp.armeria.common.HttpHeaderNames
-import com.linecorp.armeria.common.HttpHeaders
 import com.linecorp.armeria.common.HttpMethod
+import com.linecorp.armeria.common.RequestHeaders
 import com.linecorp.armeria.server.Server
 import okhttp3.Headers
 import okio.Okio
@@ -116,9 +116,10 @@ class ITZipkinUiConfiguration {
 
   private fun getContentEncodingFromRequestThatAcceptsGzip(path: String): String? {
     // We typically use OkHttp in our tests, but that automatically unzips..
-    val response = HttpClient.of(Http.url(server, ""))
-      .execute(HttpHeaders.of(HttpMethod.GET, path).set(HttpHeaderNames.ACCEPT_ENCODING, "gzip"))
-      .aggregate().join()
+    val request = RequestHeaders.builder(HttpMethod.GET, path)
+      .set(HttpHeaderNames.ACCEPT_ENCODING, "gzip")
+      .build()
+    val response = HttpClient.of(Http.url(server, "")).execute(request).aggregate().join()
     return response.headers().get(HttpHeaderNames.CONTENT_ENCODING)
   }
 }
diff --git a/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ZipkinUiConfigurationTest.kt b/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ZipkinUiConfigurationTest.kt
index 3e270ac..93ba996 100644
--- a/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ZipkinUiConfigurationTest.kt
+++ b/zipkin-server/src/test/kotlin/zipkin2/server/internal/ui/ZipkinUiConfigurationTest.kt
@@ -18,10 +18,10 @@ package zipkin2.server.internal.ui
 
 import com.linecorp.armeria.common.AggregatedHttpMessage
 import com.linecorp.armeria.common.HttpHeaderNames
-import com.linecorp.armeria.common.HttpHeaders
 import com.linecorp.armeria.common.HttpMethod
 import com.linecorp.armeria.common.HttpRequest
 import com.linecorp.armeria.common.MediaType
+import com.linecorp.armeria.common.RequestHeaders
 import com.linecorp.armeria.server.ServiceRequestContext
 import io.netty.handler.codec.http.cookie.ClientCookieEncoder
 import io.netty.handler.codec.http.cookie.Cookie
@@ -29,7 +29,6 @@ import io.netty.handler.codec.http.cookie.DefaultCookie
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.After
 import org.junit.Test
-import org.springframework.beans.factory.BeanCreationException
 import org.springframework.beans.factory.NoSuchBeanDefinitionException
 import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
 import org.springframework.boot.test.util.TestPropertyValues
@@ -165,12 +164,12 @@ class ZipkinUiConfigurationTest {
   }
 
   private fun serveIndex(vararg cookies: Cookie): AggregatedHttpMessage {
-    val headers = HttpHeaders.of(HttpMethod.GET, "/")
+    val headers = RequestHeaders.builder(HttpMethod.GET, "/")
     val encodedCookies = ClientCookieEncoder.LAX.encode(*cookies)
     if (encodedCookies != null) {
       headers.set(HttpHeaderNames.COOKIE, encodedCookies)
     }
-    val req = HttpRequest.of(headers)
+    val req = HttpRequest.of(headers.build())
     return context.getBean(ZipkinUiConfiguration::class.java).indexSwitchingService()
       .serve(ServiceRequestContext.of(req), req).aggregate()
       .get()
diff --git a/zipkin-storage/cassandra-v1/README.md b/zipkin-storage/cassandra-v1/README.md
index 7de7590..d968c50 100644
--- a/zipkin-storage/cassandra-v1/README.md
+++ b/zipkin-storage/cassandra-v1/README.md
@@ -1,11 +1,10 @@
 # storage-cassandra
 
-This CQL-based Cassandra 2.2+ storage component includes a `GuavaSpanStore` and `GuavaSpanConsumer`.
-`GuavaSpanStore.getDependencies()` returns pre-aggregated dependency links (ex via [zipkin-dependencies-spark](https://github.com/openzipkin/zipkin-dependencies-spark)).
+This is a CQL-based Cassandra 2.2+ storage component, built upon the [Zipkin v1 thrift model](https://github.com/apache/incubator-zipkin-api/tree/master/thrift).
 
-The implementation uses the [Datastax Java Driver 3.x](https://github.com/datastax/java-driver).
-Duration queries are not supported in this implementation. If you need to
-search by duration, please use [zipkin-storage-cassandra](../cassandra)
+`CassandraSpanStore.getDependencies()` returns pre-aggregated dependency links (ex via [zipkin-dependencies](https://github.com/apache/incubator-zipkin-dependencies)).
+
+The implementation uses the [Datastax Java Driver 3.1.x](https://github.com/datastax/java-driver).
 
 `zipkin2.storage.cassandra.v1.CassandraStorage.Builder` includes defaults that will
 operate against a local Cassandra installation.
diff --git a/zipkin-storage/cassandra-v1/src/test/java/zipkin2/storage/cassandra/v1/ITCassandraStorage.java b/zipkin-storage/cassandra-v1/src/test/java/zipkin2/storage/cassandra/v1/ITCassandraStorage.java
index a916035..bdc58e3 100644
--- a/zipkin-storage/cassandra-v1/src/test/java/zipkin2/storage/cassandra/v1/ITCassandraStorage.java
+++ b/zipkin-storage/cassandra-v1/src/test/java/zipkin2/storage/cassandra/v1/ITCassandraStorage.java
@@ -51,7 +51,7 @@ import static zipkin2.storage.cassandra.v1.InternalForTests.writeDependencyLinks
 public class ITCassandraStorage {
 
   static CassandraStorageRule classRule() {
-    return new CassandraStorageRule("openzipkin/zipkin-cassandra:2.12.8", "test_cassandra3");
+    return new CassandraStorageRule("openzipkin/zipkin-cassandra:2.13.0", "test_cassandra3");
   }
 
   public static class ITSpanStore extends zipkin2.storage.ITSpanStore {
diff --git a/zipkin-storage/cassandra/README.md b/zipkin-storage/cassandra/README.md
index 8231b31..a1385d2 100644
--- a/zipkin-storage/cassandra/README.md
+++ b/zipkin-storage/cassandra/README.md
@@ -1,8 +1,8 @@
 # storage-cassandra
 
-This CQL-based Cassandra 3.9+ storage component, built upon the [Zipkin v2 api and model](http://zipkin.io/zipkin-api/#/default/post_spans).
+This is a CQL-based Cassandra 3.9+ storage component, built upon the [Zipkin v2 api and model](https://zipkin.apache.org/zipkin-api/#/default/post_spans).
 
-`CassandraSpanStore.getDependencies()` returns pre-aggregated dependency links (ex via [zipkin-dependencies](https://github.com/openzipkin/zipkin-dependencies)).
+`CassandraSpanStore.getDependencies()` returns pre-aggregated dependency links (ex via [zipkin-dependencies](https://github.com/apache/incubator-zipkin-dependencies)).
 
 The implementation uses the [Datastax Java Driver 3.1.x](https://github.com/datastax/java-driver).
 
diff --git a/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/ITCassandraStorage.java b/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/ITCassandraStorage.java
index aaffea2..728c820 100644
--- a/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/ITCassandraStorage.java
+++ b/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/ITCassandraStorage.java
@@ -52,7 +52,7 @@ import static zipkin2.storage.cassandra.InternalForTests.writeDependencyLinks;
 public class ITCassandraStorage {
 
   static CassandraStorageRule classRule() {
-    return new CassandraStorageRule("openzipkin/zipkin-cassandra:2.12.8", "test_cassandra3");
+    return new CassandraStorageRule("openzipkin/zipkin-cassandra:2.13.0", "test_cassandra3");
   }
 
   public static class ITSpanStore extends zipkin2.storage.ITSpanStore {
diff --git a/zipkin-storage/elasticsearch/README.md b/zipkin-storage/elasticsearch/README.md
index f5b5e7b..0ef3456 100644
--- a/zipkin-storage/elasticsearch/README.md
+++ b/zipkin-storage/elasticsearch/README.md
@@ -22,7 +22,7 @@ Here are some examples:
 * http://elasticsearch-1:9200,http://elasticsearch-2:9200
 
 ## Format
-Spans are stored in version 2 format, which is the same as the [v2 POST endpoint](http://zipkin.io/zipkin-api/#/default/post_spans)
+Spans are stored in version 2 format, which is the same as the [v2 POST endpoint](https://zipkin.apache.org/zipkin-api/#/default/post_spans)
 with one difference described below. We add a "timestamp_millis" field
 to aid in integration with other tools.
 
diff --git a/zipkin-storage/elasticsearch/src/main/java/zipkin2/elasticsearch/VersionSpecificTemplates.java b/zipkin-storage/elasticsearch/src/main/java/zipkin2/elasticsearch/VersionSpecificTemplates.java
index ee522bb..f9e6bc9 100644
--- a/zipkin-storage/elasticsearch/src/main/java/zipkin2/elasticsearch/VersionSpecificTemplates.java
+++ b/zipkin-storage/elasticsearch/src/main/java/zipkin2/elasticsearch/VersionSpecificTemplates.java
@@ -206,7 +206,7 @@ final class VersionSpecificTemplates {
    * <p>Starting in Elasticsearch 7.x, colons are no longer allowed in index names. This logic will
    * make sure the pattern in our index template doesn't use them either.
    *
-   * <p>See https://github.com/openzipkin/zipkin/issues/2219
+   * <p>See https://github.com/apache/incubator-zipkin/issues/2219
    */
   static char indexTypeDelimiter(float version) {
     return version < 7.0f ? ':' : '-';
diff --git a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV6.java b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV6.java
index a50ec5c..2b03eac 100644
--- a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV6.java
+++ b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV6.java
@@ -37,7 +37,7 @@ import static zipkin2.elasticsearch.integration.ElasticsearchStorageRule.index;
 public class ITElasticsearchStorageV6 {
 
   static ElasticsearchStorageRule classRule() {
-    return new ElasticsearchStorageRule("openzipkin/zipkin-elasticsearch6:2.12.8",
+    return new ElasticsearchStorageRule("openzipkin/zipkin-elasticsearch6:2.13.0",
       "test_elasticsearch3");
   }
 
diff --git a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV7.java b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV7.java
index fe0cd9c..333823d 100644
--- a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV7.java
+++ b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ITElasticsearchStorageV7.java
@@ -35,7 +35,7 @@ import static zipkin2.elasticsearch.integration.ElasticsearchStorageRule.index;
 public class ITElasticsearchStorageV7 {
 
   static ElasticsearchStorageRule classRule() {
-    return new ElasticsearchStorageRule("openzipkin/zipkin-elasticsearch7:2.12.9",
+    return new ElasticsearchStorageRule("openzipkin/zipkin-elasticsearch7:2.13.0",
       "test_elasticsearch3");
   }
 
diff --git a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ITMySQLStorage.java b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ITMySQLStorage.java
index 83f99a9..401c37b 100644
--- a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ITMySQLStorage.java
+++ b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ITMySQLStorage.java
@@ -37,7 +37,7 @@ import static zipkin2.storage.mysql.v1.internal.generated.tables.ZipkinDependenc
 public class ITMySQLStorage {
 
   static LazyMySQLStorage classRule() {
-    return new LazyMySQLStorage("2.12.8");
+    return new LazyMySQLStorage("openzipkin/zipkin-mysql:2.13.0");
   }
 
   public static class ITSpanStore extends zipkin2.storage.ITSpanStore {
diff --git a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/LazyMySQLStorage.java b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/LazyMySQLStorage.java
index a6741b8..898754c 100644
--- a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/LazyMySQLStorage.java
+++ b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/LazyMySQLStorage.java
@@ -29,12 +29,12 @@ import static org.junit.Assume.assumeTrue;
 public class LazyMySQLStorage implements TestRule {
   static final Logger LOGGER = LoggerFactory.getLogger(LazyMySQLStorage.class);
 
-  final String version;
+  final String image;
 
   ZipkinMySQLContainer container;
 
-  LazyMySQLStorage(String version) {
-    this.version = version;
+  LazyMySQLStorage(String image) {
+    this.image = image;
   }
 
   MySQLStorage storage;
@@ -44,7 +44,7 @@ public class LazyMySQLStorage implements TestRule {
 
     if (!"true".equals(System.getProperty("docker.skip"))) {
       try {
-        container = new ZipkinMySQLContainer(version);
+        container = new ZipkinMySQLContainer(image);
         container.start();
         LOGGER.info("Starting docker image " + container.getDockerImageName());
       } catch (Exception e) {
diff --git a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ZipkinMySQLContainer.java b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ZipkinMySQLContainer.java
index 3c0403c..24b8f11 100644
--- a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ZipkinMySQLContainer.java
+++ b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/ZipkinMySQLContainer.java
@@ -29,8 +29,8 @@ final class ZipkinMySQLContainer extends GenericContainer<ZipkinMySQLContainer>
 
   MariaDbDataSource dataSource;
 
-  ZipkinMySQLContainer(String version) {
-    super("openzipkin/zipkin-mysql:" + version);
+  ZipkinMySQLContainer(String image) {
+    super(image);
     withExposedPorts(3306);
   }
 
diff --git a/zipkin-ui/README.md b/zipkin-ui/README.md
index 61e0c10..b66980a 100644
--- a/zipkin-ui/README.md
+++ b/zipkin-ui/README.md
@@ -19,7 +19,7 @@ The suggested logic for serving the assets of Zipkin-UI is as follows:
     serve that file. If it doesn't exist, then return 404.
  1. Otherwise, serve `index.html`.
 
-For an example implementation using Finatra, see [zipkin-query](https://github.com/openzipkin/zipkin/blob/5dec252e4c562b21bac5ac2f9d0b437d90988f79/zipkin-query/src/main/scala/com/twitter/zipkin/query/ZipkinQueryController.scala).
+For an example implementation using Finatra, see [zipkin-query](https://github.com/apache/incubator-zipkin/blob/5dec252e4c562b21bac5ac2f9d0b437d90988f79/zipkin-query/src/main/scala/com/twitter/zipkin/query/ZipkinQueryController.scala).
 
 Note that in cases where a non-existent resource is requested, this logic returns the contents of `index.html`. When
 loaded as a web-page, the client application will handle the problem of telling the user about this. When not,
@@ -100,7 +100,7 @@ If this feature is activated, you'll see on the trace detail page an additional
 
 ## How do I make errors visible in yellow or red?
 The UI interprets an "error" tag as a failed span, coloring it red. It interprets an annotation containing the substring
-"error" as a transient failure. To ensure the UI displays errors, please use the [error key](https://zipkin.io/public/thrift/v1/zipkinCore.html#Const_ERROR) appropriately.
+"error" as a transient failure. To ensure the UI displays errors, please use the [error key](https://zipkin.apache.org/public/thrift/v1/zipkinCore.html#Const_ERROR) appropriately.
 
 ## How do I adjust the error rates in the dependency graph
 
diff --git a/zipkin-ui/package.json b/zipkin-ui/package.json
index b22b3ac..878222c 100644
--- a/zipkin-ui/package.json
+++ b/zipkin-ui/package.json
@@ -13,7 +13,7 @@
   "author": "https://gitter.im/openzipkin/zipkin",
   "repository": {
     "type": "git",
-    "url": "https://github.com/openzipkin/zipkin"
+    "url": "https://github.com/apache/incubator-zipkin"
   },
   "license": "Apache-2.0",
   "dependencies": {
diff --git a/zipkin-ui/pom.xml b/zipkin-ui/pom.xml
index 09ef56e..bea520c 100644
--- a/zipkin-ui/pom.xml
+++ b/zipkin-ui/pom.xml
@@ -26,14 +26,13 @@
     <version>2.13.1-SNAPSHOT</version>
   </parent>
 
-  <groupId>org.apache.zipkin</groupId>
   <artifactId>zipkin-ui</artifactId>
   <name>Zipkin UI</name>
   <description>Repackages Zipkin UI jar until its source moves to this repository</description>
 
   <properties>
     <main.basedir>${project.basedir}/..</main.basedir>
-    <frontend-maven-plugin.version>1.7.5</frontend-maven-plugin.version>
+    <frontend-maven-plugin.version>1.7.6</frontend-maven-plugin.version>
   </properties>
 
   <dependencies>
diff --git a/zipkin-ui/templates/layout.mustache b/zipkin-ui/templates/layout.mustache
index 6bea45e..f15143d 100644
--- a/zipkin-ui/templates/layout.mustache
+++ b/zipkin-ui/templates/layout.mustache
@@ -16,7 +16,7 @@
 }}
   <nav id='navbar' class='navbar navbar-expand-lg navbar-dark bg-dark'>
           <a class='navbar-brand ml-5' href='{{contextRoot}}'>
-          <img src="https://zipkin.io/public/img/zipkin-logo-200x119.jpg" width="60" height="40" class="d-inline-block align-top rounded" alt=""/>
+          <img src="https://zipkin.apache.org/public/img/zipkin-logo-200x119.jpg" width="60" height="40" class="d-inline-block align-top rounded" alt=""/>
             <span class='font-weight-light navbar-text' style="font-size: .75em;" data-i18n="nav.inves">Investigate system behavior</span>
           </a>
         <div class="collapse navbar-collapse">
diff --git a/zipkin-ui/test/component_data/spanCleaner.test.js b/zipkin-ui/test/component_data/spanCleaner.test.js
index 6e092ce..8ec5ebb 100644
--- a/zipkin-ui/test/component_data/spanCleaner.test.js
+++ b/zipkin-ui/test/component_data/spanCleaner.test.js
@@ -378,7 +378,7 @@ describe('mergeV2ById', () => {
   /*
    * Some don't propagate the server's parent ID which creates a race condition. Try to unwind it.
    *
-   * See https://github.com/openzipkin/zipkin/pull/1745
+   * See https://github.com/apache/incubator-zipkin/pull/1745
    */
   it('should backfill missing parent id on shared span', () => {
     const spans = mergeV2ById([
diff --git a/zipkin/src/main/java/zipkin2/internal/Dependencies.java b/zipkin/src/main/java/zipkin2/internal/Dependencies.java
index dd4efb8..733c34e 100644
--- a/zipkin/src/main/java/zipkin2/internal/Dependencies.java
+++ b/zipkin/src/main/java/zipkin2/internal/Dependencies.java
@@ -33,7 +33,7 @@ import static zipkin2.internal.ThriftField.TYPE_STRING;
  * Internal as only cassandra serializes the start and end timestamps along with link data, and
  * those serialized timestamps are never read.
  *
- * @deprecated See https://github.com/openzipkin/zipkin/issues/1008
+ * @deprecated See https://github.com/apache/incubator-zipkin/issues/1008
  */
 public final class Dependencies {
   static final ThriftField START_TS = new ThriftField(TYPE_I64, 1);
diff --git a/zipkin/src/test/java/zipkin2/SpanBytesDecoderDetectorTest.java b/zipkin/src/test/java/zipkin2/SpanBytesDecoderDetectorTest.java
index 8490bd9..327a3dc 100644
--- a/zipkin/src/test/java/zipkin2/SpanBytesDecoderDetectorTest.java
+++ b/zipkin/src/test/java/zipkin2/SpanBytesDecoderDetectorTest.java
@@ -163,7 +163,7 @@ public class SpanBytesDecoderDetectorTest {
   /**
    * We encoded incorrectly for years, so we have to read this data eventhough it is wrong.
    *
-   * <p>See openzipkin/zipkin-reporter-java#133
+   * <p>See apache/incubator-zipkin-reporter-java#133
    */
   @Test
   public void decoderForListMessage_thrift_incorrectFirstByte() {
diff --git a/zipkin/src/test/java/zipkin2/internal/DependencyLinkerTest.java b/zipkin/src/test/java/zipkin2/internal/DependencyLinkerTest.java
index f6611a5..f0a7f94 100644
--- a/zipkin/src/test/java/zipkin2/internal/DependencyLinkerTest.java
+++ b/zipkin/src/test/java/zipkin2/internal/DependencyLinkerTest.java
@@ -68,7 +68,7 @@ public class DependencyLinkerTest {
   /**
    * Some don't propagate the server's parent ID which creates a race condition. Try to unwind it.
    *
-   * <p>See https://github.com/openzipkin/zipkin/pull/1745
+   * <p>See https://github.com/apache/incubator-zipkin/pull/1745
    */
   @Test
   public void linksSpans_serverMissingParentId() {
diff --git a/zipkin/src/test/java/zipkin2/internal/TraceTest.java b/zipkin/src/test/java/zipkin2/internal/TraceTest.java
index 49b28ad..339043d 100644
--- a/zipkin/src/test/java/zipkin2/internal/TraceTest.java
+++ b/zipkin/src/test/java/zipkin2/internal/TraceTest.java
@@ -34,7 +34,7 @@ public class TraceTest {
   /**
    * Some don't propagate the server's parent ID which creates a race condition. Try to unwind it.
    *
-   * <p>See https://github.com/openzipkin/zipkin/pull/1745
+   * <p>See https://github.com/apache/incubator-zipkin/pull/1745
    */
   @Test public void backfillsMissingParentIdOnSharedSpan() {
     List<Span> trace = asList(