diff options
author | Szymon Brandys | 2011-01-14 11:11:58 +0000 |
---|---|---|
committer | Szymon Brandys | 2011-01-14 11:11:58 +0000 |
commit | f2c060e44a839010926c26038448d9beb0d895cd (patch) | |
tree | defc21d070650a5126373cf49d7b36fe656456f1 /bundles/org.eclipse.jsch.core | |
parent | 00004077ddef8cf94a0172cd1d0febf774a8cbd7 (diff) | |
download | eclipse.platform.team-f2c060e44a839010926c26038448d9beb0d895cd.tar.gz eclipse.platform.team-f2c060e44a839010926c26038448d9beb0d895cd.tar.xz eclipse.platform.team-f2c060e44a839010926c26038448d9beb0d895cd.zip |
bug 294925 - Wrong Default SSH Directory (complementary patch)
Diffstat (limited to 'bundles/org.eclipse.jsch.core')
-rw-r--r-- | bundles/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/PreferenceInitializer.java | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/bundles/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/PreferenceInitializer.java b/bundles/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/PreferenceInitializer.java index d8337b443..a243d8712 100644 --- a/bundles/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/PreferenceInitializer.java +++ b/bundles/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/PreferenceInitializer.java @@ -25,9 +25,14 @@ import org.osgi.service.prefs.BackingStoreException; public class PreferenceInitializer extends AbstractPreferenceInitializer{ public static String SSH_HOME_DEFAULT=null; + + public static String SSH_OLD_WIN32_HOME_DEFAULT=null; + static{ SSH_HOME_DEFAULT=System.getProperty(IConstants.SYSTEM_PROPERTY_USER_HOME); if(SSH_HOME_DEFAULT!=null){ + SSH_OLD_WIN32_HOME_DEFAULT=SSH_HOME_DEFAULT+File.separator + +IConstants.SSH_OLD_DEFAULT_WIN32_HOME; SSH_HOME_DEFAULT=SSH_HOME_DEFAULT+File.separator +IConstants.SSH_DEFAULT_HOME; } @@ -39,8 +44,8 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer{ if(SSH_HOME_DEFAULT!=null) defaultNode.put(IConstants.KEY_SSH2HOME, SSH_HOME_DEFAULT); defaultNode.put(IConstants.KEY_PRIVATEKEY, IConstants.PRIVATE_KEYS_DEFAULT); - Utils.migrateSSH2Preferences(); changeDefaultWin32SshHome(); + Utils.migrateSSH2Preferences(); } private void changeDefaultWin32SshHome(){ @@ -49,29 +54,32 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer{ IEclipsePreferences preferences=InstanceScope.INSTANCE .getNode(JSchCorePlugin.ID); - boolean verified=preferences.getBoolean( + + // flag to check if the win32 default ssh home was alrady changed + boolean defaultWin32SshHomeChanged=preferences.getBoolean( IConstants.PREF_HAS_CHANGED_DEFAULT_WIN32_SSH_HOME, false); - if(!verified){ + + // flag to check if it is an existing workspace + boolean oldWorkspace=preferences.getBoolean( + IConstants.PREF_HAS_MIGRATED_SSH2_PREFS, false); + + if(!defaultWin32SshHomeChanged){ if(null==preferences.get(IConstants.KEY_SSH2HOME, null)){ - String userHome=System - .getProperty(IConstants.SYSTEM_PROPERTY_USER_HOME); - if(userHome!=null){ - String oldSshHome=userHome+File.separator - +IConstants.SSH_OLD_DEFAULT_WIN32_HOME; - File file=new File(oldSshHome); - if(file.exists()) - preferences.put(IConstants.KEY_SSH2HOME, oldSshHome); - } - preferences.putBoolean( - IConstants.PREF_HAS_CHANGED_DEFAULT_WIN32_SSH_HOME, true); - try{ - preferences.flush(); - } - catch(BackingStoreException e){ - JSchCorePlugin.log(new Status(IStatus.INFO, JSchCorePlugin.ID, - "Could not flush preferences.", e)); //$NON-NLS-1$ + if(SSH_OLD_WIN32_HOME_DEFAULT!=null + &&new File(SSH_OLD_WIN32_HOME_DEFAULT).exists()&&oldWorkspace){ + preferences.put(IConstants.KEY_SSH2HOME, SSH_OLD_WIN32_HOME_DEFAULT); } } + + preferences.putBoolean( + IConstants.PREF_HAS_CHANGED_DEFAULT_WIN32_SSH_HOME, true); + try{ + preferences.flush(); + } + catch(BackingStoreException e){ + JSchCorePlugin.log(new Status(IStatus.INFO, JSchCorePlugin.ID, + "Could not flush preferences.", e)); //$NON-NLS-1$ + } } } } |