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"/>