diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverClassLoader.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverClassLoader.java index 387fda8026ef29f7dc024cc69cf3cbbe9d01b966..cacb477bfff1d7e4d7de0da403e5029f98b0fd94 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverClassLoader.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverClassLoader.java @@ -18,7 +18,7 @@ package org.jkiss.dbeaver.registry; -import org.jkiss.dbeaver.model.DBPDriverFile; +import org.jkiss.dbeaver.model.DBPDriverLibrary; import org.jkiss.utils.CommonUtils; import java.io.File; @@ -43,8 +43,8 @@ public class DriverClassLoader extends URLClassLoader protected String findLibrary(String libname) { String nativeName = System.mapLibraryName(libname); - for (DriverFileDescriptor driverFile : driver.getDriverFiles()) { - if (driverFile.getType() == DBPDriverFile.FileType.lib && driverFile.matchesCurrentPlatform()) { + for (DriverLibraryDescriptor driverFile : driver.getDriverLibraries()) { + if (driverFile.getType() == DBPDriverLibrary.FileType.lib && driverFile.matchesCurrentPlatform()) { final File localFile = driverFile.getLocalFile(); if (localFile != null && localFile.exists()) { final String fileName = localFile.getName(); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverDescriptor.java index b6137b2df8bb7fb86377ec932c57e46aeed9c02b..1d169700b5039c7d140cb751d9dc4200679801d2 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverDescriptor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverDescriptor.java @@ -102,8 +102,8 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver private boolean disabled; private final List clientHomeIds = new ArrayList(); private final List fileSources = new ArrayList(); - private final List files = new ArrayList(); - private final List origFiles = new ArrayList(); + private final List files = new ArrayList(); + private final List origFiles = new ArrayList(); private final List pathList = new ArrayList(); private final List connectionPropertyDescriptors = new ArrayList(); private final List supportedSystems = new ArrayList(); @@ -170,7 +170,7 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver this.isLoaded = false; for (IConfigurationElement lib : config.getChildren(RegistryConstants.TAG_FILE)) { - this.files.add(new DriverFileDescriptor(this, lib)); + this.files.add(new DriverLibraryDescriptor(this, lib)); } this.origFiles.addAll(this.files); @@ -430,7 +430,7 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver private boolean hasValidLibraries() { - for (DriverFileDescriptor lib : files) { + for (DriverLibraryDescriptor lib : files) { File file = lib.getLocalFile(); if (file != null && file.exists()) { return true; @@ -635,14 +635,14 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver @NotNull @Override - public Collection getDriverFiles() + public Collection getDriverLibraries() { return files; } - public DriverFileDescriptor getDriverFile(String path) + public DriverLibraryDescriptor getDriverFile(String path) { - for (DriverFileDescriptor lib : files) { + for (DriverLibraryDescriptor lib : files) { if (lib.getPath().equals(path)) { return lib; } @@ -650,19 +650,19 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver return null; } - public DriverFileDescriptor addDriverFile(String path, DBPDriverFile.FileType fileType) + public DriverLibraryDescriptor addDriverFile(String path, DBPDriverLibrary.FileType fileType) { - for (DriverFileDescriptor lib : files) { + for (DriverLibraryDescriptor lib : files) { if (lib.getPath().equals(path)) { return lib; } } - DriverFileDescriptor lib = new DriverFileDescriptor(this, fileType, path); + DriverLibraryDescriptor lib = new DriverLibraryDescriptor(this, fileType, path); addDriverFile(lib); return lib; } - public boolean addDriverFile(DriverFileDescriptor descriptor) + public boolean addDriverFile(DriverLibraryDescriptor descriptor) { resetDriverInstance(); if (!files.contains(descriptor)) { @@ -672,7 +672,7 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver return false; } - public boolean removeDriverFile(DriverFileDescriptor lib) + public boolean removeDriverFile(DriverLibraryDescriptor lib) { resetDriverInstance(); if (!lib.isCustom()) { @@ -798,8 +798,8 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver public String getLicense() { - for (DriverFileDescriptor file : files) { - if (file.getType() == DBPDriverFile.FileType.license) { + for (DriverLibraryDescriptor file : files) { + if (file.getType() == DBPDriverLibrary.FileType.license) { final File licenseFile = file.getLocalFile(); if (licenseFile != null && licenseFile.exists()) { try { @@ -875,8 +875,8 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver List libraryURLs = new ArrayList(); // Load libraries - for (DriverFileDescriptor file : files) { - if (file.isDisabled() || file.getType() != DBPDriverFile.FileType.jar) { + for (DriverLibraryDescriptor file : files) { + if (file.isDisabled() || file.getType() != DBPDriverLibrary.FileType.jar) { continue; } File localFile = file.getLocalFile(); @@ -902,7 +902,7 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver @Override public void validateFilesPresence(final DBRRunnableContext runnableContext) { - for (DriverFileDescriptor file : files) { + for (DriverLibraryDescriptor file : files) { if (file.isCustom()) { File localFile = file.getLocalFile(); if (localFile != null && localFile.exists()) { @@ -912,8 +912,8 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver } } - final List downloadCandidates = new ArrayList(); - for (DriverFileDescriptor file : files) { + final List downloadCandidates = new ArrayList(); + for (DriverLibraryDescriptor file : files) { if (file.isDisabled() || !file.isDownloadable()) { // Nothing we can do about it continue; @@ -938,16 +938,11 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver } } - @Override - public void updateFiles(DBRRunnableContext runnableContext) { - - } - public boolean acceptDriverLicenses(DBRRunnableContext runnableContext) { // User must accept all licenses before actual drivers download - for (final DriverFileDescriptor file : getDriverFiles()) { - if (file.getType() == DBPDriverFile.FileType.license) { + for (final DriverLibraryDescriptor file : getDriverLibraries()) { + if (file.getType() == DBPDriverLibrary.FileType.license) { final File libraryFile = file.getLocalFile(); if (libraryFile == null || !libraryFile.exists()) { try { @@ -1019,7 +1014,7 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver return origSampleURL; } - public List getOrigFiles() + public List getOrigFiles() { return origFiles; } @@ -1059,7 +1054,7 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver } // Libraries - for (DriverFileDescriptor lib : this.getDriverFiles()) { + for (DriverLibraryDescriptor lib : this.getDriverLibraries()) { if ((export && !lib.isDisabled()) || lib.isCustom() || lib.isDisabled()) { xml.startElement(RegistryConstants.TAG_LIBRARY); xml.addAttribute(RegistryConstants.ATTR_TYPE, lib.getType().name()); @@ -1231,20 +1226,20 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver log.warn("File outside of driver"); return; } - DBPDriverFile.FileType type; + DBPDriverLibrary.FileType type; String typeStr = atts.getValue(RegistryConstants.ATTR_TYPE); if (CommonUtils.isEmpty(typeStr)) { - type = DBPDriverFile.FileType.jar; + type = DBPDriverLibrary.FileType.jar; } else { try { - type = DBPDriverFile.FileType.valueOf(typeStr); + type = DBPDriverLibrary.FileType.valueOf(typeStr); } catch (IllegalArgumentException e) { log.warn(e); - type = DBPDriverFile.FileType.jar; + type = DBPDriverLibrary.FileType.jar; } } String path = atts.getValue(RegistryConstants.ATTR_PATH); - DriverFileDescriptor lib = curDriver.getDriverFile(path); + DriverLibraryDescriptor lib = curDriver.getDriverFile(path); String disabledAttr = atts.getValue(RegistryConstants.ATTR_DISABLED); if (lib != null && CommonUtils.getBoolean(disabledAttr)) { lib.setDisabled(true); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java index ae3a9f0ffde33f35dc0d8ff4b7f9e7a4a32fa9e5..68bd9f6eb54af3fca327de93bddbdac353b85d61 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java @@ -19,7 +19,6 @@ package org.jkiss.dbeaver.registry; import org.eclipse.core.runtime.IConfigurationElement; import org.jkiss.dbeaver.Log; -import org.jkiss.dbeaver.model.DBPDriverFile; import org.jkiss.utils.CommonUtils; import java.util.ArrayList; @@ -28,7 +27,7 @@ import java.util.List; /** * DriverFileSource */ -public class DriverFileSource implements DBPDriverFile.FileSource +public class DriverFileSource { static final Log log = Log.getLog(DriverFileSource.class); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverLibraryDescriptor.java similarity index 93% rename from plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileDescriptor.java rename to plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverLibraryDescriptor.java index 319864baad5166ff97ed14f5ef3c97669163b656..5b6e90541a21e7da56f6080471c377c5b9acf1f2 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileDescriptor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverLibraryDescriptor.java @@ -23,7 +23,7 @@ import org.eclipse.core.runtime.Platform; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.core.DBeaverCore; -import org.jkiss.dbeaver.model.DBPDriverFile; +import org.jkiss.dbeaver.model.DBPDriverLibrary; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.OSDescriptor; import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; @@ -38,17 +38,19 @@ import java.io.*; import java.net.URL; import java.net.URLConnection; import java.text.NumberFormat; +import java.util.Collection; /** - * DriverFileDescriptor + * DriverLibraryDescriptor */ -public class DriverFileDescriptor implements DBPDriverFile +public class DriverLibraryDescriptor implements DBPDriverLibrary { - static final Log log = Log.getLog(DriverFileDescriptor.class); + static final Log log = Log.getLog(DriverLibraryDescriptor.class); public static final String FILE_SOURCE_MAVEN = "maven:/"; public static final String FILE_SOURCE_REPO = "repo:/"; public static final String FILE_SOURCE_PLATFORM = "platform:/"; + public static final String FILE_SOURCE_LOCAL = "file:/"; private final DriverDescriptor driver; private final FileType type; @@ -59,7 +61,7 @@ public class DriverFileDescriptor implements DBPDriverFile private boolean custom; private boolean disabled; - public DriverFileDescriptor(DriverDescriptor driver, FileType type, String path) + public DriverLibraryDescriptor(DriverDescriptor driver, FileType type, String path) { this.driver = driver; this.type = type; @@ -68,7 +70,7 @@ public class DriverFileDescriptor implements DBPDriverFile this.custom = true; } - DriverFileDescriptor(DriverDescriptor driver, IConfigurationElement config) + DriverLibraryDescriptor(DriverDescriptor driver, IConfigurationElement config) { this.driver = driver; this.type = FileType.valueOf(config.getAttribute(RegistryConstants.ATTR_TYPE)); @@ -94,23 +96,12 @@ public class DriverFileDescriptor implements DBPDriverFile return type; } - @Override - public OSDescriptor getSystem() - { - return system; - } - @Override public String getPath() { return path; } - @Override - public String getFileType() { - return null; - } - @Override public String getDescription() { @@ -145,7 +136,7 @@ public class DriverFileDescriptor implements DBPDriverFile return isRepositoryArtifact() || isMavenArtifact(); } - public boolean isRepositoryArtifact() { + private boolean isRepositoryArtifact() { return path.startsWith(FILE_SOURCE_REPO); } @@ -289,6 +280,12 @@ public class DriverFileDescriptor implements DBPDriverFile return system == null || system.matches(DBeaverCore.getInstance().getLocalSystem()); } + @Nullable + @Override + public Collection getDependencies() { + return null; + } + /* private String getMavenArtifactFileName() { String artifactName = path.substring(FILE_SOURCE_MAVEN.length()); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactDependency.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactDependency.java new file mode 100644 index 0000000000000000000000000000000000000000..0d189583346e9acb53929c258436573a045885a5 --- /dev/null +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactDependency.java @@ -0,0 +1,52 @@ +/* + * 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.registry.maven; + +/** + * Maven artifact license references + */ +public class MavenArtifactDependency +{ + private MavenArtifactReference artifactReference; + private String type; + private boolean optional; + + public MavenArtifactDependency(MavenArtifactReference artifactReference, String type, boolean optional) { + this.artifactReference = artifactReference; + this.type = type; + this.optional = optional; + } + + public MavenArtifactReference getArtifactReference() { + return artifactReference; + } + + public String getType() { + return type; + } + + public boolean isOptional() { + return optional; + } + + @Override + public String toString() { + return artifactReference.toString() + ";type=" + type + "; optional=" + optional; + } + +} diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactLicense.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactLicense.java new file mode 100644 index 0000000000000000000000000000000000000000..5a47d3ef8a9972fd22fc1723ed19eab88f2e2716 --- /dev/null +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactLicense.java @@ -0,0 +1,46 @@ +/* + * 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.registry.maven; + +/** + * Maven artifact license references + */ +public class MavenArtifactLicense +{ + private String name; + private String url; + + public MavenArtifactLicense(String name, String url) { + this.name = name; + this.url = url; + } + + public String getName() { + return name; + } + + public String getUrl() { + return url; + } + + @Override + public String toString() { + return name; + } + +} diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java index 6ea803cba0a07a355c08eaa4705e22ffdcb3fe34..da55100afe0e8d08734fa0431bec6695fb08fff9 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifactVersion.java @@ -26,7 +26,9 @@ import org.xml.sax.Attributes; import java.io.IOException; import java.io.InputStream; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Maven artifact version descriptor (POM). @@ -40,8 +42,8 @@ public class MavenArtifactVersion private String version; private String description; private String url; - private List licenses; - private List dependencies; + private List licenses; + private List dependencies; MavenArtifactVersion(MavenLocalVersion localVersion) throws IOException { this.localVersion = localVersion; @@ -73,44 +75,95 @@ public class MavenArtifactVersion return url; } - public List getLicenses() { + public List getLicenses() { return licenses; } - public List getDependencies() { + public List getDependencies() { return dependencies; } + @Override + public String toString() { + return localVersion.toString(); + } + + private enum ParserState { + ROOT, + LICENSE, + DEPENDENCIES, + DEPENDENCY + } + private void loadPOM() throws IOException { String pomURL = localVersion.getArtifact().getFileURL(localVersion.getVersion(), MavenArtifact.FILE_POM); InputStream mdStream = RuntimeUtils.openConnectionStream(pomURL); try { SAXReader reader = new SAXReader(mdStream); reader.parse(new SAXListener() { - private boolean inRoot = true; + private ParserState state = ParserState.ROOT; private String lastTag; + private Map attributes = new HashMap(); + @Override public void saxStartElement(SAXReader reader, String namespaceURI, String localName, Attributes atts) throws XMLException { lastTag = localName; + if ("license".equals(localName)) { + state = ParserState.LICENSE; + } else if ("dependencies".equals(localName)) { + state = ParserState.DEPENDENCIES; + } else if ("dependency".equals(localName) && state == ParserState.DEPENDENCIES) { + state = ParserState.DEPENDENCY; + } } + @Override public void saxText(SAXReader reader, String data) throws XMLException { - if (inRoot) { - if ("name".equals(lastTag)) { - name = data; - } else if ("version".equals(lastTag)) { - version = data; - } else if ("description".equals(lastTag)) { - description = data; - } else if ("url".equals(lastTag)) { - url = data; - } + switch (state) { + case ROOT: + if ("name".equals(lastTag)) { + name = data; + } else if ("version".equals(lastTag)) { + version = data; + } else if ("description".equals(lastTag)) { + description = data; + } else if ("url".equals(lastTag)) { + url = data; + } + break; + case LICENSE: + case DEPENDENCY: + attributes.put(lastTag, data); + break; } } @Override public void saxEndElement(SAXReader reader, String namespaceURI, String localName) throws XMLException { lastTag = null; + if ("license".equals(localName) && state == ParserState.LICENSE) { + state = ParserState.ROOT; + licenses.add(new MavenArtifactLicense( + attributes.get("name"), + attributes.get("url") + )); + attributes.clear(); + } else if ("dependencies".equals(localName) && state == ParserState.DEPENDENCIES) { + state = ParserState.ROOT; + dependencies.add(new MavenArtifactDependency( + new MavenArtifactReference( + attributes.get("groupId"), + attributes.get("artifactId"), + attributes.get("version") + ), + attributes.get("type"), + Boolean.valueOf(attributes.get("optional")) + )); + attributes.clear(); + } else if ("dependency".equals(localName) && state == ParserState.DEPENDENCY) { + state = ParserState.DEPENDENCIES; + attributes.clear(); + } } }); } catch (XMLException e) { @@ -120,9 +173,4 @@ public class MavenArtifactVersion } } - @Override - public String toString() { - return localVersion.toString(); - } - } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenLocalVersion.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenLocalVersion.java index 7b31ac3537198bfc304d3c0ebd33dce040edabbf..ed3bf37d4049e99aec74880ee76c4010cf0b8c40 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenLocalVersion.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenLocalVersion.java @@ -34,7 +34,6 @@ import java.util.Date; public class MavenLocalVersion { static final Log log = Log.getLog(MavenLocalVersion.class); - private static final java.lang.String FILE_PROTOCOL = "file:/"; private MavenArtifact artifact; private String version; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectExportWizard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectExportWizard.java index ed8fca83b2f42c3e63285920f32aad3ed63b1543..1ee53cd14f3ef00632dac54aeb93a1c924fbd369 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectExportWizard.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectExportWizard.java @@ -182,7 +182,7 @@ public class ProjectExportWizard extends Wizard implements IExportWizard { Set libFiles = new HashSet(); Map libPathMap = new HashMap(); for (DriverDescriptor driver : exportData.usedDrivers) { - for (DriverFileDescriptor fileDescriptor : driver.getDriverFiles()) { + for (DriverLibraryDescriptor fileDescriptor : driver.getDriverLibraries()) { final File libraryFile = fileDescriptor.getLocalFile(); if (libraryFile != null && !fileDescriptor.isDisabled() && libraryFile.exists()) { libFiles.add(libraryFile); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectImportWizard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectImportWizard.java index 38185bb92a4dd9544018b08069599a9f0b089d07..7402d5a56d22362107e0d784fe4dce0ba0277adf 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectImportWizard.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/project/ProjectImportWizard.java @@ -29,7 +29,7 @@ import org.eclipse.ui.IWorkbench; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.core.CoreMessages; import org.jkiss.dbeaver.core.DBeaverCore; -import org.jkiss.dbeaver.model.DBPDriverFile; +import org.jkiss.dbeaver.model.DBPDriverLibrary; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress; import org.jkiss.dbeaver.registry.*; @@ -270,7 +270,7 @@ public class ProjectImportWizard extends Wizard implements IImportWizard { } // Add libraries (only for managable drivers with empty library list) - if (CommonUtils.isEmpty(driver.getDriverFiles())) { + if (CommonUtils.isEmpty(driver.getDriverLibraries())) { List libraryList = new ArrayList(); for (Element libElement : XMLUtils.getChildElementList(driverElement, RegistryConstants.TAG_FILE)) { libraryList.add(libElement.getAttribute(RegistryConstants.ATTR_PATH)); @@ -280,7 +280,7 @@ public class ProjectImportWizard extends Wizard implements IImportWizard { File libFile = new File(libPath); if (libFile.exists()) { // Just use path as-is (may be it is local re-import or local environments equal to export environment) - driver.addDriverFile(libPath, DBPDriverFile.FileType.jar); + driver.addDriverFile(libPath, DBPDriverLibrary.FileType.jar); } else { // Get driver library from archive String archiveLibEntry = libMap.get(libPath); @@ -312,7 +312,7 @@ public class ProjectImportWizard extends Wizard implements IImportWizard { while (relativePath.charAt(0) == '/' || relativePath.charAt(0) == '\\') { relativePath = relativePath.substring(1); } - driver.addDriverFile(relativePath, DBPDriverFile.FileType.jar); + driver.addDriverFile(relativePath, DBPDriverLibrary.FileType.jar); } } } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java index b06f26165f09de304b6d7f6a722a6333de8b73c3..1670d855c6f3fcadbfa6aa8799c946d913cf3fc9 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadAutoPage.java @@ -21,24 +21,17 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; -import org.jkiss.dbeaver.core.DBeaverUI; -import org.jkiss.dbeaver.model.DBPDriverFile; +import org.jkiss.dbeaver.model.DBPDriverLibrary; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRRunnableContext; import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress; import org.jkiss.dbeaver.registry.DriverDescriptor; -import org.jkiss.dbeaver.registry.DriverFileDescriptor; +import org.jkiss.dbeaver.registry.DriverLibraryDescriptor; import org.jkiss.dbeaver.runtime.RunnableContextDelegate; -import org.jkiss.dbeaver.runtime.RuntimeUtils; import org.jkiss.dbeaver.ui.UIUtils; -import org.jkiss.dbeaver.ui.preferences.PrefPageDrivers; import org.jkiss.dbeaver.utils.GeneralUtils; -import org.jkiss.utils.CommonUtils; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -75,7 +68,7 @@ class DriverDownloadAutoPage extends DriverDownloadPage { filesTable.setHeaderVisible(true); filesTable.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); UIUtils.createTableColumn(filesTable, SWT.LEFT, "File"); - for (DriverFileDescriptor file : wizard.getFiles()) { + for (DriverLibraryDescriptor file : wizard.getFiles()) { new TableItem(filesTable, SWT.NONE).setText(file.getDisplayName()); } UIUtils.packColumns(filesTable, true); @@ -97,14 +90,14 @@ class DriverDownloadAutoPage extends DriverDownloadPage { downloadLibraryFiles(new RunnableContextDelegate(getContainer()), getWizard().getFiles()); } - private void downloadLibraryFiles(DBRRunnableContext runnableContext, final List files) + private void downloadLibraryFiles(DBRRunnableContext runnableContext, final List files) { if (!getWizard().getDriver().acceptDriverLicenses(runnableContext)) { return; } for (int i = 0, filesSize = files.size(); i < filesSize; ) { - DriverFileDescriptor lib = files.get(i); + DriverLibraryDescriptor lib = files.get(i); int result = downloadLibraryFile(runnableContext, lib); switch (result) { case IDialogConstants.CANCEL_ID: @@ -120,7 +113,7 @@ class DriverDownloadAutoPage extends DriverDownloadPage { } } - private int downloadLibraryFile(DBRRunnableContext runnableContext, final DriverFileDescriptor file) + private int downloadLibraryFile(DBRRunnableContext runnableContext, final DriverLibraryDescriptor file) { try { runnableContext.run(true, true, new DBRRunnableWithProgress() { @@ -138,7 +131,7 @@ class DriverDownloadAutoPage extends DriverDownloadPage { // User just canceled download return IDialogConstants.CANCEL_ID; } catch (InvocationTargetException e) { - if (file.getType() == DBPDriverFile.FileType.license) { + if (file.getType() == DBPDriverLibrary.FileType.license) { return IDialogConstants.OK_ID; } DownloadRetry retryConfirm = new DownloadRetry(file, e.getTargetException()); @@ -148,11 +141,11 @@ class DriverDownloadAutoPage extends DriverDownloadPage { } private class DownloadRetry implements Runnable { - private final DriverFileDescriptor file; + private final DriverLibraryDescriptor file; private final Throwable error; private int result; - public DownloadRetry(DriverFileDescriptor file, Throwable error) + public DownloadRetry(DriverLibraryDescriptor file, Throwable error) { this.file = file; this.error = error; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadDialog.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadDialog.java index 090cc3e8de354921372af1a8a7e6a2b0aa47b64b..311b5137f54e4d3d955e26ea382d19a445e78acf 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadDialog.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadDialog.java @@ -25,7 +25,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.registry.DriverDescriptor; -import org.jkiss.dbeaver.registry.DriverFileDescriptor; +import org.jkiss.dbeaver.registry.DriverLibraryDescriptor; import org.jkiss.dbeaver.ui.DBeaverIcons; import org.jkiss.dbeaver.ui.UIIcon; import org.jkiss.dbeaver.ui.UIUtils; @@ -41,7 +41,7 @@ public class DriverDownloadDialog extends WizardDialog private boolean doDownload = false; - DriverDownloadDialog(Shell shell, DriverDescriptor driver, List files, boolean updateVersion, boolean forceDownload) + DriverDownloadDialog(Shell shell, DriverDescriptor driver, List files, boolean updateVersion, boolean forceDownload) { super(shell, new DriverDownloadWizard(driver, files, updateVersion, forceDownload)); getWizard().init(DBeaverUI.getActiveWorkbenchWindow().getWorkbench(), null); @@ -110,18 +110,18 @@ public class DriverDownloadDialog extends WizardDialog super.finishPressed(); } - public static boolean downloadDriverFiles(Shell shell, DriverDescriptor driver, List files) { + public static boolean downloadDriverFiles(Shell shell, DriverDescriptor driver, List files) { return downloadDriverFiles(shell, driver, files, false); } - public static boolean downloadDriverFiles(Shell shell, DriverDescriptor driver, List files, boolean forceDownload) { + public static boolean downloadDriverFiles(Shell shell, DriverDescriptor driver, List files, boolean forceDownload) { DriverDownloadDialog dialog = new DriverDownloadDialog(shell, driver, files, false, forceDownload); dialog.setMinimumPageSize(100, 100); dialog.open(); return dialog.doDownload; } - public static boolean updateDriverFiles(Shell shell, DriverDescriptor driver, List files, boolean forceDownload) { + public static boolean updateDriverFiles(Shell shell, DriverDescriptor driver, List files, boolean forceDownload) { DriverDownloadDialog dialog = new DriverDownloadDialog(shell, driver, files, true, forceDownload); dialog.setMinimumPageSize(100, 100); dialog.open(); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java index c1b668f2553b643170e4395fdf43b4905686a7ab..16780bde5cb069855b1853e5d58e5617bcd24183 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java @@ -24,7 +24,7 @@ import org.eclipse.ui.IExportWizard; import org.eclipse.ui.IWorkbench; import org.jkiss.code.NotNull; import org.jkiss.dbeaver.registry.DriverDescriptor; -import org.jkiss.dbeaver.registry.DriverFileDescriptor; +import org.jkiss.dbeaver.registry.DriverLibraryDescriptor; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.utils.CommonUtils; @@ -35,12 +35,12 @@ public class DriverDownloadWizard extends Wizard implements IExportWizard { private static final String DRIVER_DOWNLOAD_DIALOG_SETTINGS = "DriverDownload";//$NON-NLS-1$ private DriverDescriptor driver; - private List files; + private List files; private boolean updateVersion; private boolean forceDownload; private DriverDownloadPage downloadPage; - public DriverDownloadWizard(@NotNull DriverDescriptor driver, List files, boolean updateVersion, boolean forceDownload) { + public DriverDownloadWizard(@NotNull DriverDescriptor driver, List files, boolean updateVersion, boolean forceDownload) { this.driver = driver; this.files = files; this.updateVersion = updateVersion; @@ -54,7 +54,7 @@ public class DriverDownloadWizard extends Wizard implements IExportWizard { return driver; } - List getFiles() { + List getFiles() { return files; } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java index 95371fab472786440685b97da8ec8749d63d7e48..4eab2f3163768cadb3e75f263a275fd3bb6f1b0f 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java @@ -41,7 +41,7 @@ import org.jkiss.dbeaver.core.CoreMessages; import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.model.DBIcon; import org.jkiss.dbeaver.model.DBPDataSource; -import org.jkiss.dbeaver.model.DBPDriverFile; +import org.jkiss.dbeaver.model.DBPDriverLibrary; import org.jkiss.dbeaver.registry.*; import org.jkiss.dbeaver.runtime.RuntimeUtils; import org.jkiss.dbeaver.runtime.properties.PropertySourceCustom; @@ -102,7 +102,7 @@ public class DriverEditDialog extends HelpEnabledDialog private Text driverPortText; private PropertyTreeViewer parametersEditor; private ConnectionPropertiesControl connectionPropertiesEditor; - private List libList = new ArrayList(); + private List libList = new ArrayList(); private PropertySourceCustom driverPropertySource; private PropertySourceCustom connectionPropertySource; private ClientHomesPanel clientHomesPanel; @@ -326,7 +326,7 @@ public class DriverEditDialog extends HelpEnabledDialog @Override public void update(ViewerCell cell) { - DriverFileDescriptor lib = (DriverFileDescriptor) cell.getElement(); + DriverLibraryDescriptor lib = (DriverLibraryDescriptor) cell.getElement(); cell.setText(lib.getDisplayName()); File localFile = lib.getLocalFile(); if (localFile != null && localFile.exists()) { @@ -431,9 +431,9 @@ public class DriverEditDialog extends HelpEnabledDialog File folderFile = new File(curFolder); for (String fileName : fileNames) { libList.add( - new DriverFileDescriptor( + new DriverLibraryDescriptor( driver, - fileName.endsWith(".jar") || fileName.endsWith(".zip") ? DBPDriverFile.FileType.jar : DBPDriverFile.FileType.lib, + fileName.endsWith(".jar") || fileName.endsWith(".zip") ? DBPDriverLibrary.FileType.jar : DBPDriverLibrary.FileType.lib, new File(folderFile, fileName).getAbsolutePath())); } changeLibContent(); @@ -452,9 +452,9 @@ public class DriverEditDialog extends HelpEnabledDialog String selected = fd.open(); if (selected != null) { curFolder = fd.getFilterPath(); - libList.add(new DriverFileDescriptor( + libList.add(new DriverLibraryDescriptor( driver, - DBPDriverFile.FileType.jar, + DBPDriverLibrary.FileType.jar, selected)); changeLibContent(); } @@ -467,10 +467,10 @@ public class DriverEditDialog extends HelpEnabledDialog { EditMavenArtifactDialog fd = new EditMavenArtifactDialog(getShell(), null); if (fd.open() == IDialogConstants.OK_ID) { - libList.add(new DriverFileDescriptor( + libList.add(new DriverLibraryDescriptor( driver, - DBPDriverFile.FileType.jar, - DriverFileDescriptor.FILE_SOURCE_MAVEN + fd.getArtifact().getPath())); + DBPDriverLibrary.FileType.jar, + DriverLibraryDescriptor.FILE_SOURCE_MAVEN + fd.getArtifact().getPath())); changeLibContent(); } } @@ -498,7 +498,7 @@ public class DriverEditDialog extends HelpEnabledDialog @Override public void widgetSelected(SelectionEvent e) { - DriverFileDescriptor selectedLib = getSelectedLibrary(); + DriverLibraryDescriptor selectedLib = getSelectedLibrary(); int selIndex = libList.indexOf(selectedLib); Collections.swap(libList, selIndex, selIndex - 1); changeLibContent(); @@ -511,7 +511,7 @@ public class DriverEditDialog extends HelpEnabledDialog @Override public void widgetSelected(SelectionEvent e) { - DriverFileDescriptor selectedLib = getSelectedLibrary(); + DriverLibraryDescriptor selectedLib = getSelectedLibrary(); int selIndex = libList.indexOf(selectedLib); Collections.swap(libList, selIndex, selIndex + 1); changeLibContent(); @@ -615,10 +615,10 @@ public class DriverEditDialog extends HelpEnabledDialog createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); } - private DriverFileDescriptor getSelectedLibrary() + private DriverLibraryDescriptor getSelectedLibrary() { IStructuredSelection selection = (IStructuredSelection) libTable.getSelection(); - return selection == null || selection.isEmpty() ? null : (DriverFileDescriptor) selection.getFirstElement(); + return selection == null || selection.isEmpty() ? null : (DriverLibraryDescriptor) selection.getFirstElement(); } private void changeLibContent() @@ -630,7 +630,7 @@ public class DriverEditDialog extends HelpEnabledDialog private void changeLibSelection() { - DriverFileDescriptor selectedLib = getSelectedLibrary(); + DriverLibraryDescriptor selectedLib = getSelectedLibrary(); deleteButton.setEnabled(selectedLib != null); upButton.setEnabled(libList.indexOf(selectedLib) > 0); downButton.setEnabled(libList.indexOf(selectedLib) < libList.size() - 1); @@ -662,9 +662,9 @@ public class DriverEditDialog extends HelpEnabledDialog // anonymousCheck.setSelection(driver.isAnonymousAccess()); if (libTable != null) { - libList = new ArrayList(); - for (DriverFileDescriptor lib : driver.getDriverFiles()) { - if (lib.isDisabled() || (lib.getType() != DBPDriverFile.FileType.jar && lib.getType() != DBPDriverFile.FileType.lib) || !lib.matchesCurrentPlatform()) { + libList = new ArrayList(); + for (DriverLibraryDescriptor lib : driver.getDriverLibraries()) { + if (lib.isDisabled() || (lib.getType() != DBPDriverLibrary.FileType.jar && lib.getType() != DBPDriverLibrary.FileType.lib) || !lib.matchesCurrentPlatform()) { continue; } libList.add(lib); @@ -706,10 +706,10 @@ public class DriverEditDialog extends HelpEnabledDialog driver.setModified(true); // Set libraries - for (DriverFileDescriptor lib : CommonUtils.safeCollection(libList)) { + for (DriverLibraryDescriptor lib : CommonUtils.safeCollection(libList)) { driver.addDriverFile(lib); } - for (DriverFileDescriptor lib : CommonUtils.copyList(driver.getDriverFiles())) { + for (DriverLibraryDescriptor lib : CommonUtils.copyList(driver.getDriverLibraries())) { if (!libList.contains(lib)) { driver.removeDriverFile(lib); } @@ -781,9 +781,9 @@ public class DriverEditDialog extends HelpEnabledDialog { java.util.List libFiles = new ArrayList(); java.util.List libURLs = new ArrayList(); - for (DriverFileDescriptor lib : libList) { + for (DriverLibraryDescriptor lib : libList) { File libFile = lib.getLocalFile(); - if (libFile != null && libFile.exists() && !libFile.isDirectory() && lib.getType() == DBPDriverFile.FileType.jar) { + if (libFile != null && libFile.exists() && !libFile.isDirectory() && lib.getType() == DBPDriverLibrary.FileType.jar) { libFiles.add(libFile); try { libURLs.add(libFile.toURI().toURL()); diff --git a/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java b/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java index 208b542b49fb1c215abd363954014c81f3b0076e..bf597cc9a7c7b898630e99c24d611ab7aa5ee670 100644 --- a/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java +++ b/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java @@ -25,7 +25,7 @@ import org.eclipse.ui.IWorkbench; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.core.DBeaverCore; import org.jkiss.dbeaver.model.DBPConnectionConfiguration; -import org.jkiss.dbeaver.model.DBPDriverFile; +import org.jkiss.dbeaver.model.DBPDriverLibrary; import org.jkiss.dbeaver.registry.*; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.dialogs.SelectObjectDialog; @@ -122,7 +122,7 @@ public abstract class ConfigImportWizard extends Wizard implements IImportWizard driver.setDescription(driverInfo.getDescription()); driver.setDriverDefaultPort(driverInfo.getDefaultPort()); for (String path : driverInfo.getLibraries()) { - driver.addDriverFile(path, DBPDriverFile.FileType.jar); + driver.addDriverFile(path, DBPDriverLibrary.FileType.jar); } driver.setModified(true); genericProvider.addDriver(driver); diff --git a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java index 540854fe02e0884f2754472c764e6915caa3cfb5..318cd11916b1c684e9867b78e95181c43a76c2a7 100644 --- a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java +++ b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java @@ -79,8 +79,8 @@ public class WMIDataSourceProvider implements DBPDataSourceProvider { private void loadNativeLib(DBPDriver driver) throws DBException { - for (DBPDriverFile libFile : driver.getDriverFiles()) { - if (libFile.matchesCurrentPlatform() && libFile.getType() == DBPDriverFile.FileType.lib) { + for (DBPDriverLibrary libFile : driver.getDriverLibraries()) { + if (libFile.matchesCurrentPlatform() && libFile.getType() == DBPDriverLibrary.FileType.lib) { File localFile = libFile.getLocalFile(); if (localFile != null) { try { diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriver.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriver.java index 7265192a2a1b1bf5a2f3f2abf327a3394badc584..92e810ed5eb146d907314e0a80e9b1517f86275b 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriver.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriver.java @@ -88,17 +88,12 @@ public interface DBPDriver extends DBPObject ClassLoader getClassLoader(); @NotNull - Collection getDriverFiles(); - - @NotNull - Collection getDriverFileSources(); + Collection getDriverLibraries(); Object getDriverInstance(DBRRunnableContext runnableContext) throws DBException; void validateFilesPresence(DBRRunnableContext runnableContext); - void updateFiles(DBRRunnableContext runnableContext); - void loadDriver(DBRRunnableContext runnableContext) throws DBException; } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriverFile.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriverLibrary.java similarity index 81% rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriverFile.java rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriverLibrary.java index 5cabb0489200e70af010f3c453505cd9d8737356..65993dda13df252a9536f031ecd56a85d3ad1e67 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriverFile.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDriverLibrary.java @@ -18,15 +18,16 @@ package org.jkiss.dbeaver.model; +import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; -import org.jkiss.dbeaver.model.runtime.OSDescriptor; import java.io.File; +import java.util.Collection; /** - * DBPDriver local path + * Driver library */ -public interface DBPDriverFile +public interface DBPDriverLibrary { /** * Driver file type @@ -39,18 +40,13 @@ public interface DBPDriverFile license } - interface FileSource { - - } - + @NotNull FileType getType(); - OSDescriptor getSystem(); - + @NotNull String getPath(); - String getFileType(); - + @Nullable String getDescription(); boolean isCustom(); @@ -64,4 +60,7 @@ public interface DBPDriverFile boolean matchesCurrentPlatform(); + @Nullable + Collection getDependencies(); + }