Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Chandra2015-04-22 17:23:12 +0000
committerVikas Chandra2015-04-22 17:23:12 +0000
commit4197cbedb71462b370f67dae5087e627eb0ea99e (patch)
tree12afbfe4654685d7b242e742c082c47ceaff07fb
parent4bc4f382faf9a0dbad75d03c4a8d70dda8104c18 (diff)
downloadeclipse.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.java3
-rw-r--r--ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java27
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

Back to the top