Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
922f2181
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,发现更多精彩内容 >>
提交
922f2181
编写于
10月 10, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Dependencies model
上级
4df91b2d
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
22 addition
and
107 deletion
+22
-107
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDependencies.java
...org/jkiss/dbeaver/registry/driver/DriverDependencies.java
+4
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryLocal.java
...org/jkiss/dbeaver/registry/driver/DriverLibraryLocal.java
+0
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
...s/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
+0
-47
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
...iss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
+18
-51
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
.../org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
+0
-3
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDependencies.java
浏览文件 @
922f2181
...
...
@@ -52,6 +52,7 @@ public class DriverDependencies implements DBPDriverDependencies
libraryList
.
clear
();
libraryList
.
addAll
(
libMap
.
values
());
/*
{
StringBuilder sb = new StringBuilder();
Set<String> ns = new TreeSet<>();
...
...
@@ -72,12 +73,14 @@ public class DriverDependencies implements DBPDriverDependencies
dumpNode(node, 0);
}
}
*/
}
}
catch
(
IOException
e
)
{
throw
new
DBException
(
"IO error while resolving dependencies"
,
e
);
}
}
/*
private void dumpNode(DependencyNode node, int level) {
if (node.duplicate) {
return;
...
...
@@ -88,6 +91,7 @@ public class DriverDependencies implements DBPDriverDependencies
dumpNode(child, level + 1);
}
}
*/
private
void
resolveDependencies
(
DBRProgressMonitor
monitor
,
DependencyNode
ownerNode
,
Map
<
String
,
DBPDriverLibrary
>
libMap
)
throws
IOException
{
Collection
<?
extends
DBPDriverLibrary
>
dependencies
=
ownerNode
.
library
.
getDependencies
(
monitor
,
ownerNode
.
owner
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryLocal.java
浏览文件 @
922f2181
...
...
@@ -115,12 +115,6 @@ public class DriverLibraryLocal extends DriverLibraryAbstract
return
null
;
}
@Nullable
@Override
public
Collection
<
DBPDriverLibrary
>
getDependencies
(
@NotNull
DBRProgressMonitor
monitor
,
DBPDriverLibrary
ownerLibrary
)
throws
IOException
{
return
null
;
}
protected
File
detectLocalFile
()
{
String
localPath
=
getLocalFilePath
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
浏览文件 @
922f2181
...
...
@@ -181,53 +181,6 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
return
false
;
}
@Nullable
@Override
public
Collection
<?
extends
DBPDriverLibrary
>
getDependencies
(
@NotNull
DBRProgressMonitor
monitor
,
DBPDriverLibrary
ownerLibrary
)
throws
IOException
{
List
<
DriverLibraryMavenDependency
>
dependencies
=
new
ArrayList
<>();
List
<
MavenArtifactReference
>
exclusions
=
null
;
MavenLocalVersion
localVersion
=
resolveLocalVersion
(
monitor
,
false
);
if
(
localVersion
!=
null
)
{
// Find owner's exclusions
if
(
ownerLibrary
instanceof
DriverLibraryMavenArtifact
)
{
MavenLocalVersion
ownerVersion
=
((
DriverLibraryMavenArtifact
)
ownerLibrary
).
getMavenLocalVersion
();
if
(
ownerVersion
!=
null
)
{
exclusions
=
ownerVersion
.
getMetaData
(
monitor
)
.
findExclusionsFor
(
localVersion
.
getArtifact
().
getGroupId
(),
localVersion
.
getArtifact
().
getArtifactId
());
}
}
MavenArtifactVersion
metaData
=
localVersion
.
getMetaData
(
monitor
);
List
<
MavenArtifactDependency
>
artifactDeps
=
metaData
.
getDependencies
(
monitor
);
if
(!
CommonUtils
.
isEmpty
(
artifactDeps
))
{
for
(
MavenArtifactDependency
artifactDep
:
artifactDeps
)
{
boolean
excluded
=
false
;
if
(
exclusions
!=
null
)
{
for
(
MavenArtifactReference
ex
:
exclusions
)
{
if
(
ex
.
getGroupId
().
equals
(
artifactDep
.
getGroupId
())
&&
ex
.
getArtifactId
().
equals
(
artifactDep
.
getArtifactId
()))
{
excluded
=
true
;
break
;
}
}
if
(
excluded
)
{
// Excluded
continue
;
}
}
MavenLocalVersion
depLocalVersion
=
artifactDep
.
resolveDependency
(
monitor
);
if
(
depLocalVersion
!=
null
)
{
dependencies
.
add
(
new
DriverLibraryMavenDependency
(
this
.
getDriver
(),
depLocalVersion
));
}
}
}
}
return
dependencies
;
}
@NotNull
public
String
getDisplayName
()
{
MavenArtifact
artifact
=
getMavenArtifact
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
浏览文件 @
922f2181
...
...
@@ -89,18 +89,14 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
@Override
void
resolveLibraries
()
{
final
Map
<
String
,
List
<
DBPDriverLibrary
>>
depMap
=
new
LinkedHashMap
<>()
;
final
DBPDriverDependencies
[]
ref
=
new
DBPDriverDependencies
[
1
]
;
try
{
new
RunnableContextDelegate
(
getContainer
()).
run
(
true
,
true
,
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
monitor
.
beginTask
(
"Resolve dependencies"
,
100
);
try
{
DBPDriverDependencies
dependencies
=
getWizard
().
getDriver
().
resolveDependencies
(
monitor
);
for
(
DBPDriverLibrary
library
:
getWizard
().
getFiles
())
{
resolveDependencies
(
monitor
,
library
,
null
,
depMap
);
}
ref
[
0
]
=
getWizard
().
getDriver
().
resolveDependencies
(
monitor
);
}
catch
(
Exception
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
...
...
@@ -114,15 +110,16 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
UIUtils
.
showErrorDialog
(
null
,
"Resolve libraries"
,
"Error resolving driver libraries"
,
e
.
getTargetException
());
}
final
Set
<
String
>
addedDeps
=
new
HashSet
<>()
;
DBPDriverDependencies
dependencies
=
ref
[
0
]
;
int
totalItems
=
0
;
for
(
DBPDriverLibrary
file
:
getWizard
().
getFiles
())
{
for
(
DBPDriverDependencies
.
DependencyNode
node
:
dependencies
.
getLibraryMap
())
{
DBPDriverLibrary
library
=
node
.
library
;
TreeItem
item
=
new
TreeItem
(
filesTree
,
SWT
.
NONE
);
item
.
setImage
(
DBeaverIcons
.
getImage
(
file
.
getIcon
()));
item
.
setText
(
0
,
file
.
getDisplayName
());
item
.
setText
(
1
,
CommonUtils
.
notEmpty
(
file
.
getVersion
()));
item
.
setImage
(
DBeaverIcons
.
getImage
(
library
.
getIcon
()));
item
.
setText
(
0
,
library
.
getDisplayName
());
item
.
setText
(
1
,
CommonUtils
.
notEmpty
(
library
.
getVersion
()));
totalItems
++;
if
(
addDependencies
(
item
,
file
,
depMap
,
addedDeps
))
{
if
(
addDependencies
(
item
,
node
))
{
item
.
setExpanded
(
true
);
totalItems
+=
item
.
getItemCount
();
}
...
...
@@ -136,51 +133,21 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
shell
.
setSize
(
shell
.
getSize
().
x
,
shell
.
getSize
().
y
+
filesTree
.
getItemHeight
()
*
totalItems
);
shell
.
layout
();
}
private
void
resolveDependencies
(
DBRProgressMonitor
monitor
,
DBPDriverLibrary
library
,
DBPDriverLibrary
ownerLibrary
,
Map
<
String
,
List
<
DBPDriverLibrary
>>
depMap
)
throws
IOException
{
String
libraryPath
=
library
.
getPath
();
List
<
DBPDriverLibrary
>
deps
=
depMap
.
get
(
libraryPath
);
if
(
deps
!=
null
)
{
return
;
}
deps
=
new
ArrayList
<>();
depMap
.
put
(
libraryPath
,
deps
);
Collection
<?
extends
DBPDriverLibrary
>
dependencies
=
library
.
getDependencies
(
monitor
,
ownerLibrary
);
private
boolean
addDependencies
(
TreeItem
parent
,
DBPDriverDependencies
.
DependencyNode
node
)
{
Collection
<
DBPDriverDependencies
.
DependencyNode
>
dependencies
=
node
.
dependencies
;
if
(
dependencies
!=
null
&&
!
dependencies
.
isEmpty
())
{
for
(
DBPDriverLibrary
dep
:
dependencies
)
{
deps
.
add
(
dep
);
resolveDependencies
(
monitor
,
dep
,
library
,
depMap
);
}
}
}
private
boolean
addDependencies
(
TreeItem
parent
,
DBPDriverLibrary
library
,
Map
<
String
,
List
<
DBPDriverLibrary
>>
depMap
,
Set
<
String
>
addedDeps
)
{
Collection
<?
extends
DBPDriverLibrary
>
dependencies
=
depMap
.
get
(
library
.
getPath
());
if
(
dependencies
!=
null
&&
!
dependencies
.
isEmpty
())
{
Map
<
DBPDriverLibrary
,
TreeItem
>
itemMap
=
new
HashMap
<>();
for
(
DBPDriverLibrary
dep
:
dependencies
)
{
for
(
DBPDriverDependencies
.
DependencyNode
dep
:
dependencies
)
{
TreeItem
item
=
new
TreeItem
(
parent
,
SWT
.
NONE
);
item
.
setImage
(
DBeaverIcons
.
getImage
(
dep
.
getIcon
()));
item
.
setText
(
0
,
dep
.
getDisplayName
());
item
.
setText
(
1
,
CommonUtils
.
notEmpty
(
dep
.
getVersion
()));
item
.
setImage
(
DBeaverIcons
.
getImage
(
dep
.
library
.
getIcon
()));
item
.
setText
(
0
,
dep
.
library
.
getDisplayName
());
item
.
setText
(
1
,
CommonUtils
.
notEmpty
(
dep
.
library
.
getVersion
()));
if
(
addedDeps
.
contains
(
dep
.
getPath
())
)
{
if
(
dep
.
duplicate
)
{
item
.
setForeground
(
getShell
().
getDisplay
().
getSystemColor
(
SWT
.
COLOR_WIDGET_DARK_SHADOW
));
}
itemMap
.
put
(
dep
,
item
);
}
for
(
DBPDriverLibrary
dep
:
dependencies
)
{
TreeItem
item
=
itemMap
.
get
(
dep
);
if
(!
addedDeps
.
contains
(
dep
.
getPath
()))
{
addedDeps
.
add
(
dep
.
getPath
());
if
(
addDependencies
(
item
,
dep
,
depMap
,
addedDeps
))
{
//item.setExpanded(true);
}
}
else
{
addDependencies
(
item
,
dep
);
}
}
return
true
;
}
return
false
;
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
浏览文件 @
922f2181
...
...
@@ -97,9 +97,6 @@ public interface DBPDriverLibrary
@Nullable
Collection
<?
extends
DBPDriverLibrary
>
getDependencies
(
@NotNull
DBRProgressMonitor
monitor
,
@Nullable
DBPDriverDependencies
.
DependencyNode
ownerNode
)
throws
IOException
;
@Nullable
Collection
<?
extends
DBPDriverLibrary
>
getDependencies
(
@NotNull
DBRProgressMonitor
monitor
,
@Nullable
DBPDriverLibrary
ownerLibrary
)
throws
IOException
;
void
downloadLibraryFile
(
@NotNull
DBRProgressMonitor
monitor
,
boolean
forceUpdate
)
throws
IOException
,
InterruptedException
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录