You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2008/12/17 17:56:18 UTC

svn commit: r727436 - in /activemq/camel/branches/camel-1.x: ./ tooling/maven/maven-html-to-pdf/pom.xml tooling/maven/maven-html-to-pdf/src/main/java/org/apache/camel/maven/HtmlToPdfMojo.java

Author: janstey
Date: Wed Dec 17 08:56:17 2008
New Revision: 727436

URL: http://svn.apache.org/viewvc?rev=727436&view=rev
Log:
Merged revisions 727435 via svnmerge from 
https://svn.apache.org/repos/asf/activemq/camel/trunk

........
  r727435 | janstey | 2008-12-17 13:23:01 -0330 (Wed, 17 Dec 2008) | 1 line
  
  CAMEL-1189 - Fix issue with characters getting mangled during the user guide generation
........

Modified:
    activemq/camel/branches/camel-1.x/   (props changed)
    activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/pom.xml
    activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/src/main/java/org/apache/camel/maven/HtmlToPdfMojo.java

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/pom.xml?rev=727436&r1=727435&r2=727436&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/pom.xml (original)
+++ activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/pom.xml Wed Dec 17 08:56:17 2008
@@ -31,10 +31,9 @@
 
   <dependencies>
     <dependency>
-      <groupId>jtidy</groupId>
-      <artifactId>jtidy</artifactId>
-      <version>4aug2000r7-dev</version>
-    </dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-tagsoup</artifactId>
+    </dependency>    
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>

Modified: activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/src/main/java/org/apache/camel/maven/HtmlToPdfMojo.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/src/main/java/org/apache/camel/maven/HtmlToPdfMojo.java?rev=727436&r1=727435&r2=727436&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/src/main/java/org/apache/camel/maven/HtmlToPdfMojo.java (original)
+++ activemq/camel/branches/camel-1.x/tooling/maven/maven-html-to-pdf/src/main/java/org/apache/camel/maven/HtmlToPdfMojo.java Wed Dec 17 08:56:17 2008
@@ -18,28 +18,14 @@
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
-import java.io.IOException;
 import java.io.PrintWriter;
+import java.net.MalformedURLException;
 import java.net.URL;
 
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.tidy.Tidy;
-
-
+import org.apache.camel.dataformat.tagsoup.TidyMarkupDataFormat;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
@@ -280,44 +266,37 @@
         return name + ".html";
     }
 
-    private String downloadContent() throws IOException, TransformerFactoryConfigurationError, TransformerException, MojoExecutionException {
+    private String downloadContent() throws MalformedURLException, MojoExecutionException {
+        String contentTag = "<div class=\"" + contentDivClass + "\"";
+        String content = "";
 
         getLog().info("Downloading: " + page);
-        URL url = new URL(page);
-        Tidy tidy = new Tidy();
-        ByteArrayOutputStream result = new ByteArrayOutputStream();
-        tidy.setErrout(new PrintWriter(result));
-        Document doc;
+        URL url = new URL(page);        
+        
         try {
-            doc = tidy.parseDOM(new BufferedInputStream(url.openStream()), new ByteArrayOutputStream());
+            TidyMarkupDataFormat dataFormat = new TidyMarkupDataFormat();
+            dataFormat.setMethod("html");
+            content = dataFormat.asStringTidyMarkup(new BufferedInputStream(url.openStream()));
         } catch (Throwable e) {
             if (errorOnDownloadFailure) {
-                getLog().debug(new String(result.toByteArray()), e);
                 throw new MojoExecutionException("Download or validation of '" + page + "' failed: " + e);
             } else {
-                getLog().debug(new String(result.toByteArray()), e);
                 getLog().error("Download or validation of '" + page + "' failed: " + e);
                 return null;
             }
         }
 
-        NodeList nodeList = doc.getElementsByTagName("div");
-        for (int i = 0; i < nodeList.getLength(); ++i) {
-            Node node = nodeList.item(i);
-            NamedNodeMap nm = node.getAttributes();
-            Node attr = nm.getNamedItem("class");
-            if (attr != null && attr.getNodeValue().equalsIgnoreCase(contentDivClass)) {
-                // Write the wiki-content div to the content variable.
-                ByteArrayOutputStream contentData = new ByteArrayOutputStream(1024 * 100);
-                TransformerFactory tFactory = TransformerFactory.newInstance();
-                Transformer transformer = tFactory.newTransformer();
-                transformer.transform(new DOMSource(node), new StreamResult(contentData));
-                String content = new String(contentData.toByteArray(), "UTF-8");
-                content = content.substring(content.indexOf("<div"));
-                return content;
+        int contentStart = content.indexOf(contentTag);
+        if (contentStart > 0) {
+            int contentEnd = content.indexOf(contentTag, contentStart + 1);
+            if (contentEnd > 0) {
+                return content.substring(contentStart, contentEnd);
+            } else {
+                return content.substring(contentStart);
             }
         }
-        throw new MojoExecutionException("The '" + page + "' page did not have a <div class=\"" + contentDivClass + "\"> element.");
+        
+        throw new MojoExecutionException("The '" + page + "' page did not have a " + contentTag + " element.");
     }
 
 }