Skip to content

Commit

Permalink
Explicitly notes version policy and corrects some pom glitches
Browse files Browse the repository at this point in the history
This is a response to the following issue, where our dependency policy
was unclear: jaegertracing/jaeger-client-java#511 (comment)
  • Loading branch information
Adrian Cole committed Aug 15, 2018
1 parent fc873cf commit 35d8ec9
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 4 deletions.
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,30 @@ You may want to put trace IDs into your log files, or change thread local
behavior. Look at our [context libraries](context/), for integration with
tools such as SLF4J.

## Version Compatibility policy
All Brave libraries match the minimum Java version of what's being
traced or integrated with, and adds no 3rd party dependencies. The goal
is to neither impact your projects' choices, nor subject your project
to dependency decisions made by others.

For example, even including a basic reporting library,
[zipkin-sender-urlconnection](https://github.com/openzipkin/zipkin-reporter-java), Brave transitively includes no json,
logging, protobuf or thrift dependency. This means zero concern if you
choose to any version of any SLF4J or Log4J library, or common libraries
like Guava.

There is a floor Java version of 1.6, which allows older JREs and older
Android runtimes, yet may limit some applications. For example, Servlet
2.5 works with Java 1.5, but due to Brave being 1.6, you will not be
able to trace Servlet 2.5 applications until you use at least JRE 1.6.

All integrations set their associated library to "provided" scope. This
ensures Brave doesn't interfere with the versions you choose.

Some libraries update often which leads to api drift. In some cases, we
test versions ranges to reduce the impact of this. For example, we test
[gRPC](instrumentation/grpc) and [Kafka](instrumentation/kafka-clients) against multiple library versions.

## Artifacts
All artifacts publish to the group ID "io.zipkin.brave". We use a common
release version for all components.
Expand Down
9 changes: 5 additions & 4 deletions context/rxjava2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<main.java.version>1.7</main.java.version>
<main.signature.artifact>java17</main.signature.artifact>
<!-- RxJava 2.x continues support for Java 1.6 and Android 2.3+ -->
<main.java.version>1.6</main.java.version>
<main.signature.artifact>java16</main.signature.artifact>
</properties>

<dependencies>
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.1.17</version>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>

Expand All @@ -33,7 +34,7 @@
<dependency>
<groupId>com.github.akarnokd</groupId>
<artifactId>rxjava2-extensions</artifactId>
<version>0.19.5</version>
<version>0.20.0</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
4 changes: 4 additions & 0 deletions instrumentation/grpc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<!-- grpc < 1.15 supports java 6 https://github.com/grpc/grpc-java/issues/3961 -->
<main.java.version>1.6</main.java.version>
<main.signature.artifact>java16</main.signature.artifact>

<protobuf.version>3.5.1</protobuf.version>
<opencensus.version>0.15.0</opencensus.version>
<os-maven-plugin.version>1.6.0</os-maven-plugin.version>
Expand Down
2 changes: 2 additions & 0 deletions instrumentation/httpasyncclient/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<main.java.version>1.6</main.java.version>
<main.signature.artifact>java16</main.signature.artifact>
</properties>

<dependencies>
Expand Down
3 changes: 3 additions & 0 deletions instrumentation/jersey-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<!-- Jersey 2.7 -> 2.25 are Java 7. We don't currently compile against Jersey 2.26+
https://jersey.github.io/documentation/latest/modules-and-dependencies.html#d0e560
-->
</properties>

<dependencies>
Expand Down
1 change: 1 addition & 0 deletions instrumentation/mysql/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<!-- mysql-connector-java < v6 requires Java 6 -->
<main.java.version>1.6</main.java.version>
<main.signature.artifact>java16</main.signature.artifact>
</properties>
Expand Down
3 changes: 3 additions & 0 deletions instrumentation/mysql6/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<!-- mysql-connector-java 6+ requires Java 8 -->
<main.java.version>1.8</main.java.version>
<main.signature.artifact>java18</main.signature.artifact>
</properties>

<dependencies>
Expand Down
3 changes: 3 additions & 0 deletions instrumentation/netty-codec-http/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<!-- Netty 4.x requires Java 6+ https://netty.io/wiki/requirements-for-4.x.html -->
<main.java.version>1.6</main.java.version>
<main.signature.artifact>java16</main.signature.artifact>
</properties>

<dependencies>
Expand Down
3 changes: 3 additions & 0 deletions instrumentation/p6spy/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<main.java.version>1.6</main.java.version>
<main.signature.artifact>java16</main.signature.artifact>

<p6spy.version>3.7.0</p6spy.version>
<derby.version>10.14.2.0</derby.version>
</properties>
Expand Down
2 changes: 2 additions & 0 deletions instrumentation/spring-webmvc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

<properties>
<main.basedir>${project.basedir}/../..</main.basedir>
<main.java.version>1.6</main.java.version>
<main.signature.artifact>java16</main.signature.artifact>
</properties>

<dependencies>
Expand Down

0 comments on commit 35d8ec9

Please sign in to comment.