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 2014/07/20 08:53:31 UTC
[25/33] git commit: CAMEL-7354: migrated spark example to use Rest DSL
CAMEL-7354: migrated spark example to use Rest DSL
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1a315668
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1a315668
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1a315668
Branch: refs/heads/master
Commit: 1a31566816418d4b1e574a0533905a27aad7f82d
Parents: 6d40039
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jul 17 08:48:20 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jul 19 09:38:52 2014 +0200
----------------------------------------------------------------------
.../camel/component/rest/RestEndpoint.java | 18 ++++++++++--
.../camel-example-spark-rest-tomcat/README.txt | 2 +-
.../example/spark/MySparkRouteBuilder.java | 29 ++++++++++----------
3 files changed, 31 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/1a315668/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index b0f546e..9f05502 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -21,6 +21,7 @@ import java.util.Set;
import org.apache.camel.Component;
import org.apache.camel.Consumer;
+import org.apache.camel.NoSuchBeanException;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.impl.DefaultEndpoint;
@@ -101,11 +102,22 @@ public class RestEndpoint extends DefaultEndpoint {
RestConsumerFactory factory = null;
if (getComponentName() != null) {
- Component comp = getCamelContext().getComponent(getComponentName());
+ Object comp = getCamelContext().getRegistry().lookupByName(getComponentName());
if (comp != null && comp instanceof RestConsumerFactory) {
factory = (RestConsumerFactory) comp;
- } else if (comp != null) {
- throw new IllegalArgumentException("Component " + getComponentName() + " is not a RestConsumerFactory");
+ } else {
+ comp = getCamelContext().getComponent(getComponentName());
+ if (comp != null && comp instanceof RestConsumerFactory) {
+ factory = (RestConsumerFactory) comp;
+ }
+ }
+
+ if (factory == null) {
+ if (comp != null) {
+ throw new IllegalArgumentException("Component " + getComponentName() + " is not a RestConsumerFactory");
+ } else {
+ throw new NoSuchBeanException(getComponentName(), RestConsumerFactory.class.getName());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/1a315668/examples/camel-example-spark-rest-tomcat/README.txt
----------------------------------------------------------------------
diff --git a/examples/camel-example-spark-rest-tomcat/README.txt b/examples/camel-example-spark-rest-tomcat/README.txt
index 809c2ab..70a2ce6 100644
--- a/examples/camel-example-spark-rest-tomcat/README.txt
+++ b/examples/camel-example-spark-rest-tomcat/README.txt
@@ -1,7 +1,7 @@
Camel Spark REST and Apache Tomcat example
=======================================
-This example shows how to use Spark REST to define REST endpoints in Camel routes using the CamelSparkRouteBuilder DSL
+This example shows how to use Spark REST to define REST endpoints in Camel routes using the Rest DSL
You will need to package this example first:
mvn package
http://git-wip-us.apache.org/repos/asf/camel/blob/1a315668/examples/camel-example-spark-rest-tomcat/src/main/java/org/apache/camel/example/spark/MySparkRouteBuilder.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spark-rest-tomcat/src/main/java/org/apache/camel/example/spark/MySparkRouteBuilder.java b/examples/camel-example-spark-rest-tomcat/src/main/java/org/apache/camel/example/spark/MySparkRouteBuilder.java
index ce7b137..7d9a849 100644
--- a/examples/camel-example-spark-rest-tomcat/src/main/java/org/apache/camel/example/spark/MySparkRouteBuilder.java
+++ b/examples/camel-example-spark-rest-tomcat/src/main/java/org/apache/camel/example/spark/MySparkRouteBuilder.java
@@ -16,29 +16,30 @@
*/
package org.apache.camel.example.spark;
-import org.apache.camel.component.sparkrest.SparkRouteBuilder;
+import org.apache.camel.builder.RouteBuilder;
/**
- * Define REST services using {@link SparkRouteBuilder}.
+ * Define REST services using the Camel REST DSL
*/
-public class MySparkRouteBuilder extends SparkRouteBuilder {
+public class MySparkRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
- // this is a very simple Camel route, but we can do more routing
- // as SparkRouteBuilder extends the regular RouteBuilder from camel-core
- // which means we can do any kind of Camel Java DSL routing here
// we only have a GET service, but we have PUT, POST, and all the other REST verbs we can use
- get("hello/:me", "text/plain")
- .transform().simple("Hello ${header.me}");
-
- get("hello/:me", "application/json")
- .transform().simple("{ \"message\": \"Hello ${header.me}\" }");
-
- get("hello/:me", "text/xml")
- .transform().simple("<message>Hello ${header.me}</message>");
+ rest().component("spark-rest")
+ .path("hello/:me").get().consumes("text/plain")
+ .to("log:input")
+ .transform().simple("Hello ${header.me}")
+ .endPath()
+ .path("hello/:me").get().consumes("application/json")
+ .to("log:input")
+ .transform().simple("{ \"message\": \"Hello ${header.me}\" }")
+ .endPath()
+ .path("hello/:me").get().consumes("text/xml")
+ .to("log:input")
+ .transform().simple("<message>Hello ${header.me}</message>");
}
}