27 import info.globalcode.sql.dk.formatting.FormatterContext; |
27 import info.globalcode.sql.dk.formatting.FormatterContext; |
28 import info.globalcode.sql.dk.formatting.FormatterException; |
28 import info.globalcode.sql.dk.formatting.FormatterException; |
29 import java.io.IOException; |
29 import java.io.IOException; |
30 import java.sql.SQLException; |
30 import java.sql.SQLException; |
31 import java.util.logging.Level; |
31 import java.util.logging.Level; |
|
32 import java.util.logging.LogRecord; |
32 import java.util.logging.Logger; |
33 import java.util.logging.Logger; |
33 import javax.xml.bind.JAXBContext; |
34 import javax.xml.bind.JAXBContext; |
34 import javax.xml.bind.Unmarshaller; |
35 import javax.xml.bind.Unmarshaller; |
35 |
36 |
36 /** |
37 /** |
47 private Configuration configuration; |
48 private Configuration configuration; |
48 |
49 |
49 public static void main(String[] args) { |
50 public static void main(String[] args) { |
50 log.log(Level.FINE, "Starting " + Constants.PROGRAM_NAME); |
51 log.log(Level.FINE, "Starting " + Constants.PROGRAM_NAME); |
51 int exitCode = EXIT_EXPECTED_ERROR; |
52 int exitCode = EXIT_EXPECTED_ERROR; |
52 |
53 |
53 if (args.length == 0) { |
54 if (args.length == 0) { |
54 args = new String[]{CLIParser.Tokens.INFO_HELP}; |
55 args = new String[]{CLIParser.Tokens.INFO_HELP}; |
55 } |
56 } |
56 |
57 |
57 try { |
58 try { |
66 } catch (CLIParserException e) { |
67 } catch (CLIParserException e) { |
67 log.log(Level.SEVERE, "Unable to parse CLI options", e); |
68 log.log(Level.SEVERE, "Unable to parse CLI options", e); |
68 } catch (InvalidOptionsException e) { |
69 } catch (InvalidOptionsException e) { |
69 log.log(Level.SEVERE, "Invalid CLI options", e); |
70 log.log(Level.SEVERE, "Invalid CLI options", e); |
70 for (InvalidOptionsException.OptionProblem p : e.getProblems()) { |
71 for (InvalidOptionsException.OptionProblem p : e.getProblems()) { |
71 log.log(Level.SEVERE, "Option problem: {0}", p.getDescription()); |
72 LogRecord r = new LogRecord(Level.SEVERE, "Option problem: {0}"); |
|
73 r.setThrown(p.getException()); |
|
74 r.setParameters(new Object[]{p.getDescription()}); |
|
75 log.log(r); |
72 } |
76 } |
73 } catch (ConfigurationException e) { |
77 } catch (ConfigurationException e) { |
74 log.log(Level.SEVERE, "Configuration problem", e); |
78 log.log(Level.SEVERE, "Configuration problem", e); |
75 } catch (SQLException e) { |
79 } catch (SQLException e) { |
76 log.log(Level.SEVERE, "SQL problem", e); |
80 log.log(Level.SEVERE, "SQL problem", e); |