Skip to content

Commit bbdaded

Browse files
committed
refactorise some code
1 parent 74814f5 commit bbdaded

5 files changed

Lines changed: 18 additions & 10 deletions

File tree

dd-java-agent/agent-bootstrap/src/main/java11/datadog/trace/bootstrap/instrumentation/ffm/NativeLibraryHelper.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package datadog.trace.bootstrap.instrumentation.ffm;
22

33
import datadog.trace.api.Pair;
4+
import java.io.File;
5+
import java.util.Locale;
46
import java.util.concurrent.ConcurrentHashMap;
57

68
public final class NativeLibraryHelper {
@@ -23,4 +25,11 @@ public static void onSymbolLookup(
2325
public static Pair<String, String> reverseResolveLibraryAndSymbol(long address) {
2426
return SYMBOLS_MAP.get(address);
2527
}
28+
29+
public static String extractLibraryName(String fullPath) {
30+
String libraryName = new File(fullPath).getName().toLowerCase(Locale.ROOT);
31+
int dot = libraryName.lastIndexOf('.');
32+
libraryName = (dot > 0) ? libraryName.substring(0, dot) : libraryName;
33+
return libraryName;
34+
}
2635
}

dd-java-agent/instrumentation/java/java-lang/java-lang-22.0/src/main/java25/datadog/trace/instrumentation/java/lang/jdk22/CaptureLibraryNameAdvice.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package datadog.trace.instrumentation.java.lang.jdk22;
22

3+
import static datadog.trace.bootstrap.instrumentation.ffm.NativeLibraryHelper.extractLibraryName;
4+
35
import datadog.trace.bootstrap.InstrumentationContext;
4-
import java.io.File;
56
import java.lang.invoke.MethodHandle;
67
import java.lang.invoke.MethodHandles;
78
import java.lang.invoke.MethodType;
8-
import java.util.Locale;
99
import net.bytebuddy.asm.Advice;
1010

1111
public class CaptureLibraryNameAdvice {
@@ -19,9 +19,7 @@ public static void onExit(@Advice.This final Object self) {
1919
.findVirtual(self.getClass(), "name", MethodType.methodType(String.class));
2020
String libraryName = (String) mh.invoke(self);
2121
if (libraryName != null) {
22-
libraryName = new File(libraryName).getName().toLowerCase(Locale.ROOT);
23-
int dot = libraryName.lastIndexOf('.');
24-
libraryName = (dot > 0) ? libraryName.substring(0, dot) : libraryName;
22+
libraryName = extractLibraryName(libraryName);
2523
} else {
2624
libraryName = "";
2725
}

dd-java-agent/instrumentation/java/java-lang/java-lang-22.0/src/main/java25/datadog/trace/instrumentation/java/lang/jdk22/CaptureSymbolAddressAdvice.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package datadog.trace.instrumentation.java.lang.jdk22;
22

3+
import static datadog.trace.bootstrap.instrumentation.ffm.NativeLibraryHelper.onSymbolLookup;
4+
35
import datadog.trace.bootstrap.InstrumentationContext;
4-
import datadog.trace.bootstrap.instrumentation.ffm.NativeLibraryHelper;
56
import net.bytebuddy.asm.Advice;
67

78
public class CaptureSymbolAddressAdvice {
@@ -14,6 +15,6 @@ public static void onExit(
1415
(String)
1516
InstrumentationContext.get("jdk.internal.loader.NativeLibrary", "java.lang.String")
1617
.get(self);
17-
NativeLibraryHelper.onSymbolLookup(libraryName, symbol, address);
18+
onSymbolLookup(libraryName, symbol, address);
1819
}
1920
}

dd-java-agent/instrumentation/java/java-lang/java-lang-22.0/src/main/java25/datadog/trace/instrumentation/java/lang/jdk22/DownCallWrapAdvice.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package datadog.trace.instrumentation.java.lang.jdk22;
22

33
import static datadog.trace.bootstrap.instrumentation.ffm.FFMNativeMethodDecorator.wrap;
4+
import static datadog.trace.bootstrap.instrumentation.ffm.NativeLibraryHelper.reverseResolveLibraryAndSymbol;
45

56
import datadog.trace.api.Pair;
6-
import datadog.trace.bootstrap.instrumentation.ffm.NativeLibraryHelper;
77
import java.lang.foreign.MemorySegment;
88
import java.lang.invoke.MethodHandle;
99
import net.bytebuddy.asm.Advice;
@@ -17,7 +17,7 @@ public static void onExit(
1717
return;
1818
}
1919
final Pair<String, String> libAndMethod =
20-
NativeLibraryHelper.reverseResolveLibraryAndSymbol(memorySegment.address());
20+
reverseResolveLibraryAndSymbol(memorySegment.address());
2121
if (libAndMethod == null) {
2222
return;
2323
}

dd-java-agent/instrumentation/java/java-lang/java-lang-22.0/src/test/groovy/FFMInstrumentationTest.groovy renamed to dd-java-agent/instrumentation/java/java-lang/java-lang-22.0/src/test/groovy/FFMInstrumentationForkedTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import java.lang.invoke.MethodHandle
1010
import java.nio.file.Path
1111
import util.LoaderUtil
1212

13-
class FFMInstrumentationTest extends InstrumentationSpecification {
13+
class FFMInstrumentationForkedTest extends InstrumentationSpecification {
1414
@Override
1515
protected void configurePreAgent() {
1616
super.configurePreAgent()

0 commit comments

Comments
 (0)