1 /*******************************************************************************
2 * Copyright 2016-2017 ZTE, Inc. and others.
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 * in compliance with the License. You may obtain a copy of the License at
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software distributed under the License
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 * or implied. See the License for the specific language governing permissions and limitations under
13 ******************************************************************************/
14 package org.onap.msb.apiroute;
16 import org.onap.msb.apiroute.health.ApiRouteHealthCheck;
17 import org.onap.msb.apiroute.resources.ApiRouteResource;
18 import org.onap.msb.apiroute.resources.CustomRouteResource;
19 import org.onap.msb.apiroute.resources.IuiRouteResource;
20 import org.onap.msb.apiroute.resources.MicroServiceResource;
21 import org.onap.msb.apiroute.wrapper.InitRouteServiceWrapper;
22 import org.onap.msb.apiroute.wrapper.util.ConfigUtil;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
26 import com.fasterxml.jackson.annotation.JsonInclude;
28 import io.dropwizard.Application;
29 import io.dropwizard.assets.AssetsBundle;
30 import io.dropwizard.server.SimpleServerFactory;
31 import io.dropwizard.setup.Bootstrap;
32 import io.dropwizard.setup.Environment;
33 import io.swagger.jaxrs.config.BeanConfig;
34 import io.swagger.jaxrs.listing.ApiListingResource;
36 public class ApiRouteApp extends Application<ApiRouteAppConfig> {
38 private static final Logger LOGGER = LoggerFactory.getLogger(ApiRouteApp.class);
40 public static void main(String[] args) throws Exception {
41 new ApiRouteApp().run(args);
43 InitRouteServiceWrapper.getInstance().initFilterConfig();
45 InitRouteServiceWrapper.getInstance().initDataSynchro();
47 InitRouteServiceWrapper.getInstance().initHealthCheck();
52 public String getName() {
53 return " MicroService Bus ";
57 public void initialize(Bootstrap<ApiRouteAppConfig> bootstrap) {
58 super.initialize(bootstrap);
63 public void run(ApiRouteAppConfig configuration, Environment environment) throws Exception {
66 ConfigUtil.getInstance().initRootPath();
69 String iuiRootPath = ConfigUtil.getInstance().getIUI_ROOT_PATH();
71 // new AssetsBundle("/iui-metrics", "/"+iuiRootPath+"/microservices/metrics","index.html",
72 // "iui-metrics").run(environment);
74 new AssetsBundle("/iui-route", "/" + iuiRootPath + "/microservices", "index.html", "iui-microservices")
77 new AssetsBundle("/api-doc", "/" + iuiRootPath + "/microservices/api-doc", "index.html", "api-doc")
80 new AssetsBundle("/ext", "/" + iuiRootPath + "/microservices/ext", "index.html", "ext").run(environment);
84 final ApiRouteHealthCheck healthCheck = new ApiRouteHealthCheck();
85 environment.healthChecks().register("consulCheck", healthCheck);
87 environment.jersey().register(new ApiRouteResource());
88 environment.jersey().register(new IuiRouteResource());
89 environment.jersey().register(new CustomRouteResource());
90 environment.jersey().register(new MicroServiceResource());
92 // initSwaggerConfig(environment, configuration);
94 ConfigUtil.getInstance().initConsulIp();
95 ConfigUtil.getInstance().initDiscoverInfo(configuration);
96 // InitRouteServiceWrapper.getInstance().initMetricsConfig(configuration);
103 private void initSwaggerConfig(Environment environment, ApiRouteAppConfig configuration) {
105 environment.jersey().register(new ApiListingResource());
106 environment.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
108 BeanConfig config = new BeanConfig();
109 config.setTitle("ApiRoute RESTful API");
110 config.setVersion("1.0.0");
111 config.setResourcePackage("org.onap.msb.apiroute.resources");
112 SimpleServerFactory simpleServerFactory = (SimpleServerFactory) configuration.getServerFactory();
113 String basePath = simpleServerFactory.getApplicationContextPath();
114 String rootPath = simpleServerFactory.getJerseyRootPath();
116 rootPath = rootPath.substring(0, rootPath.indexOf("/*"));
118 basePath = basePath.equals("/") ? rootPath : (new StringBuilder()).append(basePath).append(rootPath).toString();
120 LOGGER.warn("getApplicationContextPath: " + basePath);
121 config.setBasePath(basePath);
122 config.setScan(true);