diff options
author | Ed Merks | 2015-04-14 14:04:43 +0000 |
---|---|---|
committer | Ed Merks | 2015-04-14 14:04:43 +0000 |
commit | 73371039f786a6ba846b4144b26a44437f1c7c25 (patch) | |
tree | a6d6a3298a8320826f9b4d5e804332211cfe9901 /plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal | |
parent | e7bae7da6f0bc4fdd8eda44ccb538e1a98206ab4 (diff) | |
download | org.eclipse.oomph-73371039f786a6ba846b4144b26a44437f1c7c25.tar.gz org.eclipse.oomph-73371039f786a6ba846b4144b26a44437f1c7c25.tar.xz org.eclipse.oomph-73371039f786a6ba846b4144b26a44437f1c7c25.zip |
[458225] Improved cachingTransport strategy
https://bugs.eclipse.org/bugs/show_bug.cgi?id=458225
Diffstat (limited to 'plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal')
2 files changed, 30 insertions, 0 deletions
diff --git a/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletContainer.java b/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletContainer.java index 670b6bbd1..b662166ee 100644 --- a/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletContainer.java +++ b/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletContainer.java @@ -20,6 +20,7 @@ import org.eclipse.oomph.p2.core.P2Util; import org.eclipse.oomph.p2.core.Profile; import org.eclipse.oomph.p2.core.ProfileTransaction; import org.eclipse.oomph.p2.core.ProfileTransaction.CommitContext; +import org.eclipse.oomph.p2.internal.core.CacheUsageConfirmer; import org.eclipse.oomph.resources.SourceLocator; import org.eclipse.oomph.targlets.FeatureGenerator; import org.eclipse.oomph.targlets.IUGenerator; @@ -692,8 +693,17 @@ public class TargletContainer extends AbstractBundleContainer implements ITargle ProfileTransaction transaction = profile.change().setRemoveExistingInstallableUnits(true); transaction.setMirrors(MIRRORS.get() == Boolean.TRUE); + IProvisioningAgent provisioningAgent = profile.getAgent().getProvisioningAgent(); + CacheUsageConfirmer cacheUsageConfirmer = TargletsCorePlugin.INSTANCE.getCacheUsageConfirmer(); + CacheUsageConfirmer oldCacheUsageConfirmer = (CacheUsageConfirmer)provisioningAgent.getService(CacheUsageConfirmer.SERVICE_NAME); + try { + if (cacheUsageConfirmer != null) + { + provisioningAgent.registerService(CacheUsageConfirmer.SERVICE_NAME, cacheUsageConfirmer); + } + ProfileDefinition profileDefinition = transaction.getProfileDefinition(); profileDefinition.setIncludeSourceBundles(isIncludeSources()); @@ -746,6 +756,13 @@ public class TargletContainer extends AbstractBundleContainer implements ITargle TargletsCorePlugin.INSTANCE.coreException(t); } + finally + { + if (cacheUsageConfirmer != null && oldCacheUsageConfirmer != null) + { + provisioningAgent.registerService(CacheUsageConfirmer.SERVICE_NAME, oldCacheUsageConfirmer); + } + } progress.done(); return profile; diff --git a/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletsCorePlugin.java b/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletsCorePlugin.java index 7fc569be3..eee39ea93 100644 --- a/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletsCorePlugin.java +++ b/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/TargletsCorePlugin.java @@ -10,6 +10,7 @@ */ package org.eclipse.oomph.targlets.internal.core; +import org.eclipse.oomph.p2.internal.core.CacheUsageConfirmer; import org.eclipse.oomph.util.OomphPlugin; import org.eclipse.emf.common.util.ResourceLocator; @@ -25,6 +26,8 @@ public final class TargletsCorePlugin extends OomphPlugin private static Implementation plugin; + private CacheUsageConfirmer cacheUsageConfirmer; + public TargletsCorePlugin() { super(new ResourceLocator[] {}); @@ -36,6 +39,16 @@ public final class TargletsCorePlugin extends OomphPlugin return plugin; } + public CacheUsageConfirmer getCacheUsageConfirmer() + { + return cacheUsageConfirmer; + } + + public void setCacheUsageConfirmer(CacheUsageConfirmer cacheUsageConfirmer) + { + this.cacheUsageConfirmer = cacheUsageConfirmer; + } + /** * @author Eike Stepper */ |