2 * ============LICENSE_START==========================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 * ============LICENSE_END=============================================
20 * ====================================================================
23 package org.onap.music.main;
25 import java.util.HashSet;
26 import java.util.Properties;
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;
36 @PropertySource(value = {"file:/opt/app/music/etc/music.properties", "classpath:/project.properties","file:/opt/app/music/etc/key.properties"})
38 public class PropertiesLoader implements InitializingBean {
40 @Value("${cassandra.host}")
41 public String cassandraHost;
47 public String version;
52 @Value("${music.properties}")
53 public String musicProperties;
55 @Value("${lock.lease.period}")
56 public String lockLeasePeriod;
58 @Value("${cassandra.user}")
59 public String cassandraUser;
61 @Value("${cassandra.password}")
62 public String cassandraPassword;
64 @Value("${cassandra.port}")
65 public String cassandraPort;
67 @Value("${cassandra.connecttimeoutms}")
68 public String cassandraConnectTimeOutMS;
70 @Value("${cassandra.readtimeoutms}")
71 public String cassandraReadTimeOutMS;
76 @Value("${keyspace.active}")
77 public String isKeyspaceActive;
79 @Value("${retry.count}")
80 public String rertryCount;
82 @Value("${lock.daemon.sleeptime.ms}")
83 public String lockDaemonSleeptimems;
85 @Value("${keyspaces.for.lock.cleanup}")
86 public String keyspacesForLockCleanup;
88 @Value("${create.lock.wait.period.ms}")
89 private long createLockWaitPeriod;
91 @Value("${create.lock.wait.increment.ms}")
92 private int createLockWaitIncrement;
94 @Value("${transId.header.prefix}")
95 private String transIdPrefix;
97 @Value("${conversation.header.prefix}")
98 private String conversationIdPrefix;
100 @Value("${clientId.header.prefix}")
101 private String clientIdPrefix;
103 @Value("${messageId.header.prefix}")
104 private String messageIdPrefix;
106 @Value("${transId.header.required}")
107 private Boolean transIdRequired;
109 @Value("${conversation.header.required}")
110 private Boolean conversationIdRequired;
112 @Value("${clientId.header.required}")
113 private Boolean clientIdRequired;
115 @Value("${messageId.header.required}")
116 private Boolean messageIdRequired;
118 @Value("${music.aaf.ns}")
119 private String musicAafNs;
121 @Value("${cipher.enc.key}")
122 private String cipherEncKey;
124 @SuppressWarnings("unused")
125 private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PropertiesLoader.class);
128 public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
130 PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
131 pspc.setIgnoreResourceNotFound(true);
132 pspc.setIgnoreUnresolvablePlaceholders(true);
139 public void loadProperties() {
140 if(cipherEncKey != null) {
141 MusicUtil.setCipherEncKey(cipherEncKey);
143 if (musicAafNs != null) {
144 MusicUtil.setMusicAafNs(musicAafNs);
146 if (cassandraPort != null && !cassandraPort.equals("${cassandra.port}")) {
147 MusicUtil.setCassandraPort(Integer.parseInt(cassandraPort));
149 if (cassandraUser != null && !cassandraUser.equals("${cassandra.user}")) {
150 MusicUtil.setCassName(cassandraUser);
152 if (cassandraPassword != null && !cassandraPassword.equals("${cassandra.password}")) {
153 MusicUtil.setCassPwd(cassandraPassword);
155 if (cassandraConnectTimeOutMS != null && !cassandraConnectTimeOutMS.equals("${cassandra.connecttimeoutms}")) {
156 MusicUtil.setCassandraConnectTimeOutMS(Integer.parseInt(cassandraConnectTimeOutMS));
158 if (cassandraReadTimeOutMS != null && !cassandraReadTimeOutMS.equals("${cassandra.readtimeoutms}")) {
159 MusicUtil.setCassandraReadTimeOutMS(Integer.parseInt(cassandraReadTimeOutMS));
161 if (debug != null && !debug.equals("${debug}")) {
162 MusicUtil.setDebug(Boolean.parseBoolean(debug));
164 if (lockLeasePeriod != null && !lockLeasePeriod.equals("${lock.lease.period}")) {
165 MusicUtil.setDefaultLockLeasePeriod(Long.parseLong(lockLeasePeriod));
167 if (musicProperties != null && !musicProperties.equals("${music.properties}")) {
168 MusicUtil.setMusicPropertiesFilePath(musicProperties);
170 if (cassandraHost != null && !cassandraHost.equals("${cassandra.host}")) {
171 MusicUtil.setMyCassaHost(cassandraHost);
173 if (version != null && !version.equals("${version}")) {
174 MusicUtil.setVersion(version);
176 if (build != null && !version.equals("${build}")) {
177 MusicUtil.setBuild(build);
179 if (isCadi != null && !isCadi.equals("${cadi}")) {
180 MusicUtil.setIsCadi(Boolean.parseBoolean(isCadi));
182 if (rertryCount != null && !rertryCount.equals("${retry.count}")) {
183 MusicUtil.setRetryCount(Integer.parseInt(rertryCount));
185 if (isKeyspaceActive != null && !isKeyspaceActive.equals("${keyspace.active}")) {
186 MusicUtil.setKeyspaceActive(Boolean.parseBoolean(isKeyspaceActive));
188 if (lockDaemonSleeptimems != null && !lockDaemonSleeptimems.equals("${lock.daemon.sleeptime.ms}")) {
189 MusicUtil.setLockDaemonSleepTimeMs(Long.parseLong(lockDaemonSleeptimems));
191 if (keyspacesForLockCleanup !=null && !keyspacesForLockCleanup.equals("${keyspaces.for.lock.cleanup}")) {
192 HashSet<String> keyspaces = new HashSet<>();
193 for (String keyspace: keyspacesForLockCleanup.split(",")) {
194 keyspaces.add(keyspace);
196 MusicUtil.setKeyspacesToCleanLocks(keyspaces);
198 if(transIdPrefix!=null) {
199 MusicUtil.setTransIdPrefix(transIdPrefix);
202 if(conversationIdPrefix!=null) {
203 MusicUtil.setConversationIdPrefix(conversationIdPrefix);
206 if(clientIdPrefix!=null) {
207 MusicUtil.setClientIdPrefix(clientIdPrefix);
210 if(messageIdPrefix!=null) {
211 MusicUtil.setMessageIdPrefix(messageIdPrefix);
214 if(transIdRequired!=null) {
215 MusicUtil.setTransIdRequired(transIdRequired);
218 if(conversationIdRequired!=null) {
219 MusicUtil.setConversationIdRequired(conversationIdRequired);
222 if(clientIdRequired!=null) {
223 MusicUtil.setClientIdRequired(clientIdRequired);
226 if(messageIdRequired!=null) {
227 MusicUtil.setMessageIdRequired(messageIdRequired);
230 if(createLockWaitPeriod!=0) {
231 MusicUtil.setCreateLockWaitPeriod(createLockWaitPeriod);
234 if(createLockWaitIncrement!=0) {
235 MusicUtil.setCreateLockWaitIncrement(createLockWaitIncrement);
239 public static void loadProperties(Properties properties) {
240 if (properties.getProperty("cassandra.host")!=null) {
241 MusicUtil.setMyCassaHost(properties.getProperty("cassandra.host"));
244 if (properties.getProperty("cassandra.port")!=null) {
245 MusicUtil.setCassandraPort(Integer.parseInt(properties.getProperty("cassandra.port")));
248 if (properties.getProperty("cassandra.user")!=null) {
249 MusicUtil.setCassName(properties.getProperty("cassandra.user"));
252 if (properties.getProperty("cassandra.password")!=null) {
253 MusicUtil.setCassPwd(properties.getProperty("cassandra.password"));
256 if(properties.getProperty("cassandra.connectTimeOutMS")!=null) {
257 MusicUtil.setCassandraConnectTimeOutMS(Integer.parseInt(properties.getProperty("cassandra.connecttimeoutms")));
260 if(properties.getProperty("cassandra.readTimeOutMS")!=null) {
261 MusicUtil.setCassandraReadTimeOutMS(Integer.parseInt(properties.getProperty("cassandra.readtimeoutms")));
264 if (properties.getProperty("music.properties")!=null) {
265 MusicUtil.setMusicPropertiesFilePath(properties.getProperty("music.properties"));
268 if (properties.getProperty("debug")!=null) {
269 MusicUtil.setDebug(Boolean.parseBoolean(properties.getProperty("debug")));
272 if (properties.getProperty("version")!=null) {
273 MusicUtil.setVersion(properties.getProperty("version"));
276 if (properties.getProperty("build")!=null) {
277 MusicUtil.setBuild(properties.getProperty("build"));
280 if (properties.getProperty("lock.lease.period")!=null) {
281 MusicUtil.setDefaultLockLeasePeriod(Long.parseLong(properties.getProperty("lock.lease.period")));
284 if (properties.getProperty("cadi")!=null) {
285 MusicUtil.setIsCadi(Boolean.parseBoolean(properties.getProperty("cadi")));
288 if (properties.getProperty("keyspace.active")!=null) {
289 MusicUtil.setKeyspaceActive(Boolean.parseBoolean(properties.getProperty("keyspace.active")));
292 if (properties.getProperty("retry.count")!=null) {
293 MusicUtil.setRetryCount(Integer.parseInt(properties.getProperty("retry.count")));
296 if (properties.getProperty("transId.header.prefix")!=null) {
297 MusicUtil.setTransIdPrefix(properties.getProperty("transId.header.prefix"));
300 if (properties.getProperty("conversation.header.prefix")!=null) {
301 MusicUtil.setConversationIdPrefix(properties.getProperty("conversation.header.prefix"));
304 if (properties.getProperty("clientId.header.prefix")!=null) {
305 MusicUtil.setClientIdPrefix(properties.getProperty("clientId.header.prefix"));
308 if (properties.getProperty("messageId.header.prefix")!=null) {
309 MusicUtil.setMessageIdPrefix(properties.getProperty("messageId.header.prefix"));
312 if (properties.getProperty("transId.header.required")!=null) {
313 MusicUtil.setTransIdRequired(Boolean.parseBoolean(properties.getProperty("transId.header.required")));
316 if (properties.getProperty("conversation.header.required")!=null) {
317 MusicUtil.setConversationIdRequired(Boolean.parseBoolean(properties.getProperty("conversation.header.required")));
320 if (properties.getProperty("clientId.header.required")!=null) {
321 MusicUtil.setClientIdRequired(Boolean.parseBoolean(properties.getProperty("clientId.header.required")));
324 if (properties.getProperty("messageId.header.required")!=null) {
325 MusicUtil.setMessageIdRequired(Boolean.parseBoolean(properties.getProperty("messageId.header.required")));
328 if (properties.getProperty("music.aaf.ns")!=null) {
329 MusicUtil.setMusicAafNs(properties.getProperty("music.aaf.ns"));
332 if (properties.getProperty("cipher.enc.key")!=null) {
333 MusicUtil.setCipherEncKey(properties.getProperty("cipher.enc.key"));
339 public void afterPropertiesSet() throws Exception {
340 // TODO Auto-generated method stub
344 /* For unit testing purpose only*/
345 protected void setProperties() {
346 cassandraHost = "127.0.0.1";
350 musicProperties = "property";
351 lockLeasePeriod = "5000";
352 cassandraUser = "user";
353 cassandraPassword = "password";
354 cassandraPort = "8007";
355 cassandraConnectTimeOutMS = "1000";
356 cassandraReadTimeOutMS = "1000";
358 isKeyspaceActive = "true";
360 transIdPrefix = "transId-";
361 conversationIdPrefix = "conversation-";
362 clientIdPrefix = "clientId-";
363 messageIdPrefix = "messageId-";
364 transIdRequired = true;
365 conversationIdRequired = true;
366 clientIdRequired = true;
367 messageIdRequired = true;
369 cipherEncKey = "key";