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 2009/07/13 13:44:49 UTC

svn commit: r793557 - in /camel/branches/camel-1.x: ./ components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/ components/camel-jaxb/src/test/java/org/apache/camel/example/ components/camel-jaxb/src/test/resources/org/apache/camel/example/

Author: ningjiang
Date: Mon Jul 13 11:44:49 2009
New Revision: 793557

URL: http://svn.apache.org/viewvc?rev=793557&view=rev
Log:
Merged revisions 793547,793555 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r793547 | ningjiang | 2009-07-13 19:24:46 +0800 (Mon, 13 Jul 2009) | 1 line
  
  CAMEL-1828 Fixed the pretty print setting issue
........
  r793555 | ningjiang | 2009-07-13 19:40:53 +0800 (Mon, 13 Jul 2009) | 1 line
  
  Fixed the unit test error of my last commit
........

Modified:
    camel/branches/camel-1.x/   (props changed)
    camel/branches/camel-1.x/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
    camel/branches/camel-1.x/components/camel-jaxb/src/test/java/org/apache/camel/example/DataFormatTest.java
    camel/branches/camel-1.x/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatWithEncoding.xml

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jul 13 11:44:49 2009
@@ -1 +1 @@
-/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121,779143,779489,781314-781349,781775,781
 923,781974,781993,782557,782594,782681,782886,782918-782923,783204,783248,783363,783639,783704,785564,785584,785599,787206,787581,787598,787605,787928,788393,789121,789703,790560,790936,791379,791476,791767,792038,792381,792398,792899,793359,793518
+/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121,779143,779489,781314-781349,781775,781
 923,781974,781993,782557,782594,782681,782886,782918-782923,783204,783248,783363,783639,783704,785564,785584,785599,787206,787581,787598,787605,787928,788393,789121,789703,790560,790936,791379,791476,791767,792038,792381,792398,792899,793359,793518,793547-793555

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

Modified: camel/branches/camel-1.x/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java?rev=793557&r1=793556&r2=793557&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java (original)
+++ camel/branches/camel-1.x/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java Mon Jul 13 11:44:49 2009
@@ -56,7 +56,9 @@
         try {
             // must create a new instance of marshaller as its not thred safe
             Marshaller marshaller = getContext().createMarshaller();
-
+            if (isPrettyPrint()) {
+                marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+            } 
             // exchange take precedense over encoding option
             String charset = exchange.getProperty(Exchange.CHARSET_NAME, String.class);
             if (charset == null) {

Modified: camel/branches/camel-1.x/components/camel-jaxb/src/test/java/org/apache/camel/example/DataFormatTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-jaxb/src/test/java/org/apache/camel/example/DataFormatTest.java?rev=793557&r1=793556&r2=793557&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-jaxb/src/test/java/org/apache/camel/example/DataFormatTest.java (original)
+++ camel/branches/camel-1.x/components/camel-jaxb/src/test/java/org/apache/camel/example/DataFormatTest.java Mon Jul 13 11:44:49 2009
@@ -17,43 +17,81 @@
 package org.apache.camel.example;
 
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.converter.jaxb.JaxbDataFormat;
+import org.apache.camel.foo.bar.PersonType;
 import org.apache.camel.spi.DataFormat;
 
 /**
  * @version $Revision$
  */
 public class DataFormatTest extends ContextTestSupport {
+    
+    private MockEndpoint resultEndpoint;
+    
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
+    }
 
     public void testMarshalThenUnmarshalBean() throws Exception {
+        
         PurchaseOrder bean = new PurchaseOrder();
         bean.setName("Beer");
         bean.setAmount(23);
         bean.setPrice(2.5);
-
-        MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
+       
         resultEndpoint.expectedBodiesReceived(bean);
 
         template.sendBody("direct:start", bean);
 
         resultEndpoint.assertIsSatisfied();
     }
+    
+    public void testMarshalPrettyPrint() throws Exception {
+        PersonType person = new PersonType();
+        person.setFirstName("Willem");
+        person.setLastName("Jiang");
+        resultEndpoint.expectedMessageCount(1);
+        
+        template.sendBody("direct:prettyPrint", person);
+        
+        resultEndpoint.assertIsSatisfied();
+        
+        Exchange exchange = resultEndpoint.getExchanges().get(0);
+        
+        String result = exchange.getIn().getBody(String.class);
+        assertNotNull("The result should not be null", result);
+        int indexPerson = result.indexOf("<Person>");
+        int indexFirstName = result.indexOf("<firstName>");
+
+        assertTrue("we should find the <Person>", indexPerson > 0);
+        assertTrue("we should find the <firstName>", indexFirstName > 0);
+        assertTrue("There should some sapce between <Person> and <firstName>", indexFirstName - indexPerson > 8);
+    }
 
 
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
 
-                DataFormat jaxb = new JaxbDataFormat("org.apache.camel.example");
-
+                JaxbDataFormat example = new JaxbDataFormat("org.apache.camel.example");
+                JaxbDataFormat person = new JaxbDataFormat("org.apache.camel.foo.bar");
+                person.setPrettyPrint(true);
+                
                 from("direct:start").
-                        marshal(jaxb).
+                        marshal(example).
                         to("direct:marshalled");
 
                 from("direct:marshalled").
-                        unmarshal(jaxb).
+                        unmarshal(example).
+                        to("mock:result");
+                
+                from("direct:prettyPrint").
+                        marshal(person).
                         to("mock:result");
             }
         };

Modified: camel/branches/camel-1.x/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatWithEncoding.xml
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatWithEncoding.xml?rev=793557&r1=793556&r2=793557&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatWithEncoding.xml (original)
+++ camel/branches/camel-1.x/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatWithEncoding.xml Mon Jul 13 11:44:49 2009
@@ -27,7 +27,7 @@
         <route>
             <from uri="direct:start"/>
             <marshal>
-                <jaxb prettyPrint="true" encoding="iso-8859-1" contextPath="org.apache.camel.example"/>
+                <jaxb prettyPrint="false" encoding="iso-8859-1" contextPath="org.apache.camel.example"/>
             </marshal>
             <to uri="mock:result"/>
         </route>