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.");
}
}