in html4j-maven-plugin/src/main/java/org/netbeans/html/mojo/ProcessJsAnnotations.java [94:131]
private void processClasses(ClassLoader l, MultiFile master, MultiFile f) throws IOException {
if (!f.exists()) {
return;
}
if (f.isDirectory()) {
boolean classes = f.child("net.java.html.js.classes").exists();
MultiFile[] arr = f.listFiles();
if (arr != null) {
for (MultiFile file : arr) {
if (classes || file.isDirectory()) {
processClasses(l, master, file);
}
}
}
}
if (!f.isFile() || !f.getName().endsWith(".class")) {
return;
}
byte[] arr = f.readFully();
byte[] newArr = null;
try {
Class<?> fnUtils = l.loadClass("org.netbeans.html.boot.impl.FnUtils");
Method transform = fnUtils.getMethod("transform", byte[].class, ClassLoader.class);
newArr = (byte[]) transform.invoke(null, arr, l);
if (newArr == null || newArr == arr) {
return;
}
filterClass(f.getParentFile().child("net.java.html.js.classes"), f.getName());
filterClass(master, f.getName());
} catch (Exception ex) {
throw new IOException("Can't process " + f, ex);
}
log("Processing " + f);
f.writeArr(newArr);
}