Skip to content

Commit 9203816

Browse files
author
Mike Stockdale
authored
Merge pull request #1401 from jediwhale/master
Publish copy of FrontPage as index.html #1387
2 parents 0c4cc2f + ebc26d9 commit 9203816

File tree

8 files changed

+32
-15
lines changed

8 files changed

+32
-15
lines changed

FitNesseRoot/FitNesse/ReleaseNotes/content.txt

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
!2 Latest Release ${FITNESSE_VERSION}
21
!2 Pending Changes
32
* Add a new optional command line parameter to specify the maximum number of workers to use for handling incoming requests.
43
* Ability to ignore the rest of a script table or test page by throwing an exception. ([[1350][https://github.com./unclebob/fitnesse/pull/1350]])
5-
* Change the publish responder to use Apache Velocity ([[1387][https://github.com./unclebob/fitnesse/issues/1387]])
4+
* Change the publish responder to use Apache Velocity, and create index page ([[1387][https://github.com./unclebob/fitnesse/issues/1387]])
65

76
!2 20221102
87
* Ability to create plugins for new markup syntax. ([[1382][https://github.com./unclebob/fitnesse/pull/1382]])

src/fitnesse/FitNesseExpediter.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import fitnesse.components.LogData;
66
import fitnesse.http.*;
77
import fitnesse.responders.ErrorResponder;
8+
import fitnesse.wiki.WikiPageUtil;
89
import org.apache.commons.lang3.StringUtils;
910

1011
import java.io.IOException;
@@ -90,12 +91,9 @@ private Response makeResponse(final Request request) throws Exception {
9091
Response response;
9192
try {
9293
try {
93-
executorService.submit(new Callable<Request>() {
94-
@Override
95-
public Request call() throws Exception {
96-
request.parse();
97-
return request;
98-
}
94+
executorService.submit(() -> {
95+
request.parse();
96+
return request;
9997
}).get(requestParsingTimeLimit, TimeUnit.MILLISECONDS);
10098
} catch (ExecutionException e) {
10199
if (e.getCause() instanceof Exception) {
@@ -139,7 +137,7 @@ public Request call() throws Exception {
139137

140138
public Response createGoodResponse(Request request) throws Exception {
141139
if (StringUtils.isBlank(request.getResource()) && StringUtils.isBlank(request.getQueryString()))
142-
request.setResource("FrontPage");
140+
request.setResource(WikiPageUtil.FRONT_PAGE);
143141
Responder responder = context.responderFactory.makeResponder(request);
144142
responder = context.authenticator.authenticate(context, request, responder);
145143
return responder.makeResponse(context, request);

src/fitnesse/responders/ImportAndViewResponder.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import fitnesse.wiki.WikiImportProperty;
2020
import fitnesse.wiki.WikiPage;
2121
import fitnesse.wiki.WikiPagePath;
22+
import fitnesse.wiki.WikiPageUtil;
2223

2324
public class ImportAndViewResponder implements SecureResponder, WikiImporterClient {
2425
private static final Logger LOG = Logger.getLogger(ImportAndViewResponder.class.getName());
@@ -30,7 +31,7 @@ public Response makeResponse(FitNesseContext context, Request request) throws Ex
3031
String resource = request.getResource();
3132

3233
if ("".equals(resource))
33-
resource = "FrontPage";
34+
resource = WikiPageUtil.FRONT_PAGE;
3435

3536
loadPage(resource, context);
3637
if (page == null)

src/fitnesse/responders/files/Publisher.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ public String traverse(WikiPage page) {
3232
String path = destinationPath(page);
3333
result.append(path).append("<br>");
3434
try {
35-
writer.accept(pageContent(page), path);
35+
String content = pageContent(page);
36+
writer.accept(content, path);
37+
if (page.getFullPath().toString().equals(WikiPageUtil.FRONT_PAGE)) {
38+
writer.accept(content, destinationPath("index"));
39+
}
3640
}
3741
catch (Exception e) {
3842
e.printStackTrace();
@@ -117,6 +121,10 @@ private void fixFiles(StringTransform transform, long depth) {
117121

118122
private String destinationPath(WikiPage page) {
119123
String pagePath = page.getFullPath().toString().replace(".", File.separator);
124+
return destinationPath(pagePath);
125+
}
126+
127+
private String destinationPath(String pagePath) {
120128
return destination + File.separator + (pagePath.length() > 0 ? pagePath : "root") + ".html";
121129
}
122130

src/fitnesse/responders/refactoring/DeletePageResponder.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import fitnesse.wiki.PathParser;
1717
import fitnesse.wiki.WikiPage;
1818
import fitnesse.wiki.WikiPagePath;
19+
import fitnesse.wiki.WikiPageProperty;
20+
import fitnesse.wiki.WikiPageUtil;
1921

2022
import java.io.UnsupportedEncodingException;
2123
import java.util.List;
@@ -32,7 +34,7 @@ public Response makeResponse(final FitNesseContext context, final Request reques
3234
intializeResponse(request);
3335

3436
if (shouldNotDelete())
35-
response.redirect(context.contextRoot, "FrontPage");
37+
response.redirect(context.contextRoot, WikiPageUtil.FRONT_PAGE);
3638
else
3739
tryToDeletePage(request);
3840

@@ -54,7 +56,7 @@ private void tryToDeletePage(Request request) throws UnsupportedEncodingExceptio
5456
}
5557

5658
private boolean shouldNotDelete() {
57-
return "FrontPage".equals(qualifiedPageName);
59+
return WikiPageUtil.FRONT_PAGE.equals(qualifiedPageName);
5860
}
5961

6062
private void intializeResponse(Request request) {
@@ -82,7 +84,7 @@ private String buildConfirmationHtml(final WikiPage root, final String qualified
8284
WikiPage wikiPage = crawler.getPage(path);
8385
if(wikiPage != null) {
8486
PageData pageData = wikiPage.getData();
85-
tags = pageData.getAttribute(PageData.PropertySUITES);
87+
tags = pageData.getAttribute(WikiPageProperty.SUITES);
8688
}
8789

8890
html.setTitle("Delete Confirmation");

src/fitnesse/responders/refactoring/RenamePageResponder.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package fitnesse.responders.refactoring;
44

55
import fitnesse.FitNesseContext;
6+
import fitnesse.wiki.WikiPageUtil;
67
import fitnesse.wiki.refactoring.ChangeReference;
78
import fitnesse.wiki.refactoring.PageReferenceRenamer;
89
import fitnesse.http.Request;
@@ -22,7 +23,7 @@ protected boolean getAndValidateNewParentPage(FitNesseContext context, Request r
2223
@Override
2324
protected boolean getAndValidateRefactoringParameters(Request request) {
2425
newName = request.getInput("newName");
25-
return (newName != null && PathParser.isSingleWikiWord(newName) && !"FrontPage".equals(oldNameOfPageToBeMoved));
26+
return (newName != null && PathParser.isSingleWikiWord(newName) && !WikiPageUtil.FRONT_PAGE.equals(oldNameOfPageToBeMoved));
2627
}
2728

2829
@Override

src/fitnesse/wiki/WikiPageUtil.java

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public class WikiPageUtil {
1212

1313
public static final String PAGE_HEADER = "PageHeader";
1414
public static final String PAGE_FOOTER = "PageFooter";
15+
public static final String FRONT_PAGE = "FrontPage";
1516

1617
public static void setPageContents(WikiPage page, String pageContents) {
1718
PageData pageData = page.getData();

test/fitnesse/responders/files/PublisherTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,13 @@ public class PublisherTest {
8383
assertPublishes("<a href=\"PageTwo.html\">&gt;SymPage</a>", "PageOne", "", pageOne);
8484
}
8585

86+
@Test public void frontPageCopiedToIndex() {
87+
WikiPageUtil.addPage(root, PathParser.parse("FrontPage"), "stuff");
88+
Publisher publisher = new Publisher(TEMPLATE, "out", root.getPageCrawler(), this::writer);
89+
publisher.traverse(root);
90+
Assert.assertEquals("out/root.htmlout/FrontPage.htmlout/index.html", paths);
91+
}
92+
8693
private void assertChildPage(String expected, String pageContent) {
8794
WikiPage parent = WikiPageUtil.addPage(root, PathParser.parse("TestParent"), "");
8895
WikiPageUtil.addPage(parent, PathParser.parse("TestSibling"), "");

0 commit comments

Comments
 (0)