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);