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/08 06:24:52 UTC

[incubator-zipkin-b3-propagation] branch master updated: Simplifies ASF migration by removing the build (#34)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new bc937b6  Simplifies ASF migration by removing the build (#34)
bc937b6 is described below

commit bc937b6854ea30e46b3e85fbf147d8f4de685dd5
Author: Adrian Cole <ad...@users.noreply.github.com>
AuthorDate: Wed May 8 14:24:47 2019 +0800

    Simplifies ASF migration by removing the build (#34)
    
    We initially created a java build of a sample library about B3. However,
    that library was never used, nor published. The code drifted also, and
    became less effective, to the degree it ever was, as an example.
    
    This removes anything build related, as for several years this has only
    been a documentation repo. If later, we want to add a build, we can.
---
 .circleci/config.yml                              | 135 ---------
 .github/CONTRIBUTING.md                           |  13 +
 .gitignore                                        |   9 -
 .mvn/wrapper/maven-wrapper.jar                    | Bin 49519 -> 0 bytes
 .mvn/wrapper/maven-wrapper.properties             |   1 -
 .settings.xml                                     |  43 ---
 DISCLAIMER                                        |   5 +
 NOTICE                                            |   5 +
 build-support/go-offline.sh                       |  34 ---
 build-support/pom-no-crossmodule-dependencies.xsl |  26 --
 build-support/publish-snapshot.sh                 |  23 --
 build-support/publish-stable.sh                   |  21 --
 build-support/trigger-publish.sh                  |  38 ---
 core/pom.xml                                      |  48 ---
 core/src/main/java/b3/TraceContext.java           | 345 ----------------------
 core/src/test/java/b3/TraceContextTest.java       | 166 -----------
 mvnw                                              | 234 ---------------
 mvnw.cmd                                          | 145 ---------
 pom.xml                                           | 302 -------------------
 src/etc/header.txt                                |  11 -
 20 files changed, 23 insertions(+), 1581 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 85643e2..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,135 +0,0 @@
-#
-# Copyright 2016-2018 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.
-#
-
-version: 2
-jobs:
-  build:
-    docker:
-      - image: circleci/openjdk:8-jdk
-    steps:
-      - checkout
-
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-
-      - run:
-          name: Download dependencies
-          command: |
-            sudo apt-get install xsltproc
-            ./build-support/go-offline.sh
-      - save_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-          paths:
-            - ~/.m2
-
-      - run:
-          name: Tests
-          command: ./mvnw clean verify
-
-      - run:
-          name: Collect test reports
-          command: |
-            mkdir -p /tmp/test-reports/unit-tests/
-            find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} /tmp/test-reports/unit-tests/ \;
-
-      - store_test_results:
-          path: /tmp/test-reports/
-
-  publish_snapshot:
-    docker:
-      - image: circleci/openjdk:8-jdk
-    steps:
-      - checkout
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-      - run:
-          name: Publish snapshot
-          command: |
-            # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
-            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
-            ./build-support/publish-snapshot.sh
-
-  publish_stable:
-    docker:
-      - image: circleci/openjdk:8-jdk
-    steps:
-      - checkout
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-      - run:
-          name: Publish stable version
-          command: |
-            # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
-            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
-            ./build-support/publish-stable.sh
-
-  trigger_publish:
-    docker:
-      - image: circleci/openjdk:8-jdk
-    steps:
-      - checkout
-      - restore_cache:
-          key: maven-dependencies-{{ checksum "pom.xml" }}
-      - run:
-          name: Configure Git for release
-          command: |
-            # parameters used during release
-            # 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
-      - run:
-          name: Trigger publish
-          command: |
-            # Guard against running this on pull requests or forks
-            [ "$CIRCLE_PROJECT_USERNAME" == "openzipkin" ] || exit 0
-            [ -z "$CIRCLE_PR_NUMBER" ] || exit 0
-            ./build-support/trigger-publish.sh
-
-
-workflows:
-  version: 2
-  build_and_publish:
-    jobs:
-      - build
-      - publish_snapshot:
-          requires:
-            - build
-          filters:
-            branches:
-              only: master
-      - publish_stable:
-          requires:
-            - build
-          filters:
-            branches:
-              ignore: /.*/
-            tags:
-              only: /\d+\.\d+\.\d+/
-      - trigger_publish:
-          requires:
-            - build
-          filters:
-            branches:
-              ignore: /.*/
-            tags:
-              only: /release-\d+\.\d+\.\d+/
-
-notify:
-  webhooks:
-    - url: https://webhooks.gitter.im/e/22adbb9973299092e6ae
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..d4ca35f
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,13 @@
+# Contributing to Apache Zipkin (incubating)
+
+If you would like to contribute code, fork this GitHub repository and
+send a pull request on a branch other than `master`.
+
+## Contributor Agreement
+
+Non-trivial change requires an Individual Contributor License Agreement
+(ICLA). The ICLA applies to all Apache Software Foundation projects, and
+is a one-time effort. If you have not yet filled an ICLA, download the [template](https://www.apache.org/licenses/icla.pdf).
+After filling the form with your information print, sign, scan, and send
+it in an email attachment to secretary@apache.org. You will get a
+confirmation and end up on a [list we can check](http://people.apache.org/unlistedclas.html).
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 49a48f5..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-.DS_Store
-.classpath
-.project
-.settings/
-target/
-*.iml
-.idea
-*.ipr
-*.iws
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100644
index c6feb8b..0000000
Binary files a/.mvn/wrapper/maven-wrapper.jar and /dev/null differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 6637ced..0000000
--- a/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1 +0,0 @@
-distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
\ No newline at end of file
diff --git a/.settings.xml b/.settings.xml
deleted file mode 100644
index c267a52..0000000
--- a/.settings.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright 2016 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="http://maven.apache.org/SETTINGS/1.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    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>${env.GH_USER}</username>
-      <password>${env.GH_TOKEN}</password>
-    </server>
-  </servers>
-</settings>
diff --git a/DISCLAIMER b/DISCLAIMER
new file mode 100644
index 0000000..f73ab06
--- /dev/null
+++ b/DISCLAIMER
@@ -0,0 +1,5 @@
+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/NOTICE b/NOTICE
new file mode 100644
index 0000000..c176eeb
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,5 @@
+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/build-support/go-offline.sh b/build-support/go-offline.sh
deleted file mode 100755
index b216dd4..0000000
--- a/build-support/go-offline.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-#
-
-# Due to https://issues.apache.org/jira/browse/MDEP-323 and cross-module dependencies,
-# we can't easily run mvn dependency:go-offline. This is a workaround for that.
-# It removes all dependencies on io.zipkin.b3 and ${project.groupId} using XSLT,
-# then runs go-offline on the resulting POMs.
-
-set -xeuo pipefail
-
-rm -rf go-offline-builddir
-mkdir -p go-offline-builddir
-trap "rm -rf $(pwd)/go-offline-builddir" EXIT
-
-for f in $(find . -name 'pom.xml'); do
-    echo $f
-    mkdir -p $(dirname go-offline-builddir/$f)
-    xsltproc ./build-support/pom-no-crossmodule-dependencies.xsl $f > go-offline-builddir/$f
-done
-
-cd go-offline-builddir
-../mvnw dependency:go-offline
diff --git a/build-support/pom-no-crossmodule-dependencies.xsl b/build-support/pom-no-crossmodule-dependencies.xsl
deleted file mode 100644
index cf249c2..0000000
--- a/build-support/pom-no-crossmodule-dependencies.xsl
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright 2016 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.
-
--->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pom="http://maven.apache.org/POM/4.0.0">
-  <xsl:template match="@*|node()">
-    <xsl:copy>
-      <xsl:apply-templates select="@*|node()"/>
-    </xsl:copy>
-  </xsl:template>
-
-  <xsl:template match="pom:dependency[pom:groupId = 'io.zipkin.b3']" />
-  <xsl:template match="pom:dependency[pom:groupId = '${project.groupId}']" />
-</xsl:stylesheet>
diff --git a/build-support/publish-snapshot.sh b/build-support/publish-snapshot.sh
deleted file mode 100755
index ee42e0b..0000000
--- a/build-support/publish-snapshot.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2016-2017 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
-
-if ./mvnw help:evaluate -N -Dexpression=project.version | grep -v '\['  | grep -q SNAPSHOT; then
-    ./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests deploy
-else
-    echo "Not building release versions, those are built by the tag builder using the publish-stable.sh script"
-fi
diff --git a/build-support/publish-stable.sh b/build-support/publish-stable.sh
deleted file mode 100755
index 0dc7479..0000000
--- a/build-support/publish-stable.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2016 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
-
-./mvnw -DskipTests install -nsu
-./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DskipTests deploy
-./mvnw --batch-mode -s ./.settings.xml -nsu -N io.zipkin.centralsync-maven-plugin:centralsync-maven-plugin:sync
diff --git a/build-support/trigger-publish.sh b/build-support/trigger-publish.sh
deleted file mode 100755
index 04bcd80..0000000
--- a/build-support/trigger-publish.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2016 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
-
-release_version() {
-    echo "${CIRCLE_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
-}
-
-safe_checkout_master
-./mvnw --batch-mode -s ./.settings.xml -Prelease -nsu -DreleaseVersion="$(release_version)" -Darguments="-DskipTests" release:prepare
diff --git a/core/pom.xml b/core/pom.xml
deleted file mode 100644
index 678fd00..0000000
--- a/core/pom.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright 2016-2017 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.
-
--->
-<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>io.zipkin.b3</groupId>
-    <artifactId>b3-parent</artifactId>
-    <version>0.0.2-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>b3</artifactId>
-  <name>B3 Propagation: Core</name>
-
-  <properties>
-    <main.basedir>${project.basedir}/..</main.basedir>
-  </properties>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/core/src/main/java/b3/TraceContext.java b/core/src/main/java/b3/TraceContext.java
deleted file mode 100644
index f4b84ea..0000000
--- a/core/src/main/java/b3/TraceContext.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/**
- * Copyright 2016 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.
- */
-package b3;
-
-import java.nio.ByteBuffer;
-
-/**
- * Contains trace data that's propagated in-band across requests, sometimes known as Baggage.
- *
- * <p>Particularly, this includes trace identifiers, sampled state, and a portable binary
- * representation.
- *
- * <p>This binary representation is fixed-length, depending on the size of the trace identifier.
- * This representation doesn't have a way to represent an absent parent (root span). In this
- * serialized form, a root span is when all three ids are the same. Alternatively, you can use
- * {@link #nullableParentId}.
- *
- * <p>The implementation was originally {@code com.github.kristofa.brave.TraceContext}, which was a
- * port of {@code com.twitter.finagle.tracing.TraceId}.
- */
-public final class TraceContext {
-
-  /** Unique 8 or 16-byte identifier for a trace, set on all spans within it. */
-  public static final class TraceId {
-
-    /** 0 may imply 8-byte identifiers are in use */
-    public final long hi;
-    public final long lo;
-
-    TraceId(long hi, long lo) {
-      this.hi = hi;
-      this.lo = lo;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-      if (o == this) return true;
-      if (o instanceof TraceId) {
-        TraceId that = (TraceId) o;
-        return (this.hi == that.hi)
-            && (this.lo == that.lo);
-      }
-      return false;
-    }
-
-    @Override
-    public int hashCode() {
-      int h = 1;
-      h *= 1000003;
-      h ^= (hi >>> 32) ^ hi;
-      h *= 1000003;
-      h ^= (lo >>> 32) ^ lo;
-      return h;
-    }
-  }
-
-  public static final int FLAG_DEBUG = 1 << 0;
-  /** When set, we can interpret {@link #FLAG_SAMPLED} as a set value. */
-  public static final int FLAG_SAMPLING_SET = 1 << 1;
-  public static final int FLAG_SAMPLED = 1 << 2;
-  /**
-   * When set, we can ignore the value of the {@link #parentId}
-   *
-   * <p>While many zipkin systems re-use a trace id as the root span id, we know that some don't.
-   * With this flag, we can tell for sure if the span is root as opposed to the convention trace id
-   * == span id == parent id.
-   */
-  public static final int FLAG_IS_ROOT = 1 << 3;
-
-  TraceContext(TraceId traceId, long parentId, long spanId, long flags) {
-    this.traceId = traceId;
-    this.parentId = (parentId == spanId) ? traceId.lo : parentId;
-    this.spanId = spanId;
-    this.flags = flags;
-  }
-
-  /** Deserializes this from a big-endian byte array */
-  public static TraceContext fromBytes(byte[] bytes) {
-    checkNotNull(bytes, "bytes");
-    if (bytes.length != 32 && bytes.length != 40) {
-      throw new IllegalArgumentException("bytes.length " + bytes.length + " != 32 or 40");
-    }
-
-    ByteBuffer buffer = ByteBuffer.wrap(bytes);
-    long spanId = buffer.getLong(0);
-    long parentId = buffer.getLong(8);
-    TraceId traceId;
-    long flags;
-    if (bytes.length == 32) {
-      traceId = new TraceId(0, buffer.getLong(16));
-      flags = buffer.getLong(24);
-    } else {
-      traceId = new TraceId(
-          buffer.getLong(16),
-          buffer.getLong(24)
-      );
-      flags = buffer.getLong(32);
-    }
-
-    return new TraceContext(traceId, parentId, spanId, flags);
-  }
-
-  public static Builder builder() {
-    return new Builder();
-  }
-
-  /** Unique 8 or 16-byte identifier for a trace, set on all spans within it. */
-  public final TraceId traceId;
-
-  /** The parent's {@link #spanId} or {@link #spanId} if this the root span in a trace. */
-  public final long parentId;
-
-  /** Returns null when this is a root span. */
-  public Long nullableParentId() {
-    return root() ? null : parentId;
-  }
-
-  /**
-   * Unique 8-byte identifier of this span within a trace.
-   *
-   * <p>A span is uniquely identified in storage by ({@linkplain #traceId}, {@code #id}).
-   */
-  public final long spanId;
-
-  /** Returns true if this is the root span. */
-  public final boolean root() {
-    return (flags & FLAG_IS_ROOT) == FLAG_IS_ROOT || parentId == traceId.lo && parentId == spanId;
-  }
-
-  /**
-   * True is a request to store this span even if it overrides sampling policy. Implies {@link
-   * #nullableSampled()}.
-   */
-  public final boolean debug() {
-    return (flags & FLAG_DEBUG) == FLAG_DEBUG;
-  }
-
-  /**
-   * Should we sample this request or not? True means sample, false means don't, null means we defer
-   * decision to someone further down in the stack.
-   */
-  public final Boolean nullableSampled() {
-    if (debug()) return true;
-    return (flags & FLAG_SAMPLING_SET) == FLAG_SAMPLING_SET
-        ? (flags & FLAG_SAMPLED) == FLAG_SAMPLED
-        : null;
-  }
-
-  /** Raw flags encoded in {@link #bytes()} */
-  public final long flags;
-
-  /** Serializes this into a big-endian byte array */
-  public byte[] bytes() {
-    boolean traceHi = traceId.hi != 0;
-    byte[] result = new byte[traceHi ? 40 : 32];
-    ByteBuffer buffer = ByteBuffer.wrap(result);
-    buffer.putLong(0, spanId);
-    buffer.putLong(8, parentId);
-    if (traceHi) {
-      buffer.putLong(16, traceId.hi);
-      buffer.putLong(24, traceId.lo);
-      buffer.putLong(32, flags);
-    } else {
-      buffer.putLong(16, traceId.lo);
-      buffer.putLong(24, flags);
-    }
-    return result;
-  }
-
-  public Builder toBuilder() {
-    return new Builder(this);
-  }
-
-  /** Returns {@code $traceId.$spanId<:$parentId} */
-  @Override
-  public String toString() {
-    boolean traceHi = traceId.hi != 0;
-    char[] result = new char[((traceHi ? 4 : 3) * 16) + 3]; // 3 ids and the constant delimiters
-    int pos = 0;
-    if (traceHi) {
-      writeHexLong(result, pos, traceId.hi);
-      pos += 16;
-    }
-    writeHexLong(result, pos, traceId.lo);
-    pos += 16;
-    result[pos++] = '.';
-    writeHexLong(result, pos, spanId);
-    pos += 16;
-    result[pos++] = '<';
-    result[pos++] = ':';
-    writeHexLong(result, pos, parentId);
-    return new String(result);
-  }
-
-  @Override
-  public boolean equals(Object o) {
-    if (o == this) return true;
-    if (o instanceof TraceContext) {
-      TraceContext that = (TraceContext) o;
-      return this.traceId.equals(that.traceId)
-          && this.parentId == that.parentId
-          && this.spanId == that.spanId;
-    }
-    return false;
-  }
-
-  @Override
-  public int hashCode() {
-    int h = 1;
-    h *= 1000003;
-    h ^= traceId.hashCode();
-    h *= 1000003;
-    h ^= (parentId >>> 32) ^ parentId;
-    h *= 1000003;
-    h ^= (spanId >>> 32) ^ spanId;
-    return h;
-  }
-
-  public static final class Builder {
-    long hi = 0;
-    Long lo;
-    Long nullableParentId;
-    Long spanId;
-    long flags;
-
-    Builder() {
-    }
-
-    Builder(TraceContext source) {
-      this.hi = source.traceId.hi;
-      this.lo = source.traceId.lo;
-      this.nullableParentId = source.nullableParentId();
-      this.spanId = source.spanId;
-      this.flags = source.flags;
-    }
-
-    /** @see TraceId#hi */
-    public Builder hi(long hi) {
-      this.hi = hi;
-      return this;
-    }
-
-    /** @see TraceId#lo */
-    public Builder lo(long lo) {
-      this.lo = lo;
-      return this;
-    }
-
-    /**
-     * If your trace ids are not span ids, you must call this method to indicate absent parent.
-     *
-     * @see TraceContext#nullableParentId()
-     */
-    public Builder nullableParentId(Long nullableParentId) {
-      if (nullableParentId == null) {
-        this.flags |= FLAG_IS_ROOT;
-      } else {
-        this.flags &= ~FLAG_IS_ROOT;
-      }
-      this.nullableParentId = nullableParentId;
-      return this;
-    }
-
-    /** @see TraceContext#spanId */
-    public Builder spanId(long spanId) {
-      this.spanId = spanId;
-      return this;
-    }
-
-    /** @see TraceContext#flags */
-    public Builder flags(long flags) {
-      this.flags = flags;
-      return this;
-    }
-
-    /** @see TraceContext#debug() */
-    public Builder debug(boolean debug) {
-      if (debug) {
-        this.flags |= FLAG_DEBUG;
-      } else {
-        this.flags &= ~FLAG_DEBUG;
-      }
-      return this;
-    }
-
-    /** @see TraceContext#nullableSampled */
-    public Builder nullableSampled(Boolean nullableSampled) {
-      if (nullableSampled != null) {
-        this.flags |= FLAG_SAMPLING_SET;
-        if (nullableSampled) {
-          this.flags |= FLAG_SAMPLED;
-        } else {
-          this.flags &= ~FLAG_SAMPLED;
-        }
-      } else {
-        this.flags &= ~FLAG_SAMPLING_SET;
-      }
-      return this;
-    }
-
-    public TraceContext build() {
-      checkNotNull(spanId, "spanId");
-      long lo = this.lo != null ? this.lo : spanId;
-      long nullableParentId = this.nullableParentId != null ? this.nullableParentId : lo;
-      return new TraceContext(new TraceId(hi, lo), nullableParentId, spanId, flags);
-    }
-  }
-
-  /** Inspired by {@code okio.Buffer.writeLong} */
-  static void writeHexLong(char[] data, int pos, long v) {
-    writeHexByte(data, pos + 0, (byte) ((v >>> 56L) & 0xff));
-    writeHexByte(data, pos + 2, (byte) ((v >>> 48L) & 0xff));
-    writeHexByte(data, pos + 4, (byte) ((v >>> 40L) & 0xff));
-    writeHexByte(data, pos + 6, (byte) ((v >>> 32L) & 0xff));
-    writeHexByte(data, pos + 8, (byte) ((v >>> 24L) & 0xff));
-    writeHexByte(data, pos + 10, (byte) ((v >>> 16L) & 0xff));
-    writeHexByte(data, pos + 12, (byte) ((v >>> 8L) & 0xff));
-    writeHexByte(data, pos + 14, (byte) (v & 0xff));
-  }
-
-  static final char[] HEX_DIGITS =
-      {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
-
-  static void writeHexByte(char[] data, int pos, byte b) {
-    data[pos + 0] = HEX_DIGITS[(b >> 4) & 0xf];
-    data[pos + 1] = HEX_DIGITS[b & 0xf];
-  }
-
-  /** Inspired by {@code com.google.common.base.Preconditions#checkNotNull}. */
-  public static <T> T checkNotNull(T reference, String errorMessage) {
-    if (reference == null) throw new NullPointerException(errorMessage);
-    return reference;
-  }
-}
diff --git a/core/src/test/java/b3/TraceContextTest.java b/core/src/test/java/b3/TraceContextTest.java
deleted file mode 100644
index 122d8f7..0000000
--- a/core/src/test/java/b3/TraceContextTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- * Copyright 2016 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.
- */
-package b3;
-
-import b3.TraceContext.TraceId;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import static b3.TraceContext.FLAG_DEBUG;
-import static b3.TraceContext.FLAG_SAMPLED;
-import static b3.TraceContext.FLAG_SAMPLING_SET;
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class TraceContextTest {
-  @Rule
-  public ExpectedException thrown = ExpectedException.none();
-
-  @Test public void rootSpan_whenTraceIdsAreSpanIds() {
-    TraceContext id = TraceContext.builder().spanId(333L).build();
-
-    assertThat(id.root()).isTrue();
-    assertThat(id.nullableParentId()).isNull();
-
-    assertThat(TraceContext.fromBytes(id.bytes()))
-        .isEqualToComparingFieldByField(id);
-  }
-
-  @Test public void equals() {
-    assertThat(TraceContext.builder().spanId(333L).build())
-        .isEqualTo(TraceContext.builder().spanId(333L).build());
-  }
-
-  // NOTE: finagle doesn't support this, but then again it doesn't provision non-span trace ids
-  @Test public void rootSpan_whenTraceIdsArentSpanIds() {
-    TraceContext id = TraceContext.builder().lo(555L).nullableParentId(null).spanId(333L).build();
-
-    assertThat(id.root()).isTrue();
-    assertThat(id.nullableParentId()).isNull();
-
-    assertThat(TraceContext.fromBytes(id.bytes()))
-        .isEqualToComparingFieldByField(id);
-  }
-
-  @Test public void compareUnequalIds() {
-    TraceContext id = TraceContext.builder().spanId(0L).build();
-
-    assertThat(id)
-        .isNotEqualTo(TraceContext.builder().spanId(1L).build());
-  }
-
-  @Test public void compareEqualIds() {
-    TraceContext id = TraceContext.builder().spanId(0L).build();
-
-    assertThat(id)
-        .isEqualTo(TraceContext.builder().spanId(0L).build());
-  }
-
-  @Test public void compareSynthesizedParentId() {
-    TraceContext id = TraceContext.builder().nullableParentId(1L).spanId(1L).build();
-
-    assertThat(id)
-        .isEqualTo(TraceContext.builder().spanId(1L).build());
-  }
-
-  @Test public void compareSynthesizedTraceId() {
-    TraceContext id = TraceContext.builder().lo(1L).nullableParentId(1L).spanId(1L).build();
-
-    assertThat(id)
-        .isEqualTo(TraceContext.builder().nullableParentId(1L).spanId(1L).build());
-  }
-
-  @Test public void serializationRoundTrip() {
-    TraceContext id =
-        TraceContext.builder().lo(1L).nullableParentId(2L).spanId(3L).nullableSampled(true).build();
-
-    assertThat(TraceContext.fromBytes(id.bytes()))
-        .isEqualToComparingFieldByField(id);
-  }
-
-  @Test public void fromBytesFail() {
-    thrown.expect(IllegalArgumentException.class);
-
-    TraceContext.fromBytes("not-a-trace".getBytes());
-  }
-
-  @Test public void sampledTrueWhenDebug() {
-    TraceContext id = TraceContext.builder().spanId(1L).debug(true).build();
-
-    assertThat(id.nullableSampled()).isTrue();
-  }
-
-  @Test public void builderClearsSampled() {
-    TraceContext id =
-        new TraceContext(new TraceId(0L, 1L), 1L, 1L, FLAG_SAMPLED | FLAG_SAMPLING_SET);
-
-    assertThat(id.nullableSampled()).isTrue();
-
-    id = id.toBuilder().nullableSampled(null).build();
-
-    assertThat(id.nullableSampled()).isNull();
-  }
-
-  @Test public void builderUnsetsDebug() {
-    TraceContext id = new TraceContext(new TraceId(0L, 1L), 1L, 1L, FLAG_DEBUG);
-
-    assertThat(id.debug()).isTrue();
-
-    id = id.toBuilder().debug(false).build();
-
-    assertThat(id.debug()).isFalse();
-  }
-
-  @Test public void equalsOnlyAccountsForIdFields() {
-    assertThat(new TraceContext(new TraceId(0L, 1L), 1L, 1L, FLAG_DEBUG).hashCode())
-        .isEqualTo(new TraceContext(new TraceId(0L, 1L), 1L, 1L, FLAG_SAMPLING_SET).hashCode());
-  }
-
-  @Test public void hashCodeOnlyAccountsForIdFields() {
-    assertThat(new TraceContext(new TraceId(0L, 1L), 1L, 1L, FLAG_DEBUG))
-        .isEqualTo(new TraceContext(new TraceId(0L, 1L), 1L, 1L, FLAG_SAMPLING_SET));
-  }
-
-  @Test
-  public void testToString_lo() {
-    TraceContext id = TraceContext.builder().lo(1).spanId(3).nullableParentId(2L).build();
-
-    assertThat(id.toString())
-        .isEqualTo("0000000000000001.0000000000000003<:0000000000000002");
-  }
-
-  @Test
-  public void testToStringNullParent_lo() {
-    TraceContext id = TraceContext.builder().lo(1).spanId(1).build();
-
-    assertThat(id.toString())
-        .isEqualTo("0000000000000001.0000000000000001<:0000000000000001");
-  }
-
-  @Test
-  public void testToString_hi() {
-    TraceContext id = TraceContext.builder().hi(1).lo(1).spanId(3).nullableParentId(2L).build();
-
-    assertThat(id.toString())
-        .isEqualTo("00000000000000010000000000000001.0000000000000003<:0000000000000002");
-  }
-
-  @Test
-  public void testToStringNullParent_hi() {
-    TraceContext id = TraceContext.builder().hi(1).lo(1).spanId(1).build();
-
-    assertThat(id.toString())
-        .isEqualTo("00000000000000010000000000000001.0000000000000001<:0000000000000001");
-  }
-}
diff --git a/mvnw b/mvnw
deleted file mode 100755
index fc7efd1..0000000
--- a/mvnw
+++ /dev/null
@@ -1,234 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# 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.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Maven2 Start Up Batch script
-#
-# Required ENV vars:
-# ------------------
-#   JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-#   M2_HOME - location of maven2's installed home dir
-#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
-#     e.g. to debug Maven itself, use
-#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
-  if [ -f /etc/mavenrc ] ; then
-    . /etc/mavenrc
-  fi
-
-  if [ -f "$HOME/.mavenrc" ] ; then
-    . "$HOME/.mavenrc"
-  fi
-
-fi
-
-# OS specific support.  $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "`uname`" in
-  CYGWIN*) cygwin=true ;;
-  MINGW*) mingw=true;;
-  Darwin*) darwin=true
-           #
-           # Look for the Apple JDKs first to preserve the existing behaviour, and then look
-           # for the new JDKs provided by Oracle.
-           # 
-           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
-             #
-             # Apple JDKs
-             #
-             export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
-           fi
-           
-           if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
-             #
-             # Apple JDKs
-             #
-             export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
-           fi
-             
-           if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
-             #
-             # Oracle JDKs
-             #
-             export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
-           fi           
-
-           if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
-             #
-             # Apple JDKs
-             #
-             export JAVA_HOME=`/usr/libexec/java_home`
-           fi
-           ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
-  if [ -r /etc/gentoo-release ] ; then
-    JAVA_HOME=`java-config --jre-home`
-  fi
-fi
-
-if [ -z "$M2_HOME" ] ; then
-  ## resolve links - $0 may be a link to maven's home
-  PRG="$0"
-
-  # need this for relative symlinks
-  while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-      PRG="$link"
-    else
-      PRG="`dirname "$PRG"`/$link"
-    fi
-  done
-
-  saveddir=`pwd`
-
-  M2_HOME=`dirname "$PRG"`/..
-
-  # make it fully qualified
-  M2_HOME=`cd "$M2_HOME" && pwd`
-
-  cd "$saveddir"
-  # echo Using m2 at $M2_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --unix "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# For Migwn, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME="`(cd "$M2_HOME"; pwd)`"
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
-  # TODO classpath?
-fi
-
-if [ -z "$JAVA_HOME" ]; then
-  javaExecutable="`which javac`"
-  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
-    # readlink(1) is not available as standard on Solaris 10.
-    readLink=`which readlink`
-    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
-      if $darwin ; then
-        javaHome="`dirname \"$javaExecutable\"`"
-        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
-      else
-        javaExecutable="`readlink -f \"$javaExecutable\"`"
-      fi
-      javaHome="`dirname \"$javaExecutable\"`"
-      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
-      JAVA_HOME="$javaHome"
-      export JAVA_HOME
-    fi
-  fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
-  if [ -n "$JAVA_HOME"  ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-      # IBM's JDK on AIX uses strange locations for the executables
-      JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-      JAVACMD="$JAVA_HOME/bin/java"
-    fi
-  else
-    JAVACMD="`which java`"
-  fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
-  echo "Error: JAVA_HOME is not defined correctly." >&2
-  echo "  We cannot execute $JAVACMD" >&2
-  exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
-  echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-  [ -n "$M2_HOME" ] &&
-    M2_HOME=`cygpath --path --windows "$M2_HOME"`
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
-  local basedir=$(pwd)
-  local wdir=$(pwd)
-  while [ "$wdir" != '/' ] ; do
-    if [ -d "$wdir"/.mvn ] ; then
-      basedir=$wdir
-      break
-    fi
-    wdir=$(cd "$wdir/.."; pwd)
-  done
-  echo "${basedir}"
-}
-
-# concatenates all lines of a file
-concat_lines() {
-  if [ -f "$1" ]; then
-    echo "$(tr -s '\n' ' ' < "$1")"
-  fi
-}
-
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
-
-# Provide a "standardized" way to retrieve the CLI args that will 
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-exec "$JAVACMD" \
-  $MAVEN_OPTS \
-  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
-  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
-  ${WRAPPER_LAUNCHER} $MAVEN_CMD_LINE_ARGS
-
diff --git a/mvnw.cmd b/mvnw.cmd
deleted file mode 100644
index 0d49a2d..0000000
--- a/mvnw.cmd
+++ /dev/null
@@ -1,145 +0,0 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements.  See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership.  The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License.  You may obtain a copy of the License at
-@REM
-@REM    http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied.  See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven2 Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM     e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
-if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-set MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %*
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-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
-
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
-if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%" == "on" pause
-
-if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
-
-exit /B %ERROR_CODE%
diff --git a/pom.xml b/pom.xml
deleted file mode 100755
index dd3814c..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,302 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright 2016-2017 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.
-
--->
-<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>
-
-  <groupId>io.zipkin.b3</groupId>
-  <artifactId>b3-parent</artifactId>
-  <version>0.0.2-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <modules>
-    <module>core</module>
-  </modules>
-
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
-
-    <!-- default bytecode version for src/main -->
-    <main.java.version>1.6</main.java.version>
-    <main.signature.artifact>java16</main.signature.artifact>
-
-    <main.basedir>${project.basedir}</main.basedir>
-
-    <license-maven-plugin.version>2.11</license-maven-plugin.version>
-  </properties>
-
-  <name>B3 Propagation (Parent)</name>
-  <url>https://github.com/openzipkin/b3-propagation</url>
-  <inceptionYear>2016</inceptionYear>
-
-  <organization>
-    <name>OpenZipkin</name>
-    <url>http://zipkin.io/</url>
-  </organization>
-
-  <licenses>
-    <license>
-      <name>The Apache Software License, Version 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-
-  <scm>
-    <url>https://github.com/openzipkin/b3-propagation</url>
-    <connection>scm:git:https://github.com/openzipkin/b3-propagation.git</connection>
-    <developerConnection>scm:git:https://github.com/openzipkin/b3-propagation.git</developerConnection>
-    <tag>HEAD</tag>
-  </scm>
-
-  <!-- Developer section is needed for Maven Central, but doesn't need to include each person -->
-  <developers>
-    <developer>
-      <id>openzipkin</id>
-      <name>OpenZipkin Gitter</name>
-      <url>https://gitter.im/openzipkin/zipkin</url>
-    </developer>
-  </developers>
-
-  <distributionManagement>
-    <repository>
-      <id>bintray</id>
-      <url>https://api.bintray.com/maven/openzipkin/maven/b3-propagation/;publish=1</url>
-    </repository>
-    <snapshotRepository>
-      <id>jfrog-snapshots</id>
-      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
-    </snapshotRepository>
-  </distributionManagement>
-
-  <issueManagement>
-    <system>Github</system>
-    <url>https://github.com/openzipkin/b3-propagation/issues</url>
-  </issueManagement>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>${project.groupId}</groupId>
-        <artifactId>b3</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.12</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.assertj</groupId>
-      <artifactId>assertj-core</artifactId>
-      <version>3.5.2</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <pluginManagement>
-      <plugins>
-        <!-- mvn -N io.takari:maven:wrapper -Dmaven=3.3.9 -->
-        <plugin>
-          <groupId>io.takari</groupId>
-          <artifactId>maven</artifactId>
-          <version>0.3.3</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-
-    <plugins>
-      <plugin>
-        <inherited>true</inherited>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.5.1</version>
-        <configuration>
-          <!-- Retrolambda will rewrite lambdas as Java 6 bytecode -->
-          <source>1.8</source>
-          <target>1.8</target>
-          <compilerId>javac-with-errorprone</compilerId>
-          <forceJavacCompilerUse>true</forceJavacCompilerUse>
-          <showWarnings>true</showWarnings>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-compiler-javac-errorprone</artifactId>
-            <version>2.8</version>
-          </dependency>
-          <dependency>
-            <groupId>com.google.errorprone</groupId>
-            <artifactId>error_prone_core</artifactId>
-            <version>2.0.9</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-
-      <plugin>
-        <groupId>net.orfjackal.retrolambda</groupId>
-        <artifactId>retrolambda-maven-plugin</artifactId>
-        <version>2.3.0</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>process-main</goal>
-            </goals>
-            <configuration>
-              <target>${main.java.version}</target>
-              <fork>false</fork>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>animal-sniffer-maven-plugin</artifactId>
-        <version>1.15</version>
-        <configuration>
-          <signature>
-            <groupId>org.codehaus.mojo.signature</groupId>
-            <artifactId>${main.signature.artifact}</artifactId>
-            <version>1.0</version>
-          </signature>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>check</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- Ensures checksums are added to published jars -->
-      <plugin>
-        <artifactId>maven-install-plugin</artifactId>
-        <version>2.5.2</version>
-        <configuration>
-          <createChecksum>true</createChecksum>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>com.mycila</groupId>
-        <artifactId>license-maven-plugin</artifactId>
-        <version>${license-maven-plugin.version}</version>
-        <configuration>
-          <header>${main.basedir}/src/etc/header.txt</header>
-          <excludes>
-            <exclude>.travis.yml</exclude>
-            <exclude>.gitignore</exclude>
-            <exclude>.mvn/**</exclude>
-            <exclude>mvnw*</exclude>
-            <exclude>etc/header.txt</exclude>
-            <exclude>**/.idea/**</exclude>
-            <exclude>LICENSE</exclude>
-            <exclude>**/*.md</exclude>
-            <exclude>src/test/resources/**</exclude>
-            <exclude>src/main/resources/**</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>
-              <goal>check</goal>
-            </goals>
-            <phase>compile</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <artifactId>maven-release-plugin</artifactId>
-        <version>2.5.3</version>
-        <configuration>
-          <useReleaseProfile>false</useReleaseProfile>
-          <releaseProfiles>release</releaseProfiles>
-          <autoVersionSubmodules>true</autoVersionSubmodules>
-          <tagNameFormat>@{project.version}</tagNameFormat>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>io.zipkin.centralsync-maven-plugin</groupId>
-        <artifactId>centralsync-maven-plugin</artifactId>
-        <version>0.1.0</version>
-        <configuration>
-          <packageName>b3-propagation</packageName>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>release</id>
-      <build>
-        <plugins>
-          <!-- Creates source jar -->
-          <plugin>
-            <artifactId>maven-source-plugin</artifactId>
-            <version>3.0.1</version>
-            <executions>
-              <execution>
-                <id>attach-sources</id>
-                <goals>
-                  <goal>jar</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-
-          <plugin>
-            <artifactId>maven-javadoc-plugin</artifactId>
-            <version>2.10.4</version>
-            <configuration>
-              <failOnError>false</failOnError>
-              <excludePackageNames>b3.internal,b3.internal.*</excludePackageNames>
-              <!-- hush pedantic warnings: we don't put param and return on everything! -->
-              <additionalparam>-Xdoclint:none</additionalparam>
-            </configuration>
-            <executions>
-              <execution>
-                <id>attach-javadocs</id>
-                <goals>
-                  <goal>jar</goal>
-                </goals>
-                <phase>package</phase>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-</project>
diff --git a/src/etc/header.txt b/src/etc/header.txt
deleted file mode 100644
index 6dba3bd..0000000
--- a/src/etc/header.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright ${license.git.copyrightYears} 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.