Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8b2ebc0b
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
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,发现更多精彩内容 >>
提交
8b2ebc0b
编写于
6月 25, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Execution context refactoring
Former-commit-id:
3c1d5faa
上级
3ca9bf3d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
83 addition
and
25 deletion
+83
-25
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/AbstractExecutionContext.java
...rg/jkiss/dbeaver/model/impl/AbstractExecutionContext.java
+76
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCExecutionContext.java
...g/jkiss/dbeaver/model/impl/jdbc/JDBCExecutionContext.java
+7
-25
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/AbstractExecutionContext.java
0 → 100644
浏览文件 @
8b2ebc0b
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2015 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.model.impl
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBPNamedObject
;
import
org.jkiss.dbeaver.model.exec.DBCException
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.qm.QMUtils
;
/**
* Abstract execution context.
* All regular DBCExecutionContext implementations should extend this class.
* It provides bootstrap init functions and QM notifications.
*/
public
abstract
class
AbstractExecutionContext
<
DATASOURCE
extends
DBPDataSource
>
implements
DBCExecutionContext
{
@NotNull
protected
final
DATASOURCE
dataSource
;
protected
final
String
purpose
;
public
AbstractExecutionContext
(
DATASOURCE
dataSource
,
String
purpose
)
{
this
.
dataSource
=
dataSource
;
this
.
purpose
=
purpose
;
}
@Override
public
String
getContextName
()
{
return
purpose
;
}
@NotNull
@Override
public
DATASOURCE
getDataSource
()
{
return
dataSource
;
}
/**
* Context boot procedure.
* Executes bootstrap queries and other init functions.
* This function must be called by all implementations.
*/
protected
void
initContextBootstrap
(
boolean
autoCommit
)
throws
DBCException
{
QMUtils
.
getDefaultHandler
().
handleContextOpen
(
this
,
!
autoCommit
);
}
protected
void
closeContext
()
{
QMUtils
.
getDefaultHandler
().
handleContextClose
(
this
);
}
@Override
public
String
toString
()
{
String
dsName
=
dataSource
instanceof
DBPNamedObject
?
((
DBPNamedObject
)
dataSource
).
getName
()
:
dataSource
.
toString
();
return
dsName
+
" - "
+
purpose
;
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCExecutionContext.java
浏览文件 @
8b2ebc0b
...
...
@@ -22,10 +22,10 @@ import org.jkiss.code.Nullable;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBPTransactionIsolation
;
import
org.jkiss.dbeaver.model.exec.*
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCSession
;
import
org.jkiss.dbeaver.model.impl.AbstractExecutionContext
;
import
org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCSavepointImpl
;
import
org.jkiss.dbeaver.model.qm.QMUtils
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
...
...
@@ -38,21 +38,17 @@ import java.sql.Savepoint;
/**
* JDBCExecutionContext
*/
public
class
JDBCExecutionContext
implements
DBCExecutionContext
,
DBCTransactionManager
public
class
JDBCExecutionContext
extends
AbstractExecutionContext
<
JDBCDataSource
>
implements
DBCTransactionManager
{
static
final
Log
log
=
Log
.
getLog
(
JDBCExecutionContext
.
class
);
@NotNull
private
final
JDBCDataSource
dataSource
;
private
volatile
Connection
connection
;
private
final
String
purpose
;
private
volatile
Boolean
autoCommit
;
private
volatile
Integer
transactionIsolationLevel
;
public
JDBCExecutionContext
(
@NotNull
JDBCDataSource
dataSource
,
String
purpose
)
{
this
.
dataSource
=
dataSource
;
this
.
purpose
=
purpose
;
super
(
dataSource
,
purpose
);
}
private
Connection
getConnection
()
{
...
...
@@ -109,11 +105,11 @@ public class JDBCExecutionContext implements DBCExecutionContext, DBCTransaction
log
.
warn
(
"Can't check auto-commit state"
,
e
);
//$NON-NLS-1$
}
}
QMUtils
.
getDefaultHandler
().
handleContextOpen
(
this
,
!
this
.
autoCommit
);
// Copy context state
this
.
dataSource
.
initializeContextState
(
monitor
,
this
,
forceActiveObject
);
this
.
initContextBootstrap
(
autoCommit
);
// Add self to context list
this
.
dataSource
.
allContexts
.
add
(
this
);
}
finally
{
...
...
@@ -143,17 +139,6 @@ public class JDBCExecutionContext implements DBCExecutionContext, DBCTransaction
return
dataSource
.
createConnection
(
monitor
,
this
,
purpose
,
taskTitle
);
}
@Override
public
String
getContextName
()
{
return
purpose
;
}
@NotNull
@Override
public
DBPDataSource
getDataSource
()
{
return
dataSource
;
}
@Override
public
boolean
isConnected
()
{
...
...
@@ -198,13 +183,14 @@ public class JDBCExecutionContext implements DBCExecutionContext, DBCTransaction
catch
(
Throwable
ex
)
{
log
.
error
(
ex
);
}
QMUtils
.
getDefaultHandler
().
handleContextClose
(
this
);
connection
=
null
;
}
super
.
closeContext
();
}
// Remove self from context list
this
.
dataSource
.
allContexts
.
remove
(
this
);
}
//////////////////////////////////////////////////////////////
...
...
@@ -364,8 +350,4 @@ public class JDBCExecutionContext implements DBCExecutionContext, DBCTransaction
}
}
@Override
public
String
toString
()
{
return
dataSource
.
getName
()
+
" - "
+
purpose
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录