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 2015/09/18 17:44:03 UTC

[17/21] camel git commit: CAMEL-7800: camel-swagger-java - work in progress

CAMEL-7800: camel-swagger-java - 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/d54f0bc3
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d54f0bc3
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d54f0bc3

Branch: refs/heads/master
Commit: d54f0bc33e3dd4ba2e2976c5412e016b835f5dee
Parents: c76cbd1
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Sep 18 14:04:07 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Sep 18 16:16:14 2015 +0200

----------------------------------------------------------------------
 .../RestSwaggerApiDeclarationServlet.java       | 52 +++++++++++++++-----
 .../apache/camel/swagger/RestSwaggerReader.java |  3 +-
 .../src/main/webapp/WEB-INF/web.xml             |  6 ++-
 3 files changed, 48 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d54f0bc3/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
index 6bc5e50..68d621b 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
@@ -30,6 +30,9 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
 import io.swagger.jaxrs.config.BeanConfig;
+import io.swagger.models.Contact;
+import io.swagger.models.Info;
+import io.swagger.models.License;
 import io.swagger.models.Swagger;
 import org.apache.camel.impl.DefaultClassResolver;
 import org.apache.camel.model.rest.RestDefinition;
@@ -68,20 +71,47 @@ public abstract class RestSwaggerApiDeclarationServlet extends HttpServlet {
         if (s != null) {
             cors = "true".equalsIgnoreCase(s);
         }
+        s = config.getInitParameter("schemas");
+        if (s != null) {
+            String[] schemas = s.split(",");
+            swaggerConfig.setSchemes(schemas);
+        } else {
+            // assume http by default
+            swaggerConfig.setSchemes(new String[]{"http"});
+        }
 
+        String version = config.getInitParameter("api.version");
         String title = config.getInitParameter("api.title");
         String description = config.getInitParameter("api.description");
-        String termsOfServiceUrl = config.getInitParameter("api.termsOfServiceUrl");
-        String contact = config.getInitParameter("api.contact");
-        String license = config.getInitParameter("api.license");
-        String licenseUrl = config.getInitParameter("api.licenseUrl");
-
-        swaggerConfig.setTitle(title);
-        swaggerConfig.setDescription(description);
-        swaggerConfig.setTermsOfServiceUrl(termsOfServiceUrl);
-        swaggerConfig.setContact(contact);
-        swaggerConfig.setLicense(license);
-        swaggerConfig.setLicenseUrl(licenseUrl);
+        String termsOfService = config.getInitParameter("api.termsOfService");
+        String licenseName = config.getInitParameter("api.license.name");
+        String licenseUrl = config.getInitParameter("api.license.url");
+        String contactName = config.getInitParameter("api.contact.name");
+        String contactUrl = config.getInitParameter("api.contact.url");
+        String contactEmail = config.getInitParameter("api.contact.email");
+
+        Info info = new Info();
+        info.setVersion(version);
+        info.setTitle(title);
+        info.setDescription(description);
+        info.setTermsOfService(termsOfService);
+
+        if (licenseName != null || licenseUrl != null) {
+            License license = new License();
+            license.setName(licenseName);
+            license.setUrl(licenseUrl);
+            info.setLicense(license);
+        }
+
+        if (contactName != null || contactUrl != null || contactEmail != null) {
+            Contact contact = new Contact();
+            contact.setName(contactName);
+            contact.setUrl(contactUrl);
+            contact.setEmail(contactEmail);
+            info.setContact(contact);
+        }
+
+        swaggerConfig.setInfo(info);
     }
 
     public abstract List<RestDefinition> getRestDefinitions(String camelId) throws Exception;

http://git-wip-us.apache.org/repos/asf/camel/blob/d54f0bc3/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
index 8f12dfe..1ad8c1f 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
@@ -66,7 +66,6 @@ public class RestSwaggerReader {
      */
     public Swagger read(RestDefinition rest, BeanConfig config, ClassResolver classResolver) {
         Swagger swagger = new Swagger();
-        config.configure(swagger);
 
         List<VerbDefinition> verbs = new ArrayList<>(rest.getVerbs());
         // must sort the verbs by uri so we group them together when an uri has multiple operations
@@ -209,6 +208,8 @@ public class RestSwaggerReader {
             swagger.path(opPath, path);
         }
 
+        // configure before returning
+        swagger = config.configure(swagger);
         return swagger;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/d54f0bc3/examples/camel-example-swagger-java/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-swagger-java/src/main/webapp/WEB-INF/web.xml b/examples/camel-example-swagger-java/src/main/webapp/WEB-INF/web.xml
index 17e049f..2979553 100755
--- a/examples/camel-example-swagger-java/src/main/webapp/WEB-INF/web.xml
+++ b/examples/camel-example-swagger-java/src/main/webapp/WEB-INF/web.xml
@@ -60,7 +60,7 @@
     </init-param>
     <init-param>
       <param-name>api.version</param-name>
-      <param-value>2.0</param-value>
+      <param-value>1.2.3</param-value>
     </init-param>
     <init-param>
       <param-name>api.title</param-name>
@@ -70,6 +70,10 @@
       <param-name>api.description</param-name>
       <param-value>Camel Rest Example with Swagger that provides an User REST service</param-value>
     </init-param>
+    <init-param>
+      <param-name>api.contact.name</param-name>
+      <param-value>The Apache Camel team</param-value>
+    </init-param>
     <load-on-startup>2</load-on-startup>
   </servlet>