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 2011/06/29 06:19:37 UTC
svn commit: r1140962 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/model/dataformat/
components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/
components/camel-jaxb/src/test/java/org/apache/camel/example/
components/camel-jaxb...
Author: ningjiang
Date: Wed Jun 29 04:19:37 2011
New Revision: 1140962
URL: http://svn.apache.org/viewvc?rev=1140962&view=rev
Log:
CAMEL-4162 Added an option fragment to JAXBDataFormat
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/example/SpringDataFormatPartialTest.java
camel/trunk/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatPartial.xml
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java?rev=1140962&r1=1140961&r2=1140962&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/JaxbDataFormat.java Wed Jun 29 04:19:37 2011
@@ -44,6 +44,8 @@ public class JaxbDataFormat extends Data
private Boolean filterNonXmlChars;
@XmlAttribute
private String encoding;
+ @XmlAttribute
+ private Boolean fragment;
// Partial encoding
@XmlAttribute
private String partClass;
@@ -82,6 +84,14 @@ public class JaxbDataFormat extends Data
public void setIgnoreJAXBElement(Boolean ignoreJAXBElement) {
this.ignoreJAXBElement = ignoreJAXBElement;
}
+
+ public void setFragment(Boolean fragment) {
+ this.fragment = fragment;
+ }
+
+ public Boolean getFragment() {
+ return fragment;
+ }
public Boolean getFilterNonXmlChars() {
return filterNonXmlChars;
@@ -135,6 +145,12 @@ public class JaxbDataFormat extends Data
} else { // the default value is false
setProperty(dataFormat, "filterNonXmlChars", Boolean.FALSE);
}
+ answer = ObjectHelper.toBoolean(getFragment());
+ if (answer != null && answer) {
+ setProperty(dataFormat, "fragment", Boolean.TRUE);
+ } else { // the default value is false
+ setProperty(dataFormat, "fragment", Boolean.FALSE);
+ }
if (partClass != null) {
setProperty(dataFormat, "partClass", partClass);
}
Modified: camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java?rev=1140962&r1=1140961&r2=1140962&view=diff
==============================================================================
--- camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java (original)
+++ camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java Wed Jun 29 04:19:37 2011
@@ -61,6 +61,7 @@ public class JaxbDataFormat extends Serv
private boolean ignoreJAXBElement = true;
private boolean filterNonXmlChars;
private String encoding;
+ private boolean fragment;
// partial support
private QName partNamespace;
private String partClass;
@@ -92,6 +93,9 @@ public class JaxbDataFormat extends Serv
if (charset != null) {
marshaller.setProperty(Marshaller.JAXB_ENCODING, charset);
}
+ if (isFragment()) {
+ marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
+ }
marshal(exchange, graph, stream, marshaller);
@@ -201,6 +205,14 @@ public class JaxbDataFormat extends Serv
public void setPrettyPrint(boolean prettyPrint) {
this.prettyPrint = prettyPrint;
}
+
+ public boolean isFragment() {
+ return fragment;
+ }
+
+ public void setFragment(boolean fragment) {
+ this.fragment = fragment;
+ }
public boolean isFilterNonXmlChars() {
return filterNonXmlChars;
Modified: camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/example/SpringDataFormatPartialTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/example/SpringDataFormatPartialTest.java?rev=1140962&r1=1140961&r2=1140962&view=diff
==============================================================================
--- camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/example/SpringDataFormatPartialTest.java (original)
+++ camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/example/SpringDataFormatPartialTest.java Wed Jun 29 04:19:37 2011
@@ -42,10 +42,13 @@ public class SpringDataFormatPartialTest
XPathExpression xpath = new XPathExpression("count(//*[namespace-uri() = 'http://example.camel.org/apache' and local-name() = 'po']) = 1");
xpath.setResultType(Boolean.class);
mock.allMessages().body().matches(xpath);
-
- template.sendBody("direct:marshal", bean);
-
+
+ template.sendBody("direct:marshal", bean);
mock.assertIsSatisfied();
+
+ //To make sure there is no XML declaration.
+ assertFalse("There should have no XML declaration.",
+ mock.getExchanges().get(0).getIn().getBody(String.class).startsWith("<?xml version="));
}
@Test
Modified: camel/trunk/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatPartial.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatPartial.xml?rev=1140962&r1=1140961&r2=1140962&view=diff
==============================================================================
--- camel/trunk/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatPartial.xml (original)
+++ camel/trunk/components/camel-jaxb/src/test/resources/org/apache/camel/example/springDataFormatPartial.xml Wed Jun 29 04:19:37 2011
@@ -29,6 +29,7 @@
<marshal>
<jaxb prettyPrint="false" contextPath="org.apache.camel.example"
partClass="org.apache.camel.example.PurchaseOrder"
+ fragment="true"
partNamespace="{http://example.camel.org/apache}po" />
</marshal>
<to uri="mock:marshal"/>