Repository: camel
Updated Branches:
  refs/heads/master 200c1fb25 -> 1950e7785


CAMEL-9345 , Migrate example to rest-dsl

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1950e778
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1950e778
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1950e778

Branch: refs/heads/master
Commit: 1950e7785b9a5744d6fd7bebbfaf7255f8ee656c
Parents: 200c1fb
Author: gautric <gaut...@redhat.com>
Authored: Fri Dec 18 15:57:47 2015 +0100
Committer: gautric <gaut...@redhat.com>
Committed: Fri Dec 18 15:59:40 2015 +0100

----------------------------------------------------------------------
 examples/camel-example-restlet-jdbc/README.md   | 43 ++++++----
 .../example/restlet/jdbc/MyRouteConfig.java     | 49 +++++++-----
 .../src/main/resources/camel-context.xml        |  2 +-
 .../src/main/resources/java-dsl.xml             | 35 ---------
 .../src/main/resources/java-rest-dsl.xml        | 35 +++++++++
 .../src/main/resources/xml-dsl.xml              | 83 --------------------
 6 files changed, 92 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1950e778/examples/camel-example-restlet-jdbc/README.md
----------------------------------------------------------------------
diff --git a/examples/camel-example-restlet-jdbc/README.md 
b/examples/camel-example-restlet-jdbc/README.md
index 57320f0..ddaf6e8 100644
--- a/examples/camel-example-restlet-jdbc/README.md
+++ b/examples/camel-example-restlet-jdbc/README.md
@@ -1,7 +1,12 @@
 # Camel Restlet and JDBC Example
 
 ### Introduction
-An example which shows how to expose CRUD operations with REST interface and 
JDBC implementation
+An example which shows how to expose CRUD operations with REST DSL interface 
and JDBC implementation
+
+Two implementations are available
+
+* XML Rest DSL (default)
+* Java Rest DSL
 
 
 ### Build
@@ -12,15 +17,10 @@ You will need to compile this example first:
        
 ### Run
 
-To run the example type
-Run the application using XML-DSL:
-
-       mvn jetty:run
-
-### Run Java-DS
-To run with Java-DSL use: 
+### Run Java-REST-DSL
+To run with Java-REST-DSL use: 
        
-       mvn jetty:run -Dimpl=java-dsl
+       mvn jetty:run -Dimpl=java-rest-dsl
 
 ### Run XML-REST-DSL
 To run with XML-REST-DSL use: 
@@ -30,23 +30,36 @@ To run with XML-REST-DSL use:
 ### Check
 To create an person, make a http POST request with firstName and lastName 
parameters:
 
-       curl -d "firstName=test&lastName=person" 
http://localhost:8080/rs/persons/
+       curl -X POST -d "firstName=test&lastName=person" 
http://localhost:8080/rs/persons
+       
+*Result :*
+       
+       [{ID=1, FIRSTNAME=test, LASTNAME=person}]
 
 To update an existing person, make a http PUT request with firstName and 
lastName parameters:
 
-       curl -X PUT -d "firstName=updated&lastName=person" 
http://localhost:8080/rs/persons/2
+       curl -X PUT -d "firstName=updated&lastName=person" 
http://localhost:8080/rs/persons/1
 
 To retrieve an existing person, make a http GET request with the personId as 
part of the url:
 
-       curl -X GET  http://localhost:8080/rs/persons/1
+       curl http://localhost:8080/rs/persons/1
 
-To delete an existing person, make a http DELETE request with the personId as 
part of the url:
+*Result :*             
+       
+       [{ID=1, FIRSTNAME=updated, LASTNAME=person}]
 
-       curl -X DELETE  http://localhost:8080/rs/persons/1
 
 To retrieve all the existing persons, make a http GET request to persons url:
 
-       curl -X GET  http://localhost:8080/rs/persons
+       curl http://localhost:8080/rs/persons
+       
+*Result :*
+       
+       [{ID=1, FIRSTNAME=updated, LASTNAME=person}]
+       
+To delete an existing person, make a http DELETE request with the personId as 
part of the url:
+
+       curl -X DELETE  http://localhost:8080/rs/persons/1      
 
 ### Forum, Help, etc 
 

http://git-wip-us.apache.org/repos/asf/camel/blob/1950e778/examples/camel-example-restlet-jdbc/src/main/java/org/apache/camel/example/restlet/jdbc/MyRouteConfig.java
----------------------------------------------------------------------
diff --git 
a/examples/camel-example-restlet-jdbc/src/main/java/org/apache/camel/example/restlet/jdbc/MyRouteConfig.java
 
b/examples/camel-example-restlet-jdbc/src/main/java/org/apache/camel/example/restlet/jdbc/MyRouteConfig.java
index 689e909..b8262dc 100644
--- 
a/examples/camel-example-restlet-jdbc/src/main/java/org/apache/camel/example/restlet/jdbc/MyRouteConfig.java
+++ 
b/examples/camel-example-restlet-jdbc/src/main/java/org/apache/camel/example/restlet/jdbc/MyRouteConfig.java
@@ -23,28 +23,35 @@ public class MyRouteConfig extends RouteBuilder {
 
     @Override
     public void configure() {
-        from("restlet:/persons?restletMethod=POST")
-                .setBody(simple("insert into person(firstName, lastName) 
values('${header.firstName}','${header.lastName}')"))
-                .to("jdbc:dataSource")
-                .setBody(simple("select * from person where id in (select 
max(id) from person)"))
-                .to("jdbc:dataSource");
 
-        from("restlet:/persons/{personId}?restletMethods=GET,PUT,DELETE")
-                .choice()
-                    .when(simple("${header.CamelHttpMethod} == 'GET'"))
-                        .setBody(simple("select * from person where id = 
${header.personId}"))
-                    .when(simple("${header.CamelHttpMethod} == 'PUT'"))
-                        .setBody(simple("update person set 
firstName='${header.firstName}', lastName='${header.lastName}' where id = 
${header.personId}"))
-                    .when(simple("${header.CamelHttpMethod} == 'DELETE'"))
-                        .setBody(simple("delete from person where id = 
${header.personId}"))
-                    .otherwise()
-                        .stop()
-                .end()
-                .to("jdbc:dataSource");
+        rest("/persons")
+            .post().to("direct:postPersons")
+            .get().to("direct:getPersons")
+            .get("/{personId}").to("direct:getPersonId")
+            .put("/{personId}").to("direct:putPersonId")
+            .delete("/{personId}").to("direct:deletePersonId");
+        
+        from("direct:postPersons")
+            .setBody(simple("insert into person(firstName, lastName) 
values('${header.firstName}','${header.lastName}')"))
+            .to("jdbc:dataSource")
+            .setBody(simple("select * from person where id in (select max(id) 
from person)"))
+            .to("jdbc:dataSource");
 
-        from("restlet:/persons?restletMethod=GET")
-                .setBody(simple("select * from person"))
-                .to("jdbc:dataSource");
+        from("direct:getPersons")
+            .setBody(simple("select * from person"))
+            .to("jdbc:dataSource");
+        
+        from("direct:getPersonId")
+            .setBody(simple("select * from person where id = 
${header.personId}"))  
+            .to("jdbc:dataSource");
+        
+        from("direct:putPersonId")            
+            .setBody(simple("update person set 
firstName='${header.firstName}', lastName='${header.lastName}' where id = 
${header.personId}"))              
+            .to("jdbc:dataSource");
+
+        from("direct:deletePersonId")
+            .setBody(simple("delete from person where id = 
${header.personId}"))
+            .to("jdbc:dataSource");
+        
     }
 }
-

http://git-wip-us.apache.org/repos/asf/camel/blob/1950e778/examples/camel-example-restlet-jdbc/src/main/resources/camel-context.xml
----------------------------------------------------------------------
diff --git 
a/examples/camel-example-restlet-jdbc/src/main/resources/camel-context.xml 
b/examples/camel-example-restlet-jdbc/src/main/resources/camel-context.xml
index f3e24a6..b9c1f15 100755
--- a/examples/camel-example-restlet-jdbc/src/main/resources/camel-context.xml
+++ b/examples/camel-example-restlet-jdbc/src/main/resources/camel-context.xml
@@ -20,5 +20,5 @@ limitations under the License.
        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";>
 
-    <import resource="${impl:xml-dsl}.xml" />
+    <import resource="${impl:xml-rest-dsl}.xml" />
 </beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/1950e778/examples/camel-example-restlet-jdbc/src/main/resources/java-dsl.xml
----------------------------------------------------------------------
diff --git 
a/examples/camel-example-restlet-jdbc/src/main/resources/java-dsl.xml 
b/examples/camel-example-restlet-jdbc/src/main/resources/java-dsl.xml
deleted file mode 100644
index dd88e44..0000000
--- a/examples/camel-example-restlet-jdbc/src/main/resources/java-dsl.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?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";
-       xmlns:camel="http://camel.apache.org/schema/spring";
-       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";>
-
-    <import resource="common.xml" />
-
-    <bean id="myRouteConfig" 
class="org.apache.camel.example.restlet.jdbc.MyRouteConfig" />
-
-    <camel:camelContext id="defaultCamelContext">
-        <camel:routeBuilder ref="myRouteConfig"/>
-    </camel:camelContext>
-
-</beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/1950e778/examples/camel-example-restlet-jdbc/src/main/resources/java-rest-dsl.xml
----------------------------------------------------------------------
diff --git 
a/examples/camel-example-restlet-jdbc/src/main/resources/java-rest-dsl.xml 
b/examples/camel-example-restlet-jdbc/src/main/resources/java-rest-dsl.xml
new file mode 100644
index 0000000..dd88e44
--- /dev/null
+++ b/examples/camel-example-restlet-jdbc/src/main/resources/java-rest-dsl.xml
@@ -0,0 +1,35 @@
+<?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";
+       xmlns:camel="http://camel.apache.org/schema/spring";
+       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";>
+
+    <import resource="common.xml" />
+
+    <bean id="myRouteConfig" 
class="org.apache.camel.example.restlet.jdbc.MyRouteConfig" />
+
+    <camel:camelContext id="defaultCamelContext">
+        <camel:routeBuilder ref="myRouteConfig"/>
+    </camel:camelContext>
+
+</beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/1950e778/examples/camel-example-restlet-jdbc/src/main/resources/xml-dsl.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-restlet-jdbc/src/main/resources/xml-dsl.xml 
b/examples/camel-example-restlet-jdbc/src/main/resources/xml-dsl.xml
deleted file mode 100644
index 1ed18a0..0000000
--- a/examples/camel-example-restlet-jdbc/src/main/resources/xml-dsl.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?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";
-       xmlns:jdbc="http://www.springframework.org/schema/jdbc";
-
-       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
-       http://www.springframework.org/schema/jdbc 
http://www.springframework.org/schema/jdbc/spring-jdbc.xsd";>
-
-    <import resource="common.xml" />
-
-    <camelContext xmlns="http://camel.apache.org/schema/spring";>
-        <route>
-            <from uri="restlet:/persons?restletMethod=POST"/>
-
-            <setBody>
-                <simple>insert into person(firstName, lastName) 
values('${header.firstName}','${header.lastName}')
-                </simple>
-            </setBody>
-            <to uri="jdbc:dataSource"/>
-
-            <setBody>
-                <!--<simple>select * from person ORDER BY id desc OFFSET 1 
ROWS</simple>-->
-                <simple>select * from person where id in (select max(id) from 
person)</simple>
-            </setBody>
-            <to uri="jdbc:dataSource"/>
-        </route>
-
-        <route>
-            <from 
uri="restlet:/persons/{personId}?restletMethods=GET,PUT,DELETE"/>
-            <choice>
-                <when>
-                    <simple>${header.CamelHttpMethod} == 'GET'</simple>
-                    <setBody>
-                        <simple>select * from person where id = 
${header.personId}</simple>
-                    </setBody>
-                </when>
-                <when>
-                    <simple>${header.CamelHttpMethod} == 'PUT'</simple>
-                    <setBody>
-                        <simple>update person set 
firstName='${header.firstName}', lastName='${header.lastName}' where id = 
${header.personId}</simple>
-                    </setBody>
-                </when>
-                <when>
-                    <simple>${header.CamelHttpMethod} == 'DELETE'</simple>
-                    <setBody>
-                        <simple>delete from person where id = 
${header.personId}</simple>
-                    </setBody>
-                </when>
-                <otherwise>
-                    <stop/>
-                </otherwise>
-            </choice>
-            <to uri="jdbc:dataSource"/>
-        </route>
-
-        <route>
-            <from uri="restlet:/persons?restletMethod=GET"/>
-            <setBody>
-                <constant>select * from person</constant>
-            </setBody>
-            <to uri="jdbc:dataSource"/>
-        </route>
-
-    </camelContext>
-</beans>
\ No newline at end of file

Reply via email to