package jakiro.datasource.factory; import java.sql.SQLException; import java.util.Map; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; public class DruidDataSourceManagerTool extends IDataSourceManagerTool { @Override public DataSource createAinitDataSource(Map<String, String> properties) { DataSource ds = null; try { ds = DruidDataSourceFactory.createDataSource(properties); } catch (Exception e) { log.error("create druid datasource error", e); try { ds = DruidDataSourceFactory.createDataSource(properties); } catch (Exception ex) { log.error("create druid datasource error", ex); throw new IllegalArgumentException("Cannot Create Datasource", ex); } } try { ((DruidDataSource) ds).init(); } catch (SQLException e) { log.error("Init druid datasource errror", e); throw new IllegalArgumentException("Init Datasource Failure", e); } return ds; } @Override public boolean destroyDataSource(DataSource datasource) { if (datasource != null && datasource instanceof DruidDataSource) { try { ((DruidDataSource) datasource).close(); return true; } catch (Throwable ex) { log.error("close datasource error : ", ex); } } return false; } }