reuse class file locator for DDAdvice

This commit is contained in:
Andrew Kent 2017-12-13 09:10:55 -08:00
parent 7f643ab680
commit b5c2a3af63
1 changed files with 8 additions and 3 deletions

View File

@ -9,6 +9,7 @@ import net.bytebuddy.dynamic.ClassFileLocator;
@Slf4j
public class DDAdvice extends AgentBuilder.Transformer.ForAdvice {
private static ClassLoader AGENT_CLASSLOADER;
private static ClassFileLocator AGENT_CLASS_LOCATOR;
static {
try {
@ -20,13 +21,17 @@ public class DDAdvice extends AgentBuilder.Transformer.ForAdvice {
log.error("Unable to locate agent classloader. Falling back to System Classloader");
AGENT_CLASSLOADER = ClassLoader.getSystemClassLoader();
}
AGENT_CLASS_LOCATOR = ClassFileLocator.ForClassLoader.of(AGENT_CLASSLOADER);
}
/**
* Create bytebuddy advice with default datadog settings.
*
* @return the bytebuddy advice
*/
public static AgentBuilder.Transformer.ForAdvice create() {
return new DDAdvice()
.with(
new AgentBuilder.LocationStrategy.Simple(
ClassFileLocator.ForClassLoader.of(AGENT_CLASSLOADER)))
.with(new AgentBuilder.LocationStrategy.Simple(AGENT_CLASS_LOCATOR))
.withExceptionHandler(ExceptionHandlers.defaultExceptionHandler());
}