Author: davsclaus
Date: Sun Oct 12 04:08:11 2008
New Revision: 703787
URL: http://svn.apache.org/viewvc?rev=703787&view=rev
Log:
CAMEL-979: File language supports constant expressions so you can enter fixed
filename
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java?rev=703787&r1=703786&r2=703787&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java
(original)
+++
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/FileExpressionBuilder.java
Sun Oct 12 04:08:11 2008
@@ -23,6 +23,8 @@
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.builder.ExpressionBuilder;
+import org.apache.camel.language.IllegalSyntaxException;
+import org.apache.camel.language.constant.ConstantLanguage;
/**
* A helper class for working with <a
href="http://activemq.apache.org/camel/expression.html">expressions</a> based
@@ -163,7 +165,12 @@
public Object evaluate(E exchange) {
// must call evaluate to return the nested language evaluate
when evaluating
// stacked expressions
- return SimpleLanguage.simple(simple).evaluate(exchange);
+ try {
+ return SimpleLanguage.simple(simple).evaluate(exchange);
+ } catch (IllegalSyntaxException e) {
+ // fallback to constant so end users can enter a fixed
filename
+ return
ConstantLanguage.constant(simple).evaluate(exchange);
+ }
}
@Override
Modified:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java?rev=703787&r1=703786&r2=703787&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java
(original)
+++
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/FileLanguageTest.java
Sun Oct 12 04:08:11 2008
@@ -47,6 +47,10 @@
return "file";
}
+ public void testConstantExpression() throws Exception {
+ assertExpression("MyBigFile.txt", "MyBigFile.txt");
+ }
+
public void testMessageId() throws Exception {
assertExpression("${id}", exchange.getIn().getMessageId());
assertExpression("${id}.bak", exchange.getIn().getMessageId() +
".bak");
Modified:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java?rev=703787&r1=703786&r2=703787&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java
(original)
+++
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java
Sun Oct 12 04:08:11 2008
@@ -23,6 +23,15 @@
*/
public class SimpleTest extends LanguageTestSupport {
+ public void testConstantExpression() throws Exception {
+ try {
+ assertExpression("Hello World", "Hello World");
+ fail("Should have thrown an Exception");
+ } catch (IllegalSyntaxException e) {
+ // constants is not supported
+ }
+ }
+
public void testSimpleExpressions() throws Exception {
assertExpression("id", exchange.getIn().getMessageId());
assertExpression("body", "<hello id='m123'>world!</hello>");