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 2012/12/19 21:59:44 UTC

svn commit: r1424104 - in /geronimo/site/trunk/wiki-export: conf/ src/main/java/org/apache/cxf/cwiki/

Author: gawor
Date: Wed Dec 19 20:59:43 2012
New Revision: 1424104

URL: http://svn.apache.org/viewvc?rev=1424104&view=rev
Log:
get cross site links working

Added:
    geronimo/site/trunk/wiki-export/conf/GMOxDOC12.cfg
    geronimo/site/trunk/wiki-export/conf/GMOxDOC20.cfg
    geronimo/site/trunk/wiki-export/conf/GMOxDOC21.cfg
    geronimo/site/trunk/wiki-export/conf/GMOxPMGT.cfg
    geronimo/site/trunk/wiki-export/conf/GMOxSAMPLES.cfg
Modified:
    geronimo/site/trunk/wiki-export/conf/GMOxDOC10.cfg
    geronimo/site/trunk/wiki-export/conf/GMOxDOC11.cfg
    geronimo/site/trunk/wiki-export/conf/GMOxDOC22.cfg
    geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/ConfluenceCleanupWriter.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/SiteExporter.java

Modified: geronimo/site/trunk/wiki-export/conf/GMOxDOC10.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxDOC10.cfg?rev=1424104&r1=1424103&r2=1424104&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxDOC10.cfg (original)
+++ geronimo/site/trunk/wiki-export/conf/GMOxDOC10.cfg Wed Dec 19 20:59:43 2012
@@ -1,6 +1,6 @@
 spaceKey:GMOxDOC10
 pageCacheFile:cache/GMOxDOC10.pageCache
 templateName:../template/GMOxDOC10_autoexport_template.xml
-outputDir:/
+outputDir:/GMOxDOC10
 globalPages:Navigation,Banner,QuickLinks
 mainDivClass:wiki-content maincontent

Modified: geronimo/site/trunk/wiki-export/conf/GMOxDOC11.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxDOC11.cfg?rev=1424104&r1=1424103&r2=1424104&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxDOC11.cfg (original)
+++ geronimo/site/trunk/wiki-export/conf/GMOxDOC11.cfg Wed Dec 19 20:59:43 2012
@@ -1,6 +1,6 @@
 spaceKey:GMOxDOC11
 pageCacheFile:cache/GMOxDOC11.pageCache
-templateName:../templates/GMOxDOC11_autoexport_template.xml
+templateName:../template/GMOxDOC11_autoexport_template.xml
 outputDir:/GMOxDOC11
 globalPages:Navigation,Banner,QuickLinks
 mainDivClass:wiki-content maincontent

Added: geronimo/site/trunk/wiki-export/conf/GMOxDOC12.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxDOC12.cfg?rev=1424104&view=auto
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxDOC12.cfg (added)
+++ geronimo/site/trunk/wiki-export/conf/GMOxDOC12.cfg Wed Dec 19 20:59:43 2012
@@ -0,0 +1,6 @@
+spaceKey:GMOxDOC12
+pageCacheFile:cache/GMOxDOC12.pageCache
+templateName:../template/GMOxDOC12_autoexport_template.xml
+outputDir:/GMOxDOC12
+globalPages:Navigation,Banner,QuickLinks
+mainDivClass:wiki-content maincontent

Added: geronimo/site/trunk/wiki-export/conf/GMOxDOC20.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxDOC20.cfg?rev=1424104&view=auto
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxDOC20.cfg (added)
+++ geronimo/site/trunk/wiki-export/conf/GMOxDOC20.cfg Wed Dec 19 20:59:43 2012
@@ -0,0 +1,6 @@
+spaceKey:GMOxDOC20
+pageCacheFile:cache/GMOxDOC20.pageCache
+templateName:../template/GMOxDOC20_autoexport_template.xml
+outputDir:/GMOxDOC20
+globalPages:Navigation,Banner,QuickLinks
+mainDivClass:wiki-content maincontent

Added: geronimo/site/trunk/wiki-export/conf/GMOxDOC21.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxDOC21.cfg?rev=1424104&view=auto
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxDOC21.cfg (added)
+++ geronimo/site/trunk/wiki-export/conf/GMOxDOC21.cfg Wed Dec 19 20:59:43 2012
@@ -0,0 +1,6 @@
+spaceKey:GMOxDOC21
+pageCacheFile:cache/GMOxDOC21.pageCache
+templateName:../template/GMOxDOC21_autoexport_template.xml
+outputDir:/GMOxDOC21
+globalPages:Navigation,Banner,QuickLinks
+mainDivClass:wiki-content maincontent

Modified: geronimo/site/trunk/wiki-export/conf/GMOxDOC22.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxDOC22.cfg?rev=1424104&r1=1424103&r2=1424104&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxDOC22.cfg (original)
+++ geronimo/site/trunk/wiki-export/conf/GMOxDOC22.cfg Wed Dec 19 20:59:43 2012
@@ -1,6 +1,6 @@
 spaceKey:GMOxDOC22
 pageCacheFile:cache/GMOxDOC22.pageCache
 templateName:../template/GMOxDOC22_autoexport_template.xml
-outputDir:/
+outputDir:/GMOxDOC22
 globalPages:Navigation,Banner,QuickLinks
 mainDivClass:wiki-content maincontent

Added: geronimo/site/trunk/wiki-export/conf/GMOxPMGT.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxPMGT.cfg?rev=1424104&view=auto
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxPMGT.cfg (added)
+++ geronimo/site/trunk/wiki-export/conf/GMOxPMGT.cfg Wed Dec 19 20:59:43 2012
@@ -0,0 +1,6 @@
+spaceKey:GMOxPMGT
+pageCacheFile:cache/GMOxPMGT.pageCache
+templateName:../template/GMOxPMGT_autoexport_template.xml
+outputDir:/GMOxPMGT
+globalPages:Navigation,Banner,QuickLinks
+mainDivClass:wiki-content maincontent

Added: geronimo/site/trunk/wiki-export/conf/GMOxSAMPLES.cfg
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/conf/GMOxSAMPLES.cfg?rev=1424104&view=auto
==============================================================================
--- geronimo/site/trunk/wiki-export/conf/GMOxSAMPLES.cfg (added)
+++ geronimo/site/trunk/wiki-export/conf/GMOxSAMPLES.cfg Wed Dec 19 20:59:43 2012
@@ -0,0 +1,6 @@
+spaceKey:GMOxSAMPLES
+pageCacheFile:cache/GMOxSAMPLES.pageCache
+templateName:../template/GMOxSAMPLES_autoexport_template.xml
+outputDir:/GMOxSAMPLES
+globalPages:Navigation,Banner,QuickLinks
+mainDivClass:wiki-content maincontent

Modified: geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/ConfluenceCleanupWriter.java
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/ConfluenceCleanupWriter.java?rev=1424104&r1=1424103&r2=1424104&view=diff
==============================================================================
--- geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/ConfluenceCleanupWriter.java (original)
+++ geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/ConfluenceCleanupWriter.java Wed Dec 19 20:59:43 2012
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.cwiki;
 
+import java.io.File;
 import java.io.Writer;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -76,9 +77,13 @@ public class ConfluenceCleanupWriter ext
                     href = href.substring(0, href.indexOf('?'));
                 }
                 try {
-                    final Page p = exporter.findPageByURL(href);
+                    final Page p = SiteExporter.findPageWithURL(href);                    
                     if (p != null) {
-                        newAtts.addMapping("href", p.createFileName() + params);
+                        String prefix = getRelativePath(SiteExporter.rootOutputDir, page.getExporter().outputDir, p.getExporter().outputDir);
+                        if (prefix.length() != 0) {
+                            System.out.println(prefix);
+                        }
+                        newAtts.addMapping("href", prefix + p.createFileName() + params);
                     } else {
                         if (href.indexOf('~') == -1) {
                             //link to a user page is OK, don't warn about it
@@ -310,4 +315,29 @@ public class ConfluenceCleanupWriter ext
         }
     }
 
+    private static String getRelativePath(File root, File current, File other) throws Exception {
+        if (current.equals(other)) {
+            return "";
+        }
+        StringBuilder builder = new StringBuilder();
+        while (!root.equals(current)) {
+            current = current.getParentFile();
+            builder.append("../");
+        }
+        
+        String rootPath = root.getCanonicalPath();
+        String otherPath = other.getCanonicalPath();
+        
+        if (rootPath.equals(otherPath)) {
+            // nothing to do
+        } else if (otherPath.startsWith(rootPath)) {
+            String name = otherPath.substring(rootPath.length() + 1);
+            builder.append(name);
+            builder.append("/");
+        } else {
+            throw new RuntimeException("Non-relative locations: " + rootPath + " " + otherPath);
+        }       
+        
+        return builder.toString();
+    }
 }

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=1424104&r1=1424103&r2=1424104&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 Wed Dec 19 20:59:43 2012
@@ -231,7 +231,11 @@ public class Page implements Serializabl
         return exporter.getChildren(this);
     }
 
-    void setExporter(SiteExporter exporter) {
+    protected void setExporter(SiteExporter exporter) {
         this.exporter = exporter;
     }
+    
+    protected SiteExporter getExporter() {
+        return exporter;
+    }
 }

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=1424104&r1=1424103&r2=1424104&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 Wed Dec 19 20:59:43 2012
@@ -126,6 +126,8 @@ public class SiteExporter implements Run
     File outputDir = rootOutputDir;
 
     Template template;
+    
+    static List<SiteExporter> siteExporters;
 
     public SiteExporter(String fileName, boolean force) throws Exception {
         forceAll = force;
@@ -222,7 +224,11 @@ public class SiteExporter implements Run
         }
     }
     
-    public void doExport() throws Exception {
+    /**
+     * @return true if some pages have changed - rendering is needed
+     * @throws Exception
+     */
+    public boolean initialize() throws Exception {
         if (!forceAll) {
             loadPagesCache();
         }
@@ -235,7 +241,7 @@ public class SiteExporter implements Run
         
         if (modifiedPages.isEmpty() && checkRSS()) {
             System.out.println("(" + spaceKey + ") No changes detected from RSS");
-            return;
+            return false;
         }
         
         doLogin();
@@ -245,6 +251,15 @@ public class SiteExporter implements Run
 
         loadPages();
         
+        return true;
+    }
+    
+    public void doExport() throws Exception {
+        initialize();
+        render();
+    }
+    
+    protected void render() throws Exception {
         for (Page p : modifiedPages) {
             if (globalPages.contains(p.getTitle())) {
                 modifiedPages.clear();
@@ -262,8 +277,6 @@ public class SiteExporter implements Run
             renderPages();
             savePages();
         }
-        
-
     }
 
 
@@ -347,6 +360,8 @@ public class SiteExporter implements Run
             } else {
                 svnCommitMessage.append("Modified: " + file.getName() + "\n");                
             }
+            
+            p.setContent(null);
         }
     }
     void callSvn(String ... commands) throws Exception {
@@ -641,8 +656,13 @@ public class SiteExporter implements Run
             ObjectInputStream oin = new ObjectInputStream(fin);
             pages = CastUtils.cast((Map<?, ?>)oin.readObject());
             oin.close();
+            
+            for (Page p : pages.values()) {
+                p.setExporter(this);
+            }
         }
     }
+    
     public void loadPages() throws Exception {
         Document doc = XMLUtils.newDocument();
         Element el = doc.createElementNS(SOAPNS, "ns1:getPages");
@@ -860,6 +880,28 @@ public class SiteExporter implements Run
             }
         }
         
+        
+        List<SiteExporter> exporters = new ArrayList<SiteExporter>();
+        for (String file : files) {
+            exporters.add(new SiteExporter(file, forceAll));
+        }
+
+        List<SiteExporter> modified = new ArrayList<SiteExporter>();
+        for (SiteExporter exporter : exporters) {
+            if (exporter.initialize()) {
+                modified.add(exporter);
+            }
+        }
+        
+        // render stuff only if needed
+        if (!modified.isEmpty()) {
+            setSiteExporters(exporters);
+            for (SiteExporter exporter : modified) {
+                exporter.render();
+            }
+        }
+        
+        /*
         List<Thread> threads = new ArrayList<Thread>(files.size());
         for (String file : files) {
             Thread t = new Thread(new SiteExporter(file, forceAll));
@@ -869,6 +911,7 @@ public class SiteExporter implements Run
         for (Thread t : threads) {
             t.join();
         }
+        */
         
         if (commit) {
             File file = FileUtils.createTempFile("svncommit", "txt");
@@ -909,4 +952,17 @@ public class SiteExporter implements Run
         return page.getLink();
     }
 
+    private static void setSiteExporters(List<SiteExporter> exporters) {
+        siteExporters = exporters;
+    }
+    
+    public static Page findPageWithURL(String url) throws Exception {
+        for (SiteExporter exporter : siteExporters) {
+            Page p = exporter.findPageByURL(url);
+            if (p != null) {
+                return p;
+            }
+        }
+        return null;
+    }
 }