in src/main/java/org/apache/cxf/cwiki/SiteExporter.java [568:634]
private void loadAttachments(AbstractPage p) throws Exception {
Document doc = DOMUtils.createDocument();
Element el = doc.createElementNS(SOAPNS, "ns1:getAttachments");
Element el2 = doc.createElement("in0");
el.appendChild(el2);
el2.setTextContent(loginToken);
el2 = doc.createElement("in1");
el.appendChild(el2);
el2.setTextContent(p.getId());
el.appendChild(el2);
doc.appendChild(el);
doc = getDispatch().invoke(doc);
el = DOMUtils.getFirstElement(DOMUtils.getFirstElement(doc.getDocumentElement()));
while (el != null) {
try {
String filename = DOMUtils.getChildContent(el, "fileName");
String durl = DOMUtils.getChildContent(el, "url");
String aid = DOMUtils.getChildContent(el, "id");
p.addAttachment(aid, filename);
String dirName = p.getPath();
dirName = dirName.substring(0, dirName.lastIndexOf(".")) + ".data";
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);
URL url = new URL(durl);
InputStream ins = url.openStream();
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");
}
if (filename.indexOf(' ') != -1) {
filename = filename.replace(' ', '-');
file = new File(outputDir, dirName);
File f2 = new File(file, filename);
exists = f2.exists();
out = new FileOutputStream(f2);
url = new URL(durl);
ins = url.openStream();
IOUtils.copy(ins, out);
out.close();
ins.close();
if (!exists) {
callSvn("add", f2.getAbsolutePath());
svnCommitMessage.append("Added: " + dirName + "/" + f2.getName() + "\n");
} else {
svnCommitMessage.append("Modified: " + dirName + "/" + f2.getName() + "\n");
}
}
} catch (Exception e) {
e.printStackTrace();
}
el = DOMUtils.getNextElement(el);
}
}