geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ga...@apache.org
Subject svn commit: r1438950 - /geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/ConfluenceCleanupWriter.java
Date Sat, 26 Jan 2013 19:24:12 GMT
Author: gawor
Date: Sat Jan 26 19:24:12 2013
New Revision: 1438950

URL: http://svn.apache.org/viewvc?rev=1438950&view=rev
Log:
improve cross space via id lookup

Modified:
    geronimo/site/trunk/wiki-export/src/main/java/org/apache/cxf/cwiki/ConfluenceCleanupWriter.java

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=1438950&r1=1438949&r2=1438950&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
Sat Jan 26 19:24:12 2013
@@ -103,6 +103,35 @@ public class ConfluenceCleanupWriter ext
         return null;
     }
     
+    private String findPageByID(String id) throws Exception {
+        String location = findPageByID(exporter, id);        
+        if (location == null) {
+            for (SiteExporter siteExporter : SiteExporter.siteExporters) {
+                if (exporter == siteExporter) {
+                    continue;
+                }
+                location = findPageByID(siteExporter, id);
+                if (location != null) {
+                    break;
+                }
+            }
+        }
+        return location;
+    }
+    
+    private String findPageByID(SiteExporter siteExporter, String url) throws Exception {
+        AbstractPage p = siteExporter.findPageByID(url);
+        if (p != null) {
+            String prefix = getRelativePath(SiteExporter.rootOutputDir, getPageDirectory(),
siteExporter.outputDir);
+            String location = prefix + p.getPath();
+            if (exporter != siteExporter) {
+                System.out.println("Cross space link (via id) to " + location);
+            }
+            return location;
+        }
+        return null;
+    }
+    
     //CHECKSTYLE:OFF
     public void startElement(String uri, String localName, String qName, final Attributes
atts)
         throws SAXException {
@@ -144,14 +173,23 @@ public class ConfluenceCleanupWriter ext
             } else if (href != null && href.startsWith("/confluence/plugins/")) {
                 newAtts.addMapping("href", SiteExporter.ROOT + href.substring(11));
             } else if (href != null && href.contains("/confluence/pages/viewpage.action"))
{
+                String params = "";
+                if (href.indexOf('#') != -1) {
+                    params = href.substring(href.indexOf('#'));
+                    href = href.substring(0, href.indexOf('#'));
+                }
                 int idx = href.indexOf("pageId=");
                 String id = href.substring(idx + 7);
-                Page p = exporter.findPageByID(id);
-                if (p != null) {
-                    newAtts.addMapping("href", p.createFileName());
-                } else {
-                    System.out.println("Could not find page for id: " + id 
-                                       + " linked from " + page.getTitle());
+                try {
+                    String location = findPageByID(id);
+                    if (location != null) {
+                          newAtts.addMapping("href", location + params);
+                    } else {
+                        System.out.println("Could not find page for id: " + id 
+                                           + " linked from " + page.getTitle());
+                    }   
+                } catch (Exception e) {
+                    throw new SAXException(e);
                 }
             } else if (href != null && href.contains("/confluence/download/attachments"))
{
                 href = href.substring(href.lastIndexOf("/"));



Mime
View raw message