提交 e0dde17c 编写于 作者: J jurgen

QM refactoring (remove UI interactions from QM).

auto-commit switcher logging added
上级 1de8b2ee
......@@ -258,6 +258,7 @@ public class JDBCExecutionContext implements DBCExecutionContext, DBCTransaction
public void setAutoCommit(DBRProgressMonitor monitor, boolean autoCommit)
throws DBCException
{
monitor.subTask("Set JDBC connection auto-commit " + autoCommit);
try {
connection.setAutoCommit(autoCommit);
this.autoCommit = null;
......
......@@ -308,11 +308,14 @@ public class DataSourceDescriptor
@Override
public void run(DBRProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
monitor.beginTask("Set auto-commit mode", 1);
try {
// Change auto-commit mode
txnManager.setAutoCommit(monitor, autoCommit);
} catch (DBCException e) {
throw new InvocationTargetException(e);
} finally {
monitor.done();
}
}
});
......
......@@ -29,8 +29,6 @@ import org.jkiss.dbeaver.runtime.AbstractJob;
import org.jkiss.dbeaver.runtime.qm.DefaultExecutionHandler;
import org.jkiss.dbeaver.runtime.qm.QMMetaEvent;
import org.jkiss.dbeaver.runtime.qm.QMMetaListener;
import org.jkiss.dbeaver.ui.ICommandIds;
import org.jkiss.dbeaver.ui.actions.DataSourcePropertyTester;
import java.util.*;
......@@ -179,10 +177,6 @@ public class QMMCollector extends DefaultExecutionHandler {
}
fireMetaEvent(sessionInfo, QMMetaEvent.Action.UPDATE);
}
// Fire transactional mode change
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTIONAL);
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
DataSourcePropertyTester.fireCommandRefresh(ICommandIds.CMD_TOGGLE_AUTOCOMMIT);
}
@Override
......@@ -195,7 +189,6 @@ public class QMMCollector extends DefaultExecutionHandler {
fireMetaEvent(oldTxn, QMMetaEvent.Action.END);
}
}
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
}
@Override
......@@ -208,7 +201,6 @@ public class QMMCollector extends DefaultExecutionHandler {
fireMetaEvent(oldTxn, QMMetaEvent.Action.END);
}
}
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
}
@Override
......@@ -245,7 +237,6 @@ public class QMMCollector extends DefaultExecutionHandler {
fireMetaEvent(exec, QMMetaEvent.Action.BEGIN);
}
}
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
}
@Override
......
......@@ -26,14 +26,12 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBPContextProvider;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.exec.DBCTransactionManager;
import org.jkiss.dbeaver.runtime.qm.meta.QMMSessionInfo;
import org.jkiss.dbeaver.runtime.qm.meta.QMMStatementExecuteInfo;
import org.jkiss.dbeaver.runtime.qm.meta.QMMTransactionInfo;
import org.jkiss.dbeaver.runtime.qm.meta.QMMTransactionSavepointInfo;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.qm.QMUtils;
import org.jkiss.dbeaver.runtime.qm.DefaultExecutionHandler;
import org.jkiss.dbeaver.runtime.qm.meta.*;
import org.jkiss.dbeaver.ui.ActionUtils;
import org.jkiss.dbeaver.ui.ICommandIds;
/**
* DatabaseEditorPropertyTester
......@@ -49,6 +47,7 @@ public class DataSourcePropertyTester extends PropertyTester
public DataSourcePropertyTester() {
super();
QMUtils.registerHandler(new QMEventsHandler());
}
@Override
......@@ -114,4 +113,40 @@ public class DataSourcePropertyTester extends PropertyTester
});
}
}
// QM events handler
private static class QMEventsHandler extends DefaultExecutionHandler {
@Override
public String getHandlerName() {
return DataSourcePropertyTester.class.getName();
}
@Override
public synchronized void handleTransactionAutocommit(DBCExecutionContext context, boolean autoCommit)
{
// Fire transactional mode change
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTIONAL);
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
DataSourcePropertyTester.fireCommandRefresh(ICommandIds.CMD_TOGGLE_AUTOCOMMIT);
}
@Override
public synchronized void handleTransactionCommit(DBCExecutionContext context)
{
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
}
@Override
public synchronized void handleTransactionRollback(DBCExecutionContext context, DBCSavepoint savepoint)
{
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
}
@Override
public synchronized void handleStatementExecuteBegin(DBCStatement statement)
{
DataSourcePropertyTester.firePropertyChange(DataSourcePropertyTester.PROP_TRANSACTION_ACTIVE);
}
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册