in HSQL/src/org/hsqldb1/util/RCData.java [84:206]
public RCData(File file, String dbKey) throws Exception {
if (file == null) {
throw new IllegalArgumentException("RC file name not specified");
}
if (!file.canRead()) {
throw new IOException("Please set up authentication file '" + file
+ "'");
}
// System.err.println("Using RC file '" + file + "'");
StringTokenizer tokenizer = null;
boolean thisone = false;
String s;
String keyword, value;
int linenum = 0;
BufferedReader br = new BufferedReader(new FileReader(file));
while ((s = br.readLine()) != null) {
++linenum;
s = s.trim();
if (s.length() == 0) {
continue;
}
if (s.charAt(0) == '#') {
continue;
}
tokenizer = new StringTokenizer(s);
if (tokenizer.countTokens() == 1) {
keyword = tokenizer.nextToken();
value = "";
} else if (tokenizer.countTokens() > 1) {
keyword = tokenizer.nextToken();
value = tokenizer.nextToken("").trim();
} else {
try {
br.close();
} catch (IOException e) {}
throw new Exception("Corrupt line " + linenum + " in '" + file
+ "': " + s);
}
if (dbKey == null) {
if (keyword.equals("urlid")) {
System.out.println(value);
}
continue;
}
if (keyword.equals("urlid")) {
if (value.equals(dbKey)) {
if (id == null) {
id = dbKey;
thisone = true;
} else {
try {
br.close();
} catch (IOException e) {}
throw new Exception("Key '" + dbKey + " redefined at"
+ " line " + linenum + " in '"
+ file);
}
} else {
thisone = false;
}
continue;
}
if (thisone) {
if (keyword.equals("url")) {
url = value;
} else if (keyword.equals("username")) {
username = value;
} else if (keyword.equals("driver")) {
driver = value;
} else if (keyword.equals("charset")) {
charset = value;
} else if (keyword.equals("truststore")) {
truststore = value;
} else if (keyword.equals("password")) {
password = value;
} else if (keyword.equals("libpath")) {
libpath = value;
} else {
try {
br.close();
} catch (IOException e) {}
throw new Exception("Bad line " + linenum + " in '" + file
+ "': " + s);
}
}
}
try {
br.close();
} catch (IOException e) {}
if (dbKey == null) {
return;
}
if (url == null || username == null || password == null) {
throw new Exception("url or username or password not set "
+ "for '" + dbKey + "' in file '" + file
+ "'");
}
if (libpath != null) {
throw new IllegalArgumentException(
"Sorry, 'libpath' not supported yet");
}
}