Switch to java 8 (#1665)

* switch to java 8

* update the READMEs and use Object.equals in a couple of cases to test that we're really compiling for java 8/android 24.

* formatting

* use the newer release options for the build, and change the int test to not be java 7 any more.

* switch back to source/target compatibility

* sure wish I could run docker locally to test this out.
This commit is contained in:
John Watson 2020-09-18 19:28:13 -07:00 committed by GitHub
parent 0ec2914275
commit 27090b8336
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 61 additions and 68 deletions

View File

@ -8,7 +8,7 @@ We hold regular meetings. See details at [community page](https://github.com/ope
## Overview
OpenTelemetry is a working name of a combined OpenCensus and OpenTracing
OpenTelemetry is the merging of OpenCensus and OpenTracing into one
project.
This project contains the following top level components:

View File

@ -2,7 +2,7 @@
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 and Android API Level 14 compatible.
* Java 8 and Android API Level 24 compatible.
* The abstract classes in this directory can be subclassed to create alternative
implementations of the OpenTelemetry library.

View File

@ -14,8 +14,8 @@ dependencies {
annotationProcessor libraries.auto_value
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}
javadoc {

View File

@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.TreeMap;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@ -390,7 +391,7 @@ public final class Status {
* @since 0.1.0
*/
public Status withDescription(@Nullable String description) {
if (Utils.equalsObjects(this.description, description)) {
if (Objects.equals(this.description, description)) {
return this;
}
return new Status(this.canonicalCode, description);
@ -443,8 +444,7 @@ public final class Status {
}
Status that = (Status) obj;
return canonicalCode == that.canonicalCode
&& Utils.equalsObjects(description, that.description);
return canonicalCode == that.canonicalCode && Objects.equals(description, that.description);
}
/**

View File

@ -15,8 +15,6 @@ subprojects {
group = "io.opentelemetry"
version = "0.9.0-SNAPSHOT" // CURRENT_OPEN_TELEMETRY_VERSION
plugins.withId("maven-publish") {
// Always include the artifactory/bintray plugins to do the deployment.
pluginManager.apply "com.jfrog.artifactory"
@ -148,8 +146,8 @@ configure(opentelemetryProjects) {
mavenLocal()
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
sourceCompatibility = 1.8
targetCompatibility = 1.8
java {
withJavadocJar()
@ -178,36 +176,37 @@ configure(opentelemetryProjects) {
// but currently uses javax.annotation.concurrent.Immutable
it.options.errorprone.disable("ImmutableRefactoring") // "-Xep:ImmutableRefactoring:OFF"
// Yep, we're using an obsolete JDK.
it.options.errorprone.disable("JdkObsolete")
// AutoValueImmutableFields suggests returning Guava types from API methods
it.options.errorprone.disable("AutoValueImmutableFields")
// "-Xep:AutoValueImmutableFields:OFF"
// UnnecessaryAnonymousClass requires Java 8 but we target Java 7
it.options.errorprone.disable("UnnecessaryAnonymousClass")
// "-Xep:UnnecessaryAnonymousClass:OFF"
it.options.encoding = "UTF-8"
// Ignore warnings for protobuf and jmh generated files.
it.options.errorprone.excludedPaths = ".*generated.*"
// "-XepExcludedPaths:.*/build/generated/source/proto/.*"
it.options.errorprone.disable("Java7ApiChecker")
it.options.errorprone.disable("AndroidJdkLibsChecker")
//apparently disabling android doesn't disable this
it.options.errorprone.disable("StaticOrDefaultInterfaceMethod")
//until we have everything converted, we need these
it.options.errorprone.disable("JdkObsolete")
it.options.errorprone.disable("UnnecessaryAnonymousClass")
it.options.compilerArgs += ["-Werror"]
}
compileTestJava {
// serialVersionUID is basically guaranteed to be useless in tests
options.compilerArgs += ["-Xlint:-serial"]
sourceCompatibility = 1.8
targetCompatibility = 1.8
// Disable Java7 checks in test sources
options.errorprone.disable("Java7ApiChecker")
// options.errorprone.disable("Java7ApiChecker")
// Disable AndroidJdkLibs checks in test sources
options.errorprone.disable("AndroidJdkLibsChecker")
// options.errorprone.disable("AndroidJdkLibsChecker")
}
jar.manifest {

View File

@ -2,7 +2,7 @@
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 compatible.
* Java 8 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-context-prop.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context-prop

View File

@ -11,8 +11,8 @@ ext.moduleName = "io.opentelemetry.context.propagation"
dependencies {
api libraries.grpc_context
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}
javadoc {

View File

@ -2,7 +2,7 @@
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 compatible.
* Java 8 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporters-inmemory.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporters-inmemory

View File

@ -15,6 +15,6 @@ dependencies {
testImplementation project(':opentelemetry-testing-internal')
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -43,7 +43,7 @@ The Jaeger gRPC span exporter will look for the following environment variables
## Compatibility
As with the OpenTelemetry SDK itself, this exporter is compatible with Java 7+ and Android API level 24+.
As with the OpenTelemetry SDK itself, this exporter is compatible with Java 8+ and Android API level 24+.
## Proto files

View File

@ -29,7 +29,7 @@ dependencies {
testRuntime "io.grpc:grpc-netty-shaded:${grpcVersion}"
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -2,7 +2,7 @@
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 compatible.
* Java 8 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporters-logging.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporters-logging

View File

@ -13,7 +13,7 @@ dependencies {
testImplementation project(':opentelemetry-testing-internal')
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -23,6 +23,6 @@ dependencies {
testImplementation "io.grpc:grpc-testing:${grpcVersion}"
testRuntime "io.grpc:grpc-netty-shaded:${grpcVersion}"
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -15,6 +15,6 @@ dependencies {
testImplementation libraries.prometheus_client_common
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -50,7 +50,7 @@ The Zipkin span exporter will look for the following environment variables / sys
## Compatibility
As with the OpenTelemetry SDK itself, this exporter is compatible with Java 7+ and Android API level 24+.
As with the OpenTelemetry SDK itself, this exporter is compatible with Java 8+ and Android API level 24+.
## Attribution

View File

@ -22,7 +22,7 @@ dependencies {
testImplementation libraries.guava,
libraries.zipkin_junit
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -11,5 +11,5 @@ ext.moduleName = "io.opentelemetry.extension.auto.annotations"
dependencies {
implementation project(':opentelemetry-api')
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
}

View File

@ -3,7 +3,7 @@ OpenTelemetry Contrib Runtime Metrics
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 compatible.
* Java 8 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-contrib-runtime-metrics.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-contrib-runtime-metrics

View File

@ -13,5 +13,5 @@ dependencies {
annotationProcessor libraries.auto_value
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
}

View File

@ -3,7 +3,7 @@ OpenTelemetry Contrib Trace Propagators
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 compatible.
* Java 8 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-contrib-trace-propagators.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-contrib-trace-propagators

View File

@ -14,6 +14,6 @@ dependencies {
testImplementation libraries.jaeger_client
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -3,7 +3,7 @@ OpenTelemetry Contrib Trace Utils
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 compatible.
* Java 8 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-contrib-trace-utils.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-contrib-trace-utils

View File

@ -13,6 +13,6 @@ dependencies {
annotationProcessor libraries.auto_value
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -1,4 +1,4 @@
# OpenTelemetry Integration Tests
* Java 7 Integration Test
* Integration Test code lives here

View File

@ -31,8 +31,8 @@ dependencies {
libraries.awaitility,
libraries.rest_assured
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
tasks.withType(Test) {
dependsOn fatJar

View File

@ -43,7 +43,7 @@ import org.testcontainers.utility.MountableFile;
* verifies that the trace is received by Jaeger.
*/
@Testcontainers
class JavaSevenCompatibilityIntegrationTest {
class JaegerExporterIntegrationTest {
private static final String ARCHIVE_NAME = System.getProperty("archive.name");
private static final String APP_NAME = "SendTraceToJaeger.jar";
@ -69,7 +69,7 @@ class JavaSevenCompatibilityIntegrationTest {
@SuppressWarnings("rawtypes")
@Container
public static GenericContainer jaegerExampleAppContainer =
new GenericContainer("openjdk:7u111-jre-alpine")
new GenericContainer("adoptopenjdk/openjdk8")
.withNetwork(network)
.withCopyFileToContainer(MountableFile.forHostPath(ARCHIVE_NAME), "/app/" + APP_NAME)
.withCommand(
@ -86,7 +86,7 @@ class JavaSevenCompatibilityIntegrationTest {
void testJaegerExampleAppIntegration() {
Awaitility.await()
.atMost(30, TimeUnit.SECONDS)
.until(JavaSevenCompatibilityIntegrationTest::assertJaegerHaveTrace);
.until(JaegerExporterIntegrationTest::assertJaegerHaveTrace);
}
private static Boolean assertJaegerHaveTrace() {

View File

@ -15,8 +15,8 @@ dependencies {
libraries.grpc_protobuf,
libraries.grpc_stub
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}
animalsniffer {

View File

@ -3,7 +3,7 @@ OpenTelemetry SDK
[![Javadocs][javadoc-image]][javadoc-url]
* Java 7 and Android API Level 24 compatible.
* Java 8 and Android API Level 24 compatible.
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk.svg
[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk

View File

@ -34,7 +34,7 @@ dependencies {
transitive = false
}
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -23,7 +23,7 @@ dependencies {
testImplementation libraries.junit_pioneer,
libraries.awaitility
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -23,7 +23,7 @@ dependencies {
testImplementation project(':opentelemetry-testing-internal')
testImplementation libraries.junit_pioneer
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -26,7 +26,7 @@ dependencies {
testImplementation project(':opentelemetry-testing-internal')
testImplementation libraries.junit_pioneer
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -33,13 +33,7 @@ import javax.annotation.Nullable;
public final class DoubleLastValueAggregator extends AbstractAggregator {
@Nullable private static final Double DEFAULT_VALUE = null;
private static final AggregatorFactory AGGREGATOR_FACTORY =
new AggregatorFactory() {
@Override
public Aggregator getAggregator() {
return new DoubleLastValueAggregator();
}
};
private static final AggregatorFactory AGGREGATOR_FACTORY = DoubleLastValueAggregator::new;
private final AtomicReference<Double> current = new AtomicReference<>(DEFAULT_VALUE);

View File

@ -27,7 +27,7 @@ dependencies {
testImplementation libraries.junit_pioneer,
libraries.awaitility
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -18,6 +18,6 @@ dependencies {
testImplementation 'com.github.tomakehurst:wiremock-jre8:2.26.3'
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -26,7 +26,7 @@ dependencies {
testRuntime "io.grpc:grpc-netty-shaded:${grpcVersion}"
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -19,6 +19,6 @@ dependencies {
testImplementation "io.grpc:grpc-testing:${grpcVersion}"
testRuntime "io.grpc:grpc-netty-shaded:${grpcVersion}"
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -13,7 +13,7 @@ dependencies {
testImplementation libraries.junit_pioneer
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
// TODO(anuraaga): Use reflection for RuntimeMXBean which is not included in Android.
// signature "net.sf.androidscents.signature:android-api-level-24:7.0_r2@signature"
}

View File

@ -5,7 +5,7 @@
This module contains code for the OpenTelemetry Java zPages, which are a collection of dynamic HTML
web pages that display stats and trace data.
* Java 7 compatible.
* Java 8 compatible.
<!--- TODO: Update javadoc -->
[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-contrib-auto-config.svg

View File

@ -17,7 +17,7 @@ dependencies {
compileOnly 'com.sun.net.httpserver:http:20070405'
signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "org.codehaus.mojo.signature:java18:1.0@signature"
}
animalsniffer {