b4ea478655236c82b6987ac8dccfe8f6a9aa1e8d
[oam/tr069-adapter.git] / netconf-server / src / main / java / org / commscope / tr069adapter / netconf / boot / NetConfServiceBooter.java
1 /*\r
2  * ============LICENSE_START========================================================================\r
3  * ONAP : tr-069-adapter\r
4  * =================================================================================================\r
5  * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
6  * =================================================================================================\r
7  * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
8  * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
9  * may obtain a copy of the License at\r
10  *\r
11  * http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
14  * either express or implied. See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  * ===============LICENSE_END=======================================================================\r
17  */\r
18 \r
19 package org.commscope.tr069adapter.netconf.boot;\r
20 \r
21 import org.commscope.tr069adapter.netconf.server.NetConfServerManagerImpl;\r
22 import org.slf4j.Logger;\r
23 import org.slf4j.LoggerFactory;\r
24 import org.springframework.boot.SpringApplication;\r
25 import org.springframework.boot.autoconfigure.SpringBootApplication;\r
26 import org.springframework.boot.autoconfigure.domain.EntityScan;\r
27 import org.springframework.context.ApplicationContext;\r
28 import org.springframework.context.annotation.ComponentScan;\r
29 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;\r
30 import org.springframework.retry.annotation.EnableRetry;\r
31 \r
32 @SpringBootApplication\r
33 @ComponentScan({"org.commscope.tr069adapter.netconf", "org.opendaylight.netconf.test",\r
34     "org.commscope.tr069adapter.common"})\r
35 @EnableJpaRepositories("org.commscope.tr069adapter.netconf.dao")\r
36 @EntityScan("org.commscope.tr069adapter.netconf.entity")\r
37 @EnableRetry\r
38 public class NetConfServiceBooter {\r
39 \r
40   private static final Logger LOG = LoggerFactory.getLogger(NetConfServiceBooter.class);\r
41 \r
42   private static ApplicationContext appContext;\r
43 \r
44   public static void main(String[] args) {\r
45     if (args != null)\r
46       appContext = SpringApplication.run(NetConfServiceBooter.class, args);\r
47     NetConfServerManagerImpl serverManager =\r
48         NetConfServiceBooter.getApplicationContext().getBean(NetConfServerManagerImpl.class);\r
49     boolean isSchemaLoaded = serverManager.loadSchemas();\r
50     if (!isSchemaLoaded) {\r
51       LOG.error("Loading the schema failed while starting the container");\r
52       System.exit(1);\r
53     }\r
54     serverManager.restartServers();\r
55   }\r
56 \r
57   public static ApplicationContext getApplicationContext() {\r
58     return appContext;\r
59   }\r
60 }\r