Browse Source

Loading configuration

feature-basic-conf
LO Kam Tao Leo 3 years ago
parent
commit
0d1bed4265
  1. 1
      .gitignore
  2. 20
      .idea/workspace.xml
  3. 1
      pom.xml
  4. 2
      src/main/java/org/leolo/nrdatad/App.java
  5. 114
      src/main/java/org/leolo/nrdatad/ConfigurationManager.java
  6. 22
      src/main/resources/log4j2.xml

1
.gitignore vendored

@ -39,3 +39,4 @@ build/
### Configuration file ### Configuration file
/nrdatad.conf /nrdatad.conf
ri_log*

20
.idea/workspace.xml

@ -5,7 +5,8 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b9554e7b-3332-419c-960c-8bfbee0d5311" name="Changes" comment=""> <list default="true" id="b9554e7b-3332-419c-960c-8bfbee0d5311" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/main/java/org/leolo/nrdatad/ConfigurationManager.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/log4j2.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/org/leolo/nrdatad/App.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/leolo/nrdatad/App.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/org/leolo/nrdatad/App.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/leolo/nrdatad/App.java" afterDir="false" />
@ -15,6 +16,13 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
@ -37,6 +45,11 @@
} }
}]]></component> }]]></component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\IdeaProjects\nr-data-damon\src\main\resources" />
<recent name="D:\IdeaProjects\nr-data-damon\src\main\java" />
<recent name="D:\IdeaProjects\nr-data-damon" />
</key>
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY"> <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
<recent name="org.leolo.nrdatad" /> <recent name="org.leolo.nrdatad" />
</key> </key>
@ -63,13 +76,16 @@
<option name="number" value="Default" /> <option name="number" value="Default" />
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1665904334835</updated> <updated>1665904334835</updated>
<workItem from="1665904336661" duration="2746000" /> <workItem from="1665904336661" duration="6172000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" /> <option name="version" value="3" />
</component> </component>
<component name="UnknownFeatures">
<option featureType="com.intellij.fileTypeFactory" implementationName="*.conf" />
</component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES"> <option name="TAB_STATES">
<map> <map>

1
pom.xml

@ -87,4 +87,5 @@
</plugins> </plugins>
</pluginManagement> </pluginManagement>
</build> </build>
</project> </project>

2
src/main/java/org/leolo/nrdatad/App.java

@ -36,6 +36,6 @@ public class App {
private void run(String configPath){ private void run(String configPath){
logger.always().log("System Started."); logger.always().log("System Started.");
ConfigurationManager.getInstance().loadConfiguration(configPath);
} }
} }

114
src/main/java/org/leolo/nrdatad/ConfigurationManager.java

@ -0,0 +1,114 @@
package org.leolo.nrdatad;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.*;
import java.util.function.BiConsumer;
public final class ConfigurationManager {
private static ConfigurationManager instance;
Logger logger = LogManager.getLogger();
Properties prop = new Properties();
public synchronized static ConfigurationManager getInstance(){
if(instance==null){
instance = new ConfigurationManager();
}
return instance;
}
private ConfigurationManager(){
}
public void loadConfiguration(String configPath) {
logger.atInfo().log("Loading configuration file {}.", configPath);
try {
prop.load(new FileReader(configPath));
} catch (IOException e) {
logger.atError().withThrowable(e).log("Unable to load configuration file");
}
logger.atInfo().log("Loaded {} setting(s)", prop.size());
}
public Object setProperty(String key, String value) {
return prop.setProperty(key, value);
}
public String getProperty(String key) {
return prop.getProperty(key);
}
public String getProperty(String key, String defaultValue) {
return prop.getProperty(key, defaultValue);
}
public Enumeration<?> propertyNames() {
return prop.propertyNames();
}
public Set<String> stringPropertyNames() {
return prop.stringPropertyNames();
}
public void list(PrintStream out) {
prop.list(out);
}
public void list(PrintWriter out) {
prop.list(out);
}
public int size() {
return prop.size();
}
public boolean isEmpty() {
return prop.isEmpty();
}
public Enumeration<Object> keys() {
return prop.keys();
}
public Enumeration<Object> elements() {
return prop.elements();
}
public boolean contains(Object value) {
return prop.contains(value);
}
public boolean containsValue(Object value) {
return prop.containsValue(value);
}
public boolean containsKey(Object key) {
return prop.containsKey(key);
}
public Set<Object> keySet() {
return prop.keySet();
}
public Collection<Object> values() {
return prop.values();
}
public Set<Map.Entry<Object, Object>> entrySet() {
return prop.entrySet();
}
public Object getOrDefault(Object key, Object defaultValue) {
return prop.getOrDefault(key, defaultValue);
}
public void forEach(BiConsumer<? super Object, ? super Object> action) {
prop.forEach(action);
}
}

22
src/main/resources/log4j2.xml

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="RIlog" fileName="ri_log">
<PatternLayout
pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
<Logger name="org.leolo.nrdd">
<AppenderRef ref="Console" />
<AppenderRef ref="RIlog" />
</Logger>
</Loggers>
</Configuration>
Loading…
Cancel
Save