Merge pull request #1247 from DataDog/tyler/bb-raw
Set ByteBuddy raw setting at startup
This commit is contained in:
commit
b27b30d913
|
@ -18,6 +18,7 @@ import java.util.ServiceLoader;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.agent.builder.AgentBuilder;
|
import net.bytebuddy.agent.builder.AgentBuilder;
|
||||||
import net.bytebuddy.agent.builder.ResettableClassFileTransformer;
|
import net.bytebuddy.agent.builder.ResettableClassFileTransformer;
|
||||||
|
import net.bytebuddy.description.type.TypeDefinition;
|
||||||
import net.bytebuddy.description.type.TypeDescription;
|
import net.bytebuddy.description.type.TypeDescription;
|
||||||
import net.bytebuddy.dynamic.DynamicType;
|
import net.bytebuddy.dynamic.DynamicType;
|
||||||
import net.bytebuddy.matcher.ElementMatcher;
|
import net.bytebuddy.matcher.ElementMatcher;
|
||||||
|
@ -50,6 +51,8 @@ public class AgentInstaller {
|
||||||
final Instrumentation inst, final AgentBuilder.Listener... listeners) {
|
final Instrumentation inst, final AgentBuilder.Listener... listeners) {
|
||||||
INSTRUMENTATION = inst;
|
INSTRUMENTATION = inst;
|
||||||
|
|
||||||
|
addByteBuddyRawSetting();
|
||||||
|
|
||||||
AgentBuilder agentBuilder =
|
AgentBuilder agentBuilder =
|
||||||
new AgentBuilder.Default()
|
new AgentBuilder.Default()
|
||||||
.disableClassFormatChanges()
|
.disableClassFormatChanges()
|
||||||
|
@ -93,6 +96,23 @@ public class AgentInstaller {
|
||||||
return agentBuilder.installOn(inst);
|
return agentBuilder.installOn(inst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void addByteBuddyRawSetting() {
|
||||||
|
final String savedPropertyValue = System.getProperty(TypeDefinition.RAW_TYPES_PROPERTY);
|
||||||
|
try {
|
||||||
|
System.setProperty(TypeDefinition.RAW_TYPES_PROPERTY, "true");
|
||||||
|
final boolean rawTypes = TypeDescription.AbstractBase.RAW_TYPES;
|
||||||
|
if (!rawTypes) {
|
||||||
|
log.debug("Too late to enable {}", TypeDefinition.RAW_TYPES_PROPERTY);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (savedPropertyValue == null) {
|
||||||
|
System.clearProperty(TypeDefinition.RAW_TYPES_PROPERTY);
|
||||||
|
} else {
|
||||||
|
System.setProperty(TypeDefinition.RAW_TYPES_PROPERTY, savedPropertyValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static ElementMatcher.Junction<Object> matchesConfiguredExcludes() {
|
private static ElementMatcher.Junction<Object> matchesConfiguredExcludes() {
|
||||||
final List<String> excludedClasses = Config.get().getExcludedClasses();
|
final List<String> excludedClasses = Config.get().getExcludedClasses();
|
||||||
ElementMatcher.Junction matcher = none();
|
ElementMatcher.Junction matcher = none();
|
||||||
|
|
Loading…
Reference in New Issue