Add Nfvo external system backend changes in ESR
[aai/esr-server.git] / esr-mgr / src / main / java / org / onap / aai / esr / ExtsysApp.java
index 6552d95..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.
  */
 package org.onap.aai.esr;
 
-import com.fasterxml.jackson.annotation.JsonInclude;
+
+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.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.assets.AssetsBundle;
 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 org.glassfish.jersey.media.multipart.MultiPartFeature;
-import org.onap.aai.esr.common.Config;
-import org.onap.aai.esr.externalservice.msb.MsbHelper;
-import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+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);
-  }
-
-  @Override
-  public String getName() {
-    return "ONAP-ESR";
-  }
+    private static final Logger LOGGER = LoggerFactory.getLogger(ExtsysApp.class);
 
+    public static void main(String[] args) throws Exception {
+        new ExtsysApp().run(args);
+    }
 
-  @Override
-  public void initialize(Bootstrap<ExtsysAppConfiguration> bootstrap) {
-    bootstrap.addBundle(new AssetsBundle("/api-doc", "/api-doc", "index.html", "api-doc"));
-  }
+    @Override
+    public String getName() {
+        return "ONAP-ESR";
+    }
 
-  @Override
-  public void run(ExtsysAppConfiguration configuration, Environment environment) {
-    LOGGER.info("Start to initialize esr.");    
-    environment.jersey().packages("org.onap.aai.esr.resource");
-    environment.jersey().register(MultiPartFeature.class);
-    String MSB_IP=configuration.getMsbIp();
-    int MSB_Port=configuration.getMsbPort();
+    @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.");
+    }
     
-    initSwaggerConfig(environment, configuration);
-    Config.setConfigration(configuration);
-    MSBServiceClient msbClient = new MSBServiceClient(MSB_IP, MSB_Port);
+    /**
+     * 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);
 
-    MsbHelper helper = new MsbHelper(msbClient);
-    try {
-      helper.registerMsb();
-    } catch (Exception e) {
-      LOGGER.error("Register ESR to msb failed", e);
+        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);
     }
     
-    LOGGER.info("Initialize extsys finished.");
-  }
-
-  /**
-   * initialize swagger configuration.
-   * 
-   * @param environment environment information
-   * @param configuration 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("Open-o ExtSys 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();
-    rootPath = rootPath.substring(0, rootPath.indexOf("/*"));
-    basePath = basePath.equals("/") ? rootPath
-        : (new StringBuilder()).append(basePath).append(rootPath).toString();
-    config.setBasePath(basePath);
-    config.setScan(true);
-  }
-
 }