ee10db42652a61bfa2991578d6cfdb2e22548df5
[music.git] / src / main / java / org / onap / music / main / PropertiesLoader.java
1 /*
2  * ============LICENSE_START==========================================
3  * org.onap.music
4  * ===================================================================
5  *  Copyright (c) 2017 AT&T Intellectual Property
6  * ===================================================================
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  * 
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  *  Unless required by applicable law or agreed to in writing, software
14  *  distributed under the License is distributed on an "AS IS" BASIS,
15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  *  See the License for the specific language governing permissions and
17  *  limitations under the License.
18  * 
19  * ============LICENSE_END=============================================
20  * ====================================================================
21  */
22
23 package org.onap.music.main;
24
25 import java.util.ArrayList;
26 import java.util.Arrays;
27
28 import org.onap.music.eelf.logging.EELFLoggerDelegate;
29 import org.springframework.beans.factory.InitializingBean;
30 import org.springframework.beans.factory.annotation.Value;
31 import org.springframework.context.annotation.Bean;
32 import org.springframework.context.annotation.PropertySource;
33 import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
34 import org.springframework.stereotype.Component;
35
36 @PropertySource(value = {"file:/opt/app/music/etc/music.properties", "classpath:/project.properties"})
37 @Component
38 public class PropertiesLoader implements InitializingBean {
39
40     @Value("${zookeeper.host}")
41     private String zookeeperHost;
42     
43     @Value("${cassandra.host}")
44     public String cassandraHost;
45     
46     @Value("${music.ip}")
47     public String musicIp;        
48     
49     @Value("${debug}")
50     public String debug;
51     
52     @Value("${version}")
53     public String version;
54     
55     @Value("${music.rest.ip}")
56     public String musicRestIp;
57     
58     @Value("${music.properties}")
59     public String musicProperties;
60     
61     @Value("${lock.lease.period}")
62     public String lockLeasePeriod;
63     
64     @Value("${public.ip}")
65     public String publicIp;
66     
67     @Value("${my.id}")
68     public String myId;
69     
70     @Value("${all.ids}")
71     public String allIds;
72     
73     @Value("${all.public.ips}")
74     public String allPublicIps;
75     
76     @Value("${cassandra.user}")
77     public String cassandraUser;
78     
79     @Value("${cassandra.password}")
80     public String cassandraPassword;
81     
82     @Value("${aaf.endpoint.url}")
83     public String aafEndpointUrl;
84     
85     @Value("${admin.username}")
86     public String adminUsername;
87     
88     @Value("${admin.password}")
89     public String adminPassword;
90     
91     @Value("${cassandra.port}")
92     public String cassandraPort;
93     
94     @Value("${aaf.admin.url}")
95     public String aafAdminUrl;
96     
97     @Value("${music.namespace}")
98     public String musicNamespace;
99     
100     @Value("${admin.aaf.role}")
101     public String adminAafRole;
102     
103     @Value("${notify.interval}")
104     public String notifyInterval;
105     
106     @Value("${notify.timeout}")
107     public String notifyTimeout;
108
109     @Value("${cadi}")
110     public String isCadi;
111     
112     private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PropertiesLoader.class);
113     
114     @Bean
115     public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
116         //return new PropertySourcesPlaceholderConfigurer();
117         PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
118         pspc.setIgnoreResourceNotFound(true);
119         pspc.setIgnoreUnresolvablePlaceholders(true);
120         return pspc;
121     }
122     
123     public void loadProperties () {
124         if(aafAdminUrl != null && !aafAdminUrl.equals("${aaf.admin.url}"))
125             MusicUtil.setAafAdminUrl(aafAdminUrl);
126         if(aafEndpointUrl != null && !aafEndpointUrl.equals("${aaf.endpoint.url}"))
127             MusicUtil.setAafEndpointUrl(aafEndpointUrl);
128         if(adminAafRole != null && !adminAafRole.equals("${admin.aaf.role}"))
129             MusicUtil.setAdminAafRole(adminAafRole);
130         //MusicUtil.setAdminId(adminId);
131         if(adminPassword != null && !adminPassword.equals("${admin.password}"))
132             MusicUtil.setAdminPass(adminPassword);
133         if(adminUsername != null && !adminUsername.equals("${admin.username}"))
134             MusicUtil.setAdminId(adminUsername);
135         if(allIds != null && !allIds.equals("${all.ids}")) {
136             String[] ids = allIds.split(":");
137             MusicUtil.setAllIds(new ArrayList<String>(Arrays.asList(ids)));
138         }
139         if(allPublicIps != null && !allPublicIps.equals("${all.public.ips}")) {
140             String[] ips = allPublicIps.split(":");
141             if (ips.length == 1) {
142                 // Future use
143             } else if (ips.length > 1) {
144                 MusicUtil.setAllPublicIps(
145                                 new ArrayList<String>(Arrays.asList(ips)));
146             }
147         }
148         if(cassandraPort != null && !cassandraPort.equals("${cassandra.port}"))
149             MusicUtil.setCassandraPort(Integer.parseInt(cassandraPort));
150         if(cassandraUser != null && !cassandraUser.equals("${cassandra.user}"))
151             MusicUtil.setCassName(cassandraUser);
152         if(cassandraPassword != null && !cassandraPassword.equals("${cassandra.password}"))
153             MusicUtil.setCassPwd(cassandraPassword);
154         if(debug != null && !debug.equals("${debug}"))
155             MusicUtil.setDebug(Boolean.parseBoolean(debug));
156         if(lockLeasePeriod != null && !lockLeasePeriod.equals("${lock.lease.period}"))
157             MusicUtil.setDefaultLockLeasePeriod(Long.parseLong(lockLeasePeriod));
158         if(musicIp != null && !musicIp.equals("${music.ip}"))
159             MusicUtil.setDefaultMusicIp(musicIp);
160         if(musicNamespace != null && !musicNamespace.equals("${music.namespace}"))
161             MusicUtil.setMusicNamespace(musicNamespace);
162         if(musicProperties != null && !musicProperties.equals("${music.properties}"))
163             MusicUtil.setMusicPropertiesFilePath(musicProperties);
164         if(musicRestIp != null && !musicRestIp.equals("${music.rest.ip}"))
165             MusicUtil.setMusicRestIp(musicRestIp);
166         if(cassandraHost != null && !cassandraHost.equals("${cassandra.host}")) 
167             MusicUtil.setMyCassaHost(cassandraHost);
168         logger.info("#### Cassandra Host: " + MusicUtil.getMyCassaHost());
169         if(myId != null && !myId.equals("${my.id}")) 
170             MusicUtil.setMyId(Integer.parseInt(myId));
171         if(zookeeperHost != null && !zookeeperHost.equals("${zookeeper.host}"))
172             MusicUtil.setMyZkHost(zookeeperHost);
173         if(notifyInterval != null && !notifyInterval.equals("${notify.interval}")) 
174             MusicUtil.setNotifyInterval(Integer.parseInt(notifyInterval));
175         if(notifyTimeout != null && !notifyTimeout.equals("${notify.timeout}"))
176             MusicUtil.setNotifyTimeOut(Integer.parseInt(notifyTimeout));
177         if(allPublicIps != null && !allPublicIps.equals("${public.ip}"))
178             MusicUtil.setPublicIp(allPublicIps);
179         if(version != null && !version.equals("${version}"))
180             MusicUtil.setVersion(version);
181         if(isCadi != null && !isCadi.equals("${cadi}"))
182             MusicUtil.setIsCadi(Boolean.parseBoolean(isCadi));
183     }
184     
185     
186     @Override
187     public void afterPropertiesSet() throws Exception {
188         // TODO Auto-generated method stub
189         
190     }
191         
192 }