# HG changeset patch # User Jaroslav Tulach # Date 1351698882 -3600 # Node ID e79e499caac8cbf3b6dae859cceb53c5128dfae7 # Parent 245d9215a97ef2dec2822e11bb2d31542c861313 Don't rebuild js file when classes are not recompiled diff -r 245d9215a97e -r e79e499caac8 mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java --- a/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java Wed Oct 31 15:43:39 2012 +0100 +++ b/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java Wed Oct 31 16:54:42 2012 +0100 @@ -64,9 +64,11 @@ } List arr = new ArrayList(); - collectAllClasses("", classes, arr); + long newest = collectAllClasses("", classes, arr); - + if (javascript.lastModified() > newest) { + return; + } try { URLClassLoader url = buildClassLoader(classes, prj.getDependencyArtifacts()); @@ -93,14 +95,22 @@ return dir; } - private static void collectAllClasses(String prefix, File toCheck, List arr) { + private static long collectAllClasses(String prefix, File toCheck, List arr) { File[] files = toCheck.listFiles(); if (files != null) { + long newest = 0L; for (File f : files) { - collectAllClasses(prefix + f.getName() + "/", f, arr); + long lastModified = collectAllClasses(prefix + f.getName() + "/", f, arr); + if (newest < lastModified) { + newest = lastModified; + } } + return newest; } else if (toCheck.getName().endsWith(".class")) { arr.add(prefix.substring(0, prefix.length() - 7)); + return toCheck.lastModified(); + } else { + return 0L; } }