提交 851a718a 编写于 作者: J jurgen

Cassandra extension

上级 95f3c978
......@@ -27,6 +27,7 @@ import org.eclipse.ui.INewWizard;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceInfo;
import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
......@@ -146,31 +147,44 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
monitor.worked(1);
DBPDataSource dataSource = testDataSource.getDataSource();
monitor.subTask(CoreMessages.dialog_connection_wizard_start_connection_monitor_subtask_test);
DBCSession session = dataSource.openSession(monitor, DBCExecutionPurpose.UTIL, "Test connection");
try {
if (session instanceof Connection) {
try {
Connection connection = (Connection) session;
DatabaseMetaData metaData = connection.getMetaData();
productName = metaData.getDatabaseProductName();
productVersion = metaData.getDatabaseProductVersion();
driverName = metaData.getDriverName();
driverVersion = metaData.getDriverVersion();
} catch (Exception e) {
log.error("Can't obtain connection metadata", e);
}
DBPDataSourceInfo info = dataSource.getInfo();
if (info != null) {
try {
productName = info.getDatabaseProductName();
productVersion = info.getDatabaseProductVersion();
driverName = info.getDriverName();
driverVersion = info.getDriverVersion();
} catch (Exception e) {
log.error("Can't obtain connection metadata", e);
}
} else {
DBCSession session = dataSource.openSession(monitor, DBCExecutionPurpose.UTIL, "Test connection");
try {
monitor.subTask(CoreMessages.dialog_connection_wizard_start_connection_monitor_close);
testDataSource.disconnect(monitor, false);
} catch (DBException e) {
// ignore it
log.error(e);
if (session instanceof Connection) {
try {
Connection connection = (Connection) session;
DatabaseMetaData metaData = connection.getMetaData();
productName = metaData.getDatabaseProductName();
productVersion = metaData.getDatabaseProductVersion();
driverName = metaData.getDriverName();
driverVersion = metaData.getDriverVersion();
} catch (Exception e) {
log.error("Can't obtain connection metadata", e);
}
}
try {
monitor.subTask(CoreMessages.dialog_connection_wizard_start_connection_monitor_close);
testDataSource.disconnect(monitor, false);
} catch (DBException e) {
// ignore it
log.error(e);
} finally {
monitor.done();
}
} finally {
monitor.done();
session.close();
}
} finally {
session.close();
}
monitor.subTask(CoreMessages.dialog_connection_wizard_start_connection_monitor_success);
} catch (DBException ex) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册