ThreadLocalToolkit.setLogger(console);
final Library lib = new Library();
lib.setLogger(console);
OEMConfiguration c1 = (OEMConfiguration) lib.getDefaultConfiguration();
CompcConfiguration c2 = getCompcConfiguration(args);
OEMConfiguration c3 = new OEMConfiguration(null, c2);
c1.importDefaults(c3);
lib.setConfiguration(c1);
// transfer the value of compute-digest from CompcConfiguration to OEMConfiguration.
c1.enableDigestComputation(c2.getComputeDigest());
for (Iterator i = c2.getClasses().iterator(); i.hasNext(); )
{
lib.addComponent((String) i.next());
}
List fileList = flex2.compiler.CompilerAPI.getVirtualFileList(c2.getIncludeSources(),
new HashSet<String>(Arrays.asList(flex2.tools.WebTierAPI.getSourcePathMimeTypes())));
for (Iterator i = fileList.iterator(); i.hasNext(); )
{
lib.addComponent(new File(((VirtualFile) i.next()).getName()));
}
Map ss = c2.getStylesheets();
for (Iterator i = ss.keySet().iterator(); i.hasNext(); )
{
String key = (String) i.next();
lib.addStyleSheet(key, new File(((VirtualFile) ss.get(key)).getName()));
}
for (Iterator i = c2.getIncludeResourceBundles().iterator(); i.hasNext(); )
{
lib.addResourceBundle((String) i.next());
}
for (Iterator i = c2.getNamespaces().iterator(); i.hasNext(); )
{
lib.addComponent(new URI((String) i.next()));
}
Map m = c2.getFiles();
for (Iterator i = m.keySet().iterator(); i.hasNext(); )
{
String key = (String) i.next();
lib.addArchiveFile(key, new File(((VirtualFile) m.get(key)).getName()));
}
try
{
lib.load(new BufferedInputStream(new FileInputStream(new File(c2.getOutput() + ".incr"))));
// load() wipes out our ThreadLocal and we lose our logger
ThreadLocalToolkit.setLogger(console);
}
catch (IOException ex)
{
}
long size = 0;
if ((size = lib.build(new BufferedOutputStream(new FileOutputStream(new File(c2.getOutput()))), true)) == 0)
{
ThreadLocalToolkit.logError("Build unsuccessful.");
}
else
{
System.out.println(c2.getOutput() + " (" + size + " bytes)");
if (c2.generateRBList() && c2.getRBListFileName() != null)
{
Report r = lib.getReport();
String[] rbNames = r.getResourceBundleNames();
HashSet<String> set = new HashSet<String>();
for (int i = 0, l = rbNames == null ? 0 : rbNames.length; i < l; i++)
{
set.add(rbNames[i]);
}
String list = FlexMovie.dumpRBList(set);
FileUtil.writeFile(c2.getRBListFileName(), list);
}
}
lib.save(new BufferedOutputStream(new FileOutputStream(new File(c2.getOutput() + ".incr"))));
lib.clean();
}