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

Connection test refactoring

上级 2043e0b4
......@@ -45,4 +45,6 @@ public interface IDataSourceConnectionEditorSite
boolean openSettingsPage(String pageId);
void testConnection();
}
......@@ -111,6 +111,7 @@ public abstract class ConnectionPageAbstract extends DialogPage implements IData
gd = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.grabExcessHorizontalSpace = true;
infoLabel.setLayoutData(gd);
infoLabel.setToolTipText("You can use OS environment variables in connection parameters.\nUse ${variable} patterns.");
}
if (!site.isNew() && !site.getDriver().isEmbedded()) {
......
......@@ -305,6 +305,11 @@ class ConnectionPageSettings extends ActiveWizardPage<ConnectionWizard> implemen
return false;
}
@Override
public void testConnection() {
getWizard().testConnection();
}
@Override
public void dispose()
{
......
......@@ -208,12 +208,10 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
if (ownerMonitor != null) {
monitor = ownerMonitor;
}
monitor.beginTask(CoreMessages.dialog_connection_wizard_start_connection_monitor_start, 4);
Thread.currentThread().setName(CoreMessages.dialog_connection_wizard_start_connection_monitor_thread);
try {
container.setName(container.getConnectionConfiguration().getUrl());
monitor.worked(1);
long startTime = System.currentTimeMillis();
super.run(monitor);
connectTime = (System.currentTimeMillis() - startTime);
......@@ -224,7 +222,9 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
return Status.CANCEL_STATUS;
}
monitor.worked(1);
// Start monitor task here becaue actual connection makes its own begin/end sequence
monitor.beginTask(CoreMessages.dialog_connection_wizard_start_connection_monitor_start, 3);
DBPDataSource dataSource = container.getDataSource();
if (dataSource == null) {
throw new DBException(CoreMessages.editors_sql_status_not_connected_to_database);
......@@ -257,6 +257,7 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
}
}
}
monitor.worked(1);
monitor.subTask("Load connection info");
try (DBCSession session = DBUtils.openUtilSession(monitor, dataSource, "Call connection testers")) {
for (IWizardPage page : getPages()) {
......@@ -265,8 +266,10 @@ public abstract class ConnectionWizard extends Wizard implements INewWizard {
}
}
}
monitor.worked(1);
new DisconnectJob(container).schedule();
monitor.worked(1);
monitor.subTask(CoreMessages.dialog_connection_wizard_start_connection_monitor_success);
} catch (DBException ex) {
connectError = ex;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册