// & URL options
if (encoderKey != null) {
passwordSource = passwordSource.replaceAll("\\{\\}", encoderKey);
}
PasswordEncoding passwordEncoder = dataSourceDescriptor
.getPasswordEncoder();
if (passwordLocation != null) {
if (passwordLocation
.equals(DataSourceInfo.PASSWORD_LOCATION_CLASSPATH)) {
ClassLoader classLoader = Thread
.currentThread()
.getContextClassLoader();
URL url = classLoader.getResource(username);
if (url != null) {
password = passwordFromURL(url);
}
else {
logger.error("Could not find resource in CLASSPATH: "
+ passwordSource);
}
}
else if (passwordLocation
.equals(DataSourceInfo.PASSWORD_LOCATION_URL)) {
try {
password = passwordFromURL(new URL(passwordSource));
}
catch (MalformedURLException exception) {
logger.warn(exception);
}
}
else if (passwordLocation
.equals(DataSourceInfo.PASSWORD_LOCATION_EXECUTABLE)) {
if (passwordSource != null) {
try {
Process process = Runtime.getRuntime().exec(
passwordSource);
password = passwordFromInputStream(process
.getInputStream());
process.waitFor();
}
catch (IOException exception) {
logger.warn(exception);
}
catch (InterruptedException exception) {
logger.warn(exception);
}
}
}
}
if (password != null && passwordEncoder != null) {
dataSourceDescriptor.setPassword(passwordEncoder.decodePassword(
password,
encoderKey));
}
}
else if (localName.equals("url")) {