@SuppressWarnings({ "unchecked", "rawtypes" }) protected DataSource createDataSourceByClass(PoolProperties props) { String className = props.getDataSourceClassName(); DataSource ds = (DataSource)Reflection.newInstance(Classes.forName(className)); Properties dataSourceProperties = props.getDataSourceProperties(); if(null != dataSourceProperties && !dataSourceProperties.isEmpty()) { Beans.setPropertiesNestable(BeanType.of(ds.getClass()), ds, (Map)Props.toMap(dataSourceProperties)); } return ds; }