You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/06/11 18:22:26 UTC
svn commit: r1134682 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/builder/
camel-core/src/main/java/org/apache/camel/language/simple/
camel-core/src/main/java/org/apache/camel/model/language/
camel-core/src/test/java/org/apache/camel/bu...
Author: davsclaus
Date: Sat Jun 11 16:22:25 2011
New Revision: 1134682
URL: http://svn.apache.org/viewvc?rev=1134682&view=rev
Log:
CAMEL-4090: Added resultType to simple expression. This allows end users to decide what the type of the evaluation should be. Can easily be configured in the DSL.
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleResultTypeRouteTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.xml
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/SimpleBuilderTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/Builder.java Sat Jun 11 16:22:25 2011
@@ -97,6 +97,14 @@ public final class Builder {
}
/**
+ * Returns a simple expression
+ */
+ public static ValueBuilder simple(String value, Class<?> resultType) {
+ Expression expression = ExpressionBuilder.simpleExpression(value);
+ return new ValueBuilder(expression);
+ }
+
+ /**
* Returns a predicate and value builder for headers on an exchange
*/
public static ValueBuilder header(String name) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java Sat Jun 11 16:22:25 2011
@@ -137,6 +137,13 @@ public abstract class BuilderSupport {
}
/**
+ * Returns a simple expression value builder
+ */
+ public SimpleBuilder simple(String value, Class<?> resultType) {
+ return SimpleBuilder.simple(value, resultType);
+ }
+
+ /**
* Returns a xpath expression value builder
*/
public XPathBuilder xpath(String value) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClause.java Sat Jun 11 16:22:25 2011
@@ -379,6 +379,18 @@ public class ExpressionClause<T> extends
}
/**
+ * Evaluates a <a href="http://camel.apache.org/simple.html">Simple
+ * expression</a>
+ *
+ * @param text the expression to be evaluated
+ * @param resultType the result type
+ * @return the builder to continue processing the DSL
+ */
+ public T simple(String text, Class<?> resultType) {
+ return delegate.simple(text, resultType);
+ }
+
+ /**
* Evaluates an <a href="http://camel.apache.org/xpath.html">XPath
* expression</a>
*
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java Sat Jun 11 16:22:25 2011
@@ -417,6 +417,21 @@ public class ExpressionClauseSupport<T>
}
/**
+ * Evaluates a <a href="http://camel.apache.org/simple.html">Simple
+ * expression</a>
+ *
+ * @param text the expression to be evaluated
+ * @param resultType the result type
+ * @return the builder to continue processing the DSL
+ */
+ public T simple(String text, Class<?> resultType) {
+ SimpleExpression expression = new SimpleExpression(text);
+ expression.setResultType(resultType);
+ setExpressionType(expression);
+ return result;
+ }
+
+ /**
* Evaluates an <a href="http://camel.apache.org/xpath.html">XPath
* expression</a>
*
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java Sat Jun 11 16:22:25 2011
@@ -19,6 +19,7 @@ package org.apache.camel.builder;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
+import org.apache.camel.language.simple.SimpleLanguage;
/**
* Creates an {@link org.apache.camel.language.Simple} language builder.
@@ -31,6 +32,7 @@ import org.apache.camel.Predicate;
public class SimpleBuilder implements Predicate, Expression {
private final String text;
+ private Class<?> resultType;
public SimpleBuilder(String text) {
this.text = text;
@@ -40,12 +42,39 @@ public class SimpleBuilder implements Pr
return new SimpleBuilder(text);
}
+ public static SimpleBuilder simple(String text, Class<?> resultType) {
+ SimpleBuilder answer = simple(text);
+ answer.setResultType(resultType);
+ return answer;
+ }
+
+ public Class<?> getResultType() {
+ return resultType;
+ }
+
+ public void setResultType(Class<?> resultType) {
+ this.resultType = resultType;
+ }
+
+ public SimpleBuilder resultType(Class<?> resultType) {
+ setResultType(resultType);
+ return this;
+ }
+
public boolean matches(Exchange exchange) {
return exchange.getContext().resolveLanguage("simple").createPredicate(text).matches(exchange);
}
public <T> T evaluate(Exchange exchange, Class<T> type) {
- return exchange.getContext().resolveLanguage("simple").createExpression(text).evaluate(exchange, type);
+ return createExpression(exchange).evaluate(exchange, type);
+ }
+
+ private Expression createExpression(Exchange exchange) {
+ SimpleLanguage simple = (SimpleLanguage) exchange.getContext().resolveLanguage("simple");
+ if (resultType != null) {
+ simple.setResultType(resultType);
+ }
+ return simple.createExpression(text);
}
public String toString() {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java Sat Jun 11 16:22:25 2011
@@ -91,8 +91,34 @@ import org.apache.camel.util.StringHelpe
*/
public class SimpleLanguage extends SimpleLanguageSupport {
+ // singleton for expressions without a result type
private static final SimpleLanguage SIMPLE = new SimpleLanguage();
+ private Class<?> resultType;
+
+ public Class<?> getResultType() {
+ return resultType;
+ }
+
+ public void setResultType(Class<?> resultType) {
+ this.resultType = resultType;
+ }
+
+ @Override
+ public boolean isSingleton() {
+ // we cannot be singleton as we have state
+ return false;
+ }
+
+ @Override
+ public Expression createExpression(String expression) {
+ Expression answer = super.createExpression(expression);
+ if (resultType != null) {
+ return ExpressionBuilder.convertToExpression(answer, resultType);
+ }
+ return answer;
+ }
+
/**
* Does the expression have the simple language start token?
*
@@ -111,6 +137,12 @@ public class SimpleLanguage extends Simp
return SIMPLE.createExpression(expression);
}
+ public static Expression simple(String expression, Class<?> resultType) {
+ SimpleLanguage answer = new SimpleLanguage();
+ answer.setResultType(resultType);
+ return answer.createExpression(expression);
+ }
+
protected Expression createSimpleExpressionDirectly(String expression) {
if (ObjectHelper.isEqualToAny(expression, "body", "in.body")) {
@@ -362,7 +394,4 @@ public class SimpleLanguage extends Simp
throw new ExpressionIllegalSyntaxException("File language syntax: " + remainder);
}
- public boolean isSingleton() {
- return true;
- }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java Sat Jun 11 16:22:25 2011
@@ -18,8 +18,14 @@ package org.apache.camel.model.language;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Expression;
+import org.apache.camel.Predicate;
+import org.apache.camel.builder.SimpleBuilder;
+
/**
* For expressions and predicates using the
* <a href="http://camel.apache.org/simple.html">simple language</a>
@@ -29,6 +35,8 @@ import javax.xml.bind.annotation.XmlRoot
@XmlRootElement(name = "simple")
@XmlAccessorType(XmlAccessType.FIELD)
public class SimpleExpression extends ExpressionDefinition {
+ @XmlAttribute
+ private Class<?> resultType;
public SimpleExpression() {
}
@@ -40,4 +48,25 @@ public class SimpleExpression extends Ex
public String getLanguage() {
return "simple";
}
+
+ public Class<?> getResultType() {
+ return resultType;
+ }
+
+ public void setResultType(Class<?> resultType) {
+ this.resultType = resultType;
+ }
+
+ @Override
+ public Expression createExpression(CamelContext camelContext) {
+ SimpleBuilder answer = new SimpleBuilder(getExpression());
+ answer.setResultType(resultType);
+ return answer;
+ }
+
+ @Override
+ public Predicate createPredicate(CamelContext camelContext) {
+ // SimpleBuilder is also a Predicate
+ return (Predicate) createExpression(camelContext);
+ }
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/builder/SimpleBuilderTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/SimpleBuilderTest.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/builder/SimpleBuilderTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/builder/SimpleBuilderTest.java Sat Jun 11 16:22:25 2011
@@ -41,4 +41,28 @@ public class SimpleBuilderTest extends T
assertEquals("foo", SimpleBuilder.simple("${body}").evaluate(exchange, String.class));
assertNull(SimpleBuilder.simple("${header.cheese}").evaluate(exchange, String.class));
}
+
+ public void testResultType() throws Exception {
+ exchange.getIn().setBody("foo");
+ exchange.getIn().setHeader("cool", true);
+
+ assertEquals("foo", SimpleBuilder.simple("${body}", String.class).evaluate(exchange, Object.class));
+ // not possible
+ assertEquals(null, SimpleBuilder.simple("${body}", int.class).evaluate(exchange, Object.class));
+
+ assertEquals(true, SimpleBuilder.simple("${header.cool}", boolean.class).evaluate(exchange, Object.class));
+ assertEquals("true", SimpleBuilder.simple("${header.cool}", String.class).evaluate(exchange, Object.class));
+ // not possible
+ assertEquals(null, SimpleBuilder.simple("${header.cool}", int.class).evaluate(exchange, Object.class));
+
+ assertEquals(true, SimpleBuilder.simple("${header.cool}").resultType(Boolean.class).evaluate(exchange, Object.class));
+ assertEquals("true", SimpleBuilder.simple("${header.cool}").resultType(String.class).evaluate(exchange, Object.class));
+ // not possible
+ assertEquals(null, SimpleBuilder.simple("${header.cool}").resultType(int.class).evaluate(exchange, Object.class));
+
+ // should be convertable to integers
+ assertEquals(9, SimpleBuilder.simple("9", int.class).evaluate(exchange, Object.class));
+ assertEquals(9, SimpleBuilder.simple("09", int.class).evaluate(exchange, Object.class));
+ assertEquals(9, SimpleBuilder.simple("0009", int.class).evaluate(exchange, Object.class));
+ }
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java Sat Jun 11 16:22:25 2011
@@ -18,6 +18,7 @@ package org.apache.camel.language;
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
@@ -48,6 +49,14 @@ public class SimpleTest extends Language
return jndi;
}
+ public void testResultType() throws Exception {
+ assertEquals(123, SimpleLanguage.simple("${header.bar}", int.class).evaluate(exchange, Object.class));
+ assertEquals("123", SimpleLanguage.simple("${header.bar}", String.class).evaluate(exchange, Object.class));
+ // should not be possible
+ assertEquals(null, SimpleLanguage.simple("${header.bar}", Date.class).evaluate(exchange, Object.class));
+ assertEquals(null, SimpleLanguage.simple("${header.unknown}", String.class).evaluate(exchange, Object.class));
+ }
+
public void testRefExpression() throws Exception {
assertExpressionResultInstanceOf("ref:myAnimal", Animal.class);
assertExpressionResultInstanceOf("${ref:myAnimal}", Animal.class);
Added: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleResultTypeRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleResultTypeRouteTest.java?rev=1134682&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleResultTypeRouteTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleResultTypeRouteTest.java Sat Jun 11 16:22:25 2011
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.processor;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+
+/**
+ *
+ */
+public class SimpleResultTypeRouteTest extends ContextTestSupport {
+
+ public void testSimpleResultTypeFoo() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:foo");
+ mock.expectedMessageCount(1);
+ // cool header is a boolean
+ mock.message(0).header("cool").isInstanceOf(Boolean.class);
+ mock.message(0).header("cool").isEqualTo(true);
+ // fail header is not a boolean
+ mock.message(0).header("fail").isInstanceOf(String.class);
+ mock.message(0).header("fail").isEqualTo("true");
+
+ template.sendBody("direct:foo", "Hello World");
+
+ assertMockEndpointsSatisfied();
+ }
+
+ public void testSimpleResultTypeBar() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:bar");
+ mock.expectedMessageCount(1);
+ // cool header is a boolean
+ mock.message(0).header("cool").isInstanceOf(Boolean.class);
+ mock.message(0).header("cool").isEqualTo(true);
+ // fail header is not a boolean
+ mock.message(0).header("fail").isInstanceOf(String.class);
+ mock.message(0).header("fail").isEqualTo("true");
+
+ template.sendBody("direct:bar", "Hello World");
+
+ assertMockEndpointsSatisfied();
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:foo")
+ // set using builder support
+ .setHeader("cool", simple("true", Boolean.class))
+ .setHeader("fail", simple("true"))
+ .to("mock:foo");
+
+ from("direct:bar")
+ // set using expression clause
+ .setHeader("cool").simple("true", Boolean.class)
+ .setHeader("fail", simple("true"))
+ .to("mock:bar");
+ }
+ };
+ }
+}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateRegExpTest.java Sat Jun 11 16:22:25 2011
@@ -57,8 +57,9 @@ public class ValidateRegExpTest extends
// expected
assertIsInstanceOf(PredicateValidationException.class, e.getCause());
// as the Expression could be different between the DSL and simple language, here we just check part of the message
- assertTrue("Get a wrong exception message", e.getCause().getMessage().startsWith("Validation failed for Predicate[bodyAs[java.lang.String]"));
- assertTrue("Get a wrong exception message", e.getCause().getMessage().endsWith("Exchange[Message: 1.1.2010]"));
+ assertTrue("Get a wrong exception message", e.getCause().getMessage().startsWith("Validation failed for Predicate"));
+ assertTrue(e.getCause().getMessage().contains("^\\d{2}\\.\\d{2}\\.\\d{4}$"));
+ assertTrue("Get a wrong exception message", e.getCause().getMessage().endsWith("Exchange[Message: 1.1.2010]"));
}
assertMockEndpointsSatisfied();
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java?rev=1134682&r1=1134681&r2=1134682&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java Sat Jun 11 16:22:25 2011
@@ -56,7 +56,7 @@ public class ValidateSimpleTest extends
} catch (CamelExecutionException e) {
// expected
assertIsInstanceOf(PredicateValidationException.class, e.getCause());
- assertEquals("Validation failed for Predicate[body contains Camel]."
+ assertEquals("Validation failed for Predicate[Simple: ${body} contains 'Camel']."
+ " Exchange[Message: Bye World]", e.getCause().getMessage());
}
Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.java?rev=1134682&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.java Sat Jun 11 16:22:25 2011
@@ -0,0 +1,33 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.processor;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.processor.SimpleResultTypeRouteTest;
+
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+
+/**
+ *
+ */
+public class SpringSimpleResultTypeRouteTest extends SimpleResultTypeRouteTest {
+
+ protected CamelContext createCamelContext() throws Exception {
+ return createSpringCamelContext(this, "org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.xml");
+ }
+
+}
Added: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.xml?rev=1134682&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.xml (added)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringSimpleResultTypeRouteTest.xml Sat Jun 11 16:22:25 2011
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+ ">
+
+ <camelContext xmlns="http://camel.apache.org/schema/spring">
+ <!-- START SNIPPET: e1 -->
+ <route>
+ <from uri="direct:foo"/>
+ <setHeader headerName="cool">
+ <!-- use resultType to indicate that the type should be a java.lang.Boolean -->
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setHeader>
+ <!-- here we have no result type, so the type would be java.lang.String -->
+ <setHeader headerName="fail">
+ <simple>true</simple>
+ </setHeader>
+ <to uri="mock:foo"/>
+ </route>
+ <!-- END SNIPPET: e1 -->
+
+ <route>
+ <from uri="direct:bar"/>
+ <setHeader headerName="cool">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setHeader>
+ <setHeader headerName="fail">
+ <simple>true</simple>
+ </setHeader>
+ <to uri="mock:bar"/>
+ </route>
+ </camelContext>
+
+</beans>