String loadPageBinaryData()

in src/main/java/org/apache/cxf/cwiki/SiteExporter.java [641:681]


    String loadPageBinaryData(AbstractPage p, String href, String type, boolean auth) throws Exception {
        String filename = href.substring(href.lastIndexOf('/') + 1);
        filename = filename.replace(' ', '_');
        if (filename.indexOf('?') != -1) {
            filename = filename.substring(0, filename.indexOf('?'));
        }
        
        String dirName = p.getPath();
        dirName = dirName.substring(0, dirName.lastIndexOf(".")) + "." + type;
        File file = new File(outputDir, dirName);
        if (!file.exists()) {
            callSvn("mkdir", file.getAbsolutePath());
            file.mkdirs();
        }
        file = new File(file, filename);
        boolean exists = file.exists();
        FileOutputStream out = new FileOutputStream(file);
        if (auth) {
            if (href.indexOf('?') != -1) {
                href += "&os_authType=basic";
            } else {
                href += "?os_authType=basic";
            }
        }
        URL url = new URL(HOST + href);
        URLConnection con = url.openConnection();
        if (auth) {
            con.addRequestProperty("Authorization", getBasicAuthHeader());
        }
        InputStream ins = con.getInputStream();
        IOUtils.copy(ins, out);
        out.close();
        ins.close();
        if (!exists) {
            callSvn("add", file.getAbsolutePath());
            svnCommitMessage.append("Added: " + dirName + "/" + file.getName() + "\n");                
        } else {
            svnCommitMessage.append("Modified: " + dirName + "/" + file.getName() + "\n");
        }
        return file.getName();
    }