Skip to content

Commit fb6ef72

Browse files
authored
Added Rule File path property and other properties check and logs. (#266)
1 parent 9ecada3 commit fb6ef72

File tree

4 files changed

+119
-9
lines changed

4 files changed

+119
-9
lines changed

src/main/java/com/ericsson/ei/App.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,28 @@
2020
import java.util.Collections;
2121
import java.util.List;
2222

23+
import org.springframework.beans.factory.annotation.Autowired;
2324
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
2425
import org.springframework.beans.factory.config.Scope;
2526
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
2627
import org.springframework.boot.SpringApplication;
2728
import org.springframework.boot.autoconfigure.SpringBootApplication;
2829
import org.springframework.boot.builder.SpringApplicationBuilder;
2930
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
31+
import org.springframework.context.annotation.ComponentScan;
3032
import org.springframework.context.support.SimpleThreadScope;
3133
import org.springframework.scheduling.annotation.EnableAsync;
3234
import org.springframework.scheduling.annotation.EnableScheduling;
3335

36+
import com.ericsson.ei.config.CheckEIConfigurations;
37+
import com.ericsson.ei.rules.RulesHandler;
38+
39+
3440
@SpringBootApplication
3541
@EnableAsync
3642
@EnableScheduling
3743
public class App extends SpringBootServletInitializer {
38-
44+
3945
@Override
4046
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
4147
return application.sources(App.class);
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package com.ericsson.ei.config;
2+
3+
import java.io.IOException;
4+
5+
import javax.annotation.PostConstruct;
6+
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.core.env.Environment;
11+
import org.springframework.stereotype.Component;
12+
13+
import com.ericsson.ei.rules.RulesHandler;
14+
15+
16+
@Component
17+
public class CheckEIConfigurations {
18+
19+
private static final Logger LOGGER = LoggerFactory.getLogger(CheckEIConfigurations.class);
20+
21+
@Autowired
22+
Environment env;
23+
24+
@PostConstruct
25+
public void logAndCheckConfiguration() {
26+
27+
String rulePath = env.getProperty("rules.path");
28+
29+
LOGGER.debug("EI Backend started with following configurations:\n"
30+
+ "server.port: " + env.getProperty("server.port") + "\n"
31+
+ "server.session-timeout: " + env.getProperty("server.session-timeout") + "\n"
32+
+ "rules.path: " + rulePath + "\n"
33+
+ "rabbitmq.host: " + env.getProperty("rabbitmq.host") + "\n"
34+
+ "rabbitmq.port: " + env.getProperty("rabbitmq.port") + "\n"
35+
+ "rabbitmq.user: " + env.getProperty("rabbitmq.user") + "\n"
36+
+ "rabbitmq.tlsVersion: " + env.getProperty("rabbitmq.tlsVersion") + "\n"
37+
+ "rabbitmq.exchange.name: " + env.getProperty("rabbitmq.exchange.name") + "\n"
38+
+ "rabbitmq.domainId: " + env.getProperty("rabbitmq.domainId") + "\n"
39+
+ "rabbitmq.componentName: " + env.getProperty("rabbitmq.componentName") + "\n"
40+
+ "rabbitmq.consumerName: " + env.getProperty("rabbitmq.consumerName") + "\n"
41+
+ "rabbitmq.queue.durable: " + env.getProperty("rabbitmq.queue.durable") + "\n"
42+
+ "rabbitmq.binding.key: " + env.getProperty("rabbitmq.binding.key") + "\n"
43+
+ "rabbitmq.waitlist.queue.suffix: " + env.getProperty("rabbitmq.waitlist.queue.suffix") + "\n"
44+
+ "mergeidmarker: " + env.getProperty("mergeidmarker") + "\n"
45+
+ "spring.data.mongodb.host: " + env.getProperty("spring.data.mongodb.host") + "\n"
46+
+ "spring.data.mongodb.port: " + env.getProperty("spring.data.mongodb.port") + "\n"
47+
+ "spring.data.mongodb.username: " + env.getProperty("spring.data.mongodb.username") + "\n"
48+
+ "spring.data.mongodb.database: " + env.getProperty("spring.data.mongodb.database") + "\n"
49+
+ "sessions.collection.name: " + env.getProperty("sessions.collection.name") + "\n"
50+
+ "search.query.prefix: " + env.getProperty("search.query.prefix") + "\n"
51+
+ "aggregated.object.name: " + env.getProperty("aggregated.object.name") + "\n"
52+
+ "aggregated.collection.name: " + env.getProperty("aggregated.collection.name") + "\n"
53+
+ "aggregated.collection.ttlValue: " + env.getProperty("aggregated.collection.ttlValue") + "\n"
54+
+ "event_object_map.collection.name: " + env.getProperty("event_object_map.collection.name") + "\n"
55+
+ "waitlist.collection.name: " + env.getProperty("waitlist.collection.name") + "\n"
56+
+ "waitlist.collection.ttlValue: " + env.getProperty("waitlist.collection.ttlValue") + "\n"
57+
+ "waitlist.initialDelayResend: " + env.getProperty("waitlist.initialDelayResend") + "\n"
58+
+ "waitlist.fixedRateResend: " + env.getProperty("waitlist.fixedRateResend") + "\n"
59+
+ "subscription.collection.name: " + env.getProperty("subscription.collection.name") + "\n"
60+
+ "subscription.collection.repeatFlagHandlerName: " + env.getProperty("subscription.collection.repeatFlagHandlerName") + "\n"
61+
+ "testaggregated.enabled: " + env.getProperty("testaggregated.enabled") + "\n"
62+
+ "threads.corePoolSize: " + env.getProperty("threads.corePoolSize") + "\n"
63+
+ "threads.queueCapacity: " + env.getProperty("threads.queueCapacity") + "\n"
64+
+ "threads.maxPoolSize: " + env.getProperty("threads.maxPoolSize") + "\n"
65+
+ "missedNotificationCollectionName: " + env.getProperty("missedNotificationCollectionName") + "\n"
66+
+ "missedNotificationDataBaseName: " + env.getProperty("missedNotificationDataBaseName") + "\n"
67+
+ "email.sender: " + env.getProperty("email.sender") + "\n"
68+
+ "email.subject: " + env.getProperty("email.subject") + "\n"
69+
+ "notification.failAttempt: " + env.getProperty("notification.failAttempt") + "\n"
70+
+ "notification.ttl.value: " + env.getProperty("notification.ttl.value") + "\n"
71+
+ "spring.mail.host: " + env.getProperty("spring.mail.host") + "\n"
72+
+ "spring.mail.port: " + env.getProperty("spring.mail.port") + "\n"
73+
+ "spring.mail.username: " + env.getProperty("spring.mail.username") + "\n"
74+
+ "spring.mail.properties.mail.smtp.auth: " + env.getProperty("spring.mail.properties.mail.smtp.auth") + "\n"
75+
+ "spring.mail.properties.mail.smtp.starttls.enable: " + env.getProperty("spring.mail.properties.mail.smtp.starttls.enable") + "\n"
76+
+ "er.url: " + env.getProperty("er.url") + "\n"
77+
+ "ldap.enabled: " + env.getProperty("ldap.enabled") + "\n"
78+
+ "ldap.url: " + env.getProperty("ldap.url") + "\n"
79+
+ "ldap.base.dn: " + env.getProperty("ldap.base.dn") + "\n"
80+
+ "ldap.username: " + env.getProperty("ldap.username") + "\n"
81+
+ "ldap.user.filter: " + env.getProperty("ldap.user.filter") + "\n"
82+
+ "logging.level.root: " + env.getProperty("logging.level.root") + "\n"
83+
+ "logging.level.org.springframework.web: " + env.getProperty("logging.level.org.springframework.web") + "\n"
84+
+ "logging.level.com.ericsson.ei: " + env.getProperty("logging.level.com.ericsson.ei") + "\n"
85+
+ "\nThese properties are only some of the configuraitons, more configurations could have been provided.\n");
86+
87+
try {
88+
new RulesHandler().readRuleFileContent(rulePath);
89+
} catch (Exception e) {
90+
LOGGER.debug("Rules file failed to be loaded/read. RuleFile path: " + rulePath, e.getMessage());
91+
} finally {
92+
LOGGER.debug("Rules file path check performed successfully, Rule File: " + rulePath);
93+
}
94+
}
95+
}

src/main/java/com/ericsson/ei/rules/RulesHandler.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,27 @@ public void setParsedJson(String jsonContent) throws JsonProcessingException, IO
5757
ObjectMapper objectmapper = new ObjectMapper();
5858
parsedJson = objectmapper.readTree(jsonContent);
5959
}
60+
61+
public String readRuleFileContent(String ruleFilePath) throws IOException {
62+
String ruleJsonFileContent;
63+
InputStream in = this.getClass().getResourceAsStream(ruleFilePath);
64+
if(in == null) {
65+
ruleJsonFileContent = FileUtils.readFileToString(new File(ruleFilePath), Charset.defaultCharset());
66+
} else {
67+
ruleJsonFileContent = getContent(in);
68+
}
69+
return ruleJsonFileContent;
70+
}
6071

6172
@PostConstruct public void init() {
73+
6274
if (parsedJson == null) {
6375
try {
64-
InputStream in = this.getClass().getResourceAsStream(jsonFilePath);
65-
if(in == null) {
66-
jsonFileContent = FileUtils.readFileToString(new File(jsonFilePath), Charset.defaultCharset());
67-
} else {
68-
jsonFileContent = getContent(in);
69-
}
76+
jsonFileContent = readRuleFileContent(jsonFilePath);
7077
ObjectMapper objectmapper = new ObjectMapper();
7178
parsedJson = objectmapper.readTree(jsonFileContent);
7279
} catch (Exception e) {
73-
LOGGER.error(e.getMessage(), e);
80+
LOGGER.error("RulesHandler Init: Failed to read Rules file: " + jsonFilePath, e.getMessage(), e);
7481
}
7582
}
7683
}
@@ -82,7 +89,7 @@ public void setRulePath(String path) {
8289
ObjectMapper objectmapper = new ObjectMapper();
8390
parsedJson = objectmapper.readTree(jsonFileContent);
8491
} catch (IOException e) {
85-
LOGGER.error(e.getMessage(), e);
92+
LOGGER.error("Failed to read Rules file: " + jsonFilePath, e.getMessage(), e);
8693
}
8794
}
8895

src/main/resources/application.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.embedd
4545
# Details for connection to mongoDB
4646
spring.data.mongodb.host: localhost
4747
spring.data.mongodb.port: 27017
48+
#spring.data.mongodb.username:
49+
#spring.data.mongodb.password:
4850
spring.data.mongodb.database: eiffel_intelligence
4951
# we cannot have empty username and password property here
5052
# if these properties are empty, remove or comment them

0 commit comments

Comments
 (0)