提交 2043e0b4 编写于 作者: S serge-rider

Connection info loader model

上级 8158dc56
......@@ -34,6 +34,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.DataSourceViewDescriptor;
......@@ -50,7 +51,7 @@ import java.util.*;
/**
* Settings connection page. Hosts particular drivers' connection pages
*/
class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implements IDataSourceConnectionEditorSite, ICompositeDialogPage
class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implements IDataSourceConnectionEditorSite, ICompositeDialogPage, IDataSourceConnectionTester
{
private static final Log log = Log.getLog(DriverDescriptor.class);
......@@ -351,4 +352,11 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
extraPages = ArrayUtils.concatArrays(extraPages, new IDialogPage[] { page });
}
}
@Override
public void testConnection(DBCSession session) {
if (connectionEditor instanceof IDataSourceConnectionTester) {
((IDataSourceConnectionTester) connectionEditor).testConnection(session);
}
}
}
......@@ -28,7 +28,9 @@ import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.INewWizard;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceInfo;
......@@ -117,6 +119,7 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
// Generate new ID to avoid session conflicts in QM
testDataSource.setId(DataSourceDescriptor.generateNewId(dataSource.getDriver()));
testDataSource.getPreferenceStore().setValue(ModelPreferences.META_SEPARATE_CONNECTION, false);
try {
......@@ -190,7 +193,7 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
long connectTime = -1;
DBRProgressMonitor ownerMonitor;
public ConnectionTester(DataSourceDescriptor testDataSource)
ConnectionTester(DataSourceDescriptor testDataSource)
{
super(testDataSource);
setSystem(true);
......@@ -240,11 +243,6 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
}
} else {
try (DBCSession session = DBUtils.openUtilSession(monitor, dataSource, "Test connection")) {
for (IWizardPage page : getPages ()) {
if (page instanceof IDataSourceConnectionTester) {
((IDataSourceConnectionTester) page).testConnection(session);
}
}
if (session instanceof Connection) {
try {
Connection connection = (Connection) session;
......@@ -259,6 +257,15 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
}
}
}
monitor.subTask("Load connection info");
try (DBCSession session = DBUtils.openUtilSession(monitor, dataSource, "Call connection testers")) {
for (IWizardPage page : getPages()) {
if (page instanceof IDataSourceConnectionTester) {
((IDataSourceConnectionTester) page).testConnection(session);
}
}
}
new DisconnectJob(container).schedule();
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.
先完成此消息的编辑!
想要评论请 注册