Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
0c089ad5
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,发现更多精彩内容 >>
提交
0c089ad5
编写于
10月 14, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Dependencies resolution
上级
4a811993
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
117 addition
and
51 deletion
+117
-51
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDependencies.java
...org/jkiss/dbeaver/registry/driver/DriverDependencies.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryAbstract.java
.../jkiss/dbeaver/registry/driver/DriverLibraryAbstract.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryLocal.java
...org/jkiss/dbeaver/registry/driver/DriverLibraryLocal.java
+6
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
...s/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
+30
-14
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenDependency.java
...dbeaver/registry/driver/DriverLibraryMavenDependency.java
+0
-21
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryRepository.java
...kiss/dbeaver/registry/driver/DriverLibraryRepository.java
+2
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java
...e/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java
+14
-5
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
...rg/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
+18
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRegistry.java
...e/src/org/jkiss/dbeaver/registry/maven/MavenRegistry.java
+20
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRepository.java
...src/org/jkiss/dbeaver/registry/maven/MavenRepository.java
+22
-3
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
.../org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
+3
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDependencies.java
浏览文件 @
0c089ad5
...
...
@@ -87,6 +87,7 @@ public class DriverDependencies implements DBPDriverDependencies
}
private
void
resolveDependencies
(
DBRProgressMonitor
monitor
,
DependencyNode
ownerNode
,
Map
<
String
,
DBPDriverLibrary
>
libMap
)
throws
IOException
{
ownerNode
.
library
.
resolve
(
monitor
);
Collection
<?
extends
DBPDriverLibrary
>
dependencies
=
ownerNode
.
library
.
getDependencies
(
monitor
);
if
(
dependencies
!=
null
&&
!
dependencies
.
isEmpty
())
{
for
(
DBPDriverLibrary
dep
:
dependencies
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryAbstract.java
浏览文件 @
0c089ad5
...
...
@@ -167,7 +167,7 @@ public abstract class DriverLibraryAbstract implements DBPDriverLibrary
}
}
String
externalURL
=
getExternalURL
();
String
externalURL
=
getExternalURL
(
monitor
);
if
(
externalURL
==
null
)
{
throw
new
IOException
(
"Unresolved file reference: "
+
getPath
());
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryLocal.java
浏览文件 @
0c089ad5
...
...
@@ -57,13 +57,18 @@ public class DriverLibraryLocal extends DriverLibraryAbstract
return
true
;
}
@Override
public
void
resolve
(
DBRProgressMonitor
monitor
)
throws
IOException
{
// do nothing
}
protected
String
getLocalFilePath
()
{
return
path
;
}
@Nullable
@Override
public
String
getExternalURL
()
{
public
String
getExternalURL
(
DBRProgressMonitor
monitor
)
{
return
null
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
浏览文件 @
0c089ad5
...
...
@@ -24,14 +24,15 @@ import org.jkiss.dbeaver.Log;
import
org.jkiss.dbeaver.model.DBIcon
;
import
org.jkiss.dbeaver.model.connection.DBPDriverLibrary
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.registry.maven.*
;
import
org.jkiss.dbeaver.ui.UIIcon
;
import
org.jkiss.utils.CommonUtils
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
/**
* DriverLibraryDescriptor
...
...
@@ -43,7 +44,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
public
static
final
String
PATH_PREFIX
=
"maven:/"
;
private
final
MavenArtifactReference
reference
;
pr
ivate
MavenArtifactVersion
v
ersion
;
pr
otected
MavenArtifactVersion
localV
ersion
;
public
DriverLibraryMavenArtifact
(
DriverDescriptor
driver
,
FileType
type
,
String
path
)
{
super
(
driver
,
type
,
path
);
...
...
@@ -69,21 +70,36 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
@Override
public
boolean
isResolved
()
{
return
getMavenVersion
()
!=
null
;
return
getCachedArtifactVersion
()
!=
null
;
}
@Override
public
void
resolve
(
DBRProgressMonitor
monitor
)
throws
IOException
{
if
(
getArtifactVersion
(
monitor
)
==
null
)
{
throw
new
IOException
(
"Can't resolve artifact "
+
this
+
" version"
);
}
}
@Nullable
protected
MavenArtifactVersion
get
Maven
Version
()
{
if
(
v
ersion
==
null
)
{
version
=
MavenRegistry
.
getInstance
().
findArtifact
(
VoidProgressMonitor
.
INSTANCE
,
reference
);
protected
MavenArtifactVersion
get
CachedArtifact
Version
()
{
if
(
localV
ersion
==
null
)
{
localVersion
=
MavenRegistry
.
getInstance
().
findCachedArtifact
(
reference
);
}
return
version
;
return
localVersion
;
}
@Nullable
protected
MavenArtifactVersion
getArtifactVersion
(
DBRProgressMonitor
monitor
)
{
if
(
localVersion
==
null
)
{
localVersion
=
MavenRegistry
.
getInstance
().
findArtifact
(
monitor
,
reference
);
}
return
localVersion
;
}
@Nullable
@Override
public
String
getExternalURL
()
{
MavenArtifactVersion
localVersion
=
get
MavenVersion
(
);
public
String
getExternalURL
(
DBRProgressMonitor
monitor
)
{
MavenArtifactVersion
localVersion
=
get
ArtifactVersion
(
monitor
);
if
(
localVersion
!=
null
)
{
return
localVersion
.
getExternalURL
(
MavenArtifact
.
FILE_JAR
);
}
...
...
@@ -107,7 +123,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
private
File
detectLocalFile
()
{
MavenArtifactVersion
localVersion
=
get
Maven
Version
();
MavenArtifactVersion
localVersion
=
get
CachedArtifact
Version
();
if
(
localVersion
!=
null
)
{
return
localVersion
.
getCacheFile
();
}
...
...
@@ -160,7 +176,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
@Override
public
String
getVersion
()
{
MavenArtifactVersion
version
=
get
Maven
Version
();
MavenArtifactVersion
version
=
get
CachedArtifact
Version
();
if
(
version
!=
null
)
{
return
version
.
getVersion
();
}
...
...
@@ -175,7 +191,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
}
public
void
downloadLibraryFile
(
@NotNull
DBRProgressMonitor
monitor
,
boolean
forceUpdate
,
String
taskName
)
throws
IOException
,
InterruptedException
{
//monitor.beginTask(taskName + " - update
v
ersion information", 1);
//monitor.beginTask(taskName + " - update
localV
ersion information", 1);
try
{
MavenArtifactVersion
localVersion
=
resolveLocalVersion
(
monitor
,
forceUpdate
);
if
(
localVersion
.
getArtifact
().
getRepository
().
isLocal
())
{
...
...
@@ -192,7 +208,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
if
(
forceUpdate
)
{
MavenRegistry
.
getInstance
().
resetArtifactInfo
(
reference
);
}
MavenArtifactVersion
version
=
MavenRegistry
.
getInstance
().
findArtifact
(
monitor
,
reference
);
MavenArtifactVersion
version
=
getArtifactVersion
(
monitor
);
if
(
version
==
null
)
{
throw
new
IOException
(
"Maven artifact '"
+
path
+
"' not found"
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenDependency.java
浏览文件 @
0c089ad5
...
...
@@ -17,14 +17,11 @@
*/
package
org.jkiss.dbeaver.registry.driver
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.registry.maven.MavenArtifactDependency
;
import
org.jkiss.dbeaver.registry.maven.MavenArtifactReference
;
import
org.jkiss.dbeaver.registry.maven.MavenArtifactVersion
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.List
;
/**
...
...
@@ -33,7 +30,6 @@ import java.util.List;
public
class
DriverLibraryMavenDependency
extends
DriverLibraryMavenArtifact
{
private
DriverLibraryMavenArtifact
parent
;
private
MavenArtifactVersion
localVersion
;
private
MavenArtifactDependency
source
;
public
DriverLibraryMavenDependency
(
DriverLibraryMavenArtifact
parent
,
MavenArtifactVersion
localVersion
,
MavenArtifactDependency
source
)
{
...
...
@@ -48,23 +44,6 @@ public class DriverLibraryMavenDependency extends DriverLibraryMavenArtifact
return
true
;
}
@Nullable
@Override
protected
MavenArtifactVersion
getMavenVersion
()
{
return
localVersion
;
}
@Nullable
@Override
public
File
getLocalFile
()
{
return
localVersion
.
getCacheFile
();
}
protected
MavenArtifactVersion
resolveLocalVersion
(
DBRProgressMonitor
monitor
,
boolean
forceUpdate
)
throws
IOException
{
return
localVersion
;
}
protected
boolean
isDependencyExcluded
(
DBRProgressMonitor
monitor
,
MavenArtifactDependency
dependency
)
{
List
<
MavenArtifactReference
>
exclusions
=
source
.
getExclusions
();
if
(
exclusions
!=
null
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryRepository.java
浏览文件 @
0c089ad5
...
...
@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.registry.driver;
import
org.eclipse.core.runtime.IConfigurationElement
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
/**
* DriverLibraryDescriptor
...
...
@@ -48,7 +49,7 @@ public class DriverLibraryRepository extends DriverLibraryLocal
@Nullable
@Override
public
String
getExternalURL
()
{
public
String
getExternalURL
(
DBRProgressMonitor
monitor
)
{
String
localPath
=
getLocalFilePath
();
String
primarySource
=
DriverDescriptor
.
getDriversPrimarySource
();
if
(!
primarySource
.
endsWith
(
"/"
)
&&
!
localPath
.
startsWith
(
"/"
))
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java
浏览文件 @
0c089ad5
...
...
@@ -21,8 +21,8 @@ import org.jkiss.code.NotNull;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.registry.maven.versioning.DefaultArtifactVersion
;
import
org.jkiss.dbeaver.registry.maven.versioning.InvalidVersionSpecificationException
;
import
org.jkiss.dbeaver.registry.maven.versioning.VersionRange
;
import
org.jkiss.dbeaver.runtime.RuntimeUtils
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -208,9 +208,6 @@ public class MavenArtifact
@Nullable
public
MavenArtifactVersion
getVersion
(
String
versionStr
)
{
if
(
CommonUtils
.
isEmpty
(
activeVersion
))
{
return
null
;
}
for
(
MavenArtifactVersion
version
:
localVersions
)
{
if
(
version
.
getVersion
().
equals
(
versionStr
))
{
return
version
;
...
...
@@ -226,7 +223,7 @@ public class MavenArtifact
private
MavenArtifactVersion
makeLocalVersion
(
DBRProgressMonitor
monitor
,
String
versionStr
,
boolean
setActive
)
throws
IllegalArgumentException
,
IOException
{
MavenArtifactVersion
version
=
getVersion
(
versionStr
);
if
(
version
==
null
)
{
version
=
new
MavenArtifactVersion
(
monitor
,
this
,
versionStr
);
version
=
new
MavenArtifactVersion
(
monitor
,
this
,
versionStr
,
true
);
localVersions
.
add
(
version
);
}
if
(
setActive
)
{
...
...
@@ -236,6 +233,18 @@ public class MavenArtifact
return
version
;
}
public
MavenArtifactVersion
resolveActiveVersion
()
throws
IOException
{
if
(
CommonUtils
.
isEmpty
(
activeVersion
))
{
return
null
;
}
MavenArtifactVersion
version
=
getVersion
(
activeVersion
);
if
(
version
==
null
)
{
version
=
new
MavenArtifactVersion
(
VoidProgressMonitor
.
INSTANCE
,
this
,
activeVersion
,
false
);
localVersions
.
add
(
version
);
}
return
version
;
}
public
MavenArtifactVersion
resolveVersion
(
DBRProgressMonitor
monitor
,
String
versionRef
)
throws
IOException
{
if
(
CommonUtils
.
isEmpty
(
versionRef
))
{
throw
new
IOException
(
"Empty artifact "
+
this
+
" version"
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
浏览文件 @
0c089ad5
...
...
@@ -17,8 +17,11 @@
*/
package
org.jkiss.dbeaver.registry.maven
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.runtime.RuntimeUtils
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -83,10 +86,16 @@ public class MavenArtifactVersion {
}
};
MavenArtifactVersion
(
DBRProgressMonitor
monitor
,
MavenArtifact
artifact
,
String
version
)
throws
IOException
{
/**
* Makes new version
* @param monitor if null then do not try to get remote POM
* @param readRemote
* @throws IOException
*/
MavenArtifactVersion
(
@NotNull
DBRProgressMonitor
monitor
,
@NotNull
MavenArtifact
artifact
,
@NotNull
String
version
,
boolean
readRemote
)
throws
IOException
{
this
.
artifact
=
artifact
;
this
.
version
=
version
;
loadPOM
(
monitor
);
loadPOM
(
monitor
,
readRemote
);
}
public
MavenArtifact
getArtifact
()
{
...
...
@@ -176,10 +185,15 @@ public class MavenArtifactVersion {
return
artifact
.
getFileURL
(
version
,
MavenArtifact
.
FILE_POM
);
}
private
void
loadPOM
(
DBRProgressMonitor
monitor
)
throws
IOException
{
private
void
loadPOM
(
DBRProgressMonitor
monitor
,
boolean
readRemote
)
throws
IOException
{
File
localPOM
=
getLocalPOM
();
if
(!
localPOM
.
exists
())
{
cachePOM
(
localPOM
);
if
(
readRemote
)
{
cachePOM
(
localPOM
);
}
else
{
log
.
warn
(
"Local POM missing for "
+
this
);
return
;
}
}
monitor
.
subTask
(
"Load POM "
+
this
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRegistry.java
浏览文件 @
0c089ad5
...
...
@@ -148,6 +148,26 @@ public class MavenRegistry
return
null
;
}
@Nullable
public
MavenArtifactVersion
findCachedArtifact
(
@NotNull
MavenArtifactReference
ref
)
{
String
fullId
=
ref
.
getId
();
if
(
notFoundArtifacts
.
contains
(
fullId
))
{
return
null
;
}
// Try all available repositories (without resolve)
for
(
MavenRepository
repository
:
repositories
)
{
MavenArtifactVersion
artifact
=
repository
.
findCachedArtifact
(
ref
);
if
(
artifact
!=
null
)
{
return
artifact
;
}
}
MavenArtifactVersion
artifact
=
localRepository
.
findCachedArtifact
(
ref
);
if
(
artifact
!=
null
)
{
return
artifact
;
}
return
null
;
}
public
void
resetArtifactInfo
(
MavenArtifactReference
artifactReference
)
{
notFoundArtifacts
.
remove
(
artifactReference
.
getId
());
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRepository.java
浏览文件 @
0c089ad5
...
...
@@ -132,6 +132,23 @@ public class MavenRepository
}
}
public
MavenArtifactVersion
findCachedArtifact
(
MavenArtifactReference
ref
)
{
MavenArtifact
artifact
=
cachedArtifacts
.
get
(
ref
.
getId
());
if
(
artifact
==
null
)
{
return
null
;
}
MavenArtifactVersion
version
=
artifact
.
getVersion
(
ref
.
getVersion
());
if
(
version
==
null
&&
!
CommonUtils
.
isEmpty
(
artifact
.
getActiveVersionName
()))
{
// Resolve active version
try
{
version
=
artifact
.
resolveActiveVersion
();
}
catch
(
IOException
e
)
{
log
.
warn
(
"Can't resolve cached active version "
+
ref
);
}
}
return
version
;
}
synchronized
void
resetArtifactCache
(
@NotNull
MavenArtifactReference
artifactReference
)
{
cachedArtifacts
.
remove
(
artifactReference
.
getId
());
}
...
...
@@ -176,10 +193,11 @@ public class MavenRepository
MavenArtifactVersion
version
=
new
MavenArtifactVersion
(
VoidProgressMonitor
.
INSTANCE
,
lastArtifact
,
versionNumber
);
versionNumber
,
false
);
lastArtifact
.
addVersion
(
version
);
}
catch
(
IOException
e
)
{
log
.
warn
(
"Error loading
artifact version"
,
e
);
log
.
warn
(
"Error loading
cached artifact version "
+
lastArtifact
+
":"
+
versionNumber
,
e
);
}
}
}
...
...
@@ -232,7 +250,7 @@ public class MavenRepository
try
(
XMLBuilder
.
Element
e1
=
xml
.
startElement
(
TAG_ARTIFACT
))
{
xml
.
addAttribute
(
ATTR_GROUP_ID
,
artifact
.
getGroupId
());
xml
.
addAttribute
(
ATTR_ARTIFACT_ID
,
artifact
.
getArtifactId
());
if
(
CommonUtils
.
isEmpty
(
artifact
.
getActiveVersionName
()))
{
if
(
!
CommonUtils
.
isEmpty
(
artifact
.
getActiveVersionName
()))
{
xml
.
addAttribute
(
ATTR_ACTIVE_VERSION
,
artifact
.
getActiveVersionName
());
}
}
...
...
@@ -252,4 +270,5 @@ public class MavenRepository
public
String
toString
()
{
return
url
;
}
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
浏览文件 @
0c089ad5
...
...
@@ -85,8 +85,10 @@ public interface DBPDriverLibrary
boolean
isResolved
();
void
resolve
(
DBRProgressMonitor
monitor
)
throws
IOException
;
@Nullable
String
getExternalURL
();
String
getExternalURL
(
DBRProgressMonitor
monitor
);
@Nullable
File
getLocalFile
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录