Repository: camel
Updated Branches:
  refs/heads/master efee1f707 -> a030a2231


Unable to change DataFormat.contentTypeHeader value to false

JaxbDataFormat has a contentTypeHeader property with default value of TRUE. It 
should be able to change contentTypeHeader to FALSE.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a030a223
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a030a223
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a030a223

Branch: refs/heads/master
Commit: a030a22314eacafe416af749eb17b6a1046c4236
Parents: efee1f7
Author: leboev <konstantin.leb...@gmail.com>
Authored: Wed Aug 9 10:43:57 2017 +0300
Committer: Andrea Cosentino <anco...@gmail.com>
Committed: Wed Aug 9 15:09:05 2017 +0200

----------------------------------------------------------------------
 .../camel/model/DataFormatDefinition.java       | 11 +++++-----
 .../org/apache/camel/jaxb/CamelJaxbTest.java    | 21 ++++++++++++++++++++
 .../org/apache/camel/jaxb/CamelJaxbTest.xml     |  7 +++++++
 3 files changed, 33 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a030a223/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
index d07b454..b0a1ea2 100644
--- a/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
@@ -106,12 +106,11 @@ public class DataFormatDefinition extends IdentifiedType 
implements OtherAttribu
                 dataFormat = createDataFormat(routeContext);
                 if (dataFormat != null) {
                     // is enabled by default so assume true if null
-                    if (contentTypeHeader == null || contentTypeHeader) {
-                        try {
-                            setProperty(routeContext.getCamelContext(), 
dataFormat, "contentTypeHeader", Boolean.TRUE);
-                        } catch (Exception e) {
-                            // ignore as this option is optional and not all 
data formats support this
-                        }
+                    final boolean contentTypeHeader = this.contentTypeHeader 
== null || this.contentTypeHeader;
+                    try {
+                        setProperty(routeContext.getCamelContext(), 
dataFormat, "contentTypeHeader", contentTypeHeader);
+                    } catch (Exception e) {
+                        // ignore as this option is optional and not all data 
formats support this
                     }
                     // configure the rest of the options
                     configureDataFormat(dataFormat, 
routeContext.getCamelContext());

http://git-wip-us.apache.org/repos/asf/camel/blob/a030a223/components/camel-jaxb/src/test/java/org/apache/camel/jaxb/CamelJaxbTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jaxb/src/test/java/org/apache/camel/jaxb/CamelJaxbTest.java 
b/components/camel-jaxb/src/test/java/org/apache/camel/jaxb/CamelJaxbTest.java
index 8762925..3621381 100644
--- 
a/components/camel-jaxb/src/test/java/org/apache/camel/jaxb/CamelJaxbTest.java
+++ 
b/components/camel-jaxb/src/test/java/org/apache/camel/jaxb/CamelJaxbTest.java
@@ -114,6 +114,19 @@ public class CamelJaxbTest extends CamelTestSupport {
     }
 
     @Test
+    public void testMarshalWithoutContentType() throws Exception {
+        PersonType person = new PersonType();
+        person.setFirstName("foo");
+        person.setLastName("bar");
+
+        MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", 
MockEndpoint.class);
+        resultEndpoint.expectedMessageCount(1);
+        resultEndpoint.expectedHeaderReceived(Exchange.CONTENT_TYPE, null);
+        template.sendBody("direct:marshalWithoutContentType", person);
+        resultEndpoint.assertIsSatisfied();
+    }
+
+    @Test
     public void testCustomXmlStreamWriter() throws InterruptedException {
         PersonType person = new PersonType();
         person.setFirstName("foo");
@@ -179,6 +192,10 @@ public class CamelJaxbTest extends CamelTestSupport {
                 dataFormat.setSchemaLocation("person.xsd");
                 dataFormat.setIgnoreJAXBElement(false);
 
+                JaxbDataFormat dataFormatWithoutContentType = new 
JaxbDataFormat("org.apache.camel.foo.bar");
+                dataFormat.setIgnoreJAXBElement(false);
+                dataFormatWithoutContentType.setContentTypeHeader(false);
+
                 JaxbDataFormat filterEnabledFormat = new 
JaxbDataFormat("org.apache.camel.foo.bar");
                 filterEnabledFormat.setFilterNonXmlChars(true);
 
@@ -205,6 +222,10 @@ public class CamelJaxbTest extends CamelTestSupport {
                     .marshal(dataFormat)
                     .to("mock:result");
 
+                from("direct:marshalWithoutContentType")
+                    .marshal(dataFormatWithoutContentType)
+                    .to("mock:result");
+
                 from("direct:marshalFilteringEnabled")
                     .marshal(filterEnabledFormat)
                     .to("mock:result");

http://git-wip-us.apache.org/repos/asf/camel/blob/a030a223/components/camel-jaxb/src/test/resources/org/apache/camel/jaxb/CamelJaxbTest.xml
----------------------------------------------------------------------
diff --git 
a/components/camel-jaxb/src/test/resources/org/apache/camel/jaxb/CamelJaxbTest.xml
 
b/components/camel-jaxb/src/test/resources/org/apache/camel/jaxb/CamelJaxbTest.xml
index 86eef40..f0b902e 100644
--- 
a/components/camel-jaxb/src/test/resources/org/apache/camel/jaxb/CamelJaxbTest.xml
+++ 
b/components/camel-jaxb/src/test/resources/org/apache/camel/jaxb/CamelJaxbTest.xml
@@ -50,6 +50,13 @@
       <to uri="mock:result"/>
     </route>
     <route>
+      <from uri="direct:marshalWithoutContentType"/>
+      <marshal>
+        <jaxb contextPath="org.apache.camel.foo.bar" 
contentTypeHeader="false"/>
+      </marshal>
+      <to uri="mock:result"/>
+    </route>
+    <route>
       <from uri="direct:unmarshalFilteringEnabled"/>
       <unmarshal>
         <jaxb filterNonXmlChars="true" contextPath="org.apache.camel.foo.bar"/>

Reply via email to