public boolean filterClassPath(String classpathEntry) { boolean result= false; if (configurators.isEmpty()) result= super.filterClassPath(classpathEntry); else { for (InstrumentationDragomeConfigurator configurator : configurators) result|= configurator.filterClassPath(classpathEntry); } return result; } }
public byte[] transform(String className, byte[] bytecode) { byte[] transformedBytecode= bytecode; for (InstrumentationDragomeConfigurator configurator : configurators) if (configurator.isEnabled()) transformedBytecode= configurator.getBytecodeTransformer().transform(className, transformedBytecode); return transformedBytecode; }
public ExecutionHandler getExecutionHandler() return super.getExecutionHandler(); else return new ExecutionHandler()
public void init(InstrumentationDragomeConfigurator... configurators) { this.configurators= Arrays.asList(configurators); for (InstrumentationDragomeConfigurator configurator : this.configurators) if (configurator.isEnabled()) { includedPaths.addAll(configurator.getIncludedPaths()); loadedFromParent.addAll(configurator.getLoadedFromParent()); } }
public ClassLoader getNewClassloaderInstance(ClassLoader parent, ClassLoader current) { instrumentationClassLoader= new DragomeInstrumentationClassLoader(new URL[0], parent, current, getBytecodeTransformer(), getLoadedFromParent()); instrumentationClassLoader.setBytecodes(bytecodes); return instrumentationClassLoader; }
public BytecodeTransformer getBytecodeTransformer() { if (configurators.isEmpty()) return super.getBytecodeTransformer(); else return new BytecodeTransformer() { public byte[] transform(String className, byte[] bytecode) { byte[] transformedBytecode= bytecode; for (InstrumentationDragomeConfigurator configurator : configurators) if (configurator.isEnabled()) transformedBytecode= configurator.getBytecodeTransformer().transform(className, transformedBytecode); return transformedBytecode; } public boolean requiresTransformation(String className) { boolean transform= false; for (InstrumentationDragomeConfigurator configurator : configurators) if (configurator.isEnabled()) transform|= configurator.getBytecodeTransformer().requiresTransformation(className); return transform; } }; }
public boolean filterClassPath(String classpathEntry) { return super.filterClassPath(classpathEntry) || classpathEntry.contains("dragome-callback-evictor-"); } }
public boolean requiresTransformation(String className) { boolean transform= false; for (InstrumentationDragomeConfigurator configurator : configurators) if (configurator.isEnabled()) transform|= configurator.getBytecodeTransformer().requiresTransformation(className); return transform; } };
public boolean filterClassPath(String classpathEntry) { return super.filterClassPath(classpathEntry) || classpathEntry.contains("dragome-method-logger-"); } }