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.commons.cli.*;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.db.DatabaseManager;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
/** /**
* Hello world! * Hello world!
@ -14,6 +16,8 @@ import java.io.IOException;
public class App { public class App {
Logger log = LogManager.getLogger(); Logger log = LogManager.getLogger();
private ConfigurationManager config = ConfigurationManager.getInstance();
public static void main( String[] args ) { public static void main( String[] args ) {
Option confFile = Option.builder() Option confFile = Option.builder()
.required(false) .required(false)
@ -38,23 +42,38 @@ public class App {
private void run(String configPath){ private void run(String configPath){
log.always().log("System Started."); log.always().log("System Started.");
try { try {
ConfigurationManager.getInstance().loadConfiguration(configPath); config.loadConfiguration(configPath);
} catch (IOException e) { } catch (IOException e) {
log.atError().withThrowable(e).log("Unable to load confog file"); log.atError().withThrowable(e).log("Unable to load confog file");
return; return;
} }
// log.atDebug() // log.atDebug()
if(ConfigurationManager.getInstance().getProperty("general.debug","false").equals("true")){ if(config.getProperty("general.debug","false").equals("true")){
for(String key:ConfigurationManager.getInstance().stringPropertyNames()){ for(String key:config.stringPropertyNames()){
if(key.endsWith("pwd")){ 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{ }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.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.db.DatabaseManager;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
@ -13,7 +14,17 @@ public final class ConfigurationManager {
private static ConfigurationManager instance; private static ConfigurationManager instance;
Logger logger = LogManager.getLogger(); Logger logger = LogManager.getLogger();
Properties prop = new Properties(); 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(){ public synchronized static ConfigurationManager getInstance(){
if(instance==null){ if(instance==null){
instance = new ConfigurationManager(); instance = new ConfigurationManager();

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

@ -1,4 +1,6 @@
package org.leolo.nrdatad.db; package org.leolo.nrdatad.db;
public interface DatabaseManager { 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; package org.leolo.nrdatad.db.mariadb;
public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager{ 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; package org.leolo.nrdatad.db.test;
public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager { public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager {
@Override
public void initPool() {
}
} }

Loading…
Cancel
Save