public static void main()

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);
        }
    }