diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java index f2fe6930e3622f51495e489359b84ea1aa29cbc1..8243e501e61e6e3c2a18b19e56dadf86b23e6676 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenArtifact.java @@ -183,6 +183,10 @@ public class MavenArtifact return null; } + public MavenArtifactVersion getVersion(MavenLocalVersion localVersion) { + return localVersion.getMetaData(); + } + public MavenLocalVersion makeLocalVersion(String versionStr, boolean setActive) throws IllegalArgumentException { MavenLocalVersion version = getLocalVersion(versionStr); if (version == null) { 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 70cf5450139a30f1505123e744cc3935037591f5..6ea803cba0a07a355c08eaa4705e22ffdcb3fe34 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 @@ -43,11 +43,16 @@ public class MavenArtifactVersion private List licenses; private List dependencies; - public MavenArtifactVersion(MavenLocalVersion localVersion) throws IOException { + MavenArtifactVersion(MavenLocalVersion localVersion) throws IOException { this.localVersion = localVersion; loadPOM(); } + MavenArtifactVersion(String name, String version) { + this.name = name; + this.version = version; + } + public MavenLocalVersion getLocalVersion() { return localVersion; } 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 331a78413a5c48b151e0fa7384d04bcd83b4287b..92d98b2160653b4f51a4dc3666394b9b2040a93e 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 @@ -17,7 +17,10 @@ */ package org.jkiss.dbeaver.registry.maven; +import org.jkiss.dbeaver.Log; + import java.io.File; +import java.io.IOException; import java.util.Date; /** @@ -27,10 +30,13 @@ import java.util.Date; */ public class MavenLocalVersion { + static final Log log = Log.getLog(MavenLocalVersion.class); + private MavenArtifact artifact; private String version; private String fileName; private Date updateTime; + private MavenArtifactVersion metaData; public MavenLocalVersion(MavenArtifact artifact, String version, String fileName, Date updateTime) { this.artifact = artifact; @@ -55,11 +61,6 @@ public class MavenLocalVersion return updateTime; } - @Override - public String toString() { - return artifact.toString() + ":" + version + ":" + fileName; - } - public File getCacheFile() { return new File(artifact.getRepository().getLocalCacheDir(), artifact.getGroupId() + "/" + fileName); } @@ -67,4 +68,22 @@ public class MavenLocalVersion public String getExternalURL(String fileType) { return artifact.getFileURL(version, fileType); } + + public MavenArtifactVersion getMetaData() { + if (metaData == null) { + try { + metaData = new MavenArtifactVersion(this); + } catch (IOException e) { + log.warn("Error fetching POM file", e); + metaData = new MavenArtifactVersion(artifact.getArtifactId(), version); + } + } + return metaData; + } + + @Override + public String toString() { + return artifact.toString() + ":" + version + ":" + fileName; + } + } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageAbstract.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageAbstract.java index da6bfb0433517862aa8a56b05192b5e7da774217..3f88bf4cd15461c9dda825ea8cdb972af787228b 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageAbstract.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageAbstract.java @@ -39,6 +39,7 @@ import org.jkiss.dbeaver.ui.UIUtils; /** * ConnectionPageAbstract */ + public abstract class ConnectionPageAbstract extends DialogPage implements IDataSourceConnectionEditor { protected IDataSourceConnectionEditorSite site;