Issue-ID:VFC-384 73/13373/1
authorhanyanan <hanyanan@raisecom.com>
Tue, 19 Sep 2017 07:21:44 +0000 (15:21 +0800)
committerhanyanan <hanyanan@raisecom.com>
Tue, 19 Sep 2017 09:19:02 +0000 (17:19 +0800)
Change-Id: Iee553283ae9926800f697c3d1b7aecc30531c6a7
Signed-off-by: hanyanan <hanyanan@raisecom.com>
ems/boco/pom.xml
ems/boco/src/main/java/org/onap/vfc/nfvo/emsdriver/EmsDriverApplication.java
ems/boco/src/main/java/org/onap/vfc/nfvo/emsdriver/northbound/service/CommandResource.java

index ac890c5..413cff0 100644 (file)
@@ -31,6 +31,8 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <jersey.version>2.16</jersey.version>
+    <swagger.version>1.5.3</swagger.version>
   </properties>
   
    <build>
           <artifactId>dropwizard-core</artifactId>
           <version>1.0.6</version>
        </dependency>
+       <dependency>
+        <groupId>io.dropwizard</groupId>
+        <artifactId>dropwizard-assets</artifactId>
+        <version>1.0.5</version>
+    </dependency>
        <dependency>
          <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpclient</artifactId>
          <version>4.5.2</version>
        </dependency>
-  <dependency>
-                   <groupId>junit</groupId>
-                   <artifactId>junit</artifactId>
-                   <version>4.12</version>
-                   <scope>test</scope>
+         <dependency>
+            <groupId>org.glassfish.jersey.media</groupId>
+            <artifactId>jersey-media-multipart</artifactId>
+            <version>${jersey.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.glassfish.jersey.containers</groupId>
+            <artifactId>jersey-container-servlet-core</artifactId>
+            <version>${jersey.version}</version>
+        </dependency>
+               
+               <dependency>
+                       <groupId>org.glassfish.jersey.containers</groupId>
+                       <artifactId>jersey-container-servlet</artifactId>
+                       <version>2.16</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.glassfish.jersey.core</groupId>
+                       <artifactId>jersey-client</artifactId>
+                       <version>2.16</version>
                </dependency>
+               <dependency>
+                       <groupId>org.glassfish.jersey.core</groupId>
+                       <artifactId>jersey-common</artifactId>
+                       <version>2.16</version>
+               </dependency>
+    <dependency>
+           <groupId>junit</groupId>
+           <artifactId>junit</artifactId>
+           <version>4.12</version>
+           <scope>test</scope>
+       </dependency>
+       <dependency>
+        <groupId>io.swagger</groupId>
+        <artifactId>swagger-jersey2-jaxrs</artifactId>
+        <version>${swagger.version}</version>
+    </dependency>
   </dependencies>
 </project>
index dabf203..6ae160f 100644 (file)
 package org.onap.vfc.nfvo.emsdriver;
 
 import io.dropwizard.Application;
+import io.dropwizard.assets.AssetsBundle;
 import io.dropwizard.jetty.HttpConnectorFactory;
 import io.dropwizard.server.DefaultServerFactory;
 import io.dropwizard.server.SimpleServerFactory;
 import io.dropwizard.setup.Bootstrap;
 import io.dropwizard.setup.Environment;
+import io.swagger.jaxrs.config.BeanConfig;
+import io.swagger.jaxrs.listing.ApiListingResource;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -39,6 +42,8 @@ import org.onap.vfc.nfvo.emsdriver.serviceregister.model.ServiceNodeVo;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.FileSystemXmlApplicationContext;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+
 public class EmsDriverApplication extends Application<EmsDriverConfiguration> {
        
        protected static Log log = LogFactory.getLog(EmsDriverApplication.class);
@@ -57,6 +62,7 @@ public class EmsDriverApplication extends Application<EmsDriverConfiguration> {
     public void initialize(Bootstrap<EmsDriverConfiguration> bootstrap) {
         // nothing to do yet
        context = new FileSystemXmlApplicationContext("file:" + Constant.SYS_CFG+ "spring.xml");
+       bootstrap.addBundle(new AssetsBundle("/api-doc", "/api-doc", "index.html", "api-doc"));
     }
 
     @Override
@@ -71,6 +77,7 @@ public class EmsDriverApplication extends Application<EmsDriverConfiguration> {
        }
        //Start workThread
        this.startThread();
+       initSwaggerConfig(environment, configuration);
     }
     
     private void startThread(){
@@ -86,7 +93,26 @@ public class EmsDriverApplication extends Application<EmsDriverConfiguration> {
                        thread.start();
                }
     }
+    // init swagger
+    private void initSwaggerConfig(Environment environment, EmsDriverConfiguration configuration)
+    {
+        environment.jersey().register(new ApiListingResource());
+        environment.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
 
+        BeanConfig config = new BeanConfig();
+        config.setTitle(" Console Service rest API");
+        config.setVersion("1.0.0");
+        config.setResourcePackage("org.onap.vfc.nfvo.emsdriver.northbound.service");
+        //swagger rest api basepath
+        SimpleServerFactory simpleServerFactory = (SimpleServerFactory)configuration.getServerFactory();
+        String basePath = simpleServerFactory.getApplicationContextPath();
+        String rootPath = simpleServerFactory.getJerseyRootPath().get();
+        rootPath = rootPath.substring(0, rootPath.indexOf("/*"));
+        basePath = basePath.equals("/") ? rootPath : (new StringBuilder()).append(basePath).append(rootPath).toString();
+        config.setBasePath(basePath);
+        config.setScan(true);    
+    }
+    
        private void msbRegisteEmsDriverService(EmsDriverConfiguration configuration) {
                SimpleServerFactory simpleServerFactory = (SimpleServerFactory)configuration.getServerFactory();
                HttpConnectorFactory connector = (HttpConnectorFactory)simpleServerFactory.getConnector();
index 4a807b8..44c23b4 100644 (file)
  */
 package org.onap.vfc.nfvo.emsdriver.northbound.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
 
 import com.codahale.metrics.annotation.Timed;
 
 @Path("/ems-driver")
 @Produces(MediaType.APPLICATION_JSON)
+@Api(tags = {"ems-driver TestResource"})
 public class CommandResource {
 
 
     @GET
     @Timed
+    @ApiOperation(value = "get ems-driver Info")
     public String executeCommand(@QueryParam("command") String command) {
 
         System.out.println("receiver command = "+command);