// Command-line parameters
File m_configFile;
- String m_dbName; // db name
File m_fbp; // FindBugsProject file
File m_fbDir; // Directory where FindBugs is installed
- String m_host; // db host
- int m_port; // db port
- String m_user; // db user
- String m_pass; // db password
String m_projName; // project (module) name
String m_buildNum; // build number (version)
boolean m_removeSchema; // purge DB schema
m_config = new Config();
m_configFile = new File("config.properties");
- m_dbName = "CFB";
m_fbp = null;
m_fbDir = null;
- m_host = "localhost";
- m_port = 5432;
- m_pass = "";
- m_user = "user";
m_projName = null;
m_buildNum = null;
m_removeSchema = false;
m_configFile = new File(line.getOptionValue("c"));
}
if (line.hasOption("d")) {
- m_dbName = line.getOptionValue("d");
+ m_config.setDbName(line.getOptionValue("d"));
}
if (line.hasOption("f")) {
m_fbp = new File(line.getOptionValue("f"));
}
if (line.hasOption("h")) {
- m_host = line.getOptionValue("h");
+ m_config.setDbHost(line.getOptionValue("h"));
}
if (line.hasOption("j")) {
m_projName = line.getOptionValue("j");
m_output = new File(line.getOptionValue("o"));
}
if (line.hasOption("p")) {
- m_pass = line.getOptionValue("p");
+ m_config.setDbPass(line.getOptionValue("p"));
}
m_removeSchema = line.hasOption("drop-tables");
if (line.hasOption("t")) {
- m_port = Integer.parseInt(line.getOptionValue("t"));
+ m_config.setDbPort(Integer.parseInt(line.getOptionValue("t")));
}
if (line.hasOption("u")) {
- m_user = line.getOptionValue("u");
+ m_config.setDbUser(line.getOptionValue("u"));
}
}
catch (ParseException exc) {
MessageMap messageMap = new MessageMap();
messageMap.load(findBugsDir, Locale.getDefault(Category.DISPLAY));
- try (Connection con = m_driver.connect(m_host, m_port, m_dbName, m_user, m_pass)) {
+ try (Connection con = m_driver.connect(
+ m_config.getDbHost(), m_config.getDbPort(),
+ m_config.getDbName(),
+ m_config.getDbUser(), m_config.getDbPass())
+ )
+ {
m_schema.setMessageMap(messageMap);
if (m_removeSchema) {
return;
}
- try (Connection con = m_driver.connect(m_host, m_port, m_dbName, m_user, m_pass)) {
+ try (
+ Connection con = m_driver.connect(
+ m_config.getDbHost(), m_config.getDbPort(),
+ m_config.getDbName(),
+ m_config.getDbUser(), m_config.getDbPass()
+ )
+ )
+ {
DbStore store = new DbStore(con, m_driver, messageMap.getColl());
store.put(analysis);
private void reportUnableToConnect(PrintWriter pw, SQLException exc) {
String cannotConnectFormat = trans(CfbBundle.CANNOT_CONNECT);
- String cannotConnect = MessageFormat.format(cannotConnectFormat, m_host, ""+m_port, m_dbName, m_user);
+ String cannotConnect = MessageFormat.format(cannotConnectFormat,
+ m_config.getDbHost(),
+ ""+m_config.getDbPort(),
+ m_config.getDbName(),
+ m_config.getDbUser()
+ );
exc.printStackTrace(pw);
SQLException next = exc.getNextException();
while (null != next) {
import org.apache.commons.cli.ParseException;
public class Config {
+ private static final String DB_HOST = "db.host";
+ private static final String DB_NAME = "db.name";
+ private static final String DB_PASS = "db.pass";
+ private static final String DB_PORT = "db.port";
+ private static final String DB_USER = "db.user";
private static final String FINDBUGS_HOME = "FindBugsHome";
private static final String MAIL_FROM = "mail.from";
private static final String MAIL_SMTP_HOST = "mail.smtp.host";
public String getMailSmtpHost() { return m_mailSmtpHost; }
public ArrayList<String> getNotify() { return new ArrayList<String>(m_notify); }
+ public String getDbHost() { return m_host; }
+ public int getDbPort() { return m_port; }
+ public String getDbName() { return m_dbName; }
+ public String getDbUser() { return m_user; }
+ public String getDbPass() { return m_pass; }
+
+ public void setDbHost(String value) { m_host = value; }
+ public void setDbPort(int value) { m_port = value; }
+ public void setDbName(String value) { m_dbName = value; }
+ public void setDbUser(String value) { m_user = value; }
+ public void setDbPass(String value) { m_pass = value; }
+
public void readFile(File configProperties) throws IOException
{
Properties props = new Properties();
}
}
+ if (props.containsKey(DB_HOST)) {
+ m_host = props.getProperty(DB_HOST);
+ }
+ if (props.containsKey(DB_NAME)) {
+ m_dbName = props.getProperty(DB_NAME);
+ }
+ if (props.containsKey(DB_PASS)) {
+ m_pass = props.getProperty(DB_PASS);
+ }
+ if (props.containsKey(DB_PORT)) {
+ m_port = Integer.parseInt(props.getProperty(DB_PORT));
+ }
+ if (props.containsKey(DB_USER)) {
+ m_user = props.getProperty(DB_USER);
+ }
if (props.containsKey(FINDBUGS_HOME)) {
m_fbDir = new File(props.getProperty(FINDBUGS_HOME));
}
public class ConfigTest {
private static final String CHRIS = "chris@localhost";
+ private static final String DB_HOST = "dbserver";
+ private static final int DB_PORT = 1234;
+ private static final String DB_NAME = "Fred";
+ private static final String DB_PASS = "Pebbles";
+ private static final String DB_USER = "Wilma";
private static final String HUDSON = "hudson@jenkins.org";
private static final String MAIL_FROM = "findbugs@jaekl.net";
private static final String MAIL_TO = CHRIS + "," + HUDSON;
+ "\n"
+ "; Mail server setup\n"
+ "mail.smtp.host=" + LOCALHOST + "\n"
- + "mail.from=" + MAIL_FROM + "\n";
+ + "mail.from=" + MAIL_FROM + "\n"
+ + "\n"
+ + "; Database\n"
+ + "db.host=" + DB_HOST + "\n"
+ + "db.port=" + DB_PORT + "\n"
+ + "db.name=" + DB_NAME + "\n"
+ + "db.user=" + DB_USER + "\n"
+ + "db.pass=" + DB_PASS + "\n";
@BeforeClass
public static void beforeClass() {
List<String> notify = config.getNotify();
assertTrue(notify.contains(CHRIS));
assertTrue(notify.contains(HUDSON));
+
+ assertEquals(DB_HOST, config.getDbHost());
+ assertEquals(DB_PORT, config.getDbPort());
+ assertEquals(DB_NAME, config.getDbName());
+ assertEquals(DB_USER, config.getDbUser());
+ assertEquals(DB_PASS, config.getDbPass());
}
@Test