e6112c26c7
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/eclipse.git#c21212b002b4e7a2ff68dde825f2e885df0dd979
70 lines
3.5 KiB
Diff
70 lines
3.5 KiB
Diff
From a23545ef5b4cbb94ff048fda2839ba08c3593d50 Mon Sep 17 00:00:00 2001
|
|
From: Mat Booth <mat.booth@redhat.com>
|
|
Date: Thu, 3 May 2018 15:58:49 +0100
|
|
Subject: [PATCH] Bug 534326 - Awkward p2 UI when many droplets are installed
|
|
Filter out software site locations where we know that they are p2 droplets in
|
|
places we show the list to the user. Change-Id:
|
|
I12364223850862783cb7cffd32fb7428fbf6b270 Signed-off-by: Mat Booth
|
|
<mat.booth@redhat.com>
|
|
|
|
---
|
|
.../p2/ui/dialogs/RepositorySelectionGroup.java | 13 +++++++++++++
|
|
.../equinox/p2/ui/RepositoryManipulationPage.java | 15 ++++++++++++++-
|
|
2 files changed, 27 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java
|
|
index d07be5d43..c666f8fdc 100644
|
|
--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java
|
|
+++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java
|
|
@@ -303,6 +303,19 @@ public class RepositorySelectionGroup {
|
|
void fillRepoCombo(final String selection) {
|
|
RepositoryTracker tracker = ui.getRepositoryTracker();
|
|
URI[] sites = tracker.getKnownRepositories(ui.getSession());
|
|
+ // Filter out sites that are actually installed p2 droplets
|
|
+ String fragments = System.getProperty("p2.fragments"); //$NON-NLS-1$
|
|
+ ArrayList<URI> filteredSites = new ArrayList<>(Arrays.asList(sites));
|
|
+ if (fragments != null) {
|
|
+ for (String root : fragments.split(",")) { //$NON-NLS-1$
|
|
+ for (URI uri : sites) {
|
|
+ if (uri.getPath() != null && uri.getPath().startsWith(root)) {
|
|
+ filteredSites.remove(uri);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ sites = filteredSites.toArray(new URI[0]);
|
|
boolean hasLocalSites = getLocalSites().length > 0;
|
|
final String[] items;
|
|
if (hasLocalSites) {
|
|
diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java
|
|
index 78fb5398e..b8e724b66 100644
|
|
--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java
|
|
+++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java
|
|
@@ -133,9 +133,22 @@ public class RepositoryManipulationPage extends PreferencePage implements IWorkb
|
|
if (cachedElements == null) {
|
|
Object[] children = super.fetchChildren(o, monitor);
|
|
cachedElements = new Hashtable<>(children.length);
|
|
+ String fragments = System.getProperty("p2.fragments"); //$NON-NLS-1$
|
|
for (Object element : children) {
|
|
if (element instanceof MetadataRepositoryElement) {
|
|
- put((MetadataRepositoryElement) element);
|
|
+ // Filter out locations that are actually installed p2 droplets
|
|
+ if (fragments != null) {
|
|
+ boolean isDroplet = false;
|
|
+ for (String root : fragments.split(",")) { //$NON-NLS-1$
|
|
+ URI childLoc = ((MetadataRepositoryElement) element).getLocation();
|
|
+ if (childLoc.getPath() != null && childLoc.getPath().startsWith(root)) {
|
|
+ isDroplet = true;
|
|
+ }
|
|
+ }
|
|
+ if (!isDroplet) {
|
|
+ put((MetadataRepositoryElement) element);
|
|
+ }
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
--
|
|
2.21.1
|
|
|