fixed page content setting to work with confluence2 remote api; disabled illegal pagename framework which does not seem necessary for conf 4.2
diff --git a/sampleData/mediawiki/mediawikitests.properties b/sampleData/mediawiki/mediawikitests.properties
index cc7fd94..4655350 100644
--- a/sampleData/mediawiki/mediawikitests.properties
+++ b/sampleData/mediawiki/mediawikitests.properties
@@ -16,9 +16,9 @@
password=admin
wikitype=mediawiki
## All pages
-#pages=/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input1.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input10.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input11.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input12.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input13.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input14.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input2.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input3.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input4.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input5.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input6.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input8.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input9.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputBasicHtml.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputBild.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputCode.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputDefList.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputEncoded%C3%A5%C3%A4%C3%B6.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputEscBrace.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputEscBrace2.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHeaderEq.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtml2Macro.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlHeader.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlInvalid.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlList.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlTable.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputImagePx.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputImageSize.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLabel.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLinkNamespaceIssue.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLinkSpace.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLinksWS.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputMailto.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputMath.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputMedia.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputSplist.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableCleanup.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableCurly.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableDollar.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableLines.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableList.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableSpan.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputUserDate.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputWikipedia.txt
+pages=/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input1.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input10.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input11.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input12.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input13.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input14.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input2.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input3.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input4.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input5.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input6.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input8.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-Input9.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputBasicHtml.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputBild.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputCode.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputDefList.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputEncoded%C3%A5%C3%A4%C3%B6.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputEscBrace.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputEscBrace2.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHeaderEq.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtml2Macro.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlHeader.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlInvalid.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlList.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputHtmlTable.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputImagePx.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputImageSize.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLabel.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLinkNamespaceIssue.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLinkSpace.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputLinksWS.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputMailto.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputMath.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputMedia.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputSplist.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableCleanup.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableCurly.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableDollar.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableLines.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableList.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputTableSpan.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputUserDate.txt::/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputWikipedia.txt
## Test UDMF
-pages=/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputUserDate.txt
+#pages=/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/SampleMediawiki-InputUserDate.txt
## Test Comments/Discussion properties
#pages=/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/mediawiki/Comments_Pages/Clacks.txt
## Just one page
diff --git a/src/com/atlassian/uwc/ui/ConverterEngine.java b/src/com/atlassian/uwc/ui/ConverterEngine.java
index 08519a3..8d1eefb 100644
--- a/src/com/atlassian/uwc/ui/ConverterEngine.java
+++ b/src/com/atlassian/uwc/ui/ConverterEngine.java
@@ -98,7 +98,7 @@
* We want to allow users to override this so they can handle it themselves
* with converters.
*/
- private boolean illegalHandlingEnabled = true; //default = true
+ private boolean illegalHandlingEnabled = false; //default = false, as of Confluence 4.2 doesn't appear to be necessary
private boolean autoDetectSpacekeys = false; //default = false
private HashSet<String> attachedFiles;
@@ -492,9 +492,6 @@
converters = createOneConverter(illegallinksConvStr);
convertPages(pages, converters, "Checking for links to illegal pagenames.");
}
- else {
- log.warn("Illegal Name and Link Handling has been disabled. Skipping required converters.");
- }
}
/**
@@ -1848,6 +1845,8 @@
protected String sendPage(Page page, String parentId, ConfluenceServerSettings confSettings) {
//create wiki broker
RemoteWikiBroker broker = RemoteWikiBroker.getInstance();
+ //update page content to be xhtml
+ page = pageContentToXhtml(broker, confSettings, page);
//create page that broker can use
Hashtable pageTable = createPageTable(page, parentId);
//check for problems with settings
@@ -1877,6 +1876,20 @@
}
+ private Page pageContentToXhtml(RemoteWikiBroker broker,
+ ConfluenceServerSettings confSettings, Page page) {
+ try {
+ String xhtml = getContentAsXhtmlFormat(broker, confSettings, page.getConvertedText());
+ page.setConvertedText(xhtml);
+ } catch (Exception e) {
+ String errorMessage = "Could not transform wiki content in page: '"+page.getName()+
+ "' from markup to xhtml.";
+ log.error(Feedback.REMOTE_API_ERROR + ": " + errorMessage);
+ this.errors.addError(Feedback.REMOTE_API_ERROR, errorMessage, true);
+ }
+ return page;
+ }
+
/**
* creates a parameter table with the given page and parentId.
* @param page
@@ -2242,7 +2255,7 @@
}
protected void handleIllegalHandling(String key, String value) {
- boolean enabled = true; //default
+ boolean enabled = false; //default, confluence 4 doesn't appear to need this
value = value.trim();
if ("false".equals(value))
enabled = false;
diff --git a/src/com/atlassian/uwc/ui/ConverterEngineTest.java b/src/com/atlassian/uwc/ui/ConverterEngineTest.java
index 429460c..0c65c15 100644
--- a/src/com/atlassian/uwc/ui/ConverterEngineTest.java
+++ b/src/com/atlassian/uwc/ui/ConverterEngineTest.java
@@ -265,7 +265,7 @@
//test with uploading
//pages = 3, converters = 34, uploading = true
boolean sendToConfuence = true;
- int expected = 36 + 3 + (36 * 3) + 2 + (2*3) + 3 + 3 ;
+ int expected = 34 + 3 + (34 * 3) + 2 + (2*3) + 3 + 3 ;
int actual = tester.getNumberOfSteps(files, converters, sendToConfuence);
assertEquals(expected, actual);
@@ -275,15 +275,7 @@
expected -= 3;
actual = tester.getNumberOfSteps(files, converters, sendToConfuence);
assertEquals(expected, actual);
-
- //test with illegal handling disabled
- //pages = 3, converters = 35, uploading = false, illegal handling = false
- tester.handleNonConverterProperty(NONCONVERTER_ILLEGAL);
- assertFalse(tester.isIllegalHandlingEnabled());
- expected -= 8; //2 + (2*3) = conv + (conv * pages)
- actual = tester.getNumberOfSteps(files, converters, sendToConfuence);
- assertEquals(expected, actual);
-
+
}
public void testSendPage_basic() {
@@ -343,7 +335,7 @@
assertNotNull(comment.getTitle());
assertEquals("Re: Home", comment.getTitle());
assertNotNull(comment.getContent());
- assertEquals(input, comment.getContent());
+ assertEquals("<p>"+input+"</p>", comment.getContent());
assertNotNull(comment.getCreator());
assertEquals(settings.login, comment.getCreator());
String commentid = comment.getId();
@@ -407,7 +399,7 @@
assertNotNull(comment.getTitle());
assertEquals("Re: Home", comment.getTitle());
assertNotNull(comment.getContent());
- assertEquals(input, comment.getContent());
+ assertEquals("<p>"+input+"</p>", comment.getContent());
assertNotNull(comment.getCreator());
assertEquals(creator, comment.getCreator());
assertNotNull(comment.getCreated());
@@ -613,54 +605,54 @@
String testpropslocation = "test.basic.properties";
loadSettingsFromFile(settings, testpropslocation);
+ List<Page> pages = new Vector<Page>();
+ Page badpage = new Page(null);
+ badpage.setName("$BAD NAME"); //This should cause an exception.
+ badpage.setConvertedText("testing");
+
+ Page goodpage = new Page(null);
+ goodpage.setName("Good page");
+ goodpage.setConvertedText("testing");
+
+ pages.add(badpage);
+ pages.add(goodpage);
+ tester.writePages(pages , settings.spaceKey);
+ //firstly - if we do this wrong, the above throws an exception.
+ ConverterErrors errors = tester.getErrors();
//FIXME Illegal Page names appears to no longer be a thing?!
-// List<Page> pages = new Vector<Page>();
-// Page badpage = new Page(null);
-// badpage.setName("$BAD NAME"); //This should cause an exception.
-// badpage.setConvertedText("testing");
-//
-// Page goodpage = new Page(null);
-// goodpage.setName("Good page");
-// goodpage.setConvertedText("testing");
-//
-// pages.add(badpage);
-// pages.add(goodpage);
-// tester.writePages(pages , settings.spaceKey);
-// //firstly - if we do this wrong, the above throws an exception.
-// ConverterErrors errors = tester.getErrors();
-// assertFalse(errors.getErrors().isEmpty());
-// ConverterError error = (ConverterError) errors.getErrors().get(0);
-// assertEquals(Feedback.REMOTE_API_ERROR, error.type);
-// assertEquals("REMOTE_API_ERROR The Remote API threw an exception when it tried to upload page: \"$BAD NAME\".\n", error.getFeedbackWindowMessage());
-//
-// tester.getErrors().clear();
-// pages.clear();
-// badpage.setName("$BAD NAME 2");
-// goodpage.setName("Good page 2");
-// pages.add(badpage);
-// pages.add(goodpage);
-//
-// FilepathHierarchy hierarchy = new FilepathHierarchy();
-// HierarchyNode root = hierarchy.buildHierarchy(pages);
-// tester.writeHierarchy(root, 0, settings.spaceKey);
-// error = (ConverterError) errors.getErrors().get(0);
-// assertEquals(Feedback.REMOTE_API_ERROR, error.type);
-// assertEquals("REMOTE_API_ERROR The Remote API threw an exception when it tried to upload page: \"$BAD NAME 2\".\n", error.getFeedbackWindowMessage());
-//
-// //what happens if confluence fails in a way that does not throw an exception. See UWC-404
-// tester.getErrors().clear();
-// pages.clear();
-// Page badcontent = new Page(null);
-// badcontent.setName("OK Pagename");
-// String badtext = "\u001F";
-// badcontent.setConvertedText(badtext);
-// pages.add(badcontent);
-// tester.writePages(pages, settings.spaceKey);
-// assertFalse(errors.getErrors().isEmpty());
-// error = (ConverterError) errors.getErrors().get(0);
-// assertEquals(Feedback.REMOTE_API_ERROR, error.type);
-// assertEquals("REMOTE_API_ERROR Unknown problem occured while sending page \'OK Pagename\'. See atlassian-confluence.log for more details.\n", error.getFeedbackWindowMessage());
-//
+ assertFalse(errors.getErrors().isEmpty());
+ ConverterError error = (ConverterError) errors.getErrors().get(0);
+ assertEquals(Feedback.REMOTE_API_ERROR, error.type);
+ assertEquals("REMOTE_API_ERROR The Remote API threw an exception when it tried to upload page: \"$BAD NAME\".\n", error.getFeedbackWindowMessage());
+
+ tester.getErrors().clear();
+ pages.clear();
+ badpage.setName("$BAD NAME 2");
+ goodpage.setName("Good page 2");
+ pages.add(badpage);
+ pages.add(goodpage);
+
+ FilepathHierarchy hierarchy = new FilepathHierarchy();
+ HierarchyNode root = hierarchy.buildHierarchy(pages);
+ tester.writeHierarchy(root, 0, settings.spaceKey);
+ error = (ConverterError) errors.getErrors().get(0);
+ assertEquals(Feedback.REMOTE_API_ERROR, error.type);
+ assertEquals("REMOTE_API_ERROR The Remote API threw an exception when it tried to upload page: \"$BAD NAME 2\".\n", error.getFeedbackWindowMessage());
+
+ //what happens if confluence fails in a way that does not throw an exception. See UWC-404
+ tester.getErrors().clear();
+ pages.clear();
+ Page badcontent = new Page(null);
+ badcontent.setName("OK Pagename");
+ String badtext = "\u001F";
+ badcontent.setConvertedText(badtext);
+ pages.add(badcontent);
+ tester.writePages(pages, settings.spaceKey);
+ assertFalse(errors.getErrors().isEmpty());
+ error = (ConverterError) errors.getErrors().get(0);
+ assertEquals(Feedback.REMOTE_API_ERROR, error.type);
+ assertEquals("REMOTE_API_ERROR Unknown problem occured while sending page \'OK Pagename\'. See atlassian-confluence.log for more details.\n", error.getFeedbackWindowMessage());
+
}
public void testSendPage_MovePage() throws XmlRpcException, IOException {
@@ -1300,7 +1292,7 @@
BlogForXmlRpc blog = broker.getBlog(confsettings, confsettings.spaceKey, title);
assertNotNull(blog);
assertEquals(title, blog.getTitle());
- assertEquals(testcontent, blog.getContent());
+ assertEquals("<p>"+testcontent+"</p>", blog.getContent());
id = blog.getId();
//test updating the blog
@@ -1309,7 +1301,7 @@
tester.sendPage(page, parentid, settings);
blog = broker.getBlog(confsettings, confsettings.spaceKey, title);
assertNotNull(blog);
- assertEquals(testcontent2, blog.getContent());
+ assertEquals("<p>"+testcontent2+"</p>", blog.getContent());
String newid = blog.getId();
assertEquals(id, newid);
} catch (Exception e) {
@@ -2971,18 +2963,6 @@
fail("Not a BaseHierarchy!");
}
- public void testHandleNonConverterDisableIllegalHandling() {
-// test use switch
- String input = "Mywiki.0001.switch.illegal-handling=false";
- //haven't set handler yet, so should be default
- ConverterEngine.HierarchyHandler handler = tester.getHierarchyHandler();
- assertEquals(ConverterEngine.HierarchyHandler.DEFAULT, handler);
- //setting the handler
- assertTrue(tester.isIllegalHandlingEnabled());
- tester.handleNonConverterProperty(input);
- assertFalse(tester.isIllegalHandlingEnabled());
- }
-
public void testUsingPagenameHierarchy() {
ConverterEngine.HierarchyHandler handler = tester.getHierarchyHandler();
assertEquals(ConverterEngine.HierarchyHandler.DEFAULT, handler);
@@ -3057,6 +3037,7 @@
inputPages.add(page2);
//XXX Why twice?
+ tester.handleIllegalHandling("enable", "true");
tester.convertWithRequiredConverters(inputPages);
tester.convertWithRequiredConverters(inputPages);
@@ -3183,6 +3164,7 @@
tester.handleNonConverterProperty("abc.0000.illegalnames-urldecode.property=true");
//do the tests
+ tester.handleIllegalHandling("enable", "true");
tester.convertWithRequiredConverters(pages);
assertNotNull(pages);