You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2008/12/18 04:23:16 UTC
svn commit: r727625 - in /activemq/camel/branches/camel-1.x: ./
camel-core/src/main/java/org/apache/camel/builder/
camel-core/src/main/java/org/apache/camel/model/dataformat/
components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/
c...
Author: ningjiang
Date: Wed Dec 17 19:23:16 2008
New Revision: 727625
URL: http://svn.apache.org/viewvc?rev=727625&view=rev
Log:
Merged revisions 725883,726339 via svnmerge from
https://svn.apache.org/repos/asf/activemq/camel/trunk
........
r725883 | janstey | 2008-12-12 09:35:13 +0800 (Fri, 12 Dec 2008) | 5 lines
CAMEL-1184 - Minor fixes to tidyMarkup data format.
Thanks to Ramon for the patch!
........
r726339 | ningjiang | 2008-12-14 10:44:07 +0800 (Sun, 14 Dec 2008) | 1 line
CAMEL-1184 fixed the build error
........
Modified:
activemq/camel/branches/camel-1.x/ (props changed)
activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsType.java
activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java
activemq/camel/branches/camel-1.x/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java
activemq/camel/branches/camel-1.x/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java
Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 17 19:23:16 2008
@@ -1 +1 @@
-/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932,713944,714032,717965,717989,718242,718273,718312-718515,719163-719184,719334,719339,719524,719662,719848,719851,719855,719864,719978-719979,720207,720435-720437,720806,721272,721331,721333-721334,721360,721669,721764,721813,721985,722005,722070,722110,722415,722438,722726,722845,722878,723264,723314,723325-723327,723409,723835,723966,724122,724619,724681,725040,725309-725320,725340,725351,725569-725572,725612,725652-725660,725715,726640-726645,726932,727113,727375,727377
+/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932,713944,714032,717965,717989,718242,718273,718312-718515,719163-719184,719334,719339,719524,719662,719848,719851,719855,719864,719978-719979,720207,720435-720437,720806,721272,721331,721333-721334,721360,721669,721764,721813,721985,722005,722070,722110,722415,722438,722726,722845,722878,723264,723314,723325-723327,723409,723835,723966,724122,724619,724681,725040,725309-725320,725340,725351,725569-725572,725612,725652-725660,725715,725883,726339,726640-726645,726932,727113,727375,727377
Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java?rev=727625&r1=727624&r2=727625&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java Wed Dec 17 19:23:16 2008
@@ -18,6 +18,8 @@
import java.util.zip.Deflater;
+import org.w3c.dom.Node;
+
import org.apache.camel.model.ProcessorType;
import org.apache.camel.model.dataformat.ArtixDSContentType;
import org.apache.camel.model.dataformat.ArtixDSDataFormat;
@@ -163,11 +165,11 @@
}
/**
- * Return TidyMarkup HTML DataFormat (an XML Document) either
+ * Return TidyMarkup in the default format
* as {@link org.w3c.dom.Node}
*/
public T tidyMarkup() {
- return dataFormat(new TidyMarkupDataFormat(String.class));
+ return dataFormat(new TidyMarkupDataFormat(Node.class));
}
Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsType.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsType.java?rev=727625&r1=727624&r2=727625&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsType.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsType.java Wed Dec 17 19:23:16 2008
@@ -40,7 +40,7 @@
// @XmlElementRef
@XmlElements({
@XmlElement(required = false, name = "artixDS", type = ArtixDSDataFormat.class),
- @XmlElement(required = false, name = "csv", type = CsvDataFormat.class),
+ @XmlElement(required = false, name = "csv", type = CsvDataFormat.class),
@XmlElement(required = false, name = "flatpack", type = FlatpackDataFormat.class),
@XmlElement(required = false, name = "hl7", type = HL7DataFormat.class),
@XmlElement(required = false, name = "jaxb", type = JaxbDataFormat.class),
Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java?rev=727625&r1=727624&r2=727625&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/dataformat/TidyMarkupDataFormat.java Wed Dec 17 19:23:16 2008
@@ -44,8 +44,9 @@
public TidyMarkupDataFormat(Class<?> dataObjectType) {
this();
- assert dataObjectType.isAssignableFrom(String.class) || dataObjectType.isAssignableFrom(Node.class)
- : "TidyMarkupDataFormat only supports returning a String or a org.w3c.dom.Node object";
+ if (!dataObjectType.isAssignableFrom(String.class) && !dataObjectType.isAssignableFrom(Node.class)) {
+ throw new IllegalArgumentException("TidyMarkupDataFormat only supports returning a String or a org.w3c.dom.Node object");
+ }
this.setDataObjectType(dataObjectType);
}
Modified: activemq/camel/branches/camel-1.x/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java?rev=727625&r1=727624&r2=727625&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java Wed Dec 17 19:23:16 2008
@@ -32,9 +32,13 @@
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
+
import org.apache.camel.CamelException;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.ccil.cowan.tagsoup.HTMLSchema;
import org.ccil.cowan.tagsoup.Parser;
import org.ccil.cowan.tagsoup.Schema;
@@ -49,6 +53,11 @@
*/
public class TidyMarkupDataFormat implements DataFormat {
+ /*
+ * Our Logger
+ */
+ private static final transient Log LOG = LogFactory.getLog(TidyMarkupDataFormat.class);
+
private static final String NO = "no";
private static final String YES = "yes";
@@ -94,24 +103,29 @@
private Map<String, Object> parserPropeties;
/**
- * Unsupported operation
+ * Unsupported operation. We cannot create ugly HTML.
*/
public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
throw new CamelException("Marshalling from Well Formed HTML to ugly HTML is not supported."
- + " Only use <unmarshal><wellFormedHtml/><unmarshal>");
+ + " Only unmarshal is supported");
}
/**
* Unmarshal the data
+ *
+ * @throws Exception
*/
public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
- if (dataObjectType.isAssignableFrom(String.class)) {
- return asStringTidyMarkup(inputStream);
- } else if (dataObjectType.isAssignableFrom(Node.class)) {
+ ObjectHelper.notNull(dataObjectType, "dataObjectType", this);
+
+ if (dataObjectType.isAssignableFrom(Node.class)) {
return asNodeTidyMarkup(inputStream);
+ } else if (dataObjectType.isAssignableFrom(String.class)) {
+ return asStringTidyMarkup(inputStream);
} else {
- throw new CamelException("The return type [" + dataObjectType.getCanonicalName() + "] is unsupported");
+ throw new IllegalArgumentException("The return type [" + dataObjectType.getCanonicalName()
+ + "] is unsupported");
}
}
@@ -121,7 +135,6 @@
* @param inputStream
* @return String of XML
* @throws CamelException
- * @throws Exception
*/
private String asStringTidyMarkup(InputStream inputStream) throws CamelException {
@@ -134,16 +147,24 @@
return w.toString();
} catch (Exception e) {
- throw new CamelException("Failed to turn the HTML into tidy Markup", e);
+ throw new CamelException("Failed to convert the HTML to tidy Markup", e);
} finally {
try {
inputStream.close();
} catch (Exception e) {
- throw new CamelException("Failed to close the inputStream", e);
+ LOG.warn("Failed to close the inputStream");
}
}
}
+ /**
+ * Return the HTML Markup as an {@link org.w3c.dom.Node}
+ *
+ * @param inputStream
+ * The input Stream to convert
+ * @return org.w3c.dom.Node The HTML Markup as a DOM Node
+ * @throws CamelException
+ */
private Node asNodeTidyMarkup(InputStream inputStream) throws CamelException {
XMLReader parser = createTagSoupParser();
StringWriter w = new StringWriter();
@@ -155,7 +176,7 @@
transformer.transform(new SAXSource(parser, new InputSource(inputStream)), result);
return result.getNode();
} catch (Exception e) {
- throw new CamelException("Failed to convert the HTML to tidy Markup (returning as a DOM Node)");
+ throw new CamelException("Failed to convert the HTML to tidy Markup", e);
}
}
@@ -202,7 +223,7 @@
}
} catch (Exception e) {
- throw new CamelException("Problem setting the parser feature", e);
+ throw new IllegalArgumentException("Problem configuring the parser", e);
}
return reader;
}
Modified: activemq/camel/branches/camel-1.x/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java?rev=727625&r1=727624&r2=727625&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/MarshalDomainObjectTest.java Wed Dec 17 19:23:16 2008
@@ -52,6 +52,7 @@
template.sendBody("direct:in", order);
mock.assertIsSatisfied();
+
String body1 = mock.getExchanges().get(0).getIn().getBody(String.class);
String body2 = mock.getExchanges().get(1).getIn().getBody(String.class);