You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by cs...@apache.org on 2017/04/11 15:29:22 UTC

cxf-dosgi git commit: Add swagger config to rest example

Repository: cxf-dosgi
Updated Branches:
  refs/heads/master 1fbc19490 -> 89d9b3955


Add swagger config to rest example


Project: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/commit/89d9b395
Tree: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/tree/89d9b395
Diff: http://git-wip-us.apache.org/repos/asf/cxf-dosgi/diff/89d9b395

Branch: refs/heads/master
Commit: 89d9b395551dbc1b6107046751a5f11b699984fd
Parents: 1fbc194
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Tue Apr 11 17:29:15 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Tue Apr 11 17:29:15 2017 +0200

----------------------------------------------------------------------
 samples/rest/README.md                          |  2 +-
 samples/rest/api/pom.xml                        |  6 +++++
 .../cxf/dosgi/samples/rest/TaskResource.java    |  3 +++
 samples/rest/impl-jackson/bnd.bnd               |  3 +++
 samples/rest/impl-jackson/pom.xml               |  6 +++++
 .../dosgi/samples/rest/impl/JacksonIntent.java  |  9 +++----
 .../samples/rest/impl/TaskResourceImpl.java     | 25 ++++++++++++++++----
 7 files changed, 45 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/89d9b395/samples/rest/README.md
----------------------------------------------------------------------
diff --git a/samples/rest/README.md b/samples/rest/README.md
index 57e4ff7..eda3e1d 100644
--- a/samples/rest/README.md
+++ b/samples/rest/README.md
@@ -16,7 +16,7 @@ Unpack karaf 4 into a server and client directory.
 Start the server karaf
 
 ```
-feature:repo-add cxf-dosgi-samples 2.0.0
+feature:repo-add cxf-dosgi-samples 2.2.0-SNAPSHOT
 feature:install cxf-dosgi-sample-rest-impl
 rsa:endpoints
 ```

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/89d9b395/samples/rest/api/pom.xml
----------------------------------------------------------------------
diff --git a/samples/rest/api/pom.xml b/samples/rest/api/pom.xml
index 3be339c..355a19a 100644
--- a/samples/rest/api/pom.xml
+++ b/samples/rest/api/pom.xml
@@ -40,6 +40,12 @@
             <artifactId>org.apache.servicemix.specs.jsr339-api-2.0.1</artifactId>
             <version>2.6.0</version>
         </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>1.5.13</version>
+            <optional>true</optional>
+        </dependency>
     </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/89d9b395/samples/rest/api/src/main/java/org/apache/cxf/dosgi/samples/rest/TaskResource.java
----------------------------------------------------------------------
diff --git a/samples/rest/api/src/main/java/org/apache/cxf/dosgi/samples/rest/TaskResource.java b/samples/rest/api/src/main/java/org/apache/cxf/dosgi/samples/rest/TaskResource.java
index e4a6798..2ccedb6 100644
--- a/samples/rest/api/src/main/java/org/apache/cxf/dosgi/samples/rest/TaskResource.java
+++ b/samples/rest/api/src/main/java/org/apache/cxf/dosgi/samples/rest/TaskResource.java
@@ -25,6 +25,9 @@ import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 
+import io.swagger.annotations.Api;
+
+@Api
 @Path("")
 @Produces("application/xml")
 public interface TaskResource {

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/89d9b395/samples/rest/impl-jackson/bnd.bnd
----------------------------------------------------------------------
diff --git a/samples/rest/impl-jackson/bnd.bnd b/samples/rest/impl-jackson/bnd.bnd
new file mode 100644
index 0000000..3a89c4b
--- /dev/null
+++ b/samples/rest/impl-jackson/bnd.bnd
@@ -0,0 +1,3 @@
+Import-Package: \
+	io.swagger.jaxrs,\
+	*
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/89d9b395/samples/rest/impl-jackson/pom.xml
----------------------------------------------------------------------
diff --git a/samples/rest/impl-jackson/pom.xml b/samples/rest/impl-jackson/pom.xml
index d8840f4..1ed144f 100644
--- a/samples/rest/impl-jackson/pom.xml
+++ b/samples/rest/impl-jackson/pom.xml
@@ -39,6 +39,12 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-rs-service-description-swagger</artifactId>
+            <version>3.1.9</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
         	<groupId>org.apache.aries.rsa</groupId>
         	<artifactId>org.apache.aries.rsa.spi</artifactId>
         	<version>1.9.0</version>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/89d9b395/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/JacksonIntent.java
----------------------------------------------------------------------
diff --git a/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/JacksonIntent.java b/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/JacksonIntent.java
index dca20b2..980fcbe 100644
--- a/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/JacksonIntent.java
+++ b/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/JacksonIntent.java
@@ -20,23 +20,24 @@ package org.apache.cxf.dosgi.samples.rest.impl;
 
 import java.util.Arrays;
 import java.util.List;
-import java.util.concurrent.Callable;
 
 import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
+import org.apache.cxf.dosgi.common.api.IntentsProvider;
 import org.osgi.service.component.annotations.Component;
 
 
 /**
- * Only needed if jackson is used thorugh an external intent
+ * Not needed in the current example config.
+ * This shows how to export a custom intent.
  */
 @Component //
 (//
     property = "org.apache.cxf.dosgi.IntentName=jackson" //
 )
-public class JacksonIntent implements Callable<List<Object>> {
+public class JacksonIntent implements IntentsProvider {
 
     @Override
-    public List<Object> call() throws Exception {
+    public List<?> getIntents() {
         return Arrays.asList((Object)new JacksonJaxbJsonProvider());
     }
     

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/89d9b395/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java
----------------------------------------------------------------------
diff --git a/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java b/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java
index ab96eb2..f1855de 100644
--- a/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java
+++ b/samples/rest/impl-jackson/src/main/java/org/apache/cxf/dosgi/samples/rest/impl/TaskResourceImpl.java
@@ -18,15 +18,20 @@
  */
 package org.apache.cxf.dosgi.samples.rest.impl;
 
-import java.util.Arrays;
+import static java.util.Arrays.asList;
+
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
+import io.swagger.annotations.Api;
 import org.apache.cxf.dosgi.common.api.IntentsProvider;
 import org.apache.cxf.dosgi.samples.rest.Task;
 import org.apache.cxf.dosgi.samples.rest.TaskResource;
+import org.apache.cxf.ext.logging.LoggingFeature;
+import org.apache.cxf.feature.Features;
+import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
 import org.osgi.service.component.annotations.Component;
 
 @Component//
@@ -37,12 +42,13 @@ import org.osgi.service.component.annotations.Component;
     { //
       "service.exported.interfaces=*", //
       "service.exported.configs=org.apache.cxf.rs", //
-      //"service.exported.intents=jackson", // Only needed when defining jackson as external intent
       "org.apache.cxf.rs.address=/tasks", //
       // By default CXF will favor the default json provider
       "cxf.bus.prop.skip.default.json.provider.registration=true"
     } //
 )
+@Api(value = "mytest")
+@Features(classes = {LoggingFeature.class})
 public class TaskResourceImpl implements TaskResource, IntentsProvider {
     Map<Integer, Task> taskMap;
 
@@ -59,7 +65,7 @@ public class TaskResourceImpl implements TaskResource, IntentsProvider {
         task.setDescription("");
         addOrUpdate(task);
     }
-
+    
     @Override
     public Task get(Integer id) {
         return taskMap.get(id);
@@ -70,6 +76,7 @@ public class TaskResourceImpl implements TaskResource, IntentsProvider {
         taskMap.put(task.getId(), task);
     }
 
+
     @Override
     public Task[] getAll() {
         return taskMap.values().toArray(new Task[]{});
@@ -82,7 +89,17 @@ public class TaskResourceImpl implements TaskResource, IntentsProvider {
 
     @Override
     public List<?> getIntents() {
-        return Arrays.asList(new JacksonJaxbJsonProvider());
+        return asList(createSwaggerFeature(), new JacksonJaxbJsonProvider());
+    }
+
+    private Swagger2Feature createSwaggerFeature() {
+        Swagger2Feature swagger = new Swagger2Feature();
+        //swagger2Feature.setBasePath("/cxf/");
+        swagger.setUsePathBasedConfig(true);
+        swagger.setPrettyPrint(true);
+        swagger.setSupportSwaggerUi(true);
+        swagger.setScan(false);
+        return swagger;
     }
 
 }