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

Connection tester interface

上级 505e27b6
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui;
import org.jkiss.dbeaver.model.exec.DBCSession;
/**
* IDataSourceConnectionTester
*/
public interface IDataSourceConnectionTester
{
void testConnection(DBCSession session);
}
......@@ -22,6 +22,7 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.INewWizard;
......@@ -41,6 +42,7 @@ import org.jkiss.dbeaver.registry.driver.DriverDescriptor;
import org.jkiss.dbeaver.runtime.jobs.ConnectJob;
import org.jkiss.dbeaver.runtime.jobs.DisconnectJob;
import org.jkiss.dbeaver.runtime.ui.DBUserInterface;
import org.jkiss.dbeaver.ui.IDataSourceConnectionTester;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.utils.CommonUtils;
......@@ -238,6 +240,11 @@ 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;
......
......@@ -131,8 +131,7 @@ public interface DBPDataSourceContainer extends DBSObject, DBDPreferences, DBPNa
/**
* Connects to datasource.
* This is async method and returns immediately.
* Connection will be opened in separate job, so no progress monitor is required.
* This is sync method and returns after actual connection establishment.
* @param monitor progress monitor
* @param initialize initialize datasource after connect (call DBPDataSource.initialize)
* @param reflect notify UI about connection state change
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册