import net.jaekl.cfb.analyze.Analysis;
import net.jaekl.cfb.analyze.Analyzer;
import net.jaekl.cfb.analyze.Delta;
+import net.jaekl.cfb.analyze.HtmlReport;
import net.jaekl.cfb.analyze.MessageMap;
import net.jaekl.cfb.db.CfbSchema;
import net.jaekl.cfb.db.TypeMismatchException;
String m_pass; // db password
String m_buildNum; // build number (version)
boolean m_removeSchema; // purge DB schema
+ File m_output; // File to which we should write our output (report)
CFB(Locale locale) {
m_driver = new PostgresqlDriver();
m_user = "user";
m_buildNum = null;
m_removeSchema = false;
+ m_output = null;
}
Options createOptions() {
Options opt = new Options();
- opt.addOption("d", "dbname", true, "DB name");
- opt.addOption("f", "fbp", true, "FindBugsProject file");
- opt.addOption("h", "host", true, "DB hostname");
- opt.addOption("n", "number", true, "Build number (version)");
- opt.addOption("p", "pass", true, "DB password");
- opt.addOption("r", "remove", false, "Remove database schema (drop all data)");
- opt.addOption("t", "port", true, "DB port");
- opt.addOption("u", "user", true, "DB username");
+ opt.addOption("d", "dbname", true, "DB name");
+ opt.addOption(null, "drop-tables", false, "Remove database schema (drop all data)");
+ opt.addOption("f", "fbp", true, "FindBugsProject file");
+ opt.addOption("h", "host", true, "DB hostname");
+ opt.addOption("n", "number", true, "Build number (version)");
+ opt.addOption("o", "outfile", true, "Output report filename");
+ opt.addOption("p", "pass", true, "DB password");
+ opt.addOption("t", "port", true, "DB port");
+ opt.addOption("u", "user", true, "DB username");
return opt;
}
if (line.hasOption("n")) {
m_buildNum = line.getOptionValue("n");
}
+ if (line.hasOption("o")) {
+ m_output = new File(line.getOptionValue("o"));
+ }
if (line.hasOption("p")) {
m_pass = line.getOptionValue("p");
}
- m_removeSchema = line.hasOption("r");
+ m_removeSchema = line.hasOption("drop-tables");
if (line.hasOption("t")) {
m_port = Integer.parseInt(line.getOptionValue("t"));
}
store.put(analysis);
Analysis prior = store.getPrior(analysis);
Delta delta = new Delta(prior, analysis);
- delta.dump(pw);
+
+ HtmlReport report = new HtmlReport(m_bundle, messageMap.getColl());
+ report.write(m_output, delta);
}
catch (SQLException exc) {
reportUnableToConnect(pw, exc);