### Eclipse Workspace Patch 1.0 #P org.eclipse.equinox.p2.artifact.repository Index: src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java,v retrieving revision 1.9.4.3 diff -u -r1.9.4.3 IArtifactRepository.java --- src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java 17 Nov 2009 01:29:18 -0000 1.9.4.3 +++ src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java 17 Nov 2009 19:27:31 -0000 @@ -15,7 +15,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey; -import org.eclipse.equinox.internal.provisional.p2.metadata.query.IQueryable; import org.eclipse.equinox.internal.provisional.p2.repository.IRepository; import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.AbstractArtifactRepository; @@ -28,7 +27,7 @@ *
* @noimplement This interface is not intended to be implemented by clients. */ -public interface IArtifactRepository extends IRepository, IQueryable { +public interface IArtifactRepository extends IRepository { /** * The return code to use when a client could/should retry a failed getArtifact() operation. #P org.eclipse.equinox.p2.metadata.repository Index: src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryComponent.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryComponent.java,v retrieving revision 1.1.2.3 diff -u -r1.1.2.3 MetadataRepositoryComponent.java --- src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryComponent.java 10 Nov 2009 21:24:42 -0000 1.1.2.3 +++ src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryComponent.java 17 Nov 2009 19:27:32 -0000 @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.equinox.internal.p2.metadata.repository; +import org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager; + import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus; import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager; import org.eclipse.equinox.p2.core.IAgentLocation; @@ -22,7 +24,7 @@ public class MetadataRepositoryComponent implements IAgentServiceFactory { public Object createService(IProvisioningAgent agent) { - MetadataRepositoryManager manager = new MetadataRepositoryManager(); + AbstractRepositoryManager manager = new MetadataRepositoryManager(); final IProvisioningEventBus eventBus = (IProvisioningEventBus) agent.getService(IProvisioningEventBus.SERVICE_NAME); manager.setEventBus(eventBus); manager.setAgentLocation((IAgentLocation) agent.getService(IAgentLocation.SERVICE_NAME)); Index: src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java,v retrieving revision 1.60.2.1 diff -u -r1.60.2.1 MetadataRepositoryManager.java --- src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java 3 Nov 2009 03:37:42 -0000 1.60.2.1 +++ src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java 17 Nov 2009 19:27:32 -0000 @@ -12,16 +12,14 @@ package org.eclipse.equinox.internal.p2.metadata.repository; import java.net.URI; -import java.util.*; +import java.util.Map; import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; -import org.eclipse.equinox.internal.provisional.p2.metadata.query.*; import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository; import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.repository.IRepository; import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.MetadataRepositoryFactory; -import org.eclipse.equinox.p2.metadata.query.IQuery; import org.eclipse.osgi.util.NLS; /** @@ -82,9 +80,6 @@ return IRepository.TYPE_METADATA; } - /** - * @deprecated see {@link #loadRepository(URI, int, IProgressMonitor)} - */ public IMetadataRepository loadRepository(URI location, IProgressMonitor monitor) throws ProvisionException { return loadRepository(location, 0, monitor); } @@ -93,49 +88,6 @@ return (IMetadataRepository) loadRepository(location, monitor, null, flags); } - /** - * Performs a query against all of the installable units of each known - * repository, accumulating any objects that satisfy the query in the - * provided collector. - *- * Note that using this method can be quite expensive, as every known - * metadata repository will be loaded in order to query each one. If a - * client wishes to query only certain repositories, it is better to use - * {@link #getKnownRepositories(int)} to filter the list of repositories - * loaded and then query each of the returned repositories. - *
- * This method is long-running; progress and cancellation are provided
- * by the given progress monitor.
- *
- * @param query The query to perform against each installable unit in each known repository
- * @param collector Collects the results of the query
- * @param monitor a progress monitor, or null
if progress
- * reporting is not desired
- * @return The collector argument
- */
- public Collector query(IQuery query, Collector collector, IProgressMonitor monitor) {
- URI[] locations = getKnownRepositories(REPOSITORIES_ALL);
- List queryables = new ArrayList(locations.length); // use a list since we don't know exactly how many will load
- SubMonitor sub = SubMonitor.convert(monitor, locations.length * 10);
- for (int i = 0; i < locations.length; i++) {
- try {
- if (sub.isCanceled())
- throw new OperationCanceledException();
- queryables.add(loadRepository(locations[i], sub.newChild(9)));
- } catch (ProvisionException e) {
- //ignore this repository for this query
- }
- }
- try {
- IQueryable[] queryablesArray = (IQueryable[]) queryables.toArray(new IQueryable[queryables.size()]);
- CompoundQueryable compoundQueryable = new CompoundQueryable(queryablesArray);
- compoundQueryable.query(query, collector, sub.newChild(locations.length * 1));
- } finally {
- sub.done();
- }
- return collector;
- }
-
public IMetadataRepository refreshRepository(URI location, IProgressMonitor monitor) throws ProvisionException {
return (IMetadataRepository) basicRefreshRepository(location, monitor);
}
Index: src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java
===================================================================
RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java,v
retrieving revision 1.9.2.1
diff -u -r1.9.2.1 IMetadataRepository.java
--- src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java 3 Nov 2009 03:37:42 -0000 1.9.2.1
+++ src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java 17 Nov 2009 19:27:32 -0000
@@ -13,7 +13,6 @@
import java.net.URI;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.IQueryable;
import org.eclipse.equinox.internal.provisional.p2.repository.IRepository;
import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository;
import org.eclipse.equinox.p2.metadata.query.IQuery;
@@ -27,7 +26,7 @@
*
+ * Note that using this method can be quite expensive, as every known + * metadata repository will be loaded in order to query each one. If a + * client wishes to query only certain repositories, it is better to use + * {@link #getKnownRepositories(int)} to filter the list of repositories + * loaded and then query each of the returned repositories. + *
+ * This method is long-running; progress and cancellation are provided
+ * by the given progress monitor.
+ *
+ * @param query The query to perform against each installable unit in each known repository
+ * @param collector Collects the results of the query
+ * @param monitor a progress monitor, or null
if progress
+ * reporting is not desired
+ * @return The collector argument
+ */
+ public Collector query(IQuery query, Collector collector, IProgressMonitor monitor) {
+ URI[] locations = getKnownRepositories(REPOSITORIES_ALL);
+ List queryables = new ArrayList(locations.length); // use a list since we don't know exactly how many will load
+ SubMonitor sub = SubMonitor.convert(monitor, locations.length * 10);
+ for (int i = 0; i < locations.length; i++) {
+ try {
+ if (sub.isCanceled())
+ throw new OperationCanceledException();
+ queryables.add(loadRepository(locations[i], sub.newChild(9), null, 0));
+ } catch (ProvisionException e) {
+ //ignore this repository for this query
+ }
+ }
+ try {
+ IQueryable[] queryablesArray = (IQueryable[]) queryables.toArray(new IQueryable[queryables.size()]);
+ CompoundQueryable compoundQueryable = new CompoundQueryable(queryablesArray);
+ compoundQueryable.query(query, collector, sub.newChild(locations.length * 1));
+ } finally {
+ sub.done();
+ }
+ return collector;
+ }
}
Index: src/org/eclipse/equinox/internal/provisional/p2/repository/IRepository.java
===================================================================
RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/provisional/p2/repository/IRepository.java,v
retrieving revision 1.2
diff -u -r1.2 IRepository.java
--- src/org/eclipse/equinox/internal/provisional/p2/repository/IRepository.java 29 Apr 2009 16:10:52 -0000 1.2
+++ src/org/eclipse/equinox/internal/provisional/p2/repository/IRepository.java 17 Nov 2009 19:27:32 -0000
@@ -13,6 +13,7 @@
import java.net.URI;
import java.util.Map;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.equinox.internal.provisional.p2.metadata.query.IQueryable;
/**
* Base interface that defines common properties that may be provided by
@@ -20,7 +21,7 @@
*
* @noimplement This interface is not intended to be implemented by clients.
*/
-public interface IRepository extends IAdaptable {
+public interface IRepository extends IAdaptable, IQueryable {
/**
* The key for a boolean property indicating that the repository
* is a system repository. System repositories are implementation details
Index: src/org/eclipse/equinox/internal/provisional/p2/repository/IRepositoryManager.java
===================================================================
RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/provisional/p2/repository/IRepositoryManager.java,v
retrieving revision 1.2.4.1
diff -u -r1.2.4.1 IRepositoryManager.java
--- src/org/eclipse/equinox/internal/provisional/p2/repository/IRepositoryManager.java 3 Nov 2009 19:13:46 -0000 1.2.4.1
+++ src/org/eclipse/equinox/internal/provisional/p2/repository/IRepositoryManager.java 17 Nov 2009 19:27:32 -0000
@@ -11,6 +11,7 @@
package org.eclipse.equinox.internal.provisional.p2.repository;
import java.net.URI;
+import org.eclipse.equinox.internal.provisional.p2.metadata.query.IQueryable;
/**
* The common base class for metadata and artifact repository managers.
@@ -26,7 +27,7 @@
*
* @noimplement This interface is not intended to be implemented by clients.
*/
-public interface IRepositoryManager {
+public interface IRepositoryManager extends IQueryable {
/**
* Constant used to indicate that all enabled repositories are of interest.
*/