Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
bd4a78ca
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bd4a78ca
编写于
7月 26, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use job instead of progress service.
上级
4e9d6bb4
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
83 addition
and
102 deletion
+83
-102
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
.../src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
+26
-28
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/RuntimeUtils.java
...aver.core/src/org/jkiss/dbeaver/runtime/RuntimeUtils.java
+1
-5
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/TasksJob.java
....dbeaver.core/src/org/jkiss/dbeaver/runtime/TasksJob.java
+11
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/DataSourceCommitHandler.java
...beaver/ui/actions/datasource/DataSourceCommitHandler.java
+18
-27
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/DataSourceRollbackHandler.java
...aver/ui/actions/datasource/DataSourceRollbackHandler.java
+16
-23
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorActionSetActiveObject.java
.../ui/actions/navigator/NavigatorActionSetActiveObject.java
+4
-10
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectDelete.java
...er/ui/actions/navigator/NavigatorHandlerObjectDelete.java
+7
-7
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
浏览文件 @
bd4a78ca
...
...
@@ -23,18 +23,22 @@ import org.jkiss.code.NotNull;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.*
;
import
org.jkiss.dbeaver.model.data.DBDDataFormatterProfile
;
import
org.jkiss.dbeaver.model.data.DBDPreferences
;
import
org.jkiss.dbeaver.model.data.DBDValueHandler
;
import
org.jkiss.dbeaver.model.exec.*
;
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.model.impl.data.DefaultValueHandler
;
import
org.jkiss.dbeaver.model.meta.Property
;
import
org.jkiss.dbeaver.model.net.DBWHandlerConfiguration
;
import
org.jkiss.dbeaver.model.net.DBWHandlerType
;
import
org.jkiss.dbeaver.model.net.DBWTunnel
;
import
org.jkiss.dbeaver.model.runtime.*
;
import
org.jkiss.dbeaver.model.runtime.DBRProcessDescriptor
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressListener
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.model.struct.*
;
import
org.jkiss.dbeaver.model.virtual.DBVModel
;
import
org.jkiss.dbeaver.runtime.TasksJob
;
...
...
@@ -290,7 +294,7 @@ public class DataSourceDescriptor
if
(
updateContext
!=
null
)
{
final
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
updateContext
);
if
(
updateConnection
&&
txnManager
!=
null
)
{
new
TasksJob
(
"Set auto-commit mode"
,
new
DBRRunnableWithProgress
()
{
TasksJob
.
runTask
(
"Set auto-commit mode"
,
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
...
...
@@ -303,7 +307,7 @@ public class DataSourceDescriptor
monitor
.
done
();
}
}
})
.
schedule
()
;
});
}
}
// Save in preferences
...
...
@@ -339,33 +343,27 @@ public class DataSourceDescriptor
@Override
public
void
setDefaultTransactionsIsolation
(
@Nullable
final
DBPTransactionIsolation
isolationLevel
)
throws
DBException
{
try
{
if
(
isolationLevel
==
null
)
{
connectionInfo
.
getBootstrap
().
setDefaultTransactionIsolation
(
null
);
}
else
{
connectionInfo
.
getBootstrap
().
setDefaultTransactionIsolation
(
isolationLevel
.
getCode
());
if
(
dataSource
!=
null
)
{
DBeaverUI
.
runInProgressService
(
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
dataSource
.
getDefaultContext
(
false
));
if
(
txnManager
!=
null
)
{
try
{
if
(!
txnManager
.
getTransactionIsolation
().
equals
(
isolationLevel
))
{
txnManager
.
setTransactionIsolation
(
monitor
,
isolationLevel
);
}
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
if
(
isolationLevel
==
null
)
{
connectionInfo
.
getBootstrap
().
setDefaultTransactionIsolation
(
null
);
}
else
{
connectionInfo
.
getBootstrap
().
setDefaultTransactionIsolation
(
isolationLevel
.
getCode
());
if
(
dataSource
!=
null
)
{
TasksJob
.
runTask
(
"Set transactions isolation level"
,
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
dataSource
.
getDefaultContext
(
false
));
if
(
txnManager
!=
null
)
{
try
{
if
(!
txnManager
.
getTransactionIsolation
().
equals
(
isolationLevel
))
{
txnManager
.
setTransactionIsolation
(
monitor
,
isolationLevel
);
}
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
}
}
);
}
}
}
);
}
}
catch
(
InvocationTargetException
e
)
{
throw
new
DBException
(
"Can't set transaction isolation level"
,
e
.
getTargetException
());
}
catch
(
InterruptedException
e
)
{
// ok
}
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/RuntimeUtils.java
浏览文件 @
bd4a78ca
...
...
@@ -22,10 +22,9 @@ import org.eclipse.core.runtime.jobs.Job;
import
org.eclipse.jface.operation.IRunnableContext
;
import
org.eclipse.jface.operation.IRunnableWithProgress
;
import
org.eclipse.swt.program.Program
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.runtime.load.ILoadService
;
...
...
@@ -33,13 +32,10 @@ import org.jkiss.dbeaver.runtime.load.ILoadVisualizer;
import
org.jkiss.dbeaver.runtime.load.jobs.LoadingJob
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
import
org.jkiss.utils.ArrayUtils
;
import
org.jkiss.utils.CommonUtils
;
import
java.io.File
;
import
java.io.IOException
;
import
java.lang.reflect.InvocationTargetException
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.net.URL
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/TasksJob.java
浏览文件 @
bd4a78ca
...
...
@@ -37,13 +37,13 @@ public class TasksJob extends AbstractJob
{
private
final
List
<
DBRRunnableWithProgress
>
tasks
;
p
ublic
TasksJob
(
String
name
,
Collection
<
DBRRunnableWithProgress
>
tasks
)
{
p
rivate
TasksJob
(
String
name
,
Collection
<
DBRRunnableWithProgress
>
tasks
)
{
super
(
name
);
setUser
(
true
);
this
.
tasks
=
new
ArrayList
<
DBRRunnableWithProgress
>(
tasks
);
}
p
ublic
TasksJob
(
String
name
,
DBRRunnableWithProgress
task
)
{
p
rivate
TasksJob
(
String
name
,
DBRRunnableWithProgress
task
)
{
this
(
name
,
Collections
.
singletonList
(
task
));
}
...
...
@@ -91,4 +91,13 @@ public class TasksJob extends AbstractJob
monitor
.
done
();
return
Status
.
OK_STATUS
;
}
public
static
void
runTasks
(
String
name
,
Collection
<
DBRRunnableWithProgress
>
tasks
)
{
new
TasksJob
(
name
,
tasks
).
schedule
();
}
public
static
void
runTask
(
String
name
,
DBRRunnableWithProgress
task
)
{
new
TasksJob
(
name
,
task
).
schedule
();
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/DataSourceCommitHandler.java
浏览文件 @
bd4a78ca
...
...
@@ -19,15 +19,12 @@ package org.jkiss.dbeaver.ui.actions.datasource;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.exec.*
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.
ui.UIUtils
;
import
org.jkiss.dbeaver.
runtime.TasksJob
;
import
org.jkiss.dbeaver.ui.actions.AbstractDataSourceHandler
;
import
java.lang.reflect.InvocationTargetException
;
...
...
@@ -39,35 +36,29 @@ public class DataSourceCommitHandler extends AbstractDataSourceHandler
{
DBCExecutionContext
context
=
getExecutionContext
(
event
,
true
);
if
(
context
!=
null
&&
context
.
isConnected
())
{
execute
(
HandlerUtil
.
getActiveShell
(
event
),
context
);
execute
(
context
);
}
return
null
;
}
public
static
void
execute
(
Shell
shell
,
@NotNull
final
DBCExecutionContext
context
)
{
try
{
DBeaverUI
.
runInProgressService
(
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
context
);
if
(
txnManager
!=
null
)
{
DBCSession
session
=
context
.
openSession
(
monitor
,
DBCExecutionPurpose
.
UTIL
,
"Commit transaction"
);
try
{
txnManager
.
commit
(
session
);
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
session
.
close
();
}
public
static
void
execute
(
@NotNull
final
DBCExecutionContext
context
)
{
TasksJob
.
runTask
(
"Commit transaction"
,
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
context
);
if
(
txnManager
!=
null
)
{
DBCSession
session
=
context
.
openSession
(
monitor
,
DBCExecutionPurpose
.
UTIL
,
"Commit transaction"
);
try
{
txnManager
.
commit
(
session
);
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
session
.
close
();
}
}
});
}
catch
(
InvocationTargetException
e
)
{
UIUtils
.
showErrorDialog
(
shell
,
"Commit"
,
"Error while committing session"
,
e
);
}
catch
(
InterruptedException
e
)
{
// do nothing
}
}
});
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/datasource/DataSourceRollbackHandler.java
浏览文件 @
bd4a78ca
...
...
@@ -21,12 +21,11 @@ import org.eclipse.core.commands.ExecutionEvent;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.exec.*
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.
ui.UIUtils
;
import
org.jkiss.dbeaver.
runtime.TasksJob
;
import
org.jkiss.dbeaver.ui.actions.AbstractDataSourceHandler
;
import
java.lang.reflect.InvocationTargetException
;
...
...
@@ -44,29 +43,23 @@ public class DataSourceRollbackHandler extends AbstractDataSourceHandler
}
public
static
void
execute
(
Shell
shell
,
final
DBCExecutionContext
context
)
{
try
{
DBeaverUI
.
runInProgressService
(
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
context
);
if
(
txnManager
!=
null
)
{
DBCSession
session
=
context
.
openSession
(
monitor
,
DBCExecutionPurpose
.
UTIL
,
"Rollback transaction"
);
try
{
txnManager
.
rollback
(
session
,
null
);
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
session
.
close
();
}
TasksJob
.
runTask
(
"Rollback transaction"
,
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
context
);
if
(
txnManager
!=
null
)
{
DBCSession
session
=
context
.
openSession
(
monitor
,
DBCExecutionPurpose
.
UTIL
,
"Rollback transaction"
);
try
{
txnManager
.
rollback
(
session
,
null
);
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
session
.
close
();
}
}
});
}
catch
(
InvocationTargetException
e
)
{
UIUtils
.
showErrorDialog
(
shell
,
"Rollback"
,
"Error during session rollback"
,
e
);
}
catch
(
InterruptedException
e
)
{
// do nothing
}
}
});
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorActionSetActiveObject.java
浏览文件 @
bd4a78ca
...
...
@@ -22,15 +22,14 @@ import org.eclipse.jface.viewers.ISelection;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.ui.IActionDelegate
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.navigator.DBNDatabaseNode
;
import
org.jkiss.dbeaver.model.navigator.DBNNode
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.model.struct.DBSObjectSelector
;
import
org.jkiss.dbeaver.runtime.TasksJob
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorUtils
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
java.lang.reflect.InvocationTargetException
;
...
...
@@ -47,12 +46,11 @@ public class NavigatorActionSetActiveObject implements IActionDelegate
final
DBNDatabaseNode
databaseNode
=
(
DBNDatabaseNode
)
selectedNode
;
final
DBSObjectSelector
activeContainer
=
DBUtils
.
getParentAdapter
(
DBSObjectSelector
.
class
,
databaseNode
.
getObject
());
try
{
DBeaverUI
.
runInProgressService
(
new
DBRRunnableWithProgress
()
{
if
(
activeContainer
!=
null
)
{
TasksJob
.
runTask
(
"Select active object"
,
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
throws
InvocationTargetException
,
InterruptedException
{
try
{
activeContainer
.
selectObject
(
monitor
,
databaseNode
.
getObject
());
}
catch
(
DBException
e
)
{
...
...
@@ -60,10 +58,6 @@ public class NavigatorActionSetActiveObject implements IActionDelegate
}
}
});
}
catch
(
InvocationTargetException
e
)
{
UIUtils
.
showErrorDialog
(
null
,
"Select entity"
,
"Can't change selected entity"
,
e
.
getTargetException
());
}
catch
(
InterruptedException
e
)
{
// do nothing
}
}
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectDelete.java
浏览文件 @
bd4a78ca
...
...
@@ -40,19 +40,19 @@ import org.jkiss.dbeaver.DBException;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverActivator
;
import
org.jkiss.dbeaver.model.edit.DBEObjectMaker
;
import
org.jkiss.dbeaver.model.navigator.*
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.registry.editor.EntityEditorsRegistry
;
import
org.jkiss.dbeaver.runtime.TasksJob
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.UIIcon
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.dialogs.ConfirmationDialog
;
import
org.jkiss.dbeaver.ui.editors.IDatabaseEditor
;
import
org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput
;
import
org.jkiss.dbeaver.model.edit.DBEObjectMaker
;
import
org.jkiss.dbeaver.model.navigator.*
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.registry.editor.EntityEditorsRegistry
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorUtils
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.dialogs.ConfirmationDialog
;
import
java.util.*
;
...
...
@@ -90,7 +90,7 @@ public class NavigatorHandlerObjectDelete extends NavigatorHandlerObjectBase imp
}
if
(!
tasksToExecute
.
isEmpty
())
{
new
TasksJob
(
tasksToExecute
.
size
()
>
1
?
"Delete "
+
tasksToExecute
.
size
()
+
" objects"
:
"Delete object"
,
tasksToExecute
).
schedule
(
);
TasksJob
.
runTasks
(
tasksToExecute
.
size
()
>
1
?
"Delete "
+
tasksToExecute
.
size
()
+
" objects"
:
"Delete object"
,
tasksToExecute
);
tasksToExecute
.
clear
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录