Return-Path: X-Original-To: apmail-geronimo-scm-archive@www.apache.org Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8E22DE294 for ; Sat, 26 Jan 2013 19:24:35 +0000 (UTC) Received: (qmail 40394 invoked by uid 500); 26 Jan 2013 19:24:35 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 40354 invoked by uid 500); 26 Jan 2013 19:24:35 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 40347 invoked by uid 99); 26 Jan 2013 19:24:35 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 26 Jan 2013 19:24:35 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 26 Jan 2013 19:24:32 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E3D772388AB8; Sat, 26 Jan 2013 19:24:12 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit 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 -0000 To: scm@geronimo.apache.org From: gawor@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130126192412.E3D772388AB8@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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("/"));