in src/main/java/org/apache/cxf/cwiki/SiteExporter.java [1183:1260]
public static void main(String[] args) throws Exception {
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password.toCharArray());
}
});
ListIterator<String> it = Arrays.asList(args).listIterator();
List<String> files = new ArrayList<String>();
boolean forceAll = false;
int maxThreads = -1;
while (it.hasNext()) {
String s = it.next();
if ("-debug".equals(s)) {
debug = true;
} else if ("-user".equals(s)) {
userName = it.next();
} else if ("-password".equals(s)) {
password = it.next();
} else if ("-d".equals(s)) {
rootOutputDir = new File(it.next());
} else if ("-force".equals(s)) {
forceAll = true;
} else if ("-svn".equals(s)) {
svn = true;
} else if ("-commit".equals(s)) {
commit = true;
} else if ("-maxThreads".equals(s)) {
maxThreads = Integer.parseInt(it.next());
} else if (s != null && s.length() > 0) {
files.add(s);
}
}
List<SiteExporter> exporters = new ArrayList<SiteExporter>();
for (String file : files) {
exporters.add(new SiteExporter(file, forceAll));
}
List<SiteExporter> modified = new ArrayList<SiteExporter>();
for (SiteExporter exporter : exporters) {
if (exporter.initialize()) {
modified.add(exporter);
}
}
// render stuff only if needed
if (!modified.isEmpty()) {
setSiteExporters(exporters);
if (maxThreads <= 0) {
maxThreads = modified.size();
}
ExecutorService executor = Executors.newFixedThreadPool(maxThreads, new ThreadFactory() {
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setDaemon(true);
return t;
}
});
List<Future<?>> futures = new ArrayList<Future<?>>(modified.size());
for (SiteExporter exporter : modified) {
futures.add(executor.submit(exporter));
}
for (Future<?> t : futures) {
t.get();
}
}
if (commit) {
File file = FileUtils.createTempFile("svncommit", "txt");
FileWriter writer = new FileWriter(file);
writer.write(svnCommitMessage.toString());
writer.close();
callSvn(rootOutputDir, "commit", "-F", file.getAbsolutePath(), rootOutputDir.getAbsolutePath());
svnCommitMessage.setLength(0);
}
}