You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2013/01/18 18:39:12 UTC
svn commit: r1435264 - in
/geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki:
AbstractPage.java Page.java PageManager.java SiteExporter.java
Author: gawor
Date: Fri Jan 18 17:39:12 2013
New Revision: 1435264
URL: http://svn.apache.org/viewvc?rev=1435264&view=rev
Log:
fix generating relative navigation links for blog entries
Modified:
geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/AbstractPage.java
geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/Page.java
geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/PageManager.java
geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/SiteExporter.java
Modified: geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/AbstractPage.java
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/AbstractPage.java?rev=1435264&r1=1435263&r2=1435264&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/AbstractPage.java (original)
+++ geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/AbstractPage.java Fri Jan 18 17:39:12 2013
@@ -35,6 +35,8 @@ public class AbstractPage implements Ser
final String title;
final String url;
+ transient String directory;
+
public AbstractPage(Element root) throws Exception {
// org.apache.cxf.helpers.XMLUtils.printDOM(doc.getDocumentElement());
@@ -43,8 +45,15 @@ public class AbstractPage implements Ser
url = DOMUtils.getChildContent(root, "url");
}
+ public AbstractPage(AbstractPage source) {
+ this.id = source.id;
+ this.title = source.title;
+ this.url = source.url;
+ this.directory = source.directory;
+ }
+
public String getDirectory() {
- return "";
+ return directory == null ? "" : directory;
}
public String getPath() {
Modified: geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/Page.java
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/Page.java?rev=1435264&r1=1435263&r2=1435264&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/Page.java (original)
+++ geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/Page.java Fri Jan 18 17:39:12 2013
@@ -42,7 +42,7 @@ public class Page extends AbstractPage i
private static final long serialVersionUID = 1L;
- XMLGregorianCalendar modified;
+ final XMLGregorianCalendar modified;
final String parent;
final String spaceKey;
Map<String, String> attachments;
@@ -52,6 +52,7 @@ public class Page extends AbstractPage i
transient String renderedContent;
transient String renderedDivContent;
transient String divIdForContent;
+
transient SiteExporter exporter;
public Page(Document doc) throws Exception {
@@ -113,6 +114,20 @@ public class Page extends AbstractPage i
}
}
+ /*
+ * Makes a shallow copy without any content
+ */
+ public Page(Page source) {
+ super(source);
+ this.modified = source.modified;
+ this.parent = source.parent;
+ this.spaceKey = source.spaceKey;
+ this.attachments = source.attachments;
+ this.includes = source.includes;
+ this.childrenOf = source.childrenOf;
+ this.exporter = source.exporter;
+ }
+
public boolean hasChildrenOf(String t, int d) {
if (childrenOf == null) {
return false;
@@ -193,7 +208,7 @@ public class Page extends AbstractPage i
}
public Space getSpace() {
- return exporter.getSpace(spaceKey);
+ return SiteExporter.getSpace(spaceKey);
}
public boolean hasChildren() {
@@ -211,4 +226,5 @@ public class Page extends AbstractPage i
protected SiteExporter getExporter() {
return exporter;
}
+
}
Modified: geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/PageManager.java
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/PageManager.java?rev=1435264&r1=1435263&r2=1435264&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/PageManager.java (original)
+++ geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/PageManager.java Fri Jan 18 17:39:12 2013
@@ -19,28 +19,45 @@
package org.apache.cxf.cwiki;
+import java.util.HashMap;
+import java.util.Map;
+
/**
*
*/
public class PageManager {
private SiteExporter exporter;
+ private String dir;
+ private Map<String, Page> pages = new HashMap<String, Page>();
public PageManager(SiteExporter exporter) {
this.exporter = exporter;
}
+ public void setDirectory(String dir) {
+ this.dir = dir;
+ }
+
public Page getPage(String spaceKey, String title) throws Exception {
- Page page = exporter.findPage(title);
- if (page != null) {
- String s = page.getContent();
- if (s == null) {
- s = exporter.loadPageContent(page, null, null);
+ // XXX: spaceKey must match exporter.getSpace().getKey()
+
+ // lookup cached page
+ Page cachedPage = pages.get(title);
+ if (cachedPage == null) {
+ // lookup real page
+ Page page = exporter.findPage(title);
+ if (page != null) {
+ cachedPage = new Page(page);
+ cachedPage.directory = dir;
+ exporter.loadPageContent(cachedPage, null, null);
+ pages.put(title, cachedPage);
+ } else {
+ System.err.println("Page not found: " + title);
}
- } else {
- System.err.println("Page not found: " + title);
}
- return page;
+
+ return cachedPage;
}
}
Modified: geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/SiteExporter.java
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/SiteExporter.java?rev=1435264&r1=1435263&r2=1435264&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/SiteExporter.java (original)
+++ geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/SiteExporter.java Fri Jan 18 17:39:12 2013
@@ -350,6 +350,9 @@ public class SiteExporter implements Run
}
private void renderPages() throws Exception {
+ PageManager pageManager = new PageManager(this);
+ Renderer renderer = new Renderer(this);
+
int total = modifiedPages.size();
int count = 0;
for (Page p : modifiedPages) {
@@ -364,8 +367,8 @@ public class SiteExporter implements Run
ctx.put("page", p);
ctx.put("body", p.getContent());
ctx.put("confluenceUri", ROOT);
- ctx.put("pageManager", new PageManager(this));
- ctx.put("renderer", new Renderer(this));
+ ctx.put("pageManager", pageManager);
+ ctx.put("renderer", renderer);
File file = new File(outputDir, p.createFileName());
boolean isNew = !file.exists();
@@ -387,6 +390,9 @@ public class SiteExporter implements Run
}
private void renderBlog() throws Exception {
+ PageManager pageManager = new PageManager(this);
+ Renderer renderer = new Renderer(this);
+
int total = modifiedBlog.size();
int count = 0;
for (BlogEntrySummary entry : modifiedBlog) {
@@ -397,14 +403,15 @@ public class SiteExporter implements Run
String body = renderPage(entry);
body = updateContentLinks(entry, body, null, mainDivClass);
+ pageManager.setDirectory(entry.getDirectory());
VelocityContext ctx = new VelocityContext();
ctx.put("autoexport", this);
ctx.put("page", entry);
ctx.put("body", body);
ctx.put("confluenceUri", ROOT);
- ctx.put("pageManager", new PageManager(this));
- ctx.put("renderer", new Renderer(this));
+ ctx.put("pageManager", pageManager);
+ ctx.put("renderer", renderer);
File file = new File(outputDir, entry.getPath());
file.getParentFile().mkdirs();