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>");
     }
 
 }