Merge branch 'gh-4082'
This commit is contained in:
commit
45cad3c3b7
|
|
@ -39,6 +39,7 @@ import org.springframework.util.StringUtils;
|
||||||
* @author Dave Syer
|
* @author Dave Syer
|
||||||
* @author Maciej Walkowiak
|
* @author Maciej Walkowiak
|
||||||
* @author Stephane Nicoll
|
* @author Stephane Nicoll
|
||||||
|
* @author Benedikt Ritter
|
||||||
* @since 1.1.0
|
* @since 1.1.0
|
||||||
*/
|
*/
|
||||||
@ConfigurationProperties(prefix = DataSourceProperties.PREFIX)
|
@ConfigurationProperties(prefix = DataSourceProperties.PREFIX)
|
||||||
|
|
@ -161,8 +162,8 @@ public class DataSourceProperties implements BeanClassLoaderAware, EnvironmentAw
|
||||||
|
|
||||||
public String getDriverClassName() {
|
public String getDriverClassName() {
|
||||||
if (StringUtils.hasText(this.driverClassName)) {
|
if (StringUtils.hasText(this.driverClassName)) {
|
||||||
Assert.state(ClassUtils.isPresent(this.driverClassName, null),
|
Assert.state(driverClassIsLoadable(), "Cannot load driver class: "
|
||||||
"Cannot load driver class: " + this.driverClassName);
|
+ this.driverClassName);
|
||||||
return this.driverClassName;
|
return this.driverClassName;
|
||||||
}
|
}
|
||||||
String driverClassName = null;
|
String driverClassName = null;
|
||||||
|
|
@ -182,6 +183,20 @@ public class DataSourceProperties implements BeanClassLoaderAware, EnvironmentAw
|
||||||
return driverClassName;
|
return driverClassName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean driverClassIsLoadable() {
|
||||||
|
try {
|
||||||
|
ClassUtils.forName(this.driverClassName, null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (UnsupportedClassVersionError ex) {
|
||||||
|
// Driver library has been compiled with a later JDK, propagate error
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
catch (Throwable ex) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void setDriverClassName(String driverClassName) {
|
public void setDriverClassName(String driverClassName) {
|
||||||
this.driverClassName = driverClassName;
|
this.driverClassName = driverClassName;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue