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 b1f43fbdad2627159bd35ed277692816d3181be4..e4413cf7640bd8e056b4e31d9fa9d05a597db8bd 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 @@ -97,11 +97,21 @@ public class MavenArtifact implements IMavenIdentifier log.warn("Error parsing artifact directory", e); } } finally { + removeIgnoredVersions(); monitor.worked(1); } metadataLoaded = true; } + private void removeIgnoredVersions() { + for (Iterator iter = versions.iterator(); iter.hasNext(); ) { + String version = iter.next(); + if (MavenRegistry.getInstance().isVersionIgnored(groupId + ":" + artifactId + ":" + version)) { + iter.remove(); + } + } + } + private void parseDirectory(InputStream dirStream) throws IOException, XMLException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); IOUtils.copyStream(dirStream, baos); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRegistry.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRegistry.java index f61d3ac261424bd3b3e39a2baaf1434ede04dee0..7991154c04af46966b00e55e7472975b82d2285e 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRegistry.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/maven/MavenRegistry.java @@ -39,6 +39,7 @@ public class MavenRegistry public static final String MAVEN_LOCAL_REPO_FOLDER = "maven-local"; private static MavenRegistry instance = null; + private final Set ignoredArtifactVersions = new HashSet<>(); public synchronized static MavenRegistry getInstance() { @@ -58,6 +59,10 @@ public class MavenRegistry { } + boolean isVersionIgnored(String ref) { + return ignoredArtifactVersions.contains(ref); + } + private void init() { loadStandardRepositories(); loadCustomRepositories(); @@ -68,8 +73,12 @@ public class MavenRegistry { IConfigurationElement[] extElements = Platform.getExtensionRegistry().getConfigurationElementsFor(MavenRepository.EXTENSION_ID); for (IConfigurationElement ext : extElements) { - MavenRepository repository = new MavenRepository(ext); - repositories.add(repository); + if ("repository".equals(ext.getName())) { + MavenRepository repository = new MavenRepository(ext); + repositories.add(repository); + } else if ("ignoreArtifactVersion".equals(ext.getName())) { + ignoredArtifactVersions.add(ext.getAttribute("id")); + } } } // Create local repository diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml b/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml index d2275373446355238b8ef9583bf574e470b133f9..9f778e228c8d62c1222319e651a85667e0480c48 100644 --- a/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ext.mysql/plugin.xml @@ -371,4 +371,10 @@ + + + + + +