private byte[] transform(final Class<?> clazz) throws IllegalClassFormatException { final CoverageTransformer testee = new CoverageTransformer( s -> true); final byte[] bs = testee.transform(this.loader, clazz.getName(), null, null, this.bytes.getBytes(clazz.getName()).get()); return bs; }
@Override public byte[] transform(final ClassLoader loader, final String className, final Class<?> classBeingRedefined, final ProtectionDomain protectionDomain, final byte[] classfileBuffer) throws IllegalClassFormatException { final boolean include = shouldInclude(className); if (include) { try { return transformBytes(pickLoader(loader), className, classfileBuffer); } catch (final RuntimeException t) { System.err.println("RuntimeException while transforming " + className); t.printStackTrace(); throw t; } } else { return null; } }
HotSwapAgent.addTransformer(new CoverageTransformer( convertToJVMClassFilter(paramsFromParent.getFilter())));
HotSwapAgent.addTransformer(new CoverageTransformer( convertToJVMClassFilter(paramsFromParent.getFilter())));
@Test public void shouldTransformClasseMatchingPredicate() throws IllegalClassFormatException { final CoverageTransformer testee = new CoverageTransformer( s -> true); final byte[] bs = this.bytes.getBytes(String.class.getName()).get(); assertFalse(Arrays.equals(bs, testee.transform(null, "anything", null, null, bs))); }
@Override public byte[] transform(final ClassLoader loader, final String className, final Class<?> classBeingRedefined, final ProtectionDomain protectionDomain, final byte[] classfileBuffer) throws IllegalClassFormatException { final boolean include = shouldInclude(className); if (include) { try { return transformBytes(pickLoader(loader), className, classfileBuffer); } catch (final RuntimeException t) { System.err.println("RuntimeException while transforming " + className); t.printStackTrace(); throw t; } } else { return null; } }
@Test public void shouldNotTransformClassesNotMatchingPredicate() throws IllegalClassFormatException { final CoverageTransformer testee = new CoverageTransformer( False.<String> instance()); assertNull(testee.transform(null, "anything", null, null, null)); }