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/08/10 12:21:57 UTC
git commit: Rest DSL. camel-swagger work in progress.
Repository: camel
Updated Branches:
refs/heads/master 50e8ed779 -> 2fb649050
Rest DSL. camel-swagger work in progress.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2fb64905
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2fb64905
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2fb64905
Branch: refs/heads/master
Commit: 2fb649050408e88558e9f9f2dc889418ab5e4fdb
Parents: 50e8ed7
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Aug 10 12:21:44 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Aug 10 12:21:44 2014 +0200
----------------------------------------------------------------------
.../camel/model/rest/RestBindingDefinition.java | 38 ++++++--------------
.../apache/camel/model/rest/RestDefinition.java | 16 +++------
.../apache/camel/model/rest/VerbDefinition.java | 22 ------------
.../component/swagger/RestSwaggerReader.scala | 3 +-
.../src/main/resources/camel-config-xml.xml | 2 +-
5 files changed, 17 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/2fb64905/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
index 7099c90..5655ca5 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
@@ -29,7 +29,6 @@ import org.apache.camel.Processor;
import org.apache.camel.model.NoOutputDefinition;
import org.apache.camel.processor.binding.RestBindingProcessor;
import org.apache.camel.spi.DataFormat;
-import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RouteContext;
import org.apache.camel.util.IntrospectionSupport;
@@ -52,12 +51,6 @@ public class RestBindingDefinition extends NoOutputDefinition {
@XmlAttribute
private String outType;
- @XmlAttribute
- private Boolean list;
-
- @XmlAttribute
- private Boolean outList;
-
@Override
public String toString() {
return "RestBinding";
@@ -100,22 +93,24 @@ public class RestBindingDefinition extends NoOutputDefinition {
if (json != null) {
Class<?> clazz = null;
if (type != null) {
- clazz = context.getClassResolver().resolveMandatoryClass(type);
+ String typeName = type.endsWith("[]") ? type.substring(0, type.length() - 2) : type;
+ clazz = context.getClassResolver().resolveMandatoryClass(typeName);
}
if (clazz != null) {
IntrospectionSupport.setProperty(context.getTypeConverter(), json, "unmarshalType", clazz);
- IntrospectionSupport.setProperty(context.getTypeConverter(), json, "useList", list != null ? list : false);
+ IntrospectionSupport.setProperty(context.getTypeConverter(), json, "useList", type.endsWith("[]"));
}
setAdditionalConfiguration(context, json);
context.addService(json);
Class<?> outClazz = null;
if (outType != null) {
- outClazz = context.getClassResolver().resolveMandatoryClass(outType);
+ String typeName = outType.endsWith("[]") ? outType.substring(0, outType.length() - 2) : outType;
+ outClazz = context.getClassResolver().resolveMandatoryClass(typeName);
}
if (outClazz != null) {
IntrospectionSupport.setProperty(context.getTypeConverter(), outJson, "unmarshalType", outClazz);
- IntrospectionSupport.setProperty(context.getTypeConverter(), outJson, "useList", outList != null ? outList : false);
+ IntrospectionSupport.setProperty(context.getTypeConverter(), outJson, "useList", outType.endsWith("[]"));
}
setAdditionalConfiguration(context, outJson);
context.addService(outJson);
@@ -136,7 +131,8 @@ public class RestBindingDefinition extends NoOutputDefinition {
if (jaxb != null) {
Class<?> clazz = null;
if (type != null) {
- clazz = context.getClassResolver().resolveMandatoryClass(type);
+ String typeName = type.endsWith("[]") ? type.substring(0, type.length() - 2) : type;
+ clazz = context.getClassResolver().resolveMandatoryClass(typeName);
}
if (clazz != null) {
JAXBContext jc = JAXBContext.newInstance(clazz);
@@ -150,7 +146,8 @@ public class RestBindingDefinition extends NoOutputDefinition {
Class<?> outClazz = null;
if (outType != null) {
- outClazz = context.getClassResolver().resolveMandatoryClass(outType);
+ String typeName = outType.endsWith("[]") ? outType.substring(0, outType.length() - 2) : outType;
+ outClazz = context.getClassResolver().resolveMandatoryClass(typeName);
}
if (outClazz != null) {
JAXBContext jc = JAXBContext.newInstance(outClazz);
@@ -217,19 +214,4 @@ public class RestBindingDefinition extends NoOutputDefinition {
this.outType = outType;
}
- public Boolean getList() {
- return list;
- }
-
- public void setList(Boolean list) {
- this.list = list;
- }
-
- public Boolean getOutList() {
- return outList;
- }
-
- public void setOutList(Boolean outList) {
- this.outList = outList;
- }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2fb64905/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 cf322a9..558b38f 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
@@ -194,8 +194,8 @@ public class RestDefinition {
}
VerbDefinition verb = getVerbs().get(getVerbs().size() - 1);
- verb.setType(classType.getCanonicalName());
- verb.setList(true);
+ // list should end with [] to indicate array
+ verb.setType(classType.getCanonicalName() + "[]");
return this;
}
@@ -217,8 +217,8 @@ public class RestDefinition {
}
VerbDefinition verb = getVerbs().get(getVerbs().size() - 1);
- verb.setOutType(classType.getCanonicalName());
- verb.setOutList(true);
+ // list should end with [] to indicate array
+ verb.setOutType(classType.getCanonicalName() + "[]");
return this;
}
@@ -318,8 +318,6 @@ public class RestDefinition {
RestBindingDefinition binding = new RestBindingDefinition();
binding.setType(verb.getType());
binding.setOutType(verb.getOutType());
- binding.setList(verb.getList());
- binding.setOutList(verb.getOutList());
// verb takes precedence over configuration on rest
if (verb.getConsumes() != null) {
binding.setConsumes(verb.getConsumes());
@@ -357,16 +355,10 @@ public class RestDefinition {
// append optional type binding information
String inType = binding.getType();
- if (binding.getList() != null && binding.getList()) {
- inType = "List<" + inType + ">";
- }
if (inType != null) {
options.put("inType", inType);
}
String outType = binding.getOutType();
- if (binding.getOutList() != null && binding.getOutList()) {
- outType = "List<" + outType + ">";
- }
if (outType != null) {
options.put("outType", outType);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2fb64905/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 48aa066..fe4dd33 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
@@ -53,12 +53,6 @@ public class VerbDefinition {
@XmlAttribute
private String outType;
- @XmlAttribute
- private Boolean list;
-
- @XmlAttribute
- private Boolean outList;
-
// used by XML DSL to either select a <to> or <route>
// so we need to use the common type OptionalIdentifiedDefinition
@XmlElements({
@@ -131,22 +125,6 @@ public class VerbDefinition {
this.outType = outType;
}
- public Boolean getList() {
- return list;
- }
-
- public void setList(Boolean list) {
- this.list = list;
- }
-
- public Boolean getOutList() {
- return outList;
- }
-
- public void setOutList(Boolean outList) {
- this.outList = outList;
- }
-
public RestDefinition getRest() {
return rest;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2fb64905/components/camel-swagger/src/main/scala/org/apache/camel/component/swagger/RestSwaggerReader.scala
----------------------------------------------------------------------
diff --git a/components/camel-swagger/src/main/scala/org/apache/camel/component/swagger/RestSwaggerReader.scala b/components/camel-swagger/src/main/scala/org/apache/camel/component/swagger/RestSwaggerReader.scala
index f9fe70f..7522595 100644
--- a/components/camel-swagger/src/main/scala/org/apache/camel/component/swagger/RestSwaggerReader.scala
+++ b/components/camel-swagger/src/main/scala/org/apache/camel/component/swagger/RestSwaggerReader.scala
@@ -50,7 +50,7 @@ class RestSwaggerReader {
// TODO: add parameters to operations
// - {id} is a path type, and required
- // - type/typeList/outType/outTypeList is body type and required
+ // - type/outType is body type and required
def read(rest: RestDefinition, config: SwaggerConfig): Option[ApiListing] = {
@@ -99,6 +99,7 @@ class RestSwaggerReader {
var nickName = createNickname(verb.asVerb(), buildUrl(resourcePath, path))
var responseType = verb.getOutType match {
+ case e: String if e.endsWith("[]") => "List[" + e.substring(0, e.length - 2) + "]"
case e: String => e
case _ => "java.lang.Void"
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2fb64905/examples/camel-example-servlet-rest-tomcat/src/main/resources/camel-config-xml.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-servlet-rest-tomcat/src/main/resources/camel-config-xml.xml b/examples/camel-example-servlet-rest-tomcat/src/main/resources/camel-config-xml.xml
index 3138843..b6185c6 100755
--- a/examples/camel-example-servlet-rest-tomcat/src/main/resources/camel-config-xml.xml
+++ b/examples/camel-example-servlet-rest-tomcat/src/main/resources/camel-config-xml.xml
@@ -53,7 +53,7 @@
</put>
<!-- this is a rest GET to find all users -->
- <get uri="/findAll" outList="true" outType="org.apache.camel.example.rest.User">
+ <get uri="/findAll" outType="org.apache.camel.example.rest.User[]">
<to uri="bean:userService?method=listUsers"/>
</get>