
fitnesse.responders.WikiImportingResponder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fitnesse Show documentation
Show all versions of fitnesse Show documentation
The fully integrated standalone wiki, and acceptance testing framework.
The newest version!
// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.responders;
import fitnesse.authentication.SecureOperation;
import fitnesse.authentication.SecureResponder;
import fitnesse.authentication.SecureWriteOperation;
import fitnesse.http.ChunkedResponse;
import fitnesse.html.template.HtmlPage;
import fitnesse.html.template.PageTitle;
import fitnesse.http.Request;
import fitnesse.wiki.PageCrawler;
import fitnesse.wiki.PageData;
import fitnesse.wiki.PathParser;
import fitnesse.wiki.WikiImportProperty;
import fitnesse.wiki.WikiPage;
public class WikiImportingResponder extends ChunkingResponder implements SecureResponder {
private final WikiImporter importer;
public PageData data;
private WikiImportingTraverser wikiImportingTraverser;
public WikiImportingResponder() {
this(new WikiImporter());
}
public WikiImportingResponder(WikiImporter wikiImporter) {
this.importer = wikiImporter;
}
public static void handleImportProperties(HtmlPage html, WikiPage page) {
PageData pageData = page.getData();
if (WikiImportProperty.isImportedSubWiki(pageData)) {
html.setBodyClass("imported");
WikiImportProperty importProperty = WikiImportProperty.createFrom(pageData.getProperties());
html.put("sourceUrl", importProperty.getSourceUrl());
}
}
@Override
protected void doSending() throws Exception {
data = page.getData();
wikiImportingTraverser = initializeImporter();
HtmlPage htmlPage = makeHtml();
htmlPage.render(response.getWriter(), request);
response.close();
}
public WikiImportingTraverser initializeImporter() throws Exception {
String remoteUrl = request.getInput("remoteUrl");
setRemoteUserCredentialsOnImporter(importer);
importer.setAutoUpdateSetting(request.hasInput("autoUpdate"));
return new WikiImportingTraverser(importer, page, remoteUrl);
}
private void setRemoteUserCredentialsOnImporter(WikiImporter importer) {
if (request.hasInput("remoteUsername"))
importer.setRemoteUsername(request.getInput("remoteUsername"));
if (request.hasInput("remotePassword"))
importer.setRemotePassword(request.getInput("remotePassword"));
}
private HtmlPage makeHtml() throws Exception {
HtmlPage html = context.pageFactory.newPage();
String title = "Wiki Import";
if (wikiImportingTraverser.isUpdate())
title += " Update";
String localPathName = PathParser.render(path);
html.setTitle(title + ": " + localPathName);
html.setPageTitle(new PageTitle(title, path));
html.setMainTemplate("wikiImportingPage");
html.put("isUpdate", wikiImportingTraverser.isUpdate());
String pageName = PathParser.render(path);
html.put("pageName", pageName);
html.put("remoteUrl", importer.remoteUrl());
html.put("importer", importer);
html.put("PathParser", PathParser.class);
html.put("importTraverser", wikiImportingTraverser);
return html;
}
@Override
protected PageCrawler getPageCrawler() {
return root.getPageCrawler();
}
public void setResponse(ChunkedResponse response) {
this.response = response;
}
@Override
public SecureOperation getSecureOperation() {
return new SecureWriteOperation();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy