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 2009/06/26 19:28:25 UTC
svn commit: r788778 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/builder/
main/java/org/apache/camel/component/bean/
test/java/org/apache/camel/component/bean/
Author: davsclaus
Date: Fri Jun 26 17:28:25 2009
New Revision: 788778
URL: http://svn.apache.org/viewvc?rev=788778&view=rev
Log:
CAMEL-1763: Added CamelContext and Registry as autoatic bean parameter bindings that Camel knows.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/DefaultParameterMappingStrategy.java
camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/DefaultParameterMappingStrategyTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java?rev=788778&r1=788777&r2=788778&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java Fri Jun 26 17:28:25 2009
@@ -219,6 +219,42 @@
}
/**
+ * Returns an expression for the {@link org.apache.camel.spi.Registry}
+ *
+ * @return an expression object which will return the registry
+ */
+ public static Expression registryExpression() {
+ return new ExpressionAdapter() {
+ public Object evaluate(Exchange exchange) {
+ return exchange.getContext().getRegistry();
+ }
+
+ @Override
+ public String toString() {
+ return "registry";
+ }
+ };
+ }
+
+ /**
+ * Returns an expression for the {@link org.apache.camel.CamelContext}
+ *
+ * @return an expression object which will return the camel context
+ */
+ public static Expression camelContextExpression() {
+ return new ExpressionAdapter() {
+ public Object evaluate(Exchange exchange) {
+ return exchange.getContext();
+ }
+
+ @Override
+ public String toString() {
+ return "camelContext";
+ }
+ };
+ }
+
+ /**
* Returns an expression for an exception message set on the exchange
*
* @see <tt>Exchange.getException().getMessage()</tt>
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/DefaultParameterMappingStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/DefaultParameterMappingStrategy.java?rev=788778&r1=788777&r2=788778&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/DefaultParameterMappingStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/DefaultParameterMappingStrategy.java Fri Jun 26 17:28:25 2009
@@ -23,6 +23,8 @@
import org.apache.camel.Expression;
import org.apache.camel.Message;
import org.apache.camel.TypeConverter;
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.Registry;
import org.apache.camel.builder.ExpressionBuilder;
/**
@@ -53,6 +55,8 @@
addParameterMapping(Message.class, ExpressionBuilder.inMessageExpression());
addParameterMapping(Exception.class, ExpressionBuilder.exchangeExceptionExpression());
addParameterMapping(TypeConverter.class, ExpressionBuilder.typeConverterExpression());
+ addParameterMapping(Registry.class, ExpressionBuilder.registryExpression());
+ addParameterMapping(CamelContext.class, ExpressionBuilder.camelContextExpression());
}
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/DefaultParameterMappingStrategyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/DefaultParameterMappingStrategyTest.java?rev=788778&r1=788777&r2=788778&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/DefaultParameterMappingStrategyTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/DefaultParameterMappingStrategyTest.java Fri Jun 26 17:28:25 2009
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.bean;
+import org.apache.camel.CamelContext;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
@@ -23,6 +24,7 @@
import org.apache.camel.TypeConverter;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.spi.Registry;
/**
* @version $Revision$
@@ -65,6 +67,18 @@
assertMockEndpointsSatisfied();
}
+ public void testRegistry() throws Exception {
+ getMockEndpoint("mock:result").expectedBodiesReceived("Registry");
+ template.sendBody("direct:e", "Hello");
+ assertMockEndpointsSatisfied();
+ }
+
+ public void testCamelContext() throws Exception {
+ getMockEndpoint("mock:result").expectedBodiesReceived("CamelContext");
+ template.sendBody("direct:f", "Hello");
+ assertMockEndpointsSatisfied();
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@@ -81,6 +95,10 @@
from("direct:c").to("mock:foo");
from("direct:d").beanRef("foo", "withTypeConverter").to("mock:result");
+
+ from("direct:e").beanRef("foo", "withRegistry").to("mock:result");
+
+ from("direct:f").beanRef("foo", "withCamelContext").to("mock:result");
}
};
}
@@ -114,5 +132,21 @@
return "TypeConverter";
}
+ public String withRegistry(String body, Registry registry) {
+ assertNotNull(body);
+ assertNotNull(registry);
+ assertNotNull(registry.lookup("foo"));
+ assertEquals("Hello", body);
+ return "Registry";
+ }
+
+ public String withCamelContext(String body, CamelContext camel) {
+ assertNotNull(body);
+ assertNotNull(camel);
+ assertNotNull(camel.getRegistry().lookup("foo"));
+ assertEquals("Hello", body);
+ return "CamelContext";
+ }
+
}
}