Author: aadamchik
Date: Mon Dec 25 02:37:18 2006
New Revision: 490125

URL: http://svn.apache.org/viewvc?view=rev&rev=490125
Log:
removing dependency on cayenne core classes

Modified:
    incubator/cayenne/main/trunk/other/build-maven-plugin/pom.xml
    
incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/confluence/DocPageRenderer.java

Modified: incubator/cayenne/main/trunk/other/build-maven-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/other/build-maven-plugin/pom.xml?view=diff&rev=490125&r1=490124&r2=490125
==============================================================================
--- incubator/cayenne/main/trunk/other/build-maven-plugin/pom.xml (original)
+++ incubator/cayenne/main/trunk/other/build-maven-plugin/pom.xml Mon Dec 25 
02:37:18 2006
@@ -51,10 +51,5 @@
                        <artifactId>velocity</artifactId>
                        <version>1.4</version>
                </dependency>
-               <dependency>
-                       <groupId>org.apache.cayenne.core</groupId>
-                       <artifactId>cayenne-jdk1.4</artifactId>
-                       <version>${version}</version>
-               </dependency>
        </dependencies>
 </project>

Modified: 
incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/confluence/DocPageRenderer.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/confluence/DocPageRenderer.java?view=diff&rev=490125&r1=490124&r2=490125
==============================================================================
--- 
incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/confluence/DocPageRenderer.java
 (original)
+++ 
incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/confluence/DocPageRenderer.java
 Mon Dec 25 02:37:18 2006
@@ -27,8 +27,6 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.gen.ClassGeneratorResourceLoader;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
@@ -37,209 +35,220 @@
 import 
org.objectstyle.confluence.rpc.soap_axis.confluenceservice_v1.ConfluenceSoapService;
 
 /**
- * Extracts embedded links from Confluence documentation and converts them to
- * local fs references
+ * Extracts embedded links from Confluence documentation and converts them to 
local fs
+ * references
  * 
  * @author Cris Daniluk
  */
 public class DocPageRenderer {
 
-       private static final String URL_PREFIX = "/confluence";
+    private static final String URL_PREFIX = "/confluence";
 
-       /**
-        * Only attachments within the page are supported right now. This could
-        * easily be adjusted to find attachments in external documents if
-        * necessary.
-        */
-       private static final Pattern attachmentPattern = Pattern
-                       .compile("(href|src)=\"" + URL_PREFIX
-                                       + 
"/download/attachments/(.*?)/(.*?)\"");
-
-       /**
-        * When browsing the local filesystem, browsers like %20 (hex encoded)
-        * instead of + (legacy HTTP 0.9) for spaces.
-        */
-       private static final Pattern spaceEncoderPattern = Pattern
-                       .compile("href=\"(?!http://).*?\\+.*?\"");
-
-       /**
-        * Not all images are supported - only the ones referenced by current 
docs.
-        */
-       private static final Pattern confluenceImagePattern = Pattern
-                       .compile("src=\"" + URL_PREFIX + 
"/images/icons/(.*?)\"");
-
-       /**
-        * Take any confluence links to non-doc content and add the url
-        */
-       private Pattern confluenceLinkPattern = Pattern.compile("href=\"("
-                       + URL_PREFIX + "/display/.*?)\"");
-
-       private Pattern embeddedLinkPattern;
-
-       private ConfluenceSoapService service;
-
-       private String token;
-
-       private String spaceKey;
-
-       private String baseUrl;
-
-       private VelocityContext velCtxt;
-
-       private Template pageTemplate;
-
-       public DocPageRenderer(ConfluenceSoapService service, String baseUrl,
-                       String token, String spaceKey, String template) throws 
Exception {
-
-               // Note that these regexps have a fairly narrow capture - since 
the HTML
-               // is
-               // machine-generated,
-               // we're kind of assuming it is well-formed
-               embeddedLinkPattern = Pattern.compile("href=\"" + URL_PREFIX
-                               + "/display/" + spaceKey + "/(.*?)\"");
-
-               this.service = service;
-               this.baseUrl = baseUrl;
-               this.token = token;
-               this.spaceKey = spaceKey;
-
-               velCtxt = new VelocityContext();
-
-               initializeClassTemplate(template);
-       }
-
-       private void initializeClassTemplate(String template) throws Exception {
-               VelocityEngine velocityEngine = new VelocityEngine();
-               try {
-
-                       // use ClasspathResourceLoader for velocity templates 
lookup
-                       // if Cayenne URL is not null, load resource from this 
URL
-                       Properties props = new Properties();
-
-                       // null logger that will prevent velocity.log from 
being generated
-                       props.put(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,
-                                       NullLogSystem.class.getName());
-
-                       props.put("resource.loader", "cayenne");
-
-                       props.put("cayenne.resource.loader.class",
-                                       
ClassGeneratorResourceLoader.class.getName());
-
-                       velocityEngine.init(props);
-               } catch (Exception ex) {
-                       throw new CayenneRuntimeException("Can't initialize 
Velocity", ex);
-               }
-
-               pageTemplate = velocityEngine.getTemplate(template);
-       }
-
-       public void render(DocPage page, Writer out) throws Exception {
-
-               // Add the TOC, unless this is the top-level page
-               StringBuffer toc = new StringBuffer();
-               if (page.getParentRef() != null) {
-                       toc.append("<div id=\"cayenne_toc\">\n");
-
-                       DocPage root = page.getRoot();
-
-                       iterateChildren(toc, page, root);
-                       toc.append("</div>\n");
-               }
-
-               // Figure out the level of nesting for relative links
-               String basePath = "";
-               for (int i = 1; i <= page.getDepth(); i++) {
-                       basePath += "../";
-               }
-
-               String renderedContent = null;
-               try {
-                       renderedContent = service.renderContent(token, 
spaceKey, page
-                                       .getId(), page.getRawContent(), new 
HashMap(Collections
-                                       .singletonMap("style", "clean")));
-               } catch (Throwable t) {
-                       // could have hit a DOS prevention bit so
-                       // sleep for 250ms and try again
-                       Thread.sleep(250);
-                       renderedContent = service.renderContent(token, 
spaceKey, page
-                                       .getId(), page.getRawContent(), new 
HashMap(Collections
-                                       .singletonMap("style", "clean")));
-               }
-               // Replace cross-doc links
-               Matcher linkMatcher = 
embeddedLinkPattern.matcher(renderedContent);
-               StringBuffer replacementBuffer = new StringBuffer();
-               while (linkMatcher.find()) {
-                       DocPage destPage = 
DocPage.getPageByTitle(linkMatcher.group(1)
-                                       .replace('+', ' '));
-
-                       // If we don't understand the link, just leave it alone 
to be safe
-                       if (destPage == null) {
-                               continue;
-                       }
-                       linkMatcher.appendReplacement(replacementBuffer, 
"href=\""
-                                       + basePath + destPage.getLinkPath() + 
"/index.html\"");
-               }
-               linkMatcher.appendTail(replacementBuffer);
-
-               renderedContent = replacementBuffer.toString();
-
-               // renderedContent =
-               // 
embeddedLinkPattern.matcher(renderedContent).replaceAll("href=\"$1/index.html\"");
-
-               // Replace attachment links
-               renderedContent = attachmentPattern.matcher(renderedContent)
-                               .replaceAll("$1=\"$3\"");
-
-               // Convert confluence images to relative links
-               renderedContent = 
confluenceImagePattern.matcher(renderedContent)
-                               .replaceAll("src=\"" + basePath + 
"images/$1\"");
-
-               // Replace wiki links
-               renderedContent = confluenceLinkPattern.matcher(renderedContent)
-                               .replaceAll("href=\"" + baseUrl + "$1\"");
-
-               // Convert local links with + to %20 to make browsers happy 
(wtf?)
-               Matcher matcher = spaceEncoderPattern.matcher(renderedContent);
-
-               replacementBuffer = new StringBuffer();
-               while (matcher.find()) {
-                       matcher.appendReplacement(replacementBuffer, 
matcher.group(0)
-                                       .replace("+", "%20"));
-               }
-               matcher.appendTail(replacementBuffer);
-
-               renderedContent = replacementBuffer.toString();
-
-               velCtxt.put("page", page);
-               velCtxt.put("basePath", basePath);
-               velCtxt.put("pageContent", toc.toString() + renderedContent);
-
-               pageTemplate.merge(velCtxt, out);
-
-       }
-
-       private void iterateChildren(StringBuffer toc, DocPage currentPage,
-                       DocPage basePage) {
-               toc.append("<ul>\n");
-               for (Iterator baseIter = basePage.getChildren().iterator(); 
baseIter
-                               .hasNext();) {
-
-                       DocPage child = (DocPage) baseIter.next();
-
-                       toc.append("<li>").append("<a href=\"");
-                       for (int i = 1; i <= currentPage.getDepth(); i++) {
-                               toc.append("../");
-                       }
-                       
toc.append(child.getLinkPath()).append("/index.html\">");
-                       toc.append(child.getTitle()).append("</a>");
-                       if (child.hasDescendent(currentPage)) {
-                               // render children
-                               iterateChildren(toc, currentPage, child);
-                       }
+    /**
+     * Only attachments within the page are supported right now. This could 
easily be
+     * adjusted to find attachments in external documents if necessary.
+     */
+    private static final Pattern attachmentPattern = 
Pattern.compile("(href|src)=\""
+            + URL_PREFIX
+            + "/download/attachments/(.*?)/(.*?)\"");
+
+    /**
+     * When browsing the local filesystem, browsers like %20 (hex encoded) 
instead of +
+     * (legacy HTTP 0.9) for spaces.
+     */
+    private static final Pattern spaceEncoderPattern = Pattern
+            .compile("href=\"(?!http://).*?\\+.*?\"");
+
+    /**
+     * Not all images are supported - only the ones referenced by current docs.
+     */
+    private static final Pattern confluenceImagePattern = 
Pattern.compile("src=\""
+            + URL_PREFIX
+            + "/images/icons/(.*?)\"");
+
+    /**
+     * Take any confluence links to non-doc content and add the url
+     */
+    private Pattern confluenceLinkPattern = Pattern.compile("href=\"("
+            + URL_PREFIX
+            + "/display/.*?)\"");
+
+    private Pattern embeddedLinkPattern;
+
+    private ConfluenceSoapService service;
+
+    private String token;
+
+    private String spaceKey;
+
+    private String baseUrl;
+
+    private VelocityContext velCtxt;
+
+    private Template pageTemplate;
+
+    public DocPageRenderer(ConfluenceSoapService service, String baseUrl, 
String token,
+            String spaceKey, String template) throws Exception {
+
+        // Note that these regexps have a fairly narrow capture - since the 
HTML
+        // is
+        // machine-generated,
+        // we're kind of assuming it is well-formed
+        embeddedLinkPattern = Pattern.compile("href=\""
+                + URL_PREFIX
+                + "/display/"
+                + spaceKey
+                + "/(.*?)\"");
+
+        this.service = service;
+        this.baseUrl = baseUrl;
+        this.token = token;
+        this.spaceKey = spaceKey;
+
+        velCtxt = new VelocityContext();
+
+        initializeClassTemplate(template);
+    }
+
+    private void initializeClassTemplate(String template) throws Exception {
+        VelocityEngine velocityEngine = new VelocityEngine();
+        try {
+
+            // use ClasspathResourceLoader for velocity templates lookup
+            // if Cayenne URL is not null, load resource from this URL
+            Properties props = new Properties();
+
+            // null logger that will prevent velocity.log from being generated
+            props.put(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, 
NullLogSystem.class
+                    .getName());
+
+            props.put("resource.loader", "cayenne");
+
+            props.put(
+                    "cayenne.resource.loader.class",
+                    "org.apache.cayenne.gen.ClassGeneratorResourceLoader");
+
+            velocityEngine.init(props);
+        }
+        catch (Exception ex) {
+            throw new RuntimeException("Can't initialize Velocity", ex);
+        }
+
+        pageTemplate = velocityEngine.getTemplate(template);
+    }
+
+    public void render(DocPage page, Writer out) throws Exception {
+
+        // Add the TOC, unless this is the top-level page
+        StringBuffer toc = new StringBuffer();
+        if (page.getParentRef() != null) {
+            toc.append("<div id=\"cayenne_toc\">\n");
+
+            DocPage root = page.getRoot();
+
+            iterateChildren(toc, page, root);
+            toc.append("</div>\n");
+        }
+
+        // Figure out the level of nesting for relative links
+        String basePath = "";
+        for (int i = 1; i <= page.getDepth(); i++) {
+            basePath += "../";
+        }
+
+        String renderedContent = null;
+        try {
+            renderedContent = service.renderContent(token, spaceKey, 
page.getId(), page
+                    .getRawContent(), new HashMap(Collections.singletonMap(
+                    "style",
+                    "clean")));
+        }
+        catch (Throwable t) {
+            // could have hit a DOS prevention bit so
+            // sleep for 250ms and try again
+            Thread.sleep(250);
+            renderedContent = service.renderContent(token, spaceKey, 
page.getId(), page
+                    .getRawContent(), new HashMap(Collections.singletonMap(
+                    "style",
+                    "clean")));
+        }
+        // Replace cross-doc links
+        Matcher linkMatcher = embeddedLinkPattern.matcher(renderedContent);
+        StringBuffer replacementBuffer = new StringBuffer();
+        while (linkMatcher.find()) {
+            DocPage destPage = 
DocPage.getPageByTitle(linkMatcher.group(1).replace(
+                    '+',
+                    ' '));
+
+            // If we don't understand the link, just leave it alone to be safe
+            if (destPage == null) {
+                continue;
+            }
+            linkMatcher.appendReplacement(replacementBuffer, "href=\""
+                    + basePath
+                    + destPage.getLinkPath()
+                    + "/index.html\"");
+        }
+        linkMatcher.appendTail(replacementBuffer);
+
+        renderedContent = replacementBuffer.toString();
+
+        // renderedContent =
+        // 
embeddedLinkPattern.matcher(renderedContent).replaceAll("href=\"$1/index.html\"");
+
+        // Replace attachment links
+        renderedContent = 
attachmentPattern.matcher(renderedContent).replaceAll(
+                "$1=\"$3\"");
+
+        // Convert confluence images to relative links
+        renderedContent = 
confluenceImagePattern.matcher(renderedContent).replaceAll(
+                "src=\"" + basePath + "images/$1\"");
+
+        // Replace wiki links
+        renderedContent = 
confluenceLinkPattern.matcher(renderedContent).replaceAll(
+                "href=\"" + baseUrl + "$1\"");
+
+        // Convert local links with + to %20 to make browsers happy (wtf?)
+        Matcher matcher = spaceEncoderPattern.matcher(renderedContent);
+
+        replacementBuffer = new StringBuffer();
+        while (matcher.find()) {
+            matcher.appendReplacement(replacementBuffer, 
matcher.group(0).replace(
+                    "+",
+                    "%20"));
+        }
+        matcher.appendTail(replacementBuffer);
+
+        renderedContent = replacementBuffer.toString();
+
+        velCtxt.put("page", page);
+        velCtxt.put("basePath", basePath);
+        velCtxt.put("pageContent", toc.toString() + renderedContent);
+
+        pageTemplate.merge(velCtxt, out);
+
+    }
+
+    private void iterateChildren(StringBuffer toc, DocPage currentPage, 
DocPage basePage) {
+        toc.append("<ul>\n");
+        for (Iterator baseIter = basePage.getChildren().iterator(); 
baseIter.hasNext();) {
+
+            DocPage child = (DocPage) baseIter.next();
+
+            toc.append("<li>").append("<a href=\"");
+            for (int i = 1; i <= currentPage.getDepth(); i++) {
+                toc.append("../");
+            }
+            toc.append(child.getLinkPath()).append("/index.html\">");
+            toc.append(child.getTitle()).append("</a>");
+            if (child.hasDescendent(currentPage)) {
+                // render children
+                iterateChildren(toc, currentPage, child);
+            }
 
-                       toc.append("</li>\n");
-               }
+            toc.append("</li>\n");
+        }
 
-               toc.append("</ul>\n");
-       }
+        toc.append("</ul>\n");
+    }
 }


Reply via email to