Browse Source

Skeleton code to initialize the DatabaseManager

feature-db-basic
LO Kam Tao Leo 3 years ago
parent
commit
b0b5a2e173
  1. 29
      src/main/java/org/leolo/nrdatad/App.java
  2. 13
      src/main/java/org/leolo/nrdatad/ConfigurationManager.java
  3. 2
      src/main/java/org/leolo/nrdatad/db/DatabaseManager.java
  4. 3
      src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java
  5. 5
      src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java

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

@ -4,8 +4,10 @@ package org.leolo.nrdatad;
import org.apache.commons.cli.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.db.DatabaseManager;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
/**
* Hello world!
@ -14,6 +16,8 @@ import java.io.IOException;
public class App {
Logger log = LogManager.getLogger();
private ConfigurationManager config = ConfigurationManager.getInstance();
public static void main( String[] args ) {
Option confFile = Option.builder()
.required(false)
@ -38,23 +42,38 @@ public class App {
private void run(String configPath){
log.always().log("System Started.");
try {
ConfigurationManager.getInstance().loadConfiguration(configPath);
config.loadConfiguration(configPath);
} catch (IOException e) {
log.atError().withThrowable(e).log("Unable to load confog file");
return;
}
// log.atDebug()
if(ConfigurationManager.getInstance().getProperty("general.debug","false").equals("true")){
for(String key:ConfigurationManager.getInstance().stringPropertyNames()){
if(config.getProperty("general.debug","false").equals("true")){
for(String key:config.stringPropertyNames()){
if(key.endsWith("pwd")){
log.atDebug().log("Config: {} : ****({} chars)", key, ConfigurationManager.getInstance().getProperty(key).length());
log.atDebug().log("Config: {} : ****({} chars)", key, config.getProperty(key).length());
}else{
log.atDebug().log("Config: {} : {}", key, ConfigurationManager.getInstance().getProperty(key));
log.atDebug().log("Config: {} : {}", key, config.getProperty(key));
}
}
}
String databaseManagerClass = config.getProperty("db.manager","org.leolo.nrdatad.db.DatabaseManager");
log.atInfo().log("Creating database manager {}", databaseManagerClass);
try {
config.setDatabaseManager((DatabaseManager) Class.forName(databaseManagerClass).getConstructor().newInstance());
} catch (
InstantiationException|IllegalAccessException|InvocationTargetException|
NoSuchMethodException|ClassNotFoundException e
) {
log.atFatal().log("Unable to create instance of {}", databaseManagerClass);
System.exit(1);
} catch (ClassCastException e){
log.atFatal().log("{} is not a DatabaseManager", databaseManagerClass);
System.exit(1);
}
}
}

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

@ -2,6 +2,7 @@ package org.leolo.nrdatad;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.db.DatabaseManager;
import java.io.FileReader;
import java.io.IOException;
@ -13,7 +14,17 @@ public final class ConfigurationManager {
private static ConfigurationManager instance;
Logger logger = LogManager.getLogger();
Properties prop = new Properties();
private DatabaseManager databaseManager;
public DatabaseManager getDatabaseManager() {
return databaseManager;
}
public void setDatabaseManager(DatabaseManager databaseManager) {
this.databaseManager = databaseManager;
}
public synchronized static ConfigurationManager getInstance(){
if(instance==null){
instance = new ConfigurationManager();

2
src/main/java/org/leolo/nrdatad/db/DatabaseManager.java

@ -1,4 +1,6 @@
package org.leolo.nrdatad.db;
public interface DatabaseManager {
public void initPool();
}

3
src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java

@ -1,5 +1,8 @@
package org.leolo.nrdatad.db.mariadb;
public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager{
@Override
public void initPool() {
}
}

5
src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java

@ -1,4 +1,9 @@
package org.leolo.nrdatad.db.test;
public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager {
@Override
public void initPool() {
}
}

Loading…
Cancel
Save