File tree 6 files changed +121
-0
lines changed
muzzle/src/main/java/io/opentelemetry/javaagent/tooling
testing-common/integration-tests/src
6 files changed +121
-0
lines changed Original file line number Diff line number Diff line change @@ -117,6 +117,7 @@ public HelperInjector(
117
117
118
118
List <HelperClassDefinition > helpers =
119
119
helperClassNames .stream ()
120
+ .distinct ()
120
121
.map (
121
122
className ->
122
123
HelperClassDefinition .create (
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright The OpenTelemetry Authors
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ package helper ;
7
+
8
+ public class DuplicateHelper {
9
+ public static String addSuffix (String string , String suffix ) {
10
+ return string + suffix ;
11
+ }
12
+
13
+ private DuplicateHelper () {}
14
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright The OpenTelemetry Authors
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ package helper ;
7
+
8
+ import static net .bytebuddy .matcher .ElementMatchers .named ;
9
+
10
+ import io .opentelemetry .javaagent .extension .instrumentation .TypeInstrumentation ;
11
+ import io .opentelemetry .javaagent .extension .instrumentation .TypeTransformer ;
12
+ import net .bytebuddy .asm .Advice ;
13
+ import net .bytebuddy .description .type .TypeDescription ;
14
+ import net .bytebuddy .matcher .ElementMatcher ;
15
+
16
+ public class DuplicateHelperInstrumentation implements TypeInstrumentation {
17
+ @ Override
18
+ public ElementMatcher <TypeDescription > typeMatcher () {
19
+ return named ("helper.DuplicateHelperTestClass" );
20
+ }
21
+
22
+ @ Override
23
+ public void transform (TypeTransformer transformer ) {
24
+ transformer .applyAdviceToMethod (named ("transform" ), this .getClass ().getName () + "$TestAdvice" );
25
+ }
26
+
27
+ @ SuppressWarnings ("unused" )
28
+ public static class TestAdvice {
29
+ @ Advice .OnMethodExit (suppress = Throwable .class )
30
+ public static void addSuffix (@ Advice .Return (readOnly = false ) String string ) {
31
+ string = DuplicateHelper .addSuffix (string , " foo" );
32
+ }
33
+ }
34
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright The OpenTelemetry Authors
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ package helper ;
7
+
8
+ import static java .util .Collections .singletonList ;
9
+
10
+ import com .google .auto .service .AutoService ;
11
+ import io .opentelemetry .javaagent .extension .instrumentation .InstrumentationModule ;
12
+ import io .opentelemetry .javaagent .extension .instrumentation .TypeInstrumentation ;
13
+ import java .util .Arrays ;
14
+ import java .util .List ;
15
+
16
+ @ AutoService (InstrumentationModule .class )
17
+ public class DuplicateHelperInstrumentationModule extends InstrumentationModule {
18
+ public DuplicateHelperInstrumentationModule () {
19
+ super ("duplicate-helper" );
20
+ }
21
+
22
+ @ Override
23
+ public List <String > getAdditionalHelperClassNames () {
24
+ // muzzle adds the same class as helper, listing it twice to ensure it doesn't fail
25
+ return Arrays .asList ("helper.DuplicateHelper" , "helper.DuplicateHelper" );
26
+ }
27
+
28
+ @ Override
29
+ public boolean isHelperClass (String className ) {
30
+ return "helper.DuplicateHelper" .equals (className );
31
+ }
32
+
33
+ @ Override
34
+ public List <TypeInstrumentation > typeInstrumentations () {
35
+ return singletonList (new DuplicateHelperInstrumentation ());
36
+ }
37
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright The OpenTelemetry Authors
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ package helper ;
7
+
8
+ import static org .assertj .core .api .Assertions .assertThat ;
9
+
10
+ import org .junit .jupiter .api .Test ;
11
+
12
+ class DuplicateHelperTest {
13
+
14
+ @ Test
15
+ void duplicateHelper () {
16
+ String string = DuplicateHelperTestClass .transform ("test" );
17
+ assertThat (string ).isEqualTo ("test foo" );
18
+ }
19
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright The OpenTelemetry Authors
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ package helper ;
7
+
8
+ class DuplicateHelperTestClass {
9
+
10
+ // this method is transformed by instrumentation
11
+ public static String transform (String string ) {
12
+ return string ;
13
+ }
14
+
15
+ private DuplicateHelperTestClass () {}
16
+ }
You can’t perform that action at this time.
0 commit comments