Create 1.13.0 maven release
[aai/babel.git] / src / main / java / org / onap / aai / babel / BabelApplication.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
6  * Copyright (c) 2017-2019 European Software Marketing Ltd.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.aai.babel;
23
24 import org.onap.aai.babel.config.PropertyPasswordConfiguration;
25 import org.springframework.boot.SpringApplication;
26 import org.springframework.boot.autoconfigure.SpringBootApplication;
27 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
28 import org.springframework.context.ConfigurableApplicationContext;
29 import org.springframework.context.annotation.ComponentScan;
30 import org.springframework.context.annotation.ImportResource;
31
32 @SpringBootApplication
33 @ImportResource("classpath:babel-beans.xml")
34 @ComponentScan(basePackages = {
35         "org.onap.aai.aaf",
36         "org.onap.aai.babel"
37 })
38 public class BabelApplication extends SpringBootServletInitializer {
39
40     private static ConfigurableApplicationContext context;
41
42     /**
43      * Spring Boot Initialization.
44      *
45      * @param args
46      *            main args (expected to be null)
47      */
48     public static void main(String[] args) {
49         String keyStorePassword = System.getProperty("KEY_STORE_PASSWORD");
50         if (keyStorePassword == null || keyStorePassword.isEmpty()) {
51             throw new IllegalArgumentException("Mandatory property KEY_STORE_PASSWORD not set");
52         }
53         SpringApplication app = new SpringApplication(BabelApplication.class);
54         app.setLogStartupInfo(false);
55         app.setRegisterShutdownHook(true);
56         app.addInitializers(new PropertyPasswordConfiguration());
57         context = app.run(args);
58     }
59
60     public static void exit() {
61         SpringApplication.exit(context);
62     }
63 }