use of com.newrelic.agent.instrumentation.context.InstrumentationContextManager in project newrelic-java-agent by newrelic.
the class ExtensionServiceTest method setUpAgent.
@Before
public void setUpAgent() throws Exception {
Map<String, Object> configMap = new HashMap<>();
configMap.put(AgentConfigImpl.APP_NAME, EXTENSION_NAME);
AgentConfig config = AgentConfigImpl.createAgentConfig(configMap);
configService = ConfigServiceFactory.createConfigService(config, Collections.<String, Object>emptyMap());
serviceManager = new MockServiceManager(configService);
ServiceFactory.setServiceManager(serviceManager);
final InstrumentationProxy instrumentationProxy = Mockito.mock(InstrumentationProxy.class);
serviceManager.setCoreService(new MockCoreService() {
@Override
public InstrumentationProxy getInstrumentation() {
return instrumentationProxy;
}
});
Mockito.when(instrumentationProxy.isRetransformClassesSupported()).thenReturn(true);
Mockito.when(instrumentationProxy.getAllLoadedClasses()).thenReturn(new Class[] {});
extensionService = new ExtensionService(configService, ExtensionsLoadedListener.NOOP);
serviceManager.setExtensionService(extensionService);
serviceManager.setJmxService(Mockito.mock(JmxService.class));
ClassTransformerService classTransformerService = serviceManager.getClassTransformerService();
ClassRetransformer mockRetransformer = Mockito.mock(ClassRetransformer.class);
Mockito.when(classTransformerService.getLocalRetransformer()).thenReturn(mockRetransformer);
InstrumentationContextManager mockContextManager = Mockito.mock(InstrumentationContextManager.class);
Mockito.when(classTransformerService.getContextManager()).thenReturn(mockContextManager);
ClassWeaverService mockWeaverService = Mockito.mock(ClassWeaverService.class);
Mockito.when(mockContextManager.getClassWeaverService()).thenReturn(mockWeaverService);
Mockito.when(mockWeaverService.reloadExternalWeavePackages(Mockito.<File>anyCollection(), Mockito.<File>anyCollection())).thenReturn(new Runnable() {
@Override
public void run() {
}
});
}
use of com.newrelic.agent.instrumentation.context.InstrumentationContextManager in project newrelic-java-agent by newrelic.
the class IncludeExcludeTest method testIncludes.
@Test
public void testIncludes() throws Exception {
Map<String, Object> configMap = createConfigMap();
Map<String, Object> classTransformerConfigMap = new HashMap<>();
classTransformerConfigMap.put("excludes", "^my/custom/.*");
classTransformerConfigMap.put("includes", "^my/custom/.*");
configMap.put("class_transformer", classTransformerConfigMap);
createServiceManager(configMap);
InstrumentationContextManager manager = new InstrumentationContextManager(null);
Assert.assertTrue("config includes should override excludes", manager.shouldTransform("my/custom/Class", SOME_CLASSLOADER));
}
use of com.newrelic.agent.instrumentation.context.InstrumentationContextManager in project newrelic-java-agent by newrelic.
the class IncludeExcludeTest method testClassLoader.
@Test
public void testClassLoader() throws Exception {
final ClassLoader badClassLoader = new ClassLoader() {
};
Map<String, Object> configMap = createConfigMap();
Map<String, Object> classTransformerConfigMap = new HashMap<>();
classTransformerConfigMap.put("classloader_excludes", badClassLoader.getClass().getName());
configMap.put("class_transformer", classTransformerConfigMap);
createServiceManager(configMap);
InstrumentationContextManager manager = new InstrumentationContextManager(null);
Assert.assertTrue(manager.shouldTransform("a/normal/class/Foo", SOME_CLASSLOADER));
Assert.assertFalse(manager.shouldTransform("a/normal/class/Foo", badClassLoader));
}
Aggregations