Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
3fc5530e
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,发现更多精彩内容 >>
提交
3fc5530e
编写于
10月 15, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Deps resolve (order & optional)
Former-commit-id:
76afc1ff
上级
01d30c1f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
48 addition
and
26 deletion
+48
-26
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDependencies.java
...org/jkiss/dbeaver/registry/driver/DriverDependencies.java
+13
-8
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
...s/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
...rg/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
+28
-13
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
...iss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
+3
-3
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverDependencies.java
...jkiss/dbeaver/model/connection/DBPDriverDependencies.java
+3
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDependencies.java
浏览文件 @
3fc5530e
...
...
@@ -32,7 +32,7 @@ public class DriverDependencies implements DBPDriverDependencies
{
final
List
<?
extends
DBPDriverLibrary
>
rootLibraries
;
final
List
<
DependencyNode
>
rootNodes
=
new
ArrayList
<>();
final
List
<
D
BPDriverLibrary
>
libraryList
=
new
ArrayList
<>();
final
List
<
D
ependencyNode
>
libraryList
=
new
ArrayList
<>();
public
DriverDependencies
(
List
<?
extends
DBPDriverLibrary
>
rootLibraries
)
{
this
.
rootLibraries
=
rootLibraries
;
...
...
@@ -44,10 +44,10 @@ public class DriverDependencies implements DBPDriverDependencies
{
rootNodes
.
clear
();
final
Map
<
String
,
D
BPDriverLibrary
>
libMap
=
new
LinkedHashMap
<>();
final
Map
<
String
,
D
ependencyNode
>
libMap
=
new
LinkedHashMap
<>();
for
(
DBPDriverLibrary
library
:
rootLibraries
)
{
DependencyNode
node
=
new
DependencyNode
(
null
,
library
);
libMap
.
put
(
node
.
library
.
getId
(),
node
.
library
);
libMap
.
put
(
node
.
library
.
getId
(),
node
);
resolveDependencies
(
monitor
,
node
,
libMap
);
rootNodes
.
add
(
node
);
...
...
@@ -91,16 +91,21 @@ public class DriverDependencies implements DBPDriverDependencies
}
}
private
void
resolveDependencies
(
DBRProgressMonitor
monitor
,
DependencyNode
ownerNode
,
Map
<
String
,
D
BPDriverLibrary
>
libMap
)
throws
IOException
{
private
void
resolveDependencies
(
DBRProgressMonitor
monitor
,
DependencyNode
ownerNode
,
Map
<
String
,
D
ependencyNode
>
libMap
)
throws
IOException
{
ownerNode
.
library
.
resolve
(
monitor
);
Collection
<?
extends
DBPDriverLibrary
>
dependencies
=
ownerNode
.
library
.
getDependencies
(
monitor
);
if
(
dependencies
!=
null
&&
!
dependencies
.
isEmpty
())
{
for
(
DBPDriverLibrary
dep
:
dependencies
)
{
DependencyNode
node
=
new
DependencyNode
(
ownerNode
,
dep
);
node
.
duplicate
=
libMap
.
containsKey
(
node
.
library
.
getId
());
if
(!
node
.
duplicate
)
{
libMap
.
put
(
node
.
library
.
getId
(),
node
.
library
);
DependencyNode
prevNode
=
libMap
.
get
(
node
.
library
.
getId
());
if
(
prevNode
==
null
||
prevNode
.
depth
>
node
.
depth
)
{
libMap
.
put
(
node
.
library
.
getId
(),
node
);
if
(
prevNode
!=
null
)
{
prevNode
.
duplicate
=
true
;
}
}
else
{
node
.
duplicate
=
true
;
}
ownerNode
.
dependencies
.
add
(
node
);
}
...
...
@@ -113,7 +118,7 @@ public class DriverDependencies implements DBPDriverDependencies
}
@Override
public
List
<
D
BPDriverLibrary
>
getLibraryList
()
{
public
List
<
D
ependencyNode
>
getLibraryList
()
{
return
libraryList
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
浏览文件 @
3fc5530e
...
...
@@ -128,7 +128,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
MavenArtifactVersion
localVersion
=
resolveLocalVersion
(
monitor
,
false
);
if
(
localVersion
!=
null
)
{
List
<
MavenArtifactDependency
>
artifactDeps
=
localVersion
.
getDependencies
(
monitor
);
List
<
MavenArtifactDependency
>
artifactDeps
=
localVersion
.
getDependencies
();
if
(!
CommonUtils
.
isEmpty
(
artifactDeps
))
{
for
(
MavenArtifactDependency
dependency
:
artifactDeps
)
{
if
(
isDependencyExcluded
(
monitor
,
dependency
))
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
浏览文件 @
3fc5530e
...
...
@@ -121,7 +121,7 @@ public class MavenArtifactVersion {
return
profiles
;
}
public
List
<
MavenArtifactDependency
>
getDependencies
(
DBRProgressMonitor
monitor
)
{
public
List
<
MavenArtifactDependency
>
getDependencies
()
{
List
<
MavenArtifactDependency
>
dependencies
=
new
ArrayList
<>();
for
(
MavenProfile
profile
:
profiles
)
{
if
(
profile
.
isActive
()
&&
!
CommonUtils
.
isEmpty
(
profile
.
dependencies
))
{
...
...
@@ -129,7 +129,7 @@ public class MavenArtifactVersion {
}
}
if
(
parent
!=
null
)
{
List
<
MavenArtifactDependency
>
parentDependencies
=
parent
.
getDependencies
(
monitor
);
List
<
MavenArtifactDependency
>
parentDependencies
=
parent
.
getDependencies
();
if
(!
CommonUtils
.
isEmpty
(
parentDependencies
))
{
dependencies
.
addAll
(
parentDependencies
);
}
...
...
@@ -296,7 +296,7 @@ public class MavenArtifactVersion {
Element
propElement
=
XMLUtils
.
getChildElement
(
activationElement
,
"property"
);
if
(
propElement
!=
null
)
{
String
propName
=
XMLUtils
.
getChildElementBody
(
propElement
,
"name"
);
String
propValue
=
XMLUtils
.
getChildElementBody
(
propElement
,
"value"
);
//
String propValue = XMLUtils.getChildElementBody(propElement, "value");
// TODO: implement real properties checks. Now enable all profiles with !prop
if
(
propName
!=
null
&&
propName
.
startsWith
(
"!"
))
{
profile
.
active
=
true
;
...
...
@@ -364,13 +364,28 @@ public class MavenArtifactVersion {
log
.
warn
(
"Broken dependency reference: "
+
groupId
+
":"
+
artifactId
);
continue
;
}
MavenArtifactDependency
.
Scope
scope
=
MavenArtifactDependency
.
Scope
.
COMPILE
;
MavenArtifactDependency
dmInfo
=
findDependencyManagement
(
groupId
,
artifactId
);
// Resolve scope
MavenArtifactDependency
.
Scope
scope
=
null
;
String
scopeName
=
XMLUtils
.
getChildElementBody
(
dep
,
"scope"
);
if
(!
CommonUtils
.
isEmpty
(
scopeName
))
{
scope
=
MavenArtifactDependency
.
Scope
.
valueOf
(
scopeName
.
toUpperCase
(
Locale
.
ENGLISH
));
}
boolean
optional
=
CommonUtils
.
getBoolean
(
XMLUtils
.
getChildElementBody
(
dep
,
"optional"
),
false
);
if
(
scope
==
null
&&
dmInfo
!=
null
)
{
scope
=
dmInfo
.
getScope
();
}
if
(
scope
==
null
)
{
scope
=
MavenArtifactDependency
.
Scope
.
COMPILE
;
}
String
optionalString
=
XMLUtils
.
getChildElementBody
(
dep
,
"optional"
);
boolean
optional
=
optionalString
==
null
?
(
dmInfo
!=
null
&&
dmInfo
.
isOptional
())
:
CommonUtils
.
getBoolean
(
optionalString
);
// Resolve version
String
version
=
evaluateString
(
XMLUtils
.
getChildElementBody
(
dep
,
"version"
));
if
(
depManagement
&&
scope
==
MavenArtifactDependency
.
Scope
.
IMPORT
)
{
...
...
@@ -394,8 +409,8 @@ public class MavenArtifactVersion {
}
else
if
(
depManagement
||
(!
optional
&&
includesScope
(
scope
)))
{
// TODO: maybe we should include optional or PROVIDED
if
(
version
==
null
)
{
version
=
findDependencyVersion
(
monitor
,
groupId
,
artifactId
);
if
(
version
==
null
&&
dmInfo
!=
null
)
{
version
=
dmInfo
.
getVersion
(
);
}
if
(
version
==
null
)
{
log
.
error
(
"Can't resolve artifact ["
+
groupId
+
":"
+
artifactId
+
"] version. Skip."
);
...
...
@@ -437,13 +452,13 @@ public class MavenArtifactVersion {
scope == MavenArtifactDependency.Scope.PROVIDED*/
;
}
private
String
findDependencyVersion
(
DBRProgressMonitor
monitor
,
String
groupId
,
String
artifactId
)
{
private
MavenArtifactDependency
findDependencyManagement
(
String
groupId
,
String
artifactId
)
{
for
(
MavenProfile
profile
:
profiles
)
{
if
(
profile
.
isActive
()
&&
profile
.
dependencyManagement
!=
null
)
{
for
(
MavenArtifactDependency
dmArtifact
:
profile
.
dependencyManagement
)
{
if
(
dmArtifact
.
getGroupId
().
equals
(
groupId
)
&&
dmArtifact
.
getArtifactId
().
equals
(
artifactId
))
{
return
dmArtifact
.
getVersion
()
;
return
dmArtifact
;
}
}
}
...
...
@@ -451,13 +466,13 @@ public class MavenArtifactVersion {
// Check in imported BOMs
if
(
imports
!=
null
)
{
for
(
MavenArtifactVersion
i
:
imports
)
{
String
dependencyVersion
=
i
.
findDependencyVersion
(
monitor
,
groupId
,
artifactId
);
if
(
dependency
Version
!=
null
)
{
return
dependency
Version
;
MavenArtifactDependency
dependencyManagement
=
i
.
findDependencyManagement
(
groupId
,
artifactId
);
if
(
dependency
Management
!=
null
)
{
return
dependency
Management
;
}
}
}
return
parent
==
null
?
null
:
parent
.
findDependency
Version
(
monitor
,
groupId
,
artifactId
);
return
parent
==
null
?
null
:
parent
.
findDependency
Management
(
groupId
,
artifactId
);
}
private
String
evaluateString
(
String
value
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
浏览文件 @
3fc5530e
...
...
@@ -249,9 +249,9 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
List
<
DBPDriver
Library
>
fil
es
=
getWizard
().
getDependencies
().
getLibraryList
();
for
(
int
i
=
0
,
filesSize
=
fil
es
.
size
();
i
<
filesSize
;
)
{
DBPDriverLibrary
lib
=
files
.
get
(
i
)
;
List
<
DBPDriver
Dependencies
.
DependencyNode
>
nod
es
=
getWizard
().
getDependencies
().
getLibraryList
();
for
(
int
i
=
0
,
filesSize
=
nod
es
.
size
();
i
<
filesSize
;
)
{
DBPDriverLibrary
lib
=
nodes
.
get
(
i
).
library
;
int
result
=
IDialogConstants
.
OK_ID
;
try
{
lib
.
downloadLibraryFile
(
monitor
,
false
,
"Download "
+
(
i
+
1
)
+
"/"
+
filesSize
);
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverDependencies.java
浏览文件 @
3fc5530e
...
...
@@ -33,11 +33,13 @@ public interface DBPDriverDependencies
public
final
DependencyNode
owner
;
public
final
DBPDriverLibrary
library
;
public
final
List
<
DependencyNode
>
dependencies
=
new
ArrayList
<>();
public
final
int
depth
;
public
boolean
duplicate
;
public
DependencyNode
(
DependencyNode
owner
,
DBPDriverLibrary
library
)
{
this
.
owner
=
owner
;
this
.
library
=
library
;
this
.
depth
=
owner
==
null
?
0
:
owner
.
depth
+
1
;
}
@Override
...
...
@@ -46,7 +48,7 @@ public interface DBPDriverDependencies
}
}
List
<
D
BPDriverLibrary
>
getLibraryList
();
List
<
D
ependencyNode
>
getLibraryList
();
List
<
DependencyNode
>
getLibraryMap
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录