package com.laytonsmith.PureUtilities.ClassLoading.Annotations;
import com.laytonsmith.PureUtilities.ClassLoading.ClassDiscoveryCache;
import com.laytonsmith.PureUtilities.ClassLoading.ClassDiscoveryURLCache;
import java.io.File;
import java.io.FileOutputStream;
import java.net.URL;
/**
*
*/
public class CacheAnnotations {
public static void main(String[] args) throws Exception {
File outputDir = new File(args[0]);
File scanDir = new File(args[1]);
if(outputDir.toString().startsWith("-classpath") || outputDir.toString().startsWith("-Xdebug")){
//This happens when running locally. I dunno what that is, but we
//can skip this step.
System.out.println("Skipping annotation caching, running locally.");
return;
}
System.out.println("-- Caching annotations --");
System.out.println("Scanning for classes in " + scanDir.getAbsolutePath());
System.out.println("Outputting file to directory " + outputDir.getAbsolutePath());
long start = System.currentTimeMillis();
new ClassDiscoveryURLCache(new URL("file:" + scanDir.getCanonicalPath()))
.writeDescriptor(new FileOutputStream(new File(outputDir, ClassDiscoveryCache.OUTPUT_FILENAME)));
System.out.println("Done writing " + ClassDiscoveryCache.OUTPUT_FILENAME + ", which took " + (System.currentTimeMillis() - start) + " ms.");
}
}