diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/Utils.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/Utils.java index 29c1b04a453d..6b8b95ccb73b 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/Utils.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/Utils.java @@ -41,16 +41,6 @@ public static String getResourceName(String className) { return className.replace('.', '/') + ".class"; } - /** com/foo/Bar to com.foo.Bar */ - public static String getClassName(String internalName) { - return internalName.replace('/', '.'); - } - - /** com.foo.Bar to com/foo/Bar */ - public static String getInternalName(Class clazz) { - return clazz.getName().replace('.', '/'); - } - /** * Get method definition for given {@link TypeDefinition} and method name. * diff --git a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/UtilsTest.groovy b/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/UtilsTest.groovy deleted file mode 100644 index 05c2cd50f50a..000000000000 --- a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/UtilsTest.groovy +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.tooling - -import spock.lang.Specification - -class UtilsTest extends Specification { - - def "getResourceName() adds suffix and converts dots to slashes"() { - setup: - def result = Utils.getResourceName("com.example.Something") - expect: - result == "com/example/Something.class" - } - - def "getClassName() converts slashes to dots"() { - setup: - def result = Utils.getClassName("com/example/Something") - expect: - result == "com.example.Something" - } - - def "getInternalName() converts slashes to dots"() { - setup: - def result = Utils.getInternalName(UtilsTest) - expect: - result == "io/opentelemetry/javaagent/tooling/UtilsTest" - } - -} diff --git a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/muzzle/HelperClassPredicateTest.groovy b/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/muzzle/HelperClassPredicateTest.groovy deleted file mode 100644 index 9d325421691a..000000000000 --- a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/muzzle/HelperClassPredicateTest.groovy +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.tooling.muzzle - -import spock.lang.Specification -import spock.lang.Unroll - -class HelperClassPredicateTest extends Specification { - @Unroll - def "should collect references for #desc"() { - setup: - def predicate = new HelperClassPredicate({ it.startsWith("com.example.instrumentation.library") }) - - expect: - predicate.isHelperClass(className) - - where: - desc | className - "javaagent instrumentation class" | "io.opentelemetry.javaagent.instrumentation.some_instrumentation.Advice" - "library instrumentation class" | "io.opentelemetry.instrumentation.LibraryClass" - "additional library instrumentation class" | "com.example.instrumentation.library.ThirdPartyExternalInstrumentation" - } - - @Unroll - def "should not collect references for #desc"() { - setup: - def predicate = new HelperClassPredicate({ false }) - - expect: - !predicate.isHelperClass(className) - - where: - desc | className - "Java SDK class" | "java.util.ArrayList" - "javaagent-tooling class" | "io.opentelemetry.javaagent.tooling.Constants" - "instrumentation-api class" | "io.opentelemetry.instrumentation.api.InstrumentationVersion" - "bootstrap class" | "io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge" - } -} diff --git a/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/UtilsTest.java b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/UtilsTest.java new file mode 100644 index 000000000000..e004a209c9cb --- /dev/null +++ b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/UtilsTest.java @@ -0,0 +1,20 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.tooling; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class UtilsTest { + + @Test + void getResourceNameAddsSuffixAndConvertDotsToSlashes() { + String result = Utils.getResourceName("com.example.Something"); + + assertThat(result).isEqualTo("com/example/Something.class"); + } +} diff --git a/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/muzzle/HelperClassPredicateTest.java b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/muzzle/HelperClassPredicateTest.java new file mode 100644 index 000000000000..1464df66a9c0 --- /dev/null +++ b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/muzzle/HelperClassPredicateTest.java @@ -0,0 +1,43 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.tooling.muzzle; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.function.Predicate; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; + +class HelperClassPredicateTest { + + @ParameterizedTest(name = "should collect references for {0}") + @CsvSource({ + "javaagent instrumentation class, io.opentelemetry.javaagent.instrumentation.some_instrumentation.Advice", + "library instrumentation class, io.opentelemetry.instrumentation.LibraryClass", + "additional library instrumentation class, com.example.instrumentation.library.ThirdPartyExternalInstrumentation" + }) + void shouldCollectReferencesFor(String desc, String className) { + Predicate additionalLibraryPredicate = + name -> name.startsWith("com.example.instrumentation.library"); + HelperClassPredicate predicate = new HelperClassPredicate(additionalLibraryPredicate); + + assertThat(predicate.isHelperClass(className)).isTrue(); + } + + @ParameterizedTest(name = "should not collect references for {0}") + @CsvSource({ + "Java SDK class, java.util.ArrayList", + "javaagent-tooling class, io.opentelemetry.javaagent.tooling.Constants", + "instrumentation-api class, io.opentelemetry.instrumentation.api.instrumenter.Instrumenter", + "bootstrap class, io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge" + }) + void shouldNotCollectReferencesFor(String desc, String className) { + Predicate alwaysFalsePredicate = name -> false; + HelperClassPredicate predicate = new HelperClassPredicate(alwaysFalsePredicate); + + assertThat(predicate.isHelperClass(className)).isFalse(); + } +}