diff -r 54bacc7ed42b -r f4d879cbcee1 java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Sat May 16 20:25:16 2015 +0200 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Sat May 16 21:42:52 2015 +0200 @@ -27,6 +27,7 @@ import info.globalcode.sql.dk.configuration.ConfigurationException; import info.globalcode.sql.dk.configuration.DatabaseDefinition; import info.globalcode.sql.dk.configuration.FormatterDefinition; +import info.globalcode.sql.dk.configuration.Loader; import info.globalcode.sql.dk.configuration.NameIdentified; import info.globalcode.sql.dk.formatting.Formatter; import info.globalcode.sql.dk.formatting.FormatterContext; @@ -43,8 +44,6 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Unmarshaller; /** * Entry point of the command line interface of SQL-DK. @@ -64,7 +63,8 @@ public static final int EXIT_FORMATTING_ERROR = 7; // doc:formatting error public static final int EXIT_BATCH_ERROR = 8; // doc:batch error private static final Logger log = Logger.getLogger(CLIStarter.class.getName()); - private CLIOptions options; + private final CLIOptions options; + private final Loader configurationLoader = new Loader(); private Configuration configuration; public static void main(String[] args) { @@ -186,7 +186,7 @@ @Override public Configuration getConfiguration() throws ConfigurationException { if (configuration == null) { - configuration = loadConfiguration(); + configuration = configurationLoader.loadConfiguration(); } return configuration; } @@ -206,16 +206,6 @@ } } - private Configuration loadConfiguration() throws ConfigurationException { - try { - JAXBContext jaxb = JAXBContext.newInstance(Configuration.class); - Unmarshaller u = jaxb.createUnmarshaller(); - return (Configuration) u.unmarshal(Constants.CONFIG_FILE); - } catch (Exception e) { - throw new ConfigurationException("Unable to load configuration from " + Constants.CONFIG_FILE, e); - } - } - private void generateBashCompletion() { if (configuration == null) { log.log(Level.FINER, "Not writing Bash completion helper files. In order to generate these files please run some command which requires configuration.");