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:26 UTC
[20/33] git commit: CAMEL-7354: Rest DSL,
only path is used for defining the path.
CAMEL-7354: Rest DSL, only path is used for defining the path.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/571b1345
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/571b1345
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/571b1345
Branch: refs/heads/master
Commit: 571b1345c2bf3612eb9f96c8ee29b75bf02b752a
Parents: f73a592
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jul 16 14:48:11 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jul 19 09:38:51 2014 +0200
----------------------------------------------------------------------
.../camel/model/rest/DeleteVerbDefinition.java | 3 ---
.../camel/model/rest/GetVerbDefinition.java | 3 ---
.../camel/model/rest/HeadVerbDefinition.java | 3 ---
.../apache/camel/model/rest/PathDefinition.java | 27 +++++++++++++++-----
.../camel/model/rest/PostVerbDefinition.java | 3 ---
.../camel/model/rest/PutVerbDefinition.java | 3 ---
.../apache/camel/model/rest/RestDefinition.java | 8 +++---
.../apache/camel/model/rest/VerbDefinition.java | 18 +++++++++++++
.../rest/FromRestGetEmbeddedRouteTest.java | 6 ++---
.../camel/component/rest/FromRestGetTest.java | 10 ++++----
.../management/ManagedCamelContextTest.java | 2 +-
.../management/ManagedFromRestGetTest.java | 8 +++---
.../camel/blueprint/BlueprintJaxbRestTest.java | 6 ++---
.../rest/FromRestGetEmbeddedRouteTest.java | 6 ++---
.../component/rest/FromRestGetTest.java | 10 ++++----
15 files changed, 67 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/DeleteVerbDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/DeleteVerbDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/DeleteVerbDefinition.java
index 137c607..990819a 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/DeleteVerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/DeleteVerbDefinition.java
@@ -24,7 +24,4 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
public class DeleteVerbDefinition extends VerbDefinition {
- public DeleteVerbDefinition() {
- setMethod("delete");
- }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/GetVerbDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/GetVerbDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/GetVerbDefinition.java
index 03315d4..f3e398e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/GetVerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/GetVerbDefinition.java
@@ -24,7 +24,4 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
public class GetVerbDefinition extends VerbDefinition {
- public GetVerbDefinition() {
- setMethod("get");
- }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/HeadVerbDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/HeadVerbDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/HeadVerbDefinition.java
index 7db89a3..abcd2f9 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/HeadVerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/HeadVerbDefinition.java
@@ -24,7 +24,4 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
public class HeadVerbDefinition extends VerbDefinition {
- public HeadVerbDefinition() {
- setMethod("head");
- }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/PathDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/PathDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/PathDefinition.java
index bb70b3c..06d95bc 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/PathDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/PathDefinition.java
@@ -28,18 +28,20 @@ import javax.xml.bind.annotation.XmlTransient;
import org.apache.camel.model.ToDefinition;
@XmlRootElement(name = "path")
-@XmlAccessorType(XmlAccessType.PROPERTY)
+@XmlAccessorType(XmlAccessType.FIELD)
public class PathDefinition {
+ @XmlAttribute(required = true)
private String uri;
+ @XmlElementRef
private List<VerbDefinition> verbs = new ArrayList<VerbDefinition>();
+ @XmlTransient
private RestDefinition rest;
public String getUri() {
return uri;
}
- @XmlAttribute(required = true)
public void setUri(String uri) {
this.uri = uri;
}
@@ -48,7 +50,6 @@ public class PathDefinition {
return verbs;
}
- @XmlElementRef
public void setVerbs(List<VerbDefinition> verbs) {
this.verbs = verbs;
}
@@ -57,7 +58,6 @@ public class PathDefinition {
return rest;
}
- @XmlTransient
public void setRest(RestDefinition rest) {
this.rest = rest;
}
@@ -120,8 +120,23 @@ public class PathDefinition {
}
private PathDefinition addVerb(String verb, String url) {
- VerbDefinition answer = new VerbDefinition();
- answer.setMethod(verb);
+ VerbDefinition answer;
+
+ if ("get".equals(verb)) {
+ answer = new GetVerbDefinition();
+ } else if ("post".equals(verb)) {
+ answer = new PostVerbDefinition();
+ } else if ("delete".equals(verb)) {
+ answer = new DeleteVerbDefinition();
+ } else if ("head".equals(verb)) {
+ answer = new HeadVerbDefinition();
+ } else if ("put".equals(verb)) {
+ answer = new PutVerbDefinition();
+ } else {
+ answer = new VerbDefinition();
+ answer.setMethod(verb);
+ }
+
answer.setPath(this);
getVerbs().add(answer);
return this;
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/PostVerbDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/PostVerbDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/PostVerbDefinition.java
index 3a8f39e..a5d2fb0 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/PostVerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/PostVerbDefinition.java
@@ -24,7 +24,4 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
public class PostVerbDefinition extends VerbDefinition {
- public PostVerbDefinition() {
- setMethod("post");
- }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/PutVerbDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/PutVerbDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/PutVerbDefinition.java
index 2a2f616..b1f4541 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/PutVerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/PutVerbDefinition.java
@@ -24,7 +24,4 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
public class PutVerbDefinition extends VerbDefinition {
- public PutVerbDefinition() {
- setMethod("put");
- }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index 546bb3a..24dd3e9 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -31,17 +31,18 @@ import org.apache.camel.model.RouteDefinition;
* Represents an XML <rest/> element
*/
@XmlRootElement(name = "rest")
-@XmlAccessorType(XmlAccessType.PROPERTY)
+@XmlAccessorType(XmlAccessType.FIELD)
public class RestDefinition {
+ @XmlAttribute
private String component;
+ @XmlElementRef
private List<PathDefinition> paths = new ArrayList<PathDefinition>();
public String getComponent() {
return component;
}
- @XmlAttribute
public void setComponent(String component) {
this.component = component;
}
@@ -50,7 +51,6 @@ public class RestDefinition {
return paths;
}
- @XmlElementRef
public void setPaths(List<PathDefinition> paths) {
this.paths = paths;
}
@@ -88,7 +88,7 @@ public class RestDefinition {
for (PathDefinition path : getPaths()) {
String uri = path.getUri();
for (VerbDefinition verb : path.getVerbs()) {
- String from = "rest:" + verb.getMethod() + ":" + uri + (getComponent() != null ? "?componentName=" + getComponent() : "");
+ String from = "rest:" + verb.asVerb() + ":" + uri + (getComponent() != null ? "?componentName=" + getComponent() : "");
RouteDefinition route = new RouteDefinition();
route.fromRest(from);
answer.add(route);
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
index b3f48aa..9d99747 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
@@ -93,4 +93,22 @@ public class VerbDefinition extends OutputDefinition<VerbDefinition> {
return path.verb(verb);
}
+ public String asVerb() {
+ // we do not want the jaxb model to repeat itself, by outputting <get method="get">
+ // so we defer the verb from the instance type
+ if (this instanceof GetVerbDefinition) {
+ return "get";
+ } else if (this instanceof PostVerbDefinition) {
+ return "post";
+ } else if (this instanceof PutVerbDefinition) {
+ return "put";
+ } else if (this instanceof DeleteVerbDefinition) {
+ return "delete";
+ } else if (this instanceof HeadVerbDefinition) {
+ return "head";
+ } else {
+ return method;
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetEmbeddedRouteTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetEmbeddedRouteTest.java b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetEmbeddedRouteTest.java
index 4343646..a8b21eb 100644
--- a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetEmbeddedRouteTest.java
+++ b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetEmbeddedRouteTest.java
@@ -50,13 +50,13 @@ public class FromRestGetEmbeddedRouteTest extends ContextTestSupport {
path = rest.getPaths().get(1);
assertEquals("/say/bye", path.getUri());
- assertEquals("application/json", path.getVerbs().get(1).getAccept());
- to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(1).getOutputs().get(0));
+ assertEquals("application/json", path.getVerbs().get(0).getAccept());
+ to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(0).getOutputs().get(0));
assertEquals("mock:bye", to.getUri());
// the rest becomes routes and the input is a seda endpoint created by the DummyRestConsumerFactory
getMockEndpoint("mock:update").expectedMessageCount(1);
- template.sendBody("seda:post-say", "I was here");
+ template.sendBody("seda:post-say-bye", "I was here");
assertMockEndpointsSatisfied();
String out = template.requestBody("seda:get-say-hello", "Me", String.class);
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetTest.java b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetTest.java
index 4b607b7..72ef31f 100644
--- a/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetTest.java
+++ b/camel-core/src/test/java/org/apache/camel/component/rest/FromRestGetTest.java
@@ -46,17 +46,17 @@ public class FromRestGetTest extends ContextTestSupport {
PathDefinition path = rest.getPaths().get(0);
assertEquals("/say/hello", path.getUri());
ToDefinition to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(0).getOutputs().get(0));
- assertEquals("mock:hello", to.getUri());
+ assertEquals("direct:hello", to.getUri());
path = rest.getPaths().get(1);
assertEquals("/say/bye", path.getUri());
- assertEquals("application/json", path.getVerbs().get(1).getAccept());
- to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(1).getOutputs().get(0));
- assertEquals("mock:bye", to.getUri());
+ assertEquals("application/json", path.getVerbs().get(0).getAccept());
+ to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(0).getOutputs().get(0));
+ assertEquals("direct:bye", to.getUri());
// the rest becomes routes and the input is a seda endpoint created by the DummyRestConsumerFactory
getMockEndpoint("mock:update").expectedMessageCount(1);
- template.sendBody("seda:post-say", "I was here");
+ template.sendBody("seda:post-say-bye", "I was here");
assertMockEndpointsSatisfied();
String out = template.requestBody("seda:get-say-hello", "Me", String.class);
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
index 8223e7b..735ee6c 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
@@ -195,7 +195,7 @@ public class ManagedCamelContextTest extends ManagementTestSupport {
Map<String, Properties> info = (Map<String, Properties>) mbeanServer.invoke(on, "findComponents", null, null);
assertNotNull(info);
- assertEquals(22, info.size());
+ assertEquals(23, info.size());
Properties prop = info.get("seda");
assertNotNull(prop);
assertEquals("seda", prop.get("name"));
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/camel-core/src/test/java/org/apache/camel/management/ManagedFromRestGetTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedFromRestGetTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedFromRestGetTest.java
index b9b87e5..bd6b8d4 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedFromRestGetTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedFromRestGetTest.java
@@ -50,10 +50,10 @@ public class ManagedFromRestGetTest extends ManagementTestSupport {
assertTrue(xml.contains("rests"));
assertTrue(xml.contains("rest"));
- assertTrue(xml.contains("<path uri=\"/say\">"));
- assertTrue(xml.contains("<get method=\"get\" uri=\"/hello\">"));
- assertTrue(xml.contains("<get method=\"get\" uri=\"/bye\">"));
- assertTrue(xml.contains("<post method=\"post\">"));
+ assertTrue(xml.contains("<path uri=\"/say/hello\">"));
+ assertTrue(xml.contains("<path uri=\"/say/bye\">"));
+ assertTrue(xml.contains("<get>"));
+ assertTrue(xml.contains("<post>"));
String xml2 = (String) mbeanServer.invoke(on, "dumpRoutesAsXml", null, null);
log.info(xml2);
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/components/camel-blueprint/src/test/java/org/apache/camel/blueprint/BlueprintJaxbRestTest.java
----------------------------------------------------------------------
diff --git a/components/camel-blueprint/src/test/java/org/apache/camel/blueprint/BlueprintJaxbRestTest.java b/components/camel-blueprint/src/test/java/org/apache/camel/blueprint/BlueprintJaxbRestTest.java
index 7015e15..a7e6d07 100644
--- a/components/camel-blueprint/src/test/java/org/apache/camel/blueprint/BlueprintJaxbRestTest.java
+++ b/components/camel-blueprint/src/test/java/org/apache/camel/blueprint/BlueprintJaxbRestTest.java
@@ -75,8 +75,8 @@ public class BlueprintJaxbRestTest extends TestSupport {
assertEquals(1, cfb.getRests().get(0).getPaths().get(0).getVerbs().size());
assertEquals(2, cfb.getRests().get(0).getPaths().get(1).getVerbs().size());
- assertEquals("get", cfb.getRests().get(0).getPaths().get(0).getVerbs().get(0).getMethod());
- assertEquals("get", cfb.getRests().get(0).getPaths().get(1).getVerbs().get(0).getMethod());
- assertEquals("post", cfb.getRests().get(0).getPaths().get(1).getVerbs().get(1).getMethod());
+ assertEquals("get", cfb.getRests().get(0).getPaths().get(0).getVerbs().get(0).asVerb());
+ assertEquals("get", cfb.getRests().get(0).getPaths().get(1).getVerbs().get(0).asVerb());
+ assertEquals("post", cfb.getRests().get(0).getPaths().get(1).getVerbs().get(1).asVerb());
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetEmbeddedRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetEmbeddedRouteTest.java b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetEmbeddedRouteTest.java
index ab5aafc..68cbb69 100644
--- a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetEmbeddedRouteTest.java
+++ b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetEmbeddedRouteTest.java
@@ -48,13 +48,13 @@ public class FromRestGetEmbeddedRouteTest extends CamelBlueprintTestSupport {
path = rest.getPaths().get(1);
assertEquals("/say/bye", path.getUri());
- assertEquals("application/json", path.getVerbs().get(1).getAccept());
- to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(1).getOutputs().get(0));
+ assertEquals("application/json", path.getVerbs().get(0).getAccept());
+ to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(0).getOutputs().get(0));
assertEquals("mock:bye", to.getUri());
// the rest becomes routes and the input is a seda endpoint created by the DummyRestConsumerFactory
getMockEndpoint("mock:update").expectedMessageCount(1);
- template.sendBody("seda:post-say", "I was here");
+ template.sendBody("seda:post-say-bye", "I was here");
assertMockEndpointsSatisfied();
String out = template.requestBody("seda:get-say-hello", "Me", String.class);
http://git-wip-us.apache.org/repos/asf/camel/blob/571b1345/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetTest.java
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetTest.java b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetTest.java
index 2aa7f2f..588f221 100644
--- a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetTest.java
+++ b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/component/rest/FromRestGetTest.java
@@ -44,17 +44,17 @@ public class FromRestGetTest extends CamelBlueprintTestSupport {
PathDefinition path = rest.getPaths().get(0);
assertEquals("/say/hello", path.getUri());
ToDefinition to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(0).getOutputs().get(0));
- assertEquals("mock:hello", to.getUri());
+ assertEquals("direct:hello", to.getUri());
path = rest.getPaths().get(1);
assertEquals("/say/bye", path.getUri());
- assertEquals("application/json", path.getVerbs().get(1).getAccept());
- to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(1).getOutputs().get(0));
- assertEquals("mock:bye", to.getUri());
+ assertEquals("application/json", path.getVerbs().get(0).getAccept());
+ to = assertIsInstanceOf(ToDefinition.class, path.getVerbs().get(0).getOutputs().get(0));
+ assertEquals("direct:bye", to.getUri());
// the rest becomes routes and the input is a seda endpoint created by the DummyRestConsumerFactory
getMockEndpoint("mock:update").expectedMessageCount(1);
- template.sendBody("seda:post-say", "I was here");
+ template.sendBody("seda:post-say-bye", "I was here");
assertMockEndpointsSatisfied();
String out = template.requestBody("seda:get-say-hello", "Me", String.class);