private GwtTestClassLoader() throws NotFoundException, CannotCompileException { super(PatchGwtClassPool.get()); init(); ConfigurationLoader configurationLoader = ConfigurationLoader.createInstance(this.getParent()); for (String s : configurationLoader.getDelegateList()) { delegateLoadingOf(s); } for (String s : configurationLoader.getNotDelegateList()) { notDelegateLoadingOf(s); } translator = new GwtTranslator(configurationLoader.getPatchers()); addTranslator(PatchGwtClassPool.get(), translator); }
private byte[] modifiyClass(byte[] classfile, String name) { ClassParser parser = new ClassParser(new ByteArrayInputStream(classfile), ""); try { JavaClass cls = parser.parse(); for (JavaClassModifier modifier : ConfigurationLoader.getInstance().getJavaClassModifierList()) { modifier.modify(cls); } ByteArrayOutputStream out = new ByteArrayOutputStream(); cls.dump(out); return out.toByteArray(); } catch (Exception e) { throw new RuntimeException("Error while modifying class '" + name + "'", e); } }