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/04/30 10:09:44 UTC
svn commit: r770107 - in
/camel/branches/camel-1.x/components/camel-saxon/src:
main/java/org/apache/camel/component/xquery/
test/java/org/apache/camel/component/xquery/
test/resources/org/apache/camel/component/xquery/
Author: ningjiang
Date: Thu Apr 30 08:09:43 2009
New Revision: 770107
URL: http://svn.apache.org/viewvc?rev=770107&view=rev
Log:
CAMEL-1559 support to get the vaule of in message header in XQuery
Added:
camel/branches/camel-1.x/components/camel-saxon/src/test/resources/org/apache/camel/component/xquery/transform_with_headers.xquery
Modified:
camel/branches/camel-1.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java
camel/branches/camel-1.x/components/camel-saxon/src/test/java/org/apache/camel/component/xquery/XQueryPropogateHeadersTest.java
Modified: camel/branches/camel-1.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java?rev=770107&r1=770106&r2=770107&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java (original)
+++ camel/branches/camel-1.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java Thu Apr 30 08:09:43 2009
@@ -417,20 +417,25 @@
protected void configureQuery(DynamicQueryContext dynamicQueryContext, Exchange exchange)
throws Exception {
addParameters(dynamicQueryContext, exchange.getProperties());
- addParameters(dynamicQueryContext, exchange.getIn().getHeaders());
+ addParameters(dynamicQueryContext, exchange.getIn().getHeaders(), "in.headers.");
+ dynamicQueryContext.setParameter("in.body", exchange.getIn().getBody());
addParameters(dynamicQueryContext, getParameters());
dynamicQueryContext.setParameter("exchange", exchange);
- Message out = exchange.getOut(false);
- if (out != null && exchange.getPattern().isOutCapable()) {
- dynamicQueryContext.setParameter("out", out);
+ if (exchange.getOut(false) != null && exchange.getPattern().isOutCapable()) {
+ dynamicQueryContext.setParameter("out.body", exchange.getOut().getBody());
+ addParameters(dynamicQueryContext, exchange.getOut().getHeaders(), "out.headers.");
}
}
-
+
protected void addParameters(DynamicQueryContext dynamicQueryContext, Map<String, Object> map) {
+ addParameters(dynamicQueryContext, map, "");
+ }
+
+ protected void addParameters(DynamicQueryContext dynamicQueryContext, Map<String, Object> map, String parameterPrefix) {
Set<Map.Entry<String, Object>> propertyEntries = map.entrySet();
for (Map.Entry<String, Object> entry : propertyEntries) {
- dynamicQueryContext.setParameter(entry.getKey(), entry.getValue());
+ dynamicQueryContext.setParameter(parameterPrefix + entry.getKey(), entry.getValue());
}
}
Modified: camel/branches/camel-1.x/components/camel-saxon/src/test/java/org/apache/camel/component/xquery/XQueryPropogateHeadersTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-saxon/src/test/java/org/apache/camel/component/xquery/XQueryPropogateHeadersTest.java?rev=770107&r1=770106&r2=770107&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-saxon/src/test/java/org/apache/camel/component/xquery/XQueryPropogateHeadersTest.java (original)
+++ camel/branches/camel-1.x/components/camel-saxon/src/test/java/org/apache/camel/component/xquery/XQueryPropogateHeadersTest.java Thu Apr 30 08:09:43 2009
@@ -28,7 +28,7 @@
public void testPropogateHeadersTest() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(1);
- mock.expectedBodiesReceived("<transformed subject=\"Hey\"><mail><subject>Hey</subject>"
+ mock.expectedBodiesReceived("<transformed sender=\"bar\" subject=\"Hey\"><mail><subject>Hey</subject>"
+ "<body>Hello world!</body></mail></transformed>");
mock.expectedHeaderReceived("foo", "bar");
@@ -66,7 +66,7 @@
return new RouteBuilder() {
public void configure() throws Exception {
from("direct:one")
- .to("xquery:org/apache/camel/component/xquery/transform.xquery")
+ .to("xquery:org/apache/camel/component/xquery/transform_with_headers.xquery")
.to("mock:result");
from("direct:two")
Added: camel/branches/camel-1.x/components/camel-saxon/src/test/resources/org/apache/camel/component/xquery/transform_with_headers.xquery
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-saxon/src/test/resources/org/apache/camel/component/xquery/transform_with_headers.xquery?rev=770107&view=auto
==============================================================================
--- camel/branches/camel-1.x/components/camel-saxon/src/test/resources/org/apache/camel/component/xquery/transform_with_headers.xquery (added)
+++ camel/branches/camel-1.x/components/camel-saxon/src/test/resources/org/apache/camel/component/xquery/transform_with_headers.xquery Thu Apr 30 08:09:43 2009
@@ -0,0 +1,4 @@
+declare variable $in.headers.foo as xs:string external;
+<transformed sender="{$in.headers.foo}" subject="{mail/subject}">
+{.}
+</transformed>
\ No newline at end of file