dependency cleanup
[ccsdk/sli/plugins.git] / grToolkit / provider / src / main / java / org / onap / ccsdk / sli / plugins / GrToolkitUtil.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : SDN-C
4  * ================================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights
6  *                      reserved.
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.ccsdk.sli.plugins;
23
24 import java.io.File;
25 import java.io.FileInputStream;
26 import java.io.IOException;
27 import java.io.InputStream;
28 import java.util.Properties;
29
30 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.ClusterHealthOutputBuilder;
31 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.SiteHealthOutputBuilder;
32 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.site.health.output.SitesBuilder;
33 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.DatabaseHealthOutputBuilder;
34 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.AdminHealthOutputBuilder;
35 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.HaltAkkaTrafficOutputBuilder;
36 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.ResumeAkkaTrafficOutputBuilder;
37 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.SiteIdentifierOutputBuilder;
38 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.FailoverOutputBuilder;
39 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.FailoverInputBuilder;
40
41
42 import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
43
44 import org.slf4j.Logger;
45 import org.slf4j.LoggerFactory;
46
47 public class GrToolkitUtil extends MdsalHelper {
48     private static final Logger LOG = LoggerFactory.getLogger(GrToolkitUtil.class);
49     public static String PROPERTIES_FILE = "/opt/opendaylight/current/controller/configuration/gr-toolkit.properties";
50
51     public static void loadProperties() {
52         File file = new File(PROPERTIES_FILE);
53         Properties properties = new Properties();
54         InputStream input = null;
55         if(file.isFile() && file.canRead()) {
56             try {
57                 input = new FileInputStream(file);
58                 properties.load(input);
59                 LOG.info("Loaded properties from " + PROPERTIES_FILE);
60                 setProperties(properties);
61             } catch (Exception e) {
62                 LOG.error("Failed to load properties " + PROPERTIES_FILE + "\n", e);
63             } finally {
64                 if(input != null) {
65                     try {
66                         input.close();
67                     } catch (IOException e) {
68                         LOG.error("Failed to close properties file " + PROPERTIES_FILE + "\n", e);
69                     }
70                 }
71             }
72         }
73     }
74
75     static {
76         // Trick class loader into loading builders. Some of
77         // these will be needed later by Reflection classes, but need
78         // to explicitly "new" them here to get class loader to load them.
79
80         ClusterHealthOutputBuilder b1 = new ClusterHealthOutputBuilder();
81         SiteHealthOutputBuilder b2 = new SiteHealthOutputBuilder();
82         SitesBuilder b3 = new SitesBuilder();
83         DatabaseHealthOutputBuilder b4 = new DatabaseHealthOutputBuilder();
84         AdminHealthOutputBuilder b5 = new AdminHealthOutputBuilder();
85         HaltAkkaTrafficOutputBuilder b6 = new HaltAkkaTrafficOutputBuilder();
86         ResumeAkkaTrafficOutputBuilder b7 = new ResumeAkkaTrafficOutputBuilder();
87         SiteIdentifierOutputBuilder b8 = new SiteIdentifierOutputBuilder();
88         FailoverOutputBuilder b9 = new FailoverOutputBuilder();
89         FailoverInputBuilder b10 = new FailoverInputBuilder();
90     }
91 }