Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 292691 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/pde/internal/core/target/IUBundleContainer.java (-14 / +15 lines)
Lines 24-29 Link Here
24
import org.eclipse.equinox.p2.engine.*;
24
import org.eclipse.equinox.p2.engine.*;
25
import org.eclipse.equinox.p2.metadata.IArtifactKey;
25
import org.eclipse.equinox.p2.metadata.IArtifactKey;
26
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
26
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
27
import org.eclipse.equinox.p2.metadata.query.IQueryResult;
27
import org.eclipse.equinox.p2.repository.IRepositoryManager;
28
import org.eclipse.equinox.p2.repository.IRepositoryManager;
28
import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager;
29
import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager;
29
import org.eclipse.equinox.p2.repository.artifact.IFileArtifactRepository;
30
import org.eclipse.equinox.p2.repository.artifact.IFileArtifactRepository;
Lines 247-253 Link Here
247
248
248
		// query for bundles
249
		// query for bundles
249
		OSGiBundleQuery query = new OSGiBundleQuery();
250
		OSGiBundleQuery query = new OSGiBundleQuery();
250
		Collector collector = slice.query(query, new SubProgressMonitor(subMonitor, 10));
251
		IQueryResult queryResult = slice.query(query, new SubProgressMonitor(subMonitor, 10));
251
252
252
		if (subMonitor.isCanceled()) {
253
		if (subMonitor.isCanceled()) {
253
			return new IResolvedBundle[0];
254
			return new IResolvedBundle[0];
Lines 255-261 Link Here
255
256
256
		Map bundles = new LinkedHashMap();
257
		Map bundles = new LinkedHashMap();
257
		IFileArtifactRepository repo = getBundlePool(profile);
258
		IFileArtifactRepository repo = getBundlePool(profile);
258
		Iterator iterator = collector.iterator();
259
		Iterator iterator = queryResult.iterator();
259
		while (iterator.hasNext()) {
260
		while (iterator.hasNext()) {
260
			IInstallableUnit unit = (IInstallableUnit) iterator.next();
261
			IInstallableUnit unit = (IInstallableUnit) iterator.next();
261
			IArtifactKey[] artifacts = unit.getArtifacts();
262
			IArtifactKey[] artifacts = unit.getArtifacts();
Lines 362-375 Link Here
362
			slicer = new PermissiveSlicer(allMetadata, props, true, false, false, true, false);
363
			slicer = new PermissiveSlicer(allMetadata, props, true, false, false, true, false);
363
		}
364
		}
364
		IQueryable slice = slicer.slice(units, new SubProgressMonitor(subMonitor, 10));
365
		IQueryable slice = slicer.slice(units, new SubProgressMonitor(subMonitor, 10));
365
		Collector collector = slice.query(InstallableUnitQuery.ANY, new SubProgressMonitor(subMonitor, 10));
366
		IQueryResult queryResult = slice.query(InstallableUnitQuery.ANY, new SubProgressMonitor(subMonitor, 10));
366
367
367
		if (subMonitor.isCanceled() || collector.isEmpty()) {
368
		if (subMonitor.isCanceled() || queryResult.isEmpty()) {
368
			return new IResolvedBundle[0];
369
			return new IResolvedBundle[0];
369
		}
370
		}
370
371
371
		ArrayList operands = new ArrayList(collector.size());
372
		ArrayList operands = new ArrayList(queryResult.size());
372
		Iterator itor = collector.iterator();
373
		Iterator itor = queryResult.iterator();
373
		while (itor.hasNext()) {
374
		while (itor.hasNext()) {
374
			operands.add(new InstallableUnitOperand(null, (IInstallableUnit) itor.next()));
375
			operands.add(new InstallableUnitOperand(null, (IInstallableUnit) itor.next()));
375
		}
376
		}
Lines 404-410 Link Here
404
		}
405
		}
405
406
406
		// query for bundles
407
		// query for bundles
407
		collector = slice.query(new OSGiBundleQuery(), new SubProgressMonitor(subMonitor, 10));
408
		queryResult = slice.query(new OSGiBundleQuery(), new SubProgressMonitor(subMonitor, 10));
408
409
409
		if (subMonitor.isCanceled()) {
410
		if (subMonitor.isCanceled()) {
410
			return new IResolvedBundle[0];
411
			return new IResolvedBundle[0];
Lines 412-418 Link Here
412
413
413
		Map bundles = new LinkedHashMap();
414
		Map bundles = new LinkedHashMap();
414
		IFileArtifactRepository repo = getBundlePool(profile);
415
		IFileArtifactRepository repo = getBundlePool(profile);
415
		Iterator iterator = collector.iterator();
416
		Iterator iterator = queryResult.iterator();
416
		while (iterator.hasNext()) {
417
		while (iterator.hasNext()) {
417
			IInstallableUnit unit = (IInstallableUnit) iterator.next();
418
			IInstallableUnit unit = (IInstallableUnit) iterator.next();
418
			IArtifactKey[] artifacts = unit.getArtifacts();
419
			IArtifactKey[] artifacts = unit.getArtifacts();
Lines 469-492 Link Here
469
			fUnits = new IInstallableUnit[fIds.length];
470
			fUnits = new IInstallableUnit[fIds.length];
470
			for (int i = 0; i < fIds.length; i++) {
471
			for (int i = 0; i < fIds.length; i++) {
471
				InstallableUnitQuery query = new InstallableUnitQuery(fIds[i], fVersions[i]);
472
				InstallableUnitQuery query = new InstallableUnitQuery(fIds[i], fVersions[i]);
472
				Collector collector = profile.query(query, null);
473
				IQueryResult queryResult = profile.query(query, null);
473
				if (collector.isEmpty()) {
474
				if (queryResult.isEmpty()) {
474
					// try repositories
475
					// try repositories
475
					URI[] repositories = resolveRepositories();
476
					URI[] repositories = resolveRepositories();
476
					for (int j = 0; j < repositories.length; j++) {
477
					for (int j = 0; j < repositories.length; j++) {
477
						IMetadataRepository repository = getRepository(repositories[j]);
478
						IMetadataRepository repository = getRepository(repositories[j]);
478
						collector = repository.query(query, null);
479
						queryResult = repository.query(query, null);
479
						if (!collector.isEmpty()) {
480
						if (!queryResult.isEmpty()) {
480
							break;
481
							break;
481
						}
482
						}
482
					}
483
					}
483
				}
484
				}
484
				if (collector.isEmpty()) {
485
				if (queryResult.isEmpty()) {
485
					// not found
486
					// not found
486
					fUnits = null;
487
					fUnits = null;
487
					throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, NLS.bind(Messages.IUBundleContainer_1, fIds[i])));
488
					throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, NLS.bind(Messages.IUBundleContainer_1, fIds[i])));
488
				}
489
				}
489
				fUnits[i] = (IInstallableUnit) collector.iterator().next();
490
				fUnits[i] = (IInstallableUnit) queryResult.iterator().next();
490
			}
491
			}
491
		}
492
		}
492
		return fUnits;
493
		return fUnits;
(-)src/org/eclipse/pde/internal/core/target/TargetDefinition.java (-3 / +3 lines)
Lines 18-28 Link Here
18
import org.eclipse.debug.core.DebugPlugin;
18
import org.eclipse.debug.core.DebugPlugin;
19
import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
19
import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
20
import org.eclipse.equinox.internal.provisional.p2.metadata.Version;
20
import org.eclipse.equinox.internal.provisional.p2.metadata.Version;
21
import org.eclipse.equinox.internal.provisional.p2.metadata.query.Collector;
22
import org.eclipse.equinox.p2.engine.IProfile;
21
import org.eclipse.equinox.p2.engine.IProfile;
23
import org.eclipse.equinox.p2.engine.IProfileRegistry;
22
import org.eclipse.equinox.p2.engine.IProfileRegistry;
24
import org.eclipse.equinox.p2.engine.query.IUProfilePropertyQuery;
23
import org.eclipse.equinox.p2.engine.query.IUProfilePropertyQuery;
25
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
24
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
25
import org.eclipse.equinox.p2.metadata.query.IQueryResult;
26
import org.eclipse.pde.internal.core.PDECore;
26
import org.eclipse.pde.internal.core.PDECore;
27
import org.eclipse.pde.internal.core.target.provisional.*;
27
import org.eclipse.pde.internal.core.target.provisional.*;
28
import org.xml.sax.SAXException;
28
import org.xml.sax.SAXException;
Lines 663-670 Link Here
663
				// still in the profile, we need to recreate (rather than uninstall)
663
				// still in the profile, we need to recreate (rather than uninstall)
664
				IUProfilePropertyQuery propertyQuery = new IUProfilePropertyQuery(AbstractTargetHandle.PROP_INSTALLED_IU, Boolean.toString(true));
664
				IUProfilePropertyQuery propertyQuery = new IUProfilePropertyQuery(AbstractTargetHandle.PROP_INSTALLED_IU, Boolean.toString(true));
665
				propertyQuery.setProfile(profile);
665
				propertyQuery.setProfile(profile);
666
				Collector collector = profile.query(propertyQuery, null);
666
				IQueryResult queryResult = profile.query(propertyQuery, null);
667
				Iterator iterator = collector.iterator();
667
				Iterator iterator = queryResult.iterator();
668
				if (iterator.hasNext()) {
668
				if (iterator.hasNext()) {
669
					Set installedIUs = new HashSet();
669
					Set installedIUs = new HashSet();
670
					while (iterator.hasNext()) {
670
					while (iterator.hasNext()) {
(-)src/org/eclipse/pde/internal/ui/build/RuntimeInstallJob.java (-3 / +5 lines)
Lines 21-31 Link Here
21
import org.eclipse.equinox.internal.provisional.p2.metadata.*;
21
import org.eclipse.equinox.internal.provisional.p2.metadata.*;
22
import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
22
import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
23
import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitPatchDescription;
23
import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitPatchDescription;
24
import org.eclipse.equinox.internal.provisional.p2.metadata.query.*;
24
import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
25
import org.eclipse.equinox.internal.provisional.p2.metadata.query.MatchQuery;
25
import org.eclipse.equinox.p2.engine.IProfile;
26
import org.eclipse.equinox.p2.engine.IProfile;
26
import org.eclipse.equinox.p2.engine.IProfileRegistry;
27
import org.eclipse.equinox.p2.engine.IProfileRegistry;
27
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
28
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
28
import org.eclipse.equinox.p2.metadata.IRequirement;
29
import org.eclipse.equinox.p2.metadata.IRequirement;
30
import org.eclipse.equinox.p2.metadata.query.IQueryResult;
29
import org.eclipse.equinox.p2.operations.*;
31
import org.eclipse.equinox.p2.operations.*;
30
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
32
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
31
import org.eclipse.equinox.p2.ui.ProvisioningUI;
33
import org.eclipse.equinox.p2.ui.ProvisioningUI;
Lines 123-129 Link Here
123
125
124
				// Check if the right version exists in the new meta repo
126
				// Check if the right version exists in the new meta repo
125
				Version newVersion = Version.parseVersion(version);
127
				Version newVersion = Version.parseVersion(version);
126
				Collector queryMatches = metaRepo.query(new InstallableUnitQuery(id, newVersion), monitor);
128
				IQueryResult queryMatches = metaRepo.query(new InstallableUnitQuery(id, newVersion), monitor);
127
				if (queryMatches.size() == 0) {
129
				if (queryMatches.size() == 0) {
128
					return new Status(IStatus.ERROR, PDEPlugin.getPluginId(), NLS.bind(PDEUIMessages.RuntimeInstallJob_ErrorCouldNotFindUnitInRepo, new String[] {id, version}));
130
					return new Status(IStatus.ERROR, PDEPlugin.getPluginId(), NLS.bind(PDEUIMessages.RuntimeInstallJob_ErrorCouldNotFindUnitInRepo, new String[] {id, version}));
129
				}
131
				}
Lines 199-205 Link Here
199
		iuPatchDescription.setApplicabilityScope(new IRequirement[0][0]);
201
		iuPatchDescription.setApplicabilityScope(new IRequirement[0][0]);
200
202
201
		// Add lifecycle requirement on a changed bundle, if it gets updated, then we should uninstall the patch
203
		// Add lifecycle requirement on a changed bundle, if it gets updated, then we should uninstall the patch
202
		Collector queryMatches = profile.query(new MatchQuery() {
204
		IQueryResult queryMatches = profile.query(new MatchQuery() {
203
			public boolean isMatch(Object candidate) {
205
			public boolean isMatch(Object candidate) {
204
				if (candidate instanceof IInstallableUnit) {
206
				if (candidate instanceof IInstallableUnit) {
205
					IRequirement[] reqs = ((IInstallableUnit) candidate).getRequiredCapabilities();
207
					IRequirement[] reqs = ((IInstallableUnit) candidate).getRequiredCapabilities();
(-)src/org/eclipse/pde/ui/tests/target/IUBundleContainerTests.java (-4 / +3 lines)
Lines 10-17 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.pde.ui.tests.target;
11
package org.eclipse.pde.ui.tests.target;
12
12
13
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
14
15
import java.io.*;
13
import java.io.*;
16
import java.net.URI;
14
import java.net.URI;
17
import java.net.URL;
15
import java.net.URL;
Lines 21-28 Link Here
21
import junit.framework.TestSuite;
19
import junit.framework.TestSuite;
22
import org.eclipse.core.filesystem.URIUtil;
20
import org.eclipse.core.filesystem.URIUtil;
23
import org.eclipse.core.runtime.*;
21
import org.eclipse.core.runtime.*;
24
import org.eclipse.equinox.internal.provisional.p2.metadata.query.Collector;
25
import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
22
import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
23
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
24
import org.eclipse.equinox.p2.metadata.query.IQueryResult;
26
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
25
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
27
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
26
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
28
import org.eclipse.pde.internal.core.PDECore;
27
import org.eclipse.pde.internal.core.PDECore;
Lines 74-80 Link Here
74
	 * @return installable unit
73
	 * @return installable unit
75
	 */
74
	 */
76
	protected IInstallableUnit getUnit(String id, IMetadataRepository repository) {
75
	protected IInstallableUnit getUnit(String id, IMetadataRepository repository) {
77
		Collector result = repository.query(new InstallableUnitQuery(id),  null);
76
		IQueryResult result = repository.query(new InstallableUnitQuery(id),  null);
78
		IInstallableUnit[] units  = (IInstallableUnit[]) result.toArray(IInstallableUnit.class);
77
		IInstallableUnit[] units  = (IInstallableUnit[]) result.toArray(IInstallableUnit.class);
79
		if (units.length == 1) {
78
		if (units.length == 1) {
80
			return units[0];
79
			return units[0];

Return to bug 292691