Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
b316e260
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,发现更多精彩内容 >>
提交
b316e260
编写于
10月 17, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Version change
Former-commit-id:
dd82944a
上级
fe186e30
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
188 addition
and
9 deletion
+188
-9
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryAbstract.java
.../jkiss/dbeaver/registry/driver/DriverLibraryAbstract.java
+14
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
...s/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
+35
-5
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java
...e/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java
+8
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
...rg/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
...iss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
+122
-2
plugins/org.jkiss.dbeaver.ext.generic/plugin.xml
plugins/org.jkiss.dbeaver.ext.generic/plugin.xml
+2
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
.../org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
+6
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryAbstract.java
浏览文件 @
b316e260
...
...
@@ -31,6 +31,8 @@ import org.jkiss.utils.CommonUtils;
import
java.io.*
;
import
java.net.URLConnection
;
import
java.text.NumberFormat
;
import
java.util.Collection
;
import
java.util.Collections
;
/**
* DriverLibraryAbstract
...
...
@@ -42,7 +44,7 @@ public abstract class DriverLibraryAbstract implements DBPDriverLibrary
protected
final
DriverDescriptor
driver
;
protected
final
FileType
type
;
protected
final
OSDescriptor
system
;
protected
final
String
path
;
protected
String
path
;
protected
boolean
custom
;
protected
boolean
disabled
;
...
...
@@ -103,6 +105,17 @@ public abstract class DriverLibraryAbstract implements DBPDriverLibrary
return
null
;
}
@NotNull
@Override
public
Collection
<
String
>
getAvailableVersions
(
DBRProgressMonitor
monitor
)
throws
IOException
{
return
Collections
.
emptyList
();
}
@Override
public
void
setVersion
(
DBRProgressMonitor
monitor
,
@NotNull
String
version
)
throws
IOException
{
throw
new
IOException
(
"Vaersions are not supported"
);
}
@NotNull
@Override
public
FileType
getType
()
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverLibraryMavenArtifact.java
浏览文件 @
b316e260
...
...
@@ -32,6 +32,7 @@ import java.io.File;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.List
;
/**
...
...
@@ -43,7 +44,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
public
static
final
String
PATH_PREFIX
=
"maven:/"
;
private
final
MavenArtifactReference
reference
;
private
MavenArtifactReference
reference
;
protected
MavenArtifactVersion
localVersion
;
public
DriverLibraryMavenArtifact
(
DriverDescriptor
driver
,
FileType
type
,
String
path
)
{
...
...
@@ -71,6 +72,35 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
return
true
;
}
@NotNull
@Override
public
Collection
<
String
>
getAvailableVersions
(
DBRProgressMonitor
monitor
)
throws
IOException
{
MavenArtifactVersion
artifactVersion
=
getArtifactVersion
(
monitor
);
if
(
artifactVersion
!=
null
)
{
Collection
<
String
>
availableVersion
=
artifactVersion
.
getArtifact
().
getAvailableVersion
(
monitor
);
if
(
availableVersion
!=
null
)
{
return
availableVersion
;
}
}
return
Collections
.
emptyList
();
}
@Override
public
void
setVersion
(
DBRProgressMonitor
monitor
,
@NotNull
String
version
)
throws
IOException
{
MavenArtifactReference
newReference
=
new
MavenArtifactReference
(
this
.
reference
.
getGroupId
(),
this
.
reference
.
getArtifactId
(),
this
.
reference
.
getClassifier
(),
version
);
MavenArtifactVersion
newVersion
=
MavenRegistry
.
getInstance
().
findArtifact
(
monitor
,
null
,
newReference
);
if
(
newVersion
==
null
)
{
throw
new
IOException
(
"Can't resolve artifact version "
+
newReference
);
}
this
.
reference
=
newReference
;
this
.
localVersion
=
newVersion
;
this
.
path
=
PATH_PREFIX
+
this
.
localVersion
.
toString
();
}
@Override
public
void
resetVersion
()
{
this
.
localVersion
=
null
;
...
...
@@ -79,10 +109,10 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
@Nullable
protected
MavenArtifactVersion
getArtifactVersion
(
DBRProgressMonitor
monitor
)
{
if
(
localVersion
==
null
)
{
localVersion
=
MavenRegistry
.
getInstance
().
findArtifact
(
monitor
,
null
,
reference
);
if
(
this
.
localVersion
==
null
)
{
this
.
localVersion
=
MavenRegistry
.
getInstance
().
findArtifact
(
monitor
,
null
,
reference
);
}
return
localVersion
;
return
this
.
localVersion
;
}
@Nullable
...
...
@@ -155,7 +185,7 @@ public class DriverLibraryMavenArtifact extends DriverLibraryAbstract
@NotNull
public
String
getDisplayName
()
{
return
getId
()
;
return
path
;
}
@Override
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java
浏览文件 @
b316e260
...
...
@@ -190,6 +190,14 @@ public class MavenArtifact implements IMavenIdentifier
return
MavenArtifactReference
.
makeId
(
this
);
}
@Nullable
public
Collection
<
String
>
getAvailableVersion
(
DBRProgressMonitor
monitor
)
throws
IOException
{
if
(
CommonUtils
.
isEmpty
(
versions
)
&&
!
metadataLoaded
)
{
loadMetadata
(
monitor
);
}
return
versions
;
}
public
Date
getLastUpdate
()
{
return
lastUpdate
;
}
...
...
@@ -396,5 +404,4 @@ public class MavenArtifact implements IMavenIdentifier
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java
浏览文件 @
b316e260
...
...
@@ -90,6 +90,7 @@ public class MavenArtifactVersion implements IMavenIdentifier {
loadPOM
(
monitor
);
}
@NotNull
public
MavenArtifact
getArtifact
()
{
return
artifact
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java
浏览文件 @
b316e260
...
...
@@ -17,13 +17,16 @@
*/
package
org.jkiss.dbeaver.ui.dialogs.driver
;
import
org.eclipse.core.runtime.IProgressMonitor
;
import
org.eclipse.core.runtime.IStatus
;
import
org.eclipse.jface.dialogs.ErrorDialog
;
import
org.eclipse.jface.dialogs.IDialogConstants
;
import
org.eclipse.jface.operation.IRunnableWithProgress
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.
events.DisposeEvent
;
import
org.eclipse.swt.events.
DisposeListener
;
import
org.eclipse.swt.
custom.TreeEditor
;
import
org.eclipse.swt.events.
*
;
import
org.eclipse.swt.graphics.Font
;
import
org.eclipse.swt.graphics.Point
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.widgets.*
;
import
org.jkiss.dbeaver.model.connection.DBPDriverDependencies
;
...
...
@@ -33,6 +36,7 @@ import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.registry.driver.DriverDependencies
;
import
org.jkiss.dbeaver.registry.driver.DriverDescriptor
;
import
org.jkiss.dbeaver.runtime.DefaultProgressMonitor
;
import
org.jkiss.dbeaver.runtime.RunnableContextDelegate
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.UIUtils
;
...
...
@@ -42,6 +46,7 @@ import org.jkiss.utils.CommonUtils;
import
java.io.File
;
import
java.io.IOException
;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -49,6 +54,7 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
private
Tree
filesTree
;
private
Font
boldFont
;
private
TreeEditor
treeEditor
;
DriverDownloadAutoPage
()
{
super
(
"Automatic download"
,
"Download driver files"
,
null
);
...
...
@@ -81,6 +87,27 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
UIUtils
.
createTreeColumn
(
filesTree
,
SWT
.
LEFT
,
"File"
);
UIUtils
.
createTreeColumn
(
filesTree
,
SWT
.
LEFT
,
"Version"
);
UIUtils
.
createTreeColumn
(
filesTree
,
SWT
.
LEFT
,
"Description"
);
treeEditor
=
new
TreeEditor
(
filesTree
);
treeEditor
.
horizontalAlignment
=
SWT
.
RIGHT
;
treeEditor
.
verticalAlignment
=
SWT
.
CENTER
;
treeEditor
.
grabHorizontal
=
true
;
treeEditor
.
minimumWidth
=
50
;
filesTree
.
addMouseListener
(
new
MouseAdapter
()
{
@Override
public
void
mouseUp
(
MouseEvent
e
)
{
TreeItem
item
=
filesTree
.
getItem
(
new
Point
(
e
.
x
,
e
.
y
));
if
(
item
!=
null
)
{
if
(
UIUtils
.
getColumnAtPos
(
item
,
e
.
x
,
e
.
y
)
==
1
)
{
showVersionEditor
(
item
);
return
;
}
}
disposeOldEditor
();
}
});
}
if
(!
wizard
.
isForceDownload
())
{
...
...
@@ -102,6 +129,96 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
setControl
(
composite
);
}
private
void
disposeOldEditor
()
{
if
(
treeEditor
.
getEditor
()
!=
null
)
{
treeEditor
.
getEditor
().
dispose
();
}
Control
oldEditor
=
treeEditor
.
getEditor
();
if
(
oldEditor
!=
null
)
oldEditor
.
dispose
();
}
private
void
showVersionEditor
(
final
TreeItem
item
)
{
disposeOldEditor
();
final
DBPDriverDependencies
.
DependencyNode
dependencyNode
=
(
DBPDriverDependencies
.
DependencyNode
)
item
.
getData
();
if
(
dependencyNode
==
null
||
dependencyNode
.
library
==
null
||
!
dependencyNode
.
library
.
isDownloadable
())
{
return
;
}
final
List
<
String
>
allVersions
=
new
ArrayList
<>();
try
{
getContainer
().
run
(
true
,
true
,
new
IRunnableWithProgress
()
{
@Override
public
void
run
(
IProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
try
{
allVersions
.
addAll
(
dependencyNode
.
library
.
getAvailableVersions
(
new
DefaultProgressMonitor
(
monitor
)));
}
catch
(
IOException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
}
});
}
catch
(
InvocationTargetException
e
)
{
UIUtils
.
showErrorDialog
(
getShell
(),
"Versions"
,
"Error reading versions"
,
e
.
getTargetException
());
return
;
}
catch
(
InterruptedException
e
)
{
return
;
}
final
String
currentVersion
=
dependencyNode
.
library
.
getVersion
();
if
(
currentVersion
!=
null
&&
!
allVersions
.
contains
(
currentVersion
))
{
allVersions
.
add
(
currentVersion
);
}
final
Combo
editor
=
new
Combo
(
filesTree
,
SWT
.
DROP_DOWN
|
SWT
.
READ_ONLY
);
int
versionIndex
=
-
1
;
for
(
int
i
=
0
;
i
<
allVersions
.
size
();
i
++)
{
String
version
=
allVersions
.
get
(
i
);
editor
.
add
(
version
);
if
(
version
.
equals
(
currentVersion
))
{
versionIndex
=
i
;
}
}
if
(
versionIndex
>=
0
)
{
editor
.
select
(
versionIndex
);
}
editor
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
String
newVersion
=
editor
.
getItem
(
editor
.
getSelectionIndex
());
disposeOldEditor
();
setLibraryVersion
(
dependencyNode
.
library
,
newVersion
);
}
});
treeEditor
.
setEditor
(
editor
,
item
,
1
);
editor
.
setListVisible
(
true
);
}
private
boolean
setLibraryVersion
(
final
DBPDriverLibrary
library
,
final
String
version
)
{
String
curVersion
=
library
.
getVersion
();
if
(
CommonUtils
.
equalObjects
(
curVersion
,
version
))
{
return
false
;
}
try
{
getContainer
().
run
(
true
,
true
,
new
IRunnableWithProgress
()
{
@Override
public
void
run
(
IProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
try
{
library
.
setVersion
(
new
DefaultProgressMonitor
(
monitor
),
version
);
}
catch
(
IOException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
}
});
resolveLibraries
();
return
true
;
}
catch
(
InvocationTargetException
e
)
{
UIUtils
.
showErrorDialog
(
getShell
(),
"Version change"
,
"Error changing library version"
,
e
.
getTargetException
());
}
catch
(
InterruptedException
e
)
{
// ignore
}
return
false
;
}
@Override
void
resolveLibraries
()
{
final
DriverDependencies
dependencies
=
getWizard
().
getDependencies
();
...
...
@@ -126,10 +243,12 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
return
;
}
filesTree
.
removeAll
();
int
totalItems
=
1
;
for
(
DBPDriverDependencies
.
DependencyNode
node
:
dependencies
.
getLibraryMap
())
{
DBPDriverLibrary
library
=
node
.
library
;
TreeItem
item
=
new
TreeItem
(
filesTree
,
SWT
.
NONE
);
item
.
setData
(
node
);
item
.
setImage
(
DBeaverIcons
.
getImage
(
library
.
getIcon
()));
item
.
setText
(
0
,
library
.
getDisplayName
());
item
.
setText
(
1
,
CommonUtils
.
notEmpty
(
library
.
getVersion
()));
...
...
@@ -169,6 +288,7 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
if
(
dependencies
!=
null
&&
!
dependencies
.
isEmpty
())
{
for
(
DBPDriverDependencies
.
DependencyNode
dep
:
dependencies
)
{
TreeItem
item
=
new
TreeItem
(
parent
,
SWT
.
NONE
);
item
.
setData
(
dep
);
item
.
setImage
(
DBeaverIcons
.
getImage
(
dep
.
library
.
getIcon
()));
item
.
setText
(
0
,
dep
.
library
.
getDisplayName
());
item
.
setText
(
1
,
CommonUtils
.
notEmpty
(
dep
.
library
.
getVersion
()));
...
...
plugins/org.jkiss.dbeaver.ext.generic/plugin.xml
浏览文件 @
b316e260
...
...
@@ -290,11 +290,13 @@
<parameter
name=
"script-delimiter"
value=
"go"
/>
<parameter
name=
"supports-multiple-results"
value=
"true"
/>
<!--
<fileSource url="http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774"
name="Microsoft JDBC Drivers"
instruction=".">
<file name="sqljdbc41.jar" description="JDBC driver"/>
</fileSource>
-->
<file
type=
"jar"
path=
"repo:/drivers/mssql/sqljdbc4.jar"
/>
<file
type=
"lib"
os=
"win32"
arch=
"x86"
path=
"repo:/drivers/mssql/auth/x86/sqljdbc_auth.dll"
/>
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriverLibrary.java
浏览文件 @
b316e260
...
...
@@ -97,6 +97,12 @@ public interface DBPDriverLibrary
void
downloadLibraryFile
(
@NotNull
DBRProgressMonitor
monitor
,
boolean
forceUpdate
,
String
taskName
)
throws
IOException
,
InterruptedException
;
@NotNull
Collection
<
String
>
getAvailableVersions
(
DBRProgressMonitor
monitor
)
throws
IOException
;
void
setVersion
(
DBRProgressMonitor
monitor
,
@NotNull
String
version
)
throws
IOException
;
void
resetVersion
();
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录