diff options
author | Vikas Chandra | 2015-04-22 17:23:12 +0000 |
---|---|---|
committer | Vikas Chandra | 2015-04-22 17:23:12 +0000 |
commit | 4197cbedb71462b370f67dae5087e627eb0ea99e (patch) | |
tree | 12afbfe4654685d7b242e742c082c47ceaff07fb | |
parent | 4bc4f382faf9a0dbad75d03c4a8d70dda8104c18 (diff) | |
download | eclipse.pde.ui-4197cbedb71462b370f67dae5087e627eb0ea99e.tar.gz eclipse.pde.ui-4197cbedb71462b370f67dae5087e627eb0ea99e.tar.xz eclipse.pde.ui-4197cbedb71462b370f67dae5087e627eb0ea99e.zip |
Bug 462288 - [target] "Resetting target platform information: Reading
plug-ins" is always performed at startup
-rw-r--r-- | ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java | 3 | ||||
-rw-r--r-- | ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java | 27 |
2 files changed, 29 insertions, 1 deletions
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java index 8475383999..50b9d63494 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java @@ -26,6 +26,7 @@ import org.eclipse.pde.core.build.IBuild; import org.eclipse.pde.core.build.IBuildEntry; import org.eclipse.pde.core.plugin.*; import org.eclipse.pde.core.target.*; +import org.eclipse.pde.internal.core.target.P2TargetUtils; public class PluginModelManager implements IModelProviderListener { private static final String fExternalPluginListFile = "SavedExternalPluginList.txt"; //$NON-NLS-1$ @@ -525,7 +526,7 @@ public class PluginModelManager implements IModelProviderListener { } catch (CoreException e) { PDECore.log(e); } - if (unresolvedRepoBasedtarget != null) { + if (unresolvedRepoBasedtarget != null && !P2TargetUtils.isProfileValid(unresolvedRepoBasedtarget)) { //Workspace target contains unresolved p2 repositories, //set empty fState, fExternalManager, fEntries- scheduling target platform resolve fState = new PDEState(new URL[0], true, true, subMon); diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java index 3103eae94c..94fef7003e 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java @@ -640,6 +640,33 @@ public class P2TargetUtils { return false; } } + + /** + * Return whether or not the given target's matching profile is in sync + * @param target the target to check + * @return whether or not the target has been resolved at the p2 level + */ + public static boolean isProfileValid(ITargetDefinition target) { + P2TargetUtils synchronizer = getSynchronizer(target); + if (synchronizer == null) + return false; + try { + synchronizer.updateProfileFromRegistry(target); + return synchronizer.checkProfile(target); + } catch (CoreException e) { + return false; + } + } + + + private void updateProfileFromRegistry(ITargetDefinition target) { + if (fProfile == null) { + try { + fProfile = getProfileRegistry().getProfile(getProfileId(target)); + } catch (CoreException e) { + } + } + } /** * Get the synchronizer to use for the given target. If there is already one on a |