From 302248f51bb6cd2f8d56fb6677638309f471e856 Mon Sep 17 00:00:00 2001 From: Patrick Koenig Date: Sun, 28 Feb 2021 16:01:53 -0800 Subject: [PATCH 1/2] Use SOURCE retention for immutables style annotations --- tritium-caffeine/build.gradle | 4 --- tritium-jmh/build.gradle | 5 --- tritium-lib/build.gradle | 4 --- tritium-metrics-jvm/build.gradle | 4 --- tritium-metrics/build.gradle | 6 ---- tritium-registry/build.gradle | 5 +-- .../metrics/registry/ImmutablesStyle.java | 31 +++++++++++++++++++ .../tritium/metrics/registry/MetricName.java | 5 +-- tritium-slf4j/build.gradle | 4 --- tritium-tracing/build.gradle | 4 --- versions.lock | 4 +-- versions.props | 2 +- 12 files changed, 36 insertions(+), 42 deletions(-) create mode 100644 tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/ImmutablesStyle.java diff --git a/tritium-caffeine/build.gradle b/tritium-caffeine/build.gradle index dbdce206e..2e88500ac 100644 --- a/tritium-caffeine/build.gradle +++ b/tritium-caffeine/build.gradle @@ -23,9 +23,5 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api' testImplementation 'org.mockito:mockito-core' testImplementation 'org.mockito:mockito-junit-jupiter' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/tritium-jmh/build.gradle b/tritium-jmh/build.gradle index 854eab681..5b0a142ef 100644 --- a/tritium-jmh/build.gradle +++ b/tritium-jmh/build.gradle @@ -45,9 +45,4 @@ dependencies { jmh 'com.palantir.safe-logging:safe-logging' jmh 'com.palantir.tracing:tracing' jmh 'io.dropwizard.metrics:metrics-core' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - jmhCompileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/tritium-lib/build.gradle b/tritium-lib/build.gradle index c56ad984e..2f8366627 100644 --- a/tritium-lib/build.gradle +++ b/tritium-lib/build.gradle @@ -28,9 +28,5 @@ dependencies { testImplementation 'org.mockito:mockito-core' testImplementation 'org.mockito:mockito-junit-jupiter' testImplementation 'org.slf4j:slf4j-simple' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/tritium-metrics-jvm/build.gradle b/tritium-metrics-jvm/build.gradle index 83bde2f16..7f35e1b42 100644 --- a/tritium-metrics-jvm/build.gradle +++ b/tritium-metrics-jvm/build.gradle @@ -19,9 +19,5 @@ dependencies { testImplementation 'org.assertj:assertj-core' testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter-api' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/tritium-metrics/build.gradle b/tritium-metrics/build.gradle index 9f202de31..607d9cdeb 100644 --- a/tritium-metrics/build.gradle +++ b/tritium-metrics/build.gradle @@ -4,8 +4,6 @@ apply plugin: 'com.palantir.metric-schema' dependencies { - annotationProcessor "org.immutables:value" - api project(':tritium-api') api project(':tritium-core') api project(':tritium-registry') @@ -33,9 +31,5 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-params' testImplementation 'org.mockito:mockito-core' testImplementation 'org.mockito:mockito-junit-jupiter' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/tritium-registry/build.gradle b/tritium-registry/build.gradle index 19f497bcc..03fd3f17f 100644 --- a/tritium-registry/build.gradle +++ b/tritium-registry/build.gradle @@ -6,6 +6,7 @@ dependencies { annotationProcessor 'com.google.auto.service:auto-service' annotationProcessor 'org.immutables:value' compileOnly 'com.google.auto.service:auto-service' + compileOnly 'org.immutables:value::annotations' api 'io.dropwizard.metrics:metrics-core' @@ -23,9 +24,5 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api' testImplementation 'org.junit.jupiter:junit-jupiter-params' testImplementation 'org.mockito:mockito-core' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/ImmutablesStyle.java b/tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/ImmutablesStyle.java new file mode 100644 index 000000000..910e89581 --- /dev/null +++ b/tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/ImmutablesStyle.java @@ -0,0 +1,31 @@ +/* + * (c) Copyright 2021 Palantir Technologies Inc. All rights reserved. + * + * 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 com.palantir.tritium.metrics.registry; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.immutables.value.Value; + +@Target({ElementType.PACKAGE, ElementType.TYPE}) +@Retention(RetentionPolicy.SOURCE) +@Value.Style( + get = {"get*", "is*"}, + overshadowImplementation = true, + visibility = Value.Style.ImplementationVisibility.PACKAGE) +@interface ImmutablesStyle {} diff --git a/tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/MetricName.java b/tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/MetricName.java index 9c1fbb86a..78b7147a6 100644 --- a/tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/MetricName.java +++ b/tritium-registry/src/main/java/com/palantir/tritium/metrics/registry/MetricName.java @@ -21,10 +21,7 @@ import org.immutables.value.Value; @Value.Immutable -@Value.Style( - get = {"get*", "is*"}, - overshadowImplementation = true, - visibility = Value.Style.ImplementationVisibility.PACKAGE) +@ImmutablesStyle public interface MetricName { /** diff --git a/tritium-slf4j/build.gradle b/tritium-slf4j/build.gradle index 1381b2f15..bee7502e5 100644 --- a/tritium-slf4j/build.gradle +++ b/tritium-slf4j/build.gradle @@ -17,9 +17,5 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter-api' testImplementation 'org.slf4j:slf4j-simple' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/tritium-tracing/build.gradle b/tritium-tracing/build.gradle index aa44d7f70..b433d0724 100644 --- a/tritium-tracing/build.gradle +++ b/tritium-tracing/build.gradle @@ -22,8 +22,4 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api' testImplementation 'org.mockito:mockito-core' testImplementation 'org.mockito:mockito-junit-jupiter' - - // Work around https://github.com/immutables/immutables/issues/291 - compileOnly 'org.immutables:value::annotations' - testCompileOnly 'org.immutables:value::annotations' } diff --git a/versions.lock b/versions.lock index 7792c9936..19d6135d0 100644 --- a/versions.lock +++ b/versions.lock @@ -22,8 +22,8 @@ com.palantir.remoting3:jackson-support:3.46.0 (1 constraints: 850d9c33) com.palantir.remoting3:tracing:3.46.0 (1 constraints: 3f05533b) com.palantir.safe-logging:preconditions:1.14.0 (2 constraints: da117b05) com.palantir.safe-logging:safe-logging:1.14.0 (4 constraints: 563084bb) -com.palantir.tracing:tracing:4.11.0 (2 constraints: 8212a72c) -com.palantir.tracing:tracing-api:4.11.0 (2 constraints: 05128517) +com.palantir.tracing:tracing:4.12.0 (2 constraints: 8312d12c) +com.palantir.tracing:tracing-api:4.12.0 (2 constraints: 0712b117) io.dropwizard.metrics:metrics-core:3.2.6 (2 constraints: 0d1b5355) io.dropwizard.metrics:metrics-jvm:3.2.6 (1 constraints: 0c050536) net.bytebuddy:byte-buddy:1.10.21 (2 constraints: d41035e7) diff --git a/versions.props b/versions.props index 01bbe17d0..58d53fa85 100644 --- a/versions.props +++ b/versions.props @@ -8,7 +8,7 @@ com.google.guava:guava = 30.1-jre com.palantir.jvm.diagnostics:* = 0.0.2 com.palantir.remoting3:* = 3.46.0 com.palantir.safe-logging:* = 1.14.0 -com.palantir.tracing:* = 4.11.0 +com.palantir.tracing:* = 4.12.0 com.squareup.okhttp3:okhttp = 4.0.0 com.uber.nullaway:nullaway = 0.9.0 io.undertow:undertow-core = 2.2.4.Final From 3a20059b4d64f5b4abb50f9a67bcfa2d100a9bd1 Mon Sep 17 00:00:00 2001 From: Patrick Koenig Date: Thu, 4 Mar 2021 09:35:22 -0800 Subject: [PATCH 2/2] Fix --- tritium-jmh/build.gradle | 1 - .../microbenchmarks/ProxyBenchmark.java | 26 ------------------- tritium-tracing/build.gradle | 2 -- versions.lock | 24 +++++++---------- versions.props | 1 - 5 files changed, 9 insertions(+), 45 deletions(-) diff --git a/tritium-jmh/build.gradle b/tritium-jmh/build.gradle index 5b0a142ef..739d68527 100644 --- a/tritium-jmh/build.gradle +++ b/tritium-jmh/build.gradle @@ -40,7 +40,6 @@ dependencies { jmh project(':tritium-tracing') jmh 'com.google.code.findbugs:jsr305' jmh 'com.google.guava:guava' - jmh 'com.palantir.remoting3:tracing' jmh 'com.palantir.safe-logging:preconditions' jmh 'com.palantir.safe-logging:safe-logging' jmh 'com.palantir.tracing:tracing' diff --git a/tritium-jmh/src/jmh/java/com/palantir/tritium/microbenchmarks/ProxyBenchmark.java b/tritium-jmh/src/jmh/java/com/palantir/tritium/microbenchmarks/ProxyBenchmark.java index c24fa7f53..4f39a60b0 100644 --- a/tritium-jmh/src/jmh/java/com/palantir/tritium/microbenchmarks/ProxyBenchmark.java +++ b/tritium-jmh/src/jmh/java/com/palantir/tritium/microbenchmarks/ProxyBenchmark.java @@ -27,7 +27,6 @@ import com.palantir.tritium.metrics.MetricRegistries; import com.palantir.tritium.metrics.registry.DefaultTaggedMetricRegistry; import com.palantir.tritium.proxy.Instrumentation; -import com.palantir.tritium.tracing.RemotingCompatibleTracingInvocationEventHandler; import com.palantir.tritium.tracing.TracingInvocationEventHandler; import java.util.concurrent.TimeUnit; import java.util.function.LongPredicate; @@ -92,7 +91,6 @@ void initialize() { private Service instrumentedWithEverything; private Service instrumentedWithTracing; private Service instrumentedWithTracingNested; - private Service instrumentedWithRemoting; private Service instrumentedDefaultUntagged; private Service instrumentedDefaultTagged; private Runnable instrumentedFailing; @@ -140,11 +138,6 @@ public void before(Blackhole blackhole) { .collect(ImmutableList.toImmutableList())) .build(); - instrumentedWithRemoting = Instrumentation.builder(serviceInterface, raw) - .withHandler(new RemotingCompatibleTracingInvocationEventHandler( - serviceInterface.getName(), Remoting3Tracer.INSTANCE)) - .build(); - instrumentedWithEverything = Instrumentation.builder(serviceInterface, raw) .withMetrics(MetricRegistries.createWithHdrHistogramReservoirs()) // similar to .withPerformanceTraceLogging() but always log @@ -225,11 +218,6 @@ public String instrumentedWithTracingNested() { return instrumentedWithTracingNested.echo("test"); } - // @Benchmark - public String instrumentedWithRemoting() { - return instrumentedWithRemoting.echo("test"); - } - @Benchmark public String instrumentedWithEverything() { return instrumentedWithEverything.echo("test"); @@ -286,18 +274,4 @@ public static void main(String[] _args) throws Exception { .build(); new Runner(options).run(); } - - public enum Remoting3Tracer implements com.palantir.tritium.tracing.Tracer { - INSTANCE; - - @Override - public void startSpan(String operationName) { - com.palantir.remoting3.tracing.Tracer.startSpan(operationName); - } - - @Override - public void completeSpan() { - com.palantir.remoting3.tracing.Tracer.fastCompleteSpan(); - } - } } diff --git a/tritium-tracing/build.gradle b/tritium-tracing/build.gradle index b433d0724..8cab322e4 100644 --- a/tritium-tracing/build.gradle +++ b/tritium-tracing/build.gradle @@ -6,8 +6,6 @@ dependencies { api project(':tritium-api') api project(':tritium-core') - compileOnly 'com.palantir.remoting3:tracing' - implementation 'com.google.code.findbugs:jsr305' implementation 'com.google.guava:guava' implementation 'com.palantir.safe-logging:preconditions' diff --git a/versions.lock b/versions.lock index 19d6135d0..a9b71f0af 100644 --- a/versions.lock +++ b/versions.lock @@ -1,28 +1,22 @@ # Run ./gradlew --write-locks to regenerate this file -com.fasterxml.jackson.core:jackson-annotations:2.11.3 (3 constraints: c335090b) -com.fasterxml.jackson.core:jackson-core:2.11.3 (7 constraints: 9c9183fd) -com.fasterxml.jackson.core:jackson-databind:2.11.3 (9 constraints: 99ab184d) -com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.11.3 (1 constraints: a310d0ae) -com.fasterxml.jackson.datatype:jackson-datatype-guava:2.11.3 (2 constraints: fa1dc35d) -com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3 (3 constraints: c82af8e6) -com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3 (1 constraints: a310d0ae) -com.fasterxml.jackson.module:jackson-module-afterburner:2.11.3 (3 constraints: c82af8e6) +com.fasterxml.jackson.core:jackson-annotations:2.11.3 (2 constraints: 551f37f7) +com.fasterxml.jackson.core:jackson-core:2.11.3 (4 constraints: d04c6dab) +com.fasterxml.jackson.core:jackson-databind:2.11.3 (3 constraints: 4a3a2999) +com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3 (1 constraints: cf0c0316) +com.fasterxml.jackson.module:jackson-module-afterburner:2.11.3 (1 constraints: cf0c0316) com.github.ben-manes.caffeine:caffeine:2.9.0 (1 constraints: 0d051036) com.google.auto:auto-common:0.11 (2 constraints: 18142b68) com.google.auto.service:auto-service:1.0-rc4 (1 constraints: db05b241) com.google.code.findbugs:jsr305:3.0.2 (4 constraints: 5b3585ed) com.google.errorprone:error_prone_annotations:2.5.1 (5 constraints: c43c4398) com.google.guava:failureaccess:1.0.1 (1 constraints: 140ae1b4) -com.google.guava:guava:30.1-jre (6 constraints: be5513ea) +com.google.guava:guava:30.1-jre (4 constraints: 673213a7) com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (1 constraints: bd17c918) com.google.j2objc:j2objc-annotations:1.3 (1 constraints: b809eda0) com.palantir.jvm.diagnostics:jvm-diagnostics:0.0.2 (1 constraints: 0405ed35) -com.palantir.remoting-api:tracing:1.9.0 (1 constraints: 520d0e26) -com.palantir.remoting3:jackson-support:3.46.0 (1 constraints: 850d9c33) -com.palantir.remoting3:tracing:3.46.0 (1 constraints: 3f05533b) com.palantir.safe-logging:preconditions:1.14.0 (2 constraints: da117b05) -com.palantir.safe-logging:safe-logging:1.14.0 (4 constraints: 563084bb) -com.palantir.tracing:tracing:4.12.0 (2 constraints: 8312d12c) +com.palantir.safe-logging:safe-logging:1.14.0 (3 constraints: 0b23aa52) +com.palantir.tracing:tracing:4.12.0 (1 constraints: 3905413b) com.palantir.tracing:tracing-api:4.12.0 (2 constraints: 0712b117) io.dropwizard.metrics:metrics-core:3.2.6 (2 constraints: 0d1b5355) io.dropwizard.metrics:metrics-jvm:3.2.6 (1 constraints: 0c050536) @@ -31,7 +25,7 @@ org.checkerframework:checker-qual:3.10.0 (3 constraints: 4b1f441d) org.hdrhistogram:HdrHistogram:2.1.12 (1 constraints: 3805313b) org.immutables:value:2.8.8 (1 constraints: 14051536) org.mpierce.metrics.reservoir:hdrhistogram-metrics-reservoir:1.1.2 (1 constraints: 0605f535) -org.slf4j:slf4j-api:1.7.30 (7 constraints: f15ab3d6) +org.slf4j:slf4j-api:1.7.30 (6 constraints: 6f4d418a) [Test dependencies] com.squareup.okhttp3:okhttp:4.0.0 (1 constraints: 0605ff35) diff --git a/versions.props b/versions.props index 58d53fa85..bbd783681 100644 --- a/versions.props +++ b/versions.props @@ -6,7 +6,6 @@ com.google.code.findbugs:jsr305 = 3.0.2 com.google.errorprone:* = 2.5.1 com.google.guava:guava = 30.1-jre com.palantir.jvm.diagnostics:* = 0.0.2 -com.palantir.remoting3:* = 3.46.0 com.palantir.safe-logging:* = 1.14.0 com.palantir.tracing:* = 4.12.0 com.squareup.okhttp3:okhttp = 4.0.0