diff options
Diffstat (limited to 'bundles')
2 files changed, 27 insertions, 14 deletions
diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/AbstractApplication.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/AbstractApplication.java index d02c1b4ce..dccd26a45 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/AbstractApplication.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/AbstractApplication.java @@ -118,6 +118,14 @@ public abstract class AbstractApplication { throw new ProvisionException(Messages.AbstractApplication_no_valid_destinations); } + public IMetadataRepository getDestinationMetadataRepository() { + return destinationMetadataRepository; + } + + public IArtifactRepository getDestinationArtifactRepository() { + return destinationArtifactRepository; + } + protected IMetadataRepository initializeDestination(RepositoryDescriptor toInit, IMetadataRepositoryManager mgr) throws ProvisionException { try { IMetadataRepository repository = addRepository(mgr, toInit.getRepoLocation(), IRepositoryManager.REPOSITORY_HINT_MODIFIABLE, null); diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/RemoveIUTask.java b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/RemoveIUTask.java index ccf1032b1..ed4749ad2 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/RemoveIUTask.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/RemoveIUTask.java @@ -27,20 +27,19 @@ import org.eclipse.osgi.util.NLS; public class RemoveIUTask extends AbstractRepositoryTask { - public RemoveIUTask() { - application = new AbstractApplication() { - public IStatus run(IProgressMonitor monitor) { - return null; - } + protected static class RemoveIUApplication extends AbstractApplication { + //Only need the application to reuse super's repo management. + public IStatus run(IProgressMonitor monitor) { + return null; + } - public IMetadataRepository getCompositeMetadataRepository() { - return destinationMetadataRepository; - } + public void finalizeRepos() throws ProvisionException { + super.finalizeRepositories(); + } + } - public IArtifactRepository getCompositeArtifactRepository() { - return destinationArtifactRepository; - } - }; + public RemoveIUTask() { + this.application = new RemoveIUApplication(); } public void execute() throws BuildException { @@ -52,8 +51,8 @@ public class RemoveIUTask extends AbstractRepositoryTask { if (application.getCompositeMetadataRepository() == null) throw new BuildException(Messages.AbstractApplication_no_valid_destinations); //need a repo - IMetadataRepository repository = application.getCompositeMetadataRepository(); - IArtifactRepository artifacts = application.getCompositeArtifactRepository(); + IMetadataRepository repository = application.getDestinationMetadataRepository(); + IArtifactRepository artifacts = application.getDestinationArtifactRepository(); for (Iterator iter = iuTasks.iterator(); iter.hasNext();) { IUDescription iu = (IUDescription) iter.next(); @@ -76,6 +75,12 @@ public class RemoveIUTask extends AbstractRepositoryTask { } } catch (ProvisionException e) { throw new BuildException(e); + } finally { + try { + ((RemoveIUApplication) application).finalizeRepos(); + } catch (ProvisionException e) { + throw new BuildException(e); + } } } } |