diff options
3 files changed, 10 insertions, 7 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableArtifactRepositoryManagerTest.java b/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableArtifactRepositoryManagerTest.java index 4f2fd7e7e..a5d45e9f4 100644 --- a/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableArtifactRepositoryManagerTest.java +++ b/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableArtifactRepositoryManagerTest.java @@ -43,7 +43,7 @@ public class QueryableArtifactRepositoryManagerTest extends AbstractQueryTest { public void testQuery() { QueryableArtifactRepositoryManager manager = getQueryableManager(); - IQueryResult result = manager.locationsQueriable().query(new RepositoryLocationQuery(), getMonitor()); + IQueryResult result = manager.query(new RepositoryLocationQuery(), getMonitor()); assertTrue(queryResultSize(result) == repoCount); } diff --git a/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableMetadataRepositoryManagerTest.java b/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableMetadataRepositoryManagerTest.java index 7d9d033f5..8dbf8bf76 100644 --- a/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableMetadataRepositoryManagerTest.java +++ b/bundles/org.eclipse.equinox.p2.tests.ui/src/org/eclipse/equinox/p2/tests/ui/query/QueryableMetadataRepositoryManagerTest.java @@ -10,10 +10,6 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.ui.query; -import org.eclipse.equinox.p2.metadata.Version; - -import org.eclipse.equinox.p2.metadata.query.InstallableUnitQuery; - import java.io.File; import java.net.URI; import java.util.Collection; @@ -25,6 +21,8 @@ import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositories; import org.eclipse.equinox.internal.p2.ui.query.IUViewQueryContext; import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.Version; +import org.eclipse.equinox.p2.metadata.query.InstallableUnitQuery; import org.eclipse.equinox.p2.operations.ProvisioningJob; import org.eclipse.equinox.p2.operations.ProvisioningSession; import org.eclipse.equinox.p2.query.IQueryResult; @@ -184,8 +182,9 @@ public class QueryableMetadataRepositoryManagerTest extends AbstractQueryTest { IInstallableUnit iu = (IInstallableUnit) result.iterator().next(); assertEquals("1.1", "test.bundle", iu.getId()); - //RepoLocationQuery collects repository URLs - result = manager.locationsQueriable().query(new RepositoryLocationQuery(), getMonitor()); + // RepoLocationQuery must cause repository URI's to be collected and no repository + // loading should occur. + result = manager.query(new RepositoryLocationQuery(), getMonitor()); assertEquals("2.0", 3, queryResultSize(result)); assertContains("2.1", result, existing); assertContains("2.1", result, nonExisting); diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryableRepositoryManager.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryableRepositoryManager.java index e26c67842..620e3a3a2 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryableRepositoryManager.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryableRepositoryManager.java @@ -143,7 +143,11 @@ public abstract class QueryableRepositoryManager<T> implements IQueryable<T> { */ protected abstract IRepository<T> doLoadRepository(IRepositoryManager<T> manager, URI location, IProgressMonitor monitor) throws ProvisionException; + @SuppressWarnings("unchecked") protected IQueryResult<T> query(URI uris[], IQuery<T> query, IProgressMonitor monitor) { + if (query instanceof RepositoryLocationQuery) { + return (IQueryResult<T>) locationsQueriable().query((IQuery<URI>) query, monitor); + } SubMonitor sub = SubMonitor.convert(monitor, (uris.length + 1) * 100); ArrayList<IRepository<T>> loadedRepos = new ArrayList<IRepository<T>>(uris.length); for (int i = 0; i < uris.length; i++) { |