diff options
author | Susan Franklin | 2010-04-22 22:48:09 +0000 |
---|---|---|
committer | Susan Franklin | 2010-04-22 22:48:09 +0000 |
commit | b75b56df4a5baf6172c0002ad4cfc1d796c8c763 (patch) | |
tree | bce3eb75b5a6c4110b643b4e2facff3566f1b93a /bundles | |
parent | 6b0c4e4a98a144ccade6eeb2161b8c11c7a007dd (diff) | |
download | rt.equinox.p2-b75b56df4a5baf6172c0002ad4cfc1d796c8c763.tar.gz rt.equinox.p2-b75b56df4a5baf6172c0002ad4cfc1d796c8c763.tar.xz rt.equinox.p2-b75b56df4a5baf6172c0002ad4cfc1d796c8c763.zip |
Bug 278191 - [ui] Filtering of artifact repository does not work for non colocated repos
Move detection from UI into provisioning context
Diffstat (limited to 'bundles')
2 files changed, 5 insertions, 38 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/AvailableIUsPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/AvailableIUsPage.java index 2c7496b90..852c587d7 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/AvailableIUsPage.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/AvailableIUsPage.java @@ -568,10 +568,6 @@ public class AvailableIUsPage extends ProvisioningWizardPage implements ISelecta if (resolveAllCheckbox.getSelection()) return new ProvisioningContext(getProvisioningUI().getSession().getProvisioningAgent()); // Use the contents of the combo to determine the context - ProvisioningContext context = repoSelector.getProvisioningContext(); - // This should really be a property value retrieved by API - // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=303258 - context.setProperty("org.eclipse.equinox.p2.operations.customContext", Boolean.toString(true)); //$NON-NLS-1$ - return context; + return repoSelector.getProvisioningContext(); } } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java index bf441018a..90035f8b3 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java @@ -20,11 +20,10 @@ import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.ui.*; import org.eclipse.equinox.internal.p2.ui.query.IUViewQueryContext; import org.eclipse.equinox.internal.provisional.p2.repository.RepositoryEvent; -import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.engine.ProvisioningContext; import org.eclipse.equinox.p2.operations.RepositoryTracker; -import org.eclipse.equinox.p2.repository.*; -import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; +import org.eclipse.equinox.p2.repository.IRepository; +import org.eclipse.equinox.p2.repository.IRepositoryManager; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; import org.eclipse.equinox.p2.ui.ProvisioningUI; import org.eclipse.jface.action.Action; @@ -571,44 +570,16 @@ public class RepositorySelectionGroup { if (locals.length > 0 && siteSel == repoCombo.getItemCount() - 1) { ProvisioningContext context = new ProvisioningContext(ui.getSession().getProvisioningAgent()); context.setMetadataRepositories(locals); - setArtifactRepositories(context, locals); + context.setArtifactRepositories(locals); return context; } // A single site is selected. ProvisioningContext context = new ProvisioningContext(ui.getSession().getProvisioningAgent()); context.setMetadataRepositories(new URI[] {comboRepos[siteSel]}); - setArtifactRepositories(context, (new URI[] {comboRepos[siteSel]})); + context.setArtifactRepositories(new URI[] {comboRepos[siteSel]}); return context; } - private void setArtifactRepositories(ProvisioningContext context, URI[] metadataRepos) { - ArrayList<URI> list = new ArrayList<URI>(metadataRepos.length); - IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ui.getSession().getProvisioningAgent().getService(IMetadataRepositoryManager.SERVICE_NAME); - if (manager == null) - return; - - for (int i = 0; i < metadataRepos.length; i++) { - // first assume a colocated artifact repository - list.add(metadataRepos[i]); - // Load the repository so that we can get its references. - // Since this method is only called when the repositories are selected, we can safely - // assume that the repo has already been loaded (so this is fast). - IMetadataRepository repository; - try { - repository = manager.loadRepository(metadataRepos[i], new NullProgressMonitor()); - Collection<IRepositoryReference> references = repository.getReferences(); - for (IRepositoryReference ref : references) { - if (ref.getType() == IRepository.TYPE_ARTIFACT && (ref.getOptions() | IRepository.ENABLED) != 0) { - list.add(ref.getLocation()); - } - } - } catch (ProvisionException e) { - // ignore, this will have been reported elsewhere. - } - } - context.setArtifactRepositories(list.toArray(new URI[list.size()])); - } - void repoComboSelectionChanged() { int repoChoice = -1; URI repoLocation = null; |