e7779ed
From 051d84daff808349fc3eb4d44b2f9d56f7fe89ba Mon Sep 17 00:00:00 2001
6d18346
From: Roland Grunberg <rgrunber@redhat.com>
6d18346
Date: Wed, 18 Jan 2017 15:51:40 -0500
e7779ed
Subject: [PATCH] Don't show p2 Droplet locations in the UI.
e7779ed
e7779ed
Don't show p2 Droplets in the Repository Selection Combo Box, or in the
e7779ed
Available Software Sites preferences.
6d18346
6d18346
Change-Id: I4afddffbaaeae3f33958629eebb32861087a93de
6d18346
---
e7779ed
 .../internal/p2/ui/dialogs/RepositorySelectionGroup.java  | 14 ++++++++++++++
e7779ed
 .../eclipse/equinox/p2/ui/RepositoryManipulationPage.java | 15 ++++++++++++++-
e7779ed
 2 files changed, 28 insertions(+), 1 deletion(-)
6d18346
6d18346
diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java
e7779ed
index 8d08101..59567c0 100644
6d18346
--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java
6d18346
+++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java
6d18346
@@ -16,6 +16,7 @@ import java.lang.reflect.InvocationTargetException;
6d18346
 import java.net.URI;
6d18346
 import java.net.URISyntaxException;
6d18346
 import java.util.*;
6d18346
+import java.util.List;
6d18346
 import org.eclipse.core.runtime.*;
6d18346
 import org.eclipse.equinox.internal.p2.ui.*;
6d18346
 import org.eclipse.equinox.internal.p2.ui.query.IUViewQueryContext;
0c31782
@@ -322,6 +323,19 @@ public class RepositorySelectionGroup {
6d18346
 	void fillRepoCombo(final String selection) {
6d18346
 		RepositoryTracker tracker = ui.getRepositoryTracker();
6d18346
 		URI[] sites = tracker.getKnownRepositories(ui.getSession());
6d18346
+		String fragments = System.getProperty("p2.fragments");
6d18346
+		List<URI> tmp = new ArrayList<URI>(Arrays.asList(sites));
6d18346
+		if (fragments != null) {
6d18346
+			String[] rootPaths = fragments.split(",");
6d18346
+			for (String root : rootPaths) {
6d18346
+				for (URI uri : sites) {
e7779ed
+					if (uri.getPath() != null && uri.getPath().startsWith(root)) {
6d18346
+						tmp.remove(uri);
6d18346
+					}
6d18346
+				}
6d18346
+			}
6d18346
+		}
6d18346
+		sites = tmp.toArray(new URI[0]);
6d18346
 		boolean hasLocalSites = getLocalSites().length > 0;
6d18346
 		final String[] items;
6d18346
 		if (hasLocalSites) {
e7779ed
diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java
e7779ed
index c0f2ca1..03515c7 100644
e7779ed
--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java
e7779ed
+++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java
c736234
@@ -132,9 +132,22 @@ public class RepositoryManipulationPage extends PreferencePage implements IWorkb
e7779ed
 			if (cachedElements == null) {
e7779ed
 				Object[] children = super.fetchChildren(o, monitor);
0c31782
 				cachedElements = new Hashtable<>(children.length);
e7779ed
+				String fragments = System.getProperty("p2.fragments");
e7779ed
 				for (int i = 0; i < children.length; i++) {
e7779ed
 					if (children[i] instanceof MetadataRepositoryElement) {
e7779ed
-						put((MetadataRepositoryElement) children[i]);
e7779ed
+						if (fragments != null) {
e7779ed
+							String[] rootPaths = fragments.split(",");
e7779ed
+							boolean isDroplet = false;
e7779ed
+							for (String root : rootPaths) {
e7779ed
+								URI childLoc = ((MetadataRepositoryElement)children[i]).getLocation();
e7779ed
+								if (childLoc.getPath() != null && childLoc.getPath().startsWith(root)) {
e7779ed
+									isDroplet = true;
e7779ed
+								}
e7779ed
+							}
e7779ed
+							if (!isDroplet) {
e7779ed
+								put((MetadataRepositoryElement) children[i]);
e7779ed
+							}
e7779ed
+						}
e7779ed
 					}
e7779ed
 				}
e7779ed
 			}
6d18346
-- 
6d18346
2.9.3
6d18346