Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 132631 Details for
Bug 272954
[planner] updatesFor should return a Queryable
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch
clipboard.txt (text/plain), 11.12 KB, created by
Ian Bull
on 2009-04-21 13:13:55 EDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Ian Bull
Created:
2009-04-21 13:13:55 EDT
Size:
11.12 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.equinox.p2.updatechecker >Index: src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java,v >retrieving revision 1.10 >diff -u -r1.10 UpdateChecker.java >--- src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java 30 Mar 2009 01:49:19 -0000 1.10 >+++ src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java 21 Apr 2009 17:10:39 -0000 >@@ -13,8 +13,7 @@ > import java.net.URI; > import java.text.SimpleDateFormat; > import java.util.*; >-import org.eclipse.core.runtime.IStatus; >-import org.eclipse.core.runtime.Status; >+import org.eclipse.core.runtime.*; > import org.eclipse.equinox.internal.p2.core.helpers.*; > import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; > import org.eclipse.equinox.internal.provisional.p2.director.IPlanner; >@@ -22,8 +21,7 @@ > import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; > import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery; > import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager; >-import org.eclipse.equinox.internal.provisional.p2.query.Collector; >-import org.eclipse.equinox.internal.provisional.p2.query.Query; >+import org.eclipse.equinox.internal.provisional.p2.query.*; > import org.eclipse.equinox.internal.provisional.p2.repository.IRepositoryManager; > import org.eclipse.equinox.internal.provisional.p2.updatechecker.*; > >@@ -125,7 +123,8 @@ > Iterator iter = profile.query(query, new Collector(), null).iterator(); > while (iter.hasNext()) { > IInstallableUnit iu = (IInstallableUnit) iter.next(); >- IInstallableUnit[] replacements = getPlanner().updatesFor(iu, context, null); >+ IQueryable queryable = getPlanner().updatesFor(iu, context, null); >+ IInstallableUnit[] replacements = (IInstallableUnit[]) queryable.query(new InstallableUnitQuery(null), new Collector(), new NullProgressMonitor()).toArray(IInstallableUnit.class); > if (replacements.length > 0) > iusWithUpdates.add(iu); > } >#P org.eclipse.equinox.p2.tests >Index: src/org/eclipse/equinox/p2/tests/planner/FindingPatchesThroughUpdates.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/FindingPatchesThroughUpdates.java,v >retrieving revision 1.1 >diff -u -r1.1 FindingPatchesThroughUpdates.java >--- src/org/eclipse/equinox/p2/tests/planner/FindingPatchesThroughUpdates.java 20 Apr 2009 19:01:24 -0000 1.1 >+++ src/org/eclipse/equinox/p2/tests/planner/FindingPatchesThroughUpdates.java 21 Apr 2009 17:10:41 -0000 >@@ -6,6 +6,9 @@ > import org.eclipse.equinox.internal.provisional.p2.director.IPlanner; > import org.eclipse.equinox.internal.provisional.p2.engine.*; > import org.eclipse.equinox.internal.provisional.p2.metadata.*; >+import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery; >+import org.eclipse.equinox.internal.provisional.p2.query.Collector; >+import org.eclipse.equinox.internal.provisional.p2.query.IQueryable; > import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; > > public class FindingPatchesThroughUpdates extends AbstractProvisioningTest { >@@ -40,7 +43,8 @@ > } > > public void testInstall() { >- IInstallableUnit[] updates = planner.updatesFor(a1, new ProvisioningContext(), new NullProgressMonitor()); >+ IQueryable queryable = planner.updatesFor(a1, new ProvisioningContext(), new NullProgressMonitor()); >+ IInstallableUnit[] updates = (IInstallableUnit[]) queryable.query(new InstallableUnitQuery(null), new Collector(), new NullProgressMonitor()).toArray(IInstallableUnit.class); > assertEquals(2, updates.length); > assertEquals("Checking updates", new IInstallableUnit[] {a120, patchA1}, updates, false); > } >#P org.eclipse.equinox.p2.ui >Index: src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java,v >retrieving revision 1.7 >diff -u -r1.7 QueryableUpdates.java >--- src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java 24 Jan 2009 20:35:11 -0000 1.7 >+++ src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java 21 Apr 2009 17:10:42 -0000 >@@ -19,6 +19,7 @@ > import org.eclipse.equinox.internal.provisional.p2.director.IPlanner; > import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext; > import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; >+import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery; > import org.eclipse.equinox.internal.provisional.p2.query.*; > import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI; > import org.eclipse.ui.statushandlers.StatusManager; >@@ -49,7 +50,9 @@ > for (int i = 0; i < iusToUpdate.length; i++) { > if (monitor.isCanceled()) > return result; >- IInstallableUnit[] updates = planner.updatesFor(iusToUpdate[i], new ProvisioningContext(), new SubProgressMonitor(monitor, totalWork / 2 / iusToUpdate.length)); >+ IQueryable queryable = planner.updatesFor(iusToUpdate[i], new ProvisioningContext(), new SubProgressMonitor(monitor, totalWork / 2 / iusToUpdate.length)); >+ >+ IInstallableUnit[] updates = (IInstallableUnit[]) queryable.query(new InstallableUnitQuery(null), new Collector(), new NullProgressMonitor()).toArray(IInstallableUnit.class); > for (int j = 0; j < updates.length; j++) > allUpdates.add(updates[j]); > } >#P org.eclipse.equinox.p2.director >Index: src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java,v >retrieving revision 1.5 >diff -u -r1.5 IPlanner.java >--- src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java 6 Mar 2009 22:45:39 -0000 1.5 >+++ src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java 21 Apr 2009 17:10:43 -0000 >@@ -14,6 +14,7 @@ > import org.eclipse.equinox.internal.provisional.p2.engine.IProfile; > import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext; > import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; >+import org.eclipse.equinox.internal.provisional.p2.query.IQueryable; > > /** > * Planners are responsible for determining what should be done to a given >@@ -25,7 +26,7 @@ > public interface IPlanner { > public ProvisioningPlan getProvisioningPlan(ProfileChangeRequest profileChangeRequest, ProvisioningContext context, IProgressMonitor monitor); > >- public IInstallableUnit[] updatesFor(IInstallableUnit toUpdate, ProvisioningContext context, IProgressMonitor monitor); >+ public IQueryable updatesFor(IInstallableUnit toUpdate, ProvisioningContext context, IProgressMonitor monitor); > > public ProvisioningPlan getDiffPlan(IProfile currentProfile, IProfile targetProfile, IProgressMonitor monitor); > >Index: src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java,v >retrieving revision 1.83 >diff -u -r1.83 SimplePlanner.java >--- src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java 20 Apr 2009 14:24:42 -0000 1.83 >+++ src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java 21 Apr 2009 17:10:43 -0000 >@@ -662,7 +662,7 @@ > return MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), new VersionRange(iu.getVersion(), true, iu.getVersion(), true), null, false, false, true); > } > >- public IInstallableUnit[] updatesFor(IInstallableUnit toUpdate, ProvisioningContext context, IProgressMonitor monitor) { >+ public IQueryable updatesFor(IInstallableUnit toUpdate, ProvisioningContext context, IProgressMonitor monitor) { > Map resultsMap = new HashMap(); > > IMetadataRepositoryManager repoMgr = (IMetadataRepositoryManager) ServiceHelper.getService(DirectorActivator.context, IMetadataRepositoryManager.class.getName()); >@@ -690,7 +690,8 @@ > } > sub.done(); > Collection results = resultsMap.values(); >- return (IInstallableUnit[]) results.toArray(new IInstallableUnit[results.size()]); >+ QueryableArray queryableArray = new QueryableArray((IInstallableUnit[]) results.toArray(new IInstallableUnit[results.size()])); >+ return queryableArray; > } > > //helper class to trick the resolver to believe that everything is optional >#P org.eclipse.equinox.p2.ui.sdk.scheduler >Index: src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java,v >retrieving revision 1.8 >diff -u -r1.8 AutomaticUpdater.java >--- src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java 9 Apr 2009 23:01:25 -0000 1.8 >+++ src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/AutomaticUpdater.java 21 Apr 2009 17:10:45 -0000 >@@ -29,6 +29,9 @@ > import org.eclipse.equinox.internal.provisional.p2.engine.IProfile; > import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext; > import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; >+import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery; >+import org.eclipse.equinox.internal.provisional.p2.query.Collector; >+import org.eclipse.equinox.internal.provisional.p2.query.IQueryable; > import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI; > import org.eclipse.equinox.internal.provisional.p2.ui.ProvUIImages; > import org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner; >@@ -188,8 +191,7 @@ > for (int i = 0; i < iusWithUpdates.length; i++) { > try { > if (isKnownToBeAvailable >- || ProvisioningUtil.getPlanner().updatesFor( >- iusWithUpdates[i], new ProvisioningContext(), >+ || updatesFor(iusWithUpdates[i], new ProvisioningContext(), > monitor).length > 0) { > if (validToUpdate(iusWithUpdates[i])) > list.add(iusWithUpdates[i]); >@@ -209,6 +211,11 @@ > .toArray(new IInstallableUnit[list.size()]); > } > >+ private IInstallableUnit[] updatesFor(IInstallableUnit iu, ProvisioningContext context, IProgressMonitor monitor) throws ProvisionException { >+ IQueryable queryable = ProvisioningUtil.getPlanner().updatesFor(iu, new ProvisioningContext(), monitor); >+ return (IInstallableUnit[]) queryable.query(new InstallableUnitQuery(null), new Collector(), monitor).toArray(IInstallableUnit.class); >+ } >+ > // A proposed update is valid if it is still visible to the user as an > // installed item (it is a root) > // and if it is not locked for updating.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 272954
: 132631