Add Nfvo external system backend changes in ESR
[aai/esr-server.git] / esr-mgr / src / main / java / org / onap / aai / esr / ExtsysApp.java
index 2e1ae6f..b45692f 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * Copyright 2016-2017 ZTE Corporation.
+ * Copyright 2016-2018 ZTE Corporation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,54 +19,91 @@ package org.onap.aai.esr;
 import org.onap.aai.esr.common.MsbConfig;
 import org.onap.aai.esr.externalservice.msb.MsbHelper;
 import org.onap.aai.esr.resource.EmsManager;
+import org.onap.aai.esr.resource.PnfManager;
 import org.onap.aai.esr.resource.ServiceTest;
-import org.onap.aai.esr.resource.ThirdpatySdncManager;
+import org.onap.aai.esr.resource.ThirdpartySdncManager;
 import org.onap.aai.esr.resource.VimManager;
 import org.onap.aai.esr.resource.VnfmManager;
+import org.onap.aai.esr.resource.NfvoManager;
 import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
 import io.dropwizard.Application;
+import io.dropwizard.server.SimpleServerFactory;
 import io.dropwizard.setup.Environment;
+import io.swagger.jaxrs.config.BeanConfig;
+import io.swagger.jaxrs.listing.ApiListingResource;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
 
 public class ExtsysApp extends Application<ExtsysAppConfiguration> {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(ExtsysApp.class);
-  
-  public static void main(String[] args) throws Exception {
-    new ExtsysApp().run(args);
-  }
+    private static final Logger LOGGER = LoggerFactory.getLogger(ExtsysApp.class);
+
+    public static void main(String[] args) throws Exception {
+        new ExtsysApp().run(args);
+    }
 
-  @Override
-  public String getName() {
-    return "ONAP-ESR";
-  }
+    @Override
+    public String getName() {
+        return "ONAP-ESR";
+    }
 
-  @Override
-  public void run(ExtsysAppConfiguration configuration, Environment environment) {
-    LOGGER.info("Start to initialize esr.");
-    MsbConfig.setMsbServerAddr(configuration.getMsbServerAddr());
-    MsbConfig.setMsbDiscoveryIp(configuration.getMsbDiscoveryIp());
-    MsbConfig.setMsbDiscoveryPort(configuration.getMsbDiscoveryPort());
-    environment.jersey().register(new EmsManager());
-    environment.jersey().register(new ThirdpatySdncManager());
-    environment.jersey().register(new VimManager());
-    environment.jersey().register(new VnfmManager());
-    environment.jersey().register(new ServiceTest());
-    if (configuration.getRegistByHand().equals("true")){
-      String MSB_IP=configuration.getMsbDiscoveryIp();
-      Integer MSB_Port= Integer.valueOf(configuration.getMsbDiscoveryPort());
-      MSBServiceClient msbClient = new MSBServiceClient(MSB_IP, MSB_Port);
-      MsbHelper helper = new MsbHelper(msbClient);
-      try {
-        helper.registerMsb();
-        LOGGER.info("Register esr-server to msb by java-sdk finished");
-      } catch (Exception e) {
-        LOGGER.error("Register esr-server to msb by java-sdk failed", e);
-      }
+    @Override
+    public void run(ExtsysAppConfiguration configuration, Environment environment) {
+        LOGGER.info("Start to initialize esr.");
+        MsbConfig.setMsbServerAddr(configuration.getMsbServerAddr());
+        MsbConfig.setMsbDiscoveryIp(configuration.getMsbDiscoveryIp());
+        MsbConfig.setMsbDiscoveryPort(configuration.getMsbDiscoveryPort());
+        environment.jersey().register(new EmsManager());
+        environment.jersey().register(new ThirdpartySdncManager());
+        environment.jersey().register(new VimManager());
+        environment.jersey().register(new VnfmManager());
+        environment.jersey().register(new NfvoManager());
+        environment.jersey().register(new PnfManager());
+        environment.jersey().register(new ServiceTest());
+        initSwaggerConfig(environment, configuration);
+        if ("false".equals(configuration.getRegistByHand())) {
+            String MSB_IP = configuration.getMsbDiscoveryIp();
+            Integer MSB_Port = Integer.valueOf(configuration.getMsbDiscoveryPort());
+            MSBServiceClient msbClient = new MSBServiceClient(MSB_IP, MSB_Port);
+            MsbHelper helper = new MsbHelper(msbClient);
+            try {
+                helper.registerMsb();
+                LOGGER.info("Register esr-server to msb by java-sdk finished");
+            } catch (Exception e) {
+                LOGGER.error("Register esr-server to msb by java-sdk failed", e);
+            }
+        }
+        LOGGER.info("Initialize extsys finished.");
     }
-    LOGGER.info("Initialize extsys finished.");
-  }
+    
+    /**
+     * initialize swagger configuration.
+     * 
+     * @param environment environment information
+     * @param configuration catalogue configuration
+     */
+    private void initSwaggerConfig(Environment environment, ExtsysAppConfiguration configuration) {
+        environment.jersey().register(new ApiListingResource());
+        environment.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
 
+        BeanConfig config = new BeanConfig();
+        config.setTitle("ONAP ESR Service rest API");
+        config.setVersion("1.0.0");
+        config.setResourcePackage("org.onap.aai.esr.resource");
+        // set rest api basepath in swagger
+        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();
+        LOGGER.info("getApplicationContextPath: " + basePath);
+        config.setBasePath(basePath);
+        config.setScan(true);
+    }
+    
 }