bug 418662 - Get rid of compile warnings in official build -
org.eclipse.equinox.p2.ui.discovery

Change-Id: Iec3ef1ec194481d950d313a0f3ce24ce6a7fa93f
Signed-off-by: Krzysztof Daniel <kdaniel@redhat.com>
diff --git a/bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF
index 93eca1a..c89569f 100644
--- a/bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF
@@ -42,7 +42,8 @@
    org.eclipse.equinox.p2.updatechecker.app,
    org.eclipse.equinox.p2.updatesite,
    org.eclipse.equinox.p2.transport.ecf,
-   org.eclipse.equinox.p2.discovery.compatibility",
+   org.eclipse.equinox.p2.discovery.compatibility,
+   org.eclipse.equinox.p2.ui.discovery",
  org.eclipse.equinox.internal.provisional.p2.core.eventbus;
   x-friends:="org.eclipse.equinox.p2.artifact.repository,
    org.eclipse.equinox.p2.director,
diff --git a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
index 0197f71..5663eb5 100644
--- a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
@@ -23,7 +23,8 @@
    org.eclipse.equinox.p2.repository.tools,
    org.eclipse.equinox.p2.reconciler.dropins,
    org.eclipse.equinox.p2.repository,
-   org.eclipse.equinox.p2.publisher.eclipse",
+   org.eclipse.equinox.p2.publisher.eclipse,
+   org.eclipse.equinox.p2.ui.discovery",
  org.eclipse.equinox.internal.p2.metadata.expression;
   x-friends:="org.eclipse.equinox.p2.artifact.repository,
    org.eclipse.equinox.p2.directorywatcher,
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.ui.discovery/.settings/org.eclipse.jdt.core.prefs
index c65423d..2a689a7 100644
--- a/bundles/org.eclipse.equinox.p2.ui.discovery/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.equinox.p2.ui.discovery/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,3 @@
-#Wed Feb 17 14:07:15 PST 2010
 eclipse.preferences.version=1
 org.eclipse.jdt.core.builder.cleanOutputFolder=clean
 org.eclipse.jdt.core.builder.duplicateResourceTask=warning
@@ -8,6 +7,12 @@
 org.eclipse.jdt.core.circularClasspath=error
 org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
 org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
@@ -28,6 +33,7 @@
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
 org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
@@ -35,6 +41,7 @@
 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
@@ -42,7 +49,9 @@
 org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
 org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
 org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
 org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
@@ -57,20 +66,33 @@
 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
 org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
 org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
@@ -89,6 +111,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.5
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/repository/RepositoryDiscoveryStrategy.java b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/repository/RepositoryDiscoveryStrategy.java
index 9976ba0..621f61d 100644
--- a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/repository/RepositoryDiscoveryStrategy.java
+++ b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/repository/RepositoryDiscoveryStrategy.java
@@ -76,7 +76,6 @@
 		}
 	}
 
-	@SuppressWarnings("restriction")
 	private void connectCategories() {
 		for (CatalogCategory category : categories) {
 			if (category.getData() instanceof IInstallableUnit) {
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListItem.java b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListItem.java
index 68917b4..646be56 100644
--- a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListItem.java
+++ b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListItem.java
@@ -28,6 +28,7 @@
  * 
  * @author Steffen Pingel
  */
+@SuppressWarnings("restriction")
 public abstract class ControlListItem<T> extends Composite {
 
 	static String DARK_COLOR_KEY = "org.eclipse.mylyn.commons.ui.ControlListItem.DARK_COLOR"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListViewer.java b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListViewer.java
index befaded..677cb2e 100644
--- a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListViewer.java
+++ b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/ControlListViewer.java
@@ -56,11 +56,11 @@
 		//scrolled.setShowFocusedControl(true);
 
 		control = new Composite(scrolled, SWT.NONE) {
-//			@Override
-//			public boolean setFocus() {
-//				forceFocus();
-//				return true;
-//			}
+			//			@Override
+			//			public boolean setFocus() {
+			//				forceFocus();
+			//				return true;
+			//			}
 
 			@Override
 			public void setVisible(boolean visible) {
@@ -115,7 +115,7 @@
 						if (children.length > 0) {
 							boolean selected = false;
 							for (int i = 0; i < children.length; i++) {
-								ControlListItem item = (ControlListItem) children[i];
+								ControlListItem<?> item = (ControlListItem<?>) children[i];
 								if (item.isSelected()) {
 									selected = true;
 									if (i > 0) {
@@ -135,7 +135,7 @@
 						if (children.length > 0) {
 							boolean selected = false;
 							for (int i = 0; i < children.length; i++) {
-								ControlListItem item = (ControlListItem) children[i];
+								ControlListItem<?> item = (ControlListItem<?>) children[i];
 								if (item.isSelected()) {
 									selected = true;
 									if (i < children.length - 1) {
@@ -202,11 +202,11 @@
 
 		// Update with the new elements to prevent flash
 		for (Control element : existingChildren) {
-			((ControlListItem) element).dispose();
+			((ControlListItem<?>) element).dispose();
 		}
 
 		for (int i = 0; i < infos.length; i++) {
-			ControlListItem item = createNewItem(infos[i]);
+			ControlListItem<?> item = createNewItem(infos[i]);
 			item.updateColors(i);
 		}
 
@@ -214,7 +214,7 @@
 		doUpdateContent();
 	}
 
-	private void updateSize(Control control) {
+	private void updateSize(@SuppressWarnings("hiding") Control control) {
 		if (control == null) {
 			return;
 		}
@@ -240,8 +240,8 @@
 	 * @param element
 	 * @return ControlListItem
 	 */
-	private ControlListItem createNewItem(Object element) {
-		final ControlListItem item = doCreateItem(control, element);
+	private ControlListItem<?> createNewItem(Object element) {
+		final ControlListItem<?> item = doCreateItem(control, element);
 		//		item.getChildren()[0].addPaintListener(new PaintListener() {
 		//			public void paintControl(PaintEvent e) {
 		//				if (hasFocus && item.isSelected()) {
@@ -292,22 +292,22 @@
 		return item;
 	}
 
-	protected abstract ControlListItem doCreateItem(Composite parent, Object element);
+	protected abstract ControlListItem<?> doCreateItem(Composite parent, Object element);
 
 	@Override
-	protected ControlListItem doFindInputItem(Object element) {
+	protected ControlListItem<?> doFindInputItem(Object element) {
 		return null;
 	}
 
 	@Override
-	protected ControlListItem doFindItem(Object element) {
+	protected ControlListItem<?> doFindItem(Object element) {
 		Control[] children = control.getChildren();
 		for (Control child : children) {
 			if (child.isDisposed() || child.getData() == null) {
 				continue;
 			}
 			if (child.getData().equals(element)) {
-				return (ControlListItem) child;
+				return (ControlListItem<?>) child;
 			}
 		}
 		return null;
@@ -332,7 +332,7 @@
 		Control[] children = control.getChildren();
 		ArrayList<Object> selection = new ArrayList<Object>(children.length);
 		for (Control child : children) {
-			ControlListItem item = (ControlListItem) child;
+			ControlListItem<?> item = (ControlListItem<?>) child;
 			if (item.isSelected() && item.getData() != null) {
 				selection.add(item.getData());
 			}
@@ -341,6 +341,7 @@
 	}
 
 	protected void handleOpen() {
+		@SuppressWarnings("hiding")
 		Control control = getControl();
 		if (control != null && !control.isDisposed()) {
 			ISelection selection = getSelection();
@@ -370,7 +371,7 @@
 			add(new Object[] {element});
 			return;
 		}
-		((ControlListItem) widget).refresh();
+		((ControlListItem<?>) widget).refresh();
 
 		updateSize(control);
 	}
@@ -386,7 +387,7 @@
 
 		Control[] existingChildren = control.getChildren();
 		for (int i = 0; i < existingChildren.length; i++) {
-			ControlListItem item = (ControlListItem) existingChildren[i];
+			ControlListItem<?> item = (ControlListItem<?>) existingChildren[i];
 			item.updateColors(i);
 		}
 		control.layout(true);
@@ -475,7 +476,7 @@
 		}
 
 		for (int i = 0; i < infos.length; i++) {
-			ControlListItem item = createNewItem(infos[i]);
+			ControlListItem<?> item = createNewItem(infos[i]);
 			item.updateColors(i);
 		}
 
@@ -491,7 +492,7 @@
 		int top = scrolled.getOrigin().y;
 		int bottom = top + scrolled.getParent().getBounds().height;
 		for (Control element : children) {
-			ControlListItem item = (ControlListItem) element;
+			ControlListItem<?> item = (ControlListItem<?>) element;
 			item.setDisplayed(top, bottom);
 		}
 	}
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/PatternFilter.java b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/PatternFilter.java
index d16f57b..ad75e82 100644
--- a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/PatternFilter.java
+++ b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/PatternFilter.java
@@ -24,16 +24,17 @@
  * @see org.eclipse.ui.dialogs.FilteredTree
  * @since 3.2
  */
+@SuppressWarnings("restriction")
 public class PatternFilter extends ViewerFilter {
 	/*
 	 * Cache of filtered elements in the tree
 	 */
-	private final Map cache = new HashMap();
+	private final Map<Object, Object> cache = new HashMap<Object, Object>();
 
 	/*
 	 * Maps parent elements to TRUE or FALSE
 	 */
-	private final Map foundAnyCache = new HashMap();
+	private final Map<Object, Boolean> foundAnyCache = new HashMap<Object, Boolean>();
 
 	private boolean useCache = false;
 
@@ -69,7 +70,7 @@
 
 		Object[] filtered = (Object[]) cache.get(parent);
 		if (filtered == null) {
-			Boolean foundAny = (Boolean) foundAnyCache.get(parent);
+			Boolean foundAny = foundAnyCache.get(parent);
 			if (foundAny != null && !foundAny.booleanValue()) {
 				filtered = EMPTY;
 			} else {
@@ -103,7 +104,7 @@
 		if (filtered != null) {
 			return filtered.length > 0;
 		}
-		Boolean foundAny = (Boolean) foundAnyCache.get(parent);
+		Boolean foundAny = foundAnyCache.get(parent);
 		if (foundAny == null) {
 			foundAny = computeAnyVisible(viewer, elements) ? Boolean.TRUE : Boolean.FALSE;
 			foundAnyCache.put(parent, foundAny);
@@ -273,7 +274,7 @@
 	 * @return an array of words
 	 */
 	private String[] getWords(String text) {
-		List words = new ArrayList();
+		List<String> words = new ArrayList<String>();
 		// Break the text up into words, separating based on whitespace and
 		// common punctuation.
 		// Previously used String.split(..., "\\W"), where "\W" is a regular
@@ -297,7 +298,7 @@
 			}
 			i = j;
 		}
-		return (String[]) words.toArray(new String[words.size()]);
+		return words.toArray(new String[words.size()]);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/TextSearchControl.java b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/TextSearchControl.java
index 340744f..c85c940 100644
--- a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/TextSearchControl.java
+++ b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/TextSearchControl.java
@@ -31,6 +31,7 @@
 /**
  * @author Shawn Minto
  */
+@SuppressWarnings("restriction")
 public class TextSearchControl extends Composite {
 
 	private static final String FIND_TEXT_MEMENTO_ELEMENT = "text"; //$NON-NLS-1$
@@ -88,7 +89,6 @@
 
 	private static Boolean useNativeSearchField;
 
-	@SuppressWarnings("restriction")
 	public TextSearchControl(Composite parent, boolean automaticFind) {
 		super(parent, getCompositeStyle(automaticFind, parent));
 		this.automaticFind = automaticFind;
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/WorkbenchUtil.java b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/WorkbenchUtil.java
index e8e4027..dabb8bc 100644
--- a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/WorkbenchUtil.java
+++ b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/util/WorkbenchUtil.java
@@ -36,6 +36,7 @@
  * @author Mik Kersten
  * @author Steffen Pingel
  */
+@SuppressWarnings("restriction")
 public class WorkbenchUtil {
 
 	/**
diff --git a/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF
index 060ad46..06327b1 100644
--- a/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF
@@ -10,14 +10,23 @@
   x-friends:="org.eclipse.equinox.p2.ui.admin,
    org.eclipse.pde.ui,
    org.eclipse.equinox.p2.ui.sdk,
-   org.eclipse.equinox.p2.ui.rcp, org.eclipse.equinox.p2.ui.importexport, org.eclipse.equinox.p2.ui.sdk.scheduler",
+   org.eclipse.equinox.p2.ui.rcp,
+   org.eclipse.equinox.p2.ui.importexport,
+   org.eclipse.equinox.p2.ui.sdk.scheduler,
+   org.eclipse.equinox.p2.discovery,
+   org.eclipse.equinox.p2.ui.discovery",
  org.eclipse.equinox.internal.p2.ui.actions;x-friends:="org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.ui.sdk.scheduler",
- org.eclipse.equinox.internal.p2.ui.dialogs;x-friends:="org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.ui.sdk.scheduler,org.eclipse.pde.ui,org.eclipse.equinox.p2.ui.importexport",
+ org.eclipse.equinox.internal.p2.ui.dialogs;
+  x-friends:="org.eclipse.equinox.p2.ui.admin,
+   org.eclipse.equinox.p2.ui.sdk.scheduler,
+   org.eclipse.pde.ui,
+   org.eclipse.equinox.p2.ui.importexport",
  org.eclipse.equinox.internal.p2.ui.model;
   x-friends:="org.eclipse.equinox.internal.p2.ui.analysis,
    org.eclipse.equinox.p2.ui.admin,
    org.eclipse.equinox.p2.ui.sdk.scheduler,
-   org.eclipse.equinox.p2.ui.sdk, org.eclipse.equinox.p2.ui.importexport",
+   org.eclipse.equinox.p2.ui.sdk,
+   org.eclipse.equinox.p2.ui.importexport",
  org.eclipse.equinox.internal.p2.ui.query;x-friends:="org.eclipse.equinox.internal.p2.ui.analysis,org.eclipse.equinox.p2.ui.admin",
  org.eclipse.equinox.internal.p2.ui.viewers;x-friends:="org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.ui.sdk.scheduler,org.eclipse.equinox.p2.ui.importexport",
  org.eclipse.equinox.p2.ui;version="2.0.0"