You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2009/01/05 18:03:05 UTC

svn commit: r731619 - in /ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse: ./ src/java/org/apache/ivyde/eclipse/cpcontainer/ src/java/org/apache/ivyde/eclipse/ui/preferences/

Author: hibou
Date: Mon Jan  5 09:03:04 2009
New Revision: 731619

URL: http://svn.apache.org/viewvc?rev=731619&view=rev
Log:
IVYDE-74:
 - option added to control what to do on startup

Modified:
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/CHANGES.txt
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyPreferencePage.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/CHANGES.txt?rev=731619&r1=731618&r2=731619&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/CHANGES.txt (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/CHANGES.txt Mon Jan  5 09:03:04 2009
@@ -7,6 +7,7 @@
 - NEW: Export IVY_HOME as a classpath variable (IVYDE-141)
 - NEW: Support variables in ivyconf.xml (IVYDE-13) (thanks to Will Gorman)
 - NEW: Allow to manually reload the settings (IVYDE-26)
+- NEW: Allow to not trigger full resolve at startup (IVYDE-74)
 
 - FIX: When migrating from ivyde alpha to ivyde beta eclipse is throwing NPE at startup (IVYDE-136) (thanks to Daniel Becheanu)
 - FIX: The retrieve configuration doesn't support '*' as accepted types (IVYDE-137) (thanks to Daniel Becheanu)

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java?rev=731619&r1=731618&r2=731619&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java Mon Jan  5 09:03:04 2009
@@ -650,7 +650,7 @@
 
     public boolean getInheritedLoadSettingsOnDemandPath() {
         if (!isSettingsSpecific) {
-            return IvyPlugin.getPreferenceStoreHelper().isLoadSettingsOnDemand();
+            return IvyPlugin.getPreferenceStoreHelper().getLoadSettingsOnDemand();
         }
         return loadSettingsOnDemand;
     }

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java?rev=731619&r1=731618&r2=731619&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java Mon Jan  5 09:03:04 2009
@@ -19,6 +19,7 @@
 
 import org.apache.ivyde.eclipse.IvyPlugin;
 import org.apache.ivyde.eclipse.cpcontainer.fragmentinfo.IPackageFragmentExtraInfo;
+import org.apache.ivyde.eclipse.ui.preferences.IvyDEPreferenceStoreHelper;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
@@ -37,6 +38,12 @@
  */
 public class IvyClasspathInitializer extends ClasspathContainerInitializer {
 
+    public static final int ON_STARTUP_NOTHING = 0;
+
+    public static final int ON_STARTUP_REFRESH = 1;
+
+    public static final int ON_STARTUP_RESOLVE = 2;
+
     /**
      * Initialize the container with the "persisted" class path entries, and then schedule the
      * refresh
@@ -56,19 +63,36 @@
             }
 
             try {
+                IvyClasspathContainer ivycp;
+
                 if (container == null) {
-                    container = new IvyClasspathContainer(project, containerPath,
+                    ivycp = new IvyClasspathContainer(project, containerPath,
                             new IClasspathEntry[0]);
                 } else if (!(container instanceof IvyClasspathContainer)) {
                     // this might be the persisted one : reuse the persisted entries
-                    container = new IvyClasspathContainer(project, containerPath, container
+                    ivycp = new IvyClasspathContainer(project, containerPath, container
                             .getClasspathEntries());
+                } else {
+                    ivycp = (IvyClasspathContainer) container;
                 }
+
                 JavaCore.setClasspathContainer(containerPath, new IJavaProject[] {project},
-                    new IClasspathContainer[] {container}, null);
+                    new IClasspathContainer[] {ivycp}, null);
+
+                IvyDEPreferenceStoreHelper prefHelper = IvyPlugin.getPreferenceStoreHelper();
+                boolean refresh = true;
+
+                // if we have a non ivy cp, it means Eclipse is starting
+                // maybe we don't want to trigger the resolve
+                if (container != null && !(container instanceof IvyClasspathContainer)) {
+                    if (prefHelper.getResolveOnStartup() == ON_STARTUP_NOTHING) {
+                        return;
+                    }
+                    refresh = prefHelper.getResolveOnStartup() == ON_STARTUP_REFRESH;
+                }
 
                 // now refresh the container to be synchronized with the ivy.xml
-                ((IvyClasspathContainer) container).launchResolve(false, false, null);
+                ivycp.launchResolve(refresh, false, null);
             } catch (Exception ex) {
                 IStatus status = new Status(IStatus.ERROR, IvyPlugin.ID, IStatus.OK,
                         "Unable to set container for " + containerPath.toString(), ex);

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java?rev=731619&r1=731618&r2=731619&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java Mon Jan  5 09:03:04 2009
@@ -439,7 +439,7 @@
         } else {
             settingsProjectSpecificButton.setSelection(false);
             settingsEditor.init(helper.getIvySettingsPath(), helper.getPropertyFiles(), helper
-                    .isLoadSettingsOnDemand());
+                    .getLoadSettingsOnDemand());
         }
 
         if (conf.isRetrieveProjectSpecific()) {

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java?rev=731619&r1=731618&r2=731619&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyDEPreferenceStoreHelper.java Mon Jan  5 09:03:04 2009
@@ -59,6 +59,8 @@
 
     public static final boolean DEFAULT_LOAD_SETTINGS_ON_DEMAND = false;
 
+    public static final int DEFAULT_RESOLVE_ON_STARTUP = 1;
+
     private final IPreferenceStore prefStore;
 
     public IvyDEPreferenceStoreHelper(IPreferenceStore prefStore) {
@@ -103,6 +105,7 @@
         prefStore.setDefault(PreferenceConstants.PROPERTY_FILES, DEFAULT_PROPERTY_FILES);
         prefStore.setDefault(PreferenceConstants.LOAD_SETTINGS_ON_DEMAND,
             DEFAULT_LOAD_SETTINGS_ON_DEMAND);
+        prefStore.setDefault(PreferenceConstants.RESOLVE_ON_STARTUP, DEFAULT_RESOLVE_ON_STARTUP);
     }
 
     public String getIvyOrg() {
@@ -253,7 +256,7 @@
         prefStore.setValue(PreferenceConstants.PROPERTY_FILES, IvyClasspathUtil.concat(files));
     }
 
-    public boolean isLoadSettingsOnDemand() {
+    public boolean getLoadSettingsOnDemand() {
         return prefStore.getBoolean(PreferenceConstants.LOAD_SETTINGS_ON_DEMAND);
     }
 
@@ -261,4 +264,12 @@
         prefStore.setValue(PreferenceConstants.LOAD_SETTINGS_ON_DEMAND, onDemand);
     }
 
+    public int getResolveOnStartup() {
+        return prefStore.getInt(PreferenceConstants.RESOLVE_ON_STARTUP);
+    }
+
+    public void setResolveOnStartup(int resolveOnStartup) {
+        prefStore.setValue(PreferenceConstants.RESOLVE_ON_STARTUP, resolveOnStartup);
+    }
+
 }

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyPreferencePage.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyPreferencePage.java?rev=731619&r1=731618&r2=731619&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyPreferencePage.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/IvyPreferencePage.java Mon Jan  5 09:03:04 2009
@@ -19,11 +19,14 @@
 
 import org.apache.ivy.Ivy;
 import org.apache.ivyde.eclipse.IvyPlugin;
+import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathInitializer;
 import org.apache.ivyde.eclipse.ui.AcceptedSuffixesTypesComposite;
 import org.apache.ivyde.eclipse.ui.RetrieveComposite;
 import org.apache.ivyde.eclipse.ui.SettingsEditor;
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -66,6 +69,12 @@
 
     private Text organizationUrlText;
 
+    private Button refreshOnStartupButton;
+
+    private Button resolveOnStartupButton;
+
+    private Button doNothingButton;
+
     public IvyPreferencePage() {
         setPreferenceStore(IvyPlugin.getDefault().getPreferenceStore());
         Object ivydeVersion = IvyPlugin.getDefault().getBundle().getHeaders().get(
@@ -88,6 +97,25 @@
         Label horizontalLine = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
         horizontalLine.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
 
+        Group startupGroup = new Group(composite, SWT.NONE);
+        startupGroup.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+        startupGroup.setLayout(new GridLayout());
+        startupGroup.setText("On Eclipse startup");
+
+        doNothingButton = new Button(startupGroup, SWT.RADIO);
+        doNothingButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+        doNothingButton.setText("Do nothing");
+
+        refreshOnStartupButton = new Button(startupGroup, SWT.RADIO);
+        refreshOnStartupButton
+                .setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+        refreshOnStartupButton.setText("Trigger refresh");
+
+        resolveOnStartupButton = new Button(startupGroup, SWT.RADIO);
+        resolveOnStartupButton
+                .setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+        resolveOnStartupButton.setText("Trigger resolve");
+
         Group settingsGroup = new Group(composite, SWT.NONE);
         settingsGroup.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
         settingsGroup.setLayout(new GridLayout());
@@ -156,8 +184,19 @@
 
     private void initPreferences() {
         IvyDEPreferenceStoreHelper helper = IvyPlugin.getPreferenceStoreHelper();
+        switch (helper.getResolveOnStartup()) {
+            case IvyClasspathInitializer.ON_STARTUP_NOTHING:
+                doNothingButton.setSelection(true);
+                break;
+            case IvyClasspathInitializer.ON_STARTUP_REFRESH:
+                refreshOnStartupButton.setSelection(true);
+                break;
+            case IvyClasspathInitializer.ON_STARTUP_RESOLVE:
+                resolveOnStartupButton.setSelection(true);
+                break;
+        }
         settingsEditor.init(helper.getIvySettingsPath(), helper.getPropertyFiles(), helper
-                .isLoadSettingsOnDemand());
+                .getLoadSettingsOnDemand());
         retrieveComposite.init(helper.getDoRetrieve(), helper.getRetrievePattern(), helper
                 .getRetrieveConfs(), helper.getRetrieveTypes(), helper.getRetrieveSync());
         resolveInWorkspaceCheck.setSelection(helper.isResolveInWorkspace());
@@ -171,6 +210,13 @@
     public boolean performOk() {
         IvyDEPreferenceStoreHelper helper = IvyPlugin.getPreferenceStoreHelper();
         helper.setIvySettingsPath(settingsEditor.getSettingsPath());
+        if (doNothingButton.getSelection()) {
+            helper.setResolveOnStartup(IvyClasspathInitializer.ON_STARTUP_NOTHING);
+        } else if (refreshOnStartupButton.getSelection()) {
+            helper.setResolveOnStartup(IvyClasspathInitializer.ON_STARTUP_REFRESH);
+        } else {
+            helper.setResolveOnStartup(IvyClasspathInitializer.ON_STARTUP_RESOLVE);
+        }
         helper.setPropertyFiles(settingsEditor.getPropertyFiles());
         helper.setDoRetrieve(retrieveComposite.isRetrieveEnabled());
         helper.setRetrievePattern(retrieveComposite.getRetrievePattern());
@@ -190,6 +236,17 @@
     }
 
     protected void performDefaults() {
+        switch (IvyDEPreferenceStoreHelper.DEFAULT_RESOLVE_ON_STARTUP) {
+            case IvyClasspathInitializer.ON_STARTUP_NOTHING:
+                doNothingButton.setSelection(true);
+                break;
+            case IvyClasspathInitializer.ON_STARTUP_REFRESH:
+                refreshOnStartupButton.setSelection(true);
+                break;
+            case IvyClasspathInitializer.ON_STARTUP_RESOLVE:
+                resolveOnStartupButton.setSelection(true);
+                break;
+        }
         settingsEditor.init(IvyDEPreferenceStoreHelper.DEFAULT_IVYSETTINGS_PATH,
             IvyDEPreferenceStoreHelper.DEFAULT_PROPERTY_FILES,
             IvyDEPreferenceStoreHelper.DEFAULT_LOAD_SETTINGS_ON_DEMAND);

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java?rev=731619&r1=731618&r2=731619&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/preferences/PreferenceConstants.java Mon Jan  5 09:03:04 2009
@@ -70,4 +70,6 @@
 
     public static final String LOAD_SETTINGS_ON_DEMAND = "loadSettingsOnDemand";
 
+    public static final String RESOLVE_ON_STARTUP = "resolveOnStartup";
+
 }