Don't rebuild js file when classes are not recompiled
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 31 Oct 2012 16:54:42 +0100
changeset 134e79e499caac8
parent 133 245d9215a97e
child 135 a206e280acc8
Don't rebuild js file when classes are not recompiled
mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java
     1.1 --- a/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java	Wed Oct 31 15:43:39 2012 +0100
     1.2 +++ b/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java	Wed Oct 31 16:54:42 2012 +0100
     1.3 @@ -64,9 +64,11 @@
     1.4          }
     1.5  
     1.6          List<String> arr = new ArrayList<String>();
     1.7 -        collectAllClasses("", classes, arr);
     1.8 +        long newest = collectAllClasses("", classes, arr);
     1.9          
    1.10 -        
    1.11 +        if (javascript.lastModified() > newest) {
    1.12 +            return;
    1.13 +        }
    1.14  
    1.15          try {
    1.16              URLClassLoader url = buildClassLoader(classes, prj.getDependencyArtifacts());
    1.17 @@ -93,14 +95,22 @@
    1.18          return dir;
    1.19      }
    1.20  
    1.21 -    private static void collectAllClasses(String prefix, File toCheck, List<String> arr) {
    1.22 +    private static long collectAllClasses(String prefix, File toCheck, List<String> arr) {
    1.23          File[] files = toCheck.listFiles();
    1.24          if (files != null) {
    1.25 +            long newest = 0L;
    1.26              for (File f : files) {
    1.27 -                collectAllClasses(prefix + f.getName() + "/", f, arr);
    1.28 +                long lastModified = collectAllClasses(prefix + f.getName() + "/", f, arr);
    1.29 +                if (newest < lastModified) {
    1.30 +                    newest = lastModified;
    1.31 +                }
    1.32              }
    1.33 +            return newest;
    1.34          } else if (toCheck.getName().endsWith(".class")) {
    1.35              arr.add(prefix.substring(0, prefix.length() - 7));
    1.36 +            return toCheck.lastModified();
    1.37 +        } else {
    1.38 +            return 0L;
    1.39          }
    1.40      }
    1.41