Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 80840 Details for
Bug 200634
make "Save Password" to keyring optional, similar to Team/CVS approach
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
new version of new patch
patch200634New.txt (text/plain), 54.38 KB, created by
Frank Becker
on 2007-10-21 15:59:57 EDT
(
hide
)
Description:
new version of new patch
Filename:
MIME Type:
Creator:
Frank Becker
Created:
2007-10-21 15:59:57 EDT
Size:
54.38 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.jira.ui >Index: src/org/eclipse/mylyn/internal/jira/ui/wizards/JiraRepositorySettingsPage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.jira.ui/src/org/eclipse/mylyn/internal/jira/ui/wizards/JiraRepositorySettingsPage.java,v >retrieving revision 1.34 >diff -u -r1.34 JiraRepositorySettingsPage.java >--- src/org/eclipse/mylyn/internal/jira/ui/wizards/JiraRepositorySettingsPage.java 17 Sep 2007 17:56:05 -0000 1.34 >+++ src/org/eclipse/mylyn/internal/jira/ui/wizards/JiraRepositorySettingsPage.java 21 Oct 2007 19:51:12 -0000 >@@ -78,7 +78,7 @@ > if (repository != null) { > this.characterEncodingValidated = JiraUtils.getCharacterEncodingValidated(repository); > } >- >+ > serverUrlCombo.addSelectionListener(new SelectionAdapter() { > @Override > public void widgetSelected(SelectionEvent e) { >@@ -124,9 +124,11 @@ > > @Override > public void updateProperties(TaskRepository repository) { >- JiraUtils.setCompression(repository, compressionButton.getSelection()); >- if (characterEncodingValidated) { >- JiraUtils.setCharacterEncodingValidated(repository, true); >+ if (needsAdvanced()) { >+ JiraUtils.setCompression(repository, compressionButton.getSelection()); >+ if (characterEncodingValidated) { >+ JiraUtils.setCharacterEncodingValidated(repository, true); >+ } > } > } > >@@ -143,7 +145,7 @@ > if (serverInfo.getWebBaseUrl() != null) { > urls.add(serverInfo.getWebBaseUrl()); > } >- >+ > UrlSelectionDialog dialog = new UrlSelectionDialog(getShell(), urls.toArray(new String[0])); > dialog.setSelectedUrl(serverInfo.getBaseUrl()); > int result = dialog.open(); >@@ -151,24 +153,29 @@ > setUrl(dialog.getSelectedUrl()); > } > } >- >+ > if (serverInfo.getCharacterEncoding() != null) { > setEncoding(serverInfo.getCharacterEncoding()); > } else { > setEncoding(TaskRepository.DEFAULT_CHARACTER_ENCODING); >- >- jiraValidator.setStatus(new Status(IStatus.WARNING, JiraUiPlugin.PLUGIN_ID, IStatus.OK, >- "Authentication credentials are valid. Note: The character encoding could not be determined, verify 'Additional Settings'.", null)); >+ >+ jiraValidator.setStatus(new Status( >+ IStatus.WARNING, >+ JiraUiPlugin.PLUGIN_ID, >+ IStatus.OK, >+ "Authentication credentials are valid. Note: The character encoding could not be determined, verify 'Additional Settings'.", >+ null)); > } >- >+ > if (serverInfo.isInsecureRedirect()) { > jiraValidator.setStatus(new Status(IStatus.WARNING, JiraUiPlugin.PLUGIN_ID, IStatus.OK, >- "Authentication credentials are valid. Note: The server redirected to an insecure location.", null)); >+ "Authentication credentials are valid. Note: The server redirected to an insecure location.", >+ null)); > } >- >- characterEncodingValidated = true; >+ >+ characterEncodingValidated = true; > } >- >+ > super.applyValidatorResult(validator); > > } >@@ -176,7 +183,7 @@ > private class JiraValidator extends Validator { > > final TaskRepository repository; >- >+ > private ServerInfo serverInfo; > > public JiraValidator(TaskRepository repository) { >@@ -186,11 +193,11 @@ > public ServerInfo getServerInfo() { > return serverInfo; > } >- >+ > public String getRepositoryUrl() { > return repository.getUrl(); > } >- >+ > @Override > public void run(IProgressMonitor monitor) throws CoreException { > try { >@@ -222,18 +229,18 @@ > > protected UrlSelectionDialog(Shell parentShell, String[] locations) { > super(parentShell); >- >+ > if (locations == null || locations.length < 2) { > throw new IllegalArgumentException(); > } >- >+ > this.locations = locations; > } >- >+ > @Override > protected Control createDialogArea(Composite parent) { > getShell().setText("Select repository location"); >- >+ > Composite composite = new Composite(parent, SWT.NONE); > GridLayout layout = new GridLayout(); > layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); >@@ -246,7 +253,7 @@ > > Label label = new Label(composite, SWT.NONE); > label.setText("The repository location reported by the server does not match the provided location."); >- >+ > final List<Button> buttons = new ArrayList<Button>(locations.length); > > if (getSelectedUrl() == null) { >@@ -266,7 +273,7 @@ > keepLocationButton.setData(locations[0]); > keepLocationButton.setSelection(getSelectedUrl().equals(locations[0])); > buttons.add(keepLocationButton); >- >+ > SelectionListener listener = new SelectionListener() { > public void widgetDefaultSelected(SelectionEvent e) { > widgetSelected(e); >@@ -279,19 +286,19 @@ > button.setSelection(false); > } > } >- setSelectedUrl((String)e.item.getData()); >+ setSelectedUrl((String) e.item.getData()); > } > } > > }; >- >+ > for (Button button : buttons) { > button.addSelectionListener(listener); > } >- >+ > return composite; > } >- >+ > public void setSelectedUrl(String selectedUrl) { > this.selectedUrl = selectedUrl; > } >@@ -299,7 +306,7 @@ > public String getSelectedUrl() { > return selectedUrl; > } >- >+ > } >- >+ > } >#P org.eclipse.mylyn.bugzilla.ui >Index: src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java,v >retrieving revision 1.72 >diff -u -r1.72 BugzillaRepositorySettingsPage.java >--- src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java 16 Oct 2007 18:14:14 -0000 1.72 >+++ src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java 21 Oct 2007 19:51:23 -0000 >@@ -84,7 +84,7 @@ > private String platform = null; > > private String os = null; >- >+ > private Combo languageSettingCombo; > > public BugzillaRepositorySettingsPage(AbstractRepositoryConnectorUi repositoryUi) { >@@ -358,25 +358,26 @@ > > @Override > public void updateProperties(TaskRepository repository) { >- repository.setProperty(IBugzillaConstants.REPOSITORY_SETTING_SHORT_LOGIN, >- String.valueOf(cleanQAContact.getSelection())); >- repository.setProperty(IBugzillaConstants.BUGZILLA_LANGUAGE_SETTING, >- languageSettingCombo.getText()); >- >+ if (needsAdvanced()) { >+ repository.setProperty(IBugzillaConstants.REPOSITORY_SETTING_SHORT_LOGIN, >+ String.valueOf(cleanQAContact.getSelection())); >+ repository.setProperty(IBugzillaConstants.BUGZILLA_LANGUAGE_SETTING, languageSettingCombo.getText()); >+ > // if (cachedConfigButton.getSelection()) { > // repository.setProperty(IBugzillaConstants.PROPERTY_CONFIGTIMESTAMP, ""); > // } else { > // repository.setProperty(IBugzillaConstants.PROPERTY_CONFIGTIMESTAMP, > // IBugzillaConstants.TIMESTAMP_NOT_AVAILABLE); > // } >- if (!autodetectPlatformOS.getSelection()) { >- repository.setProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM, >- String.valueOf(defaultPlatformCombo.getItem(defaultPlatformCombo.getSelectionIndex()))); >- repository.setProperty(IBugzillaConstants.BUGZILLA_DEF_OS, >- String.valueOf(defaultOSCombo.getItem(defaultOSCombo.getSelectionIndex()))); >- } else { >- repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM); >- repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_OS); >+ if (!autodetectPlatformOS.getSelection()) { >+ repository.setProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM, >+ String.valueOf(defaultPlatformCombo.getItem(defaultPlatformCombo.getSelectionIndex()))); >+ repository.setProperty(IBugzillaConstants.BUGZILLA_DEF_OS, >+ String.valueOf(defaultOSCombo.getItem(defaultOSCombo.getSelectionIndex()))); >+ } else { >+ repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM); >+ repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_OS); >+ } > } > } > >#P org.eclipse.mylyn.web.tasks >Index: src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java,v >retrieving revision 1.7 >diff -u -r1.7 WebRepositorySettingsPage.java >--- src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java 15 Jul 2007 13:21:12 -0000 1.7 >+++ src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java 21 Oct 2007 19:51:28 -0000 >@@ -203,7 +203,8 @@ > } > > private void createAdvancedComposite(final Composite composite) { >- ExpandableComposite expComposite = toolkit.createExpandableComposite(composite, Section.TITLE_BAR | Section.COMPACT | Section.TWISTIE); >+ ExpandableComposite expComposite = toolkit.createExpandableComposite(composite, Section.TITLE_BAR >+ | Section.COMPACT | Section.TWISTIE); > expComposite.clientVerticalSpacing = 0; > GridData gridData_2 = new GridData(SWT.FILL, SWT.TOP, true, false); > gridData_2.horizontalIndent = -5; >@@ -326,35 +327,37 @@ > > @Override > public void updateProperties(TaskRepository repository) { >- repository.setProperty(WebRepositoryConnector.PROPERTY_TASK_URL, taskUrlText.getText()); >- repository.setProperty(WebRepositoryConnector.PROPERTY_TASK_CREATION_URL, newTaskText.getText()); >+ if (needsAdvanced()) { >+ repository.setProperty(WebRepositoryConnector.PROPERTY_TASK_URL, taskUrlText.getText()); >+ repository.setProperty(WebRepositoryConnector.PROPERTY_TASK_CREATION_URL, newTaskText.getText()); >+ >+ repository.setProperty(WebRepositoryConnector.PROPERTY_QUERY_URL, queryUrlText.getText()); >+ repository.setProperty(WebRepositoryConnector.PROPERTY_QUERY_REGEXP, queryPatternText.getText()); >+ repository.setProperty(WebRepositoryConnector.PROPERTY_QUERY_METHOD, getSelection(queryRequestMethod)); >+ >+ String loginRequestUrl = loginRequestUrlText.getText(); >+ repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_REQUEST_URL, loginRequestUrl); >+ if (loginRequestUrl.length() > 0) { >+ repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_REQUEST_METHOD, >+ getSelection(loginRequestMethod)); >+ } else { >+ repository.removeProperty(WebRepositoryConnector.PROPERTY_LOGIN_REQUEST_METHOD); >+ } >+ repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_FORM_URL, loginFormUrlText.getText()); >+ repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_TOKEN_REGEXP, loginTokenPatternText.getText()); > >- repository.setProperty(WebRepositoryConnector.PROPERTY_QUERY_URL, queryUrlText.getText()); >- repository.setProperty(WebRepositoryConnector.PROPERTY_QUERY_REGEXP, queryPatternText.getText()); >- repository.setProperty(WebRepositoryConnector.PROPERTY_QUERY_METHOD, getSelection(queryRequestMethod)); >- >- String loginRequestUrl = loginRequestUrlText.getText(); >- repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_REQUEST_URL, loginRequestUrl); >- if (loginRequestUrl.length() > 0) { >- repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_REQUEST_METHOD, >- getSelection(loginRequestMethod)); >- } else { >- repository.removeProperty(WebRepositoryConnector.PROPERTY_LOGIN_REQUEST_METHOD); >- } >- repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_FORM_URL, loginFormUrlText.getText()); >- repository.setProperty(WebRepositoryConnector.PROPERTY_LOGIN_TOKEN_REGEXP, loginTokenPatternText.getText()); >- >- if (oldProperties != null) { >- for (Map.Entry<String, String> e : oldProperties.entrySet()) { >- String key = e.getKey(); >- if (key.startsWith(WebRepositoryConnector.PARAM_PREFIX)) { >- repository.removeProperty(key); >+ if (oldProperties != null) { >+ for (Map.Entry<String, String> e : oldProperties.entrySet()) { >+ String key = e.getKey(); >+ if (key.startsWith(WebRepositoryConnector.PARAM_PREFIX)) { >+ repository.removeProperty(key); >+ } > } > } >- } > >- for (Map.Entry<String, String> e : parametersEditor.getParameters().entrySet()) { >- repository.setProperty(e.getKey(), e.getValue()); >+ for (Map.Entry<String, String> e : parametersEditor.getParameters().entrySet()) { >+ repository.setProperty(e.getKey(), e.getValue()); >+ } > } > } > >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java,v >retrieving revision 1.148 >diff -u -r1.148 TasksUiPlugin.java >--- src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java 18 Oct 2007 02:24:19 -0000 1.148 >+++ src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java 21 Oct 2007 19:51:36 -0000 >@@ -37,6 +37,7 @@ > import org.eclipse.jface.wizard.WizardDialog; > import org.eclipse.mylyn.context.core.ContextCorePlugin; > import org.eclipse.mylyn.internal.context.core.ContextPreferenceContstants; >+import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; > import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; > import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer; > import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager; >@@ -62,6 +63,7 @@ > import org.eclipse.mylyn.internal.tasks.ui.util.TaskListWriter; > import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiExtensionReader; > import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesView; >+import org.eclipse.mylyn.internal.tasks.ui.wizards.EditCredentialsWizard; > import org.eclipse.mylyn.internal.tasks.ui.wizards.EditRepositoryWizard; > import org.eclipse.mylyn.monitor.core.StatusHandler; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; >@@ -79,6 +81,7 @@ > import org.eclipse.mylyn.tasks.core.AbstractTask.PriorityLevel; > import org.eclipse.mylyn.tasks.core.AbstractTask.RepositoryTaskSyncState; > import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorFactory; >+import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositorySettingsPage; > import org.eclipse.mylyn.web.core.WebClientUtil; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.widgets.Shell; >@@ -1076,4 +1079,40 @@ > } > } > >+ public static void testAndSetMemoryOnlyPassword(TaskRepository repository) throws Exception { >+ AbstractRepositoryConnector connector = getRepositoryManager().getRepositoryConnector( >+ repository.getConnectorKind()); >+ boolean userManaged = true; >+ if (connector != null) { >+ userManaged = connector.isUserManaged(); >+ } >+ if (!repository.isAnonymous() && userManaged && !repository.isOffline() >+ && (!repository.isSavePassword() && repository.getCachedPassword() == null)) { >+ credentialsWizards(repository, "Please enter memoronly credentials."); >+ } >+ } >+ >+ private static void credentialsWizards(TaskRepository repository, String message) throws Exception { >+ if (AbstractRepositorySettingsPage.getSingle() != null) { >+ throw new Exception("AbstractRepositorySettingsPage alredy used"); >+ } >+ try { >+ EditCredentialsWizard wizard = new EditCredentialsWizard(repository); >+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); >+ if (shell != null && !shell.isDisposed()) { >+ WizardDialog dialog = new WizardDialog(shell, wizard); >+ dialog.create(); >+ dialog.setErrorMessage(message); >+ dialog.setBlockOnOpen(true); >+ if (dialog.open() == Dialog.CANCEL) { >+ dialog.close(); >+ StatusHandler.log("credentialsWizards canceled -> repository set offline " >+ + repository.getProperty(IRepositoryConstants.PROPERTY_LABEL), repository); >+ repository.setOffline(true); >+ } >+ } >+ } catch (Exception e) { >+ StatusHandler.fail(e, e.getMessage(), true); >+ } >+ } > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java,v >retrieving revision 1.20 >diff -u -r1.20 EditRepositoryWizard.java >--- src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java 26 Jun 2007 01:16:40 -0000 1.20 >+++ src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java 21 Oct 2007 19:51:30 -0000 >@@ -57,18 +57,24 @@ > repository.setVersion(abstractRepositorySettingsPage.getVersion()); > repository.setCharacterEncoding(abstractRepositorySettingsPage.getCharacterEncoding()); > repository.setAuthenticationCredentials(abstractRepositorySettingsPage.getUserName(), >- abstractRepositorySettingsPage.getPassword()); >+ abstractRepositorySettingsPage.getPassword(), abstractRepositorySettingsPage.getSavePassword()); >+ repository.setSavePassword(abstractRepositorySettingsPage.getSavePassword()); >+ > repository.setRepositoryLabel(abstractRepositorySettingsPage.getRepositoryLabel()); > repository.setAnonymous(abstractRepositorySettingsPage.isAnonymousAccess()); > repository.setHttpAuthenticationCredentials(abstractRepositorySettingsPage.getHttpAuthUserId(), >- abstractRepositorySettingsPage.getHttpAuthPassword()); >+ abstractRepositorySettingsPage.getHttpAuthPassword(), >+ abstractRepositorySettingsPage.getSaveHttpPassword()); >+ repository.setSaveHttpPassword(abstractRepositorySettingsPage.getSaveHttpPassword()); > > repository.setProperty(TaskRepository.PROXY_USEDEFAULT, > String.valueOf(abstractRepositorySettingsPage.getUseDefaultProxy())); > repository.setProperty(TaskRepository.PROXY_HOSTNAME, abstractRepositorySettingsPage.getProxyHostname()); > repository.setProperty(TaskRepository.PROXY_PORT, abstractRepositorySettingsPage.getProxyPort()); > repository.setProxyAuthenticationCredentials(abstractRepositorySettingsPage.getProxyUserName(), >- abstractRepositorySettingsPage.getProxyPassword()); >+ abstractRepositorySettingsPage.getProxyPassword(), >+ abstractRepositorySettingsPage.getSaveProxyPassword()); >+ repository.setSaveProxyPassword(abstractRepositorySettingsPage.getSaveProxyPassword()); > > abstractRepositorySettingsPage.updateProperties(repository); > TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChanged(repository); >@@ -99,4 +105,11 @@ > public TaskRepository getRepository() { > return repository; > } >+ >+ @Override >+ public void dispose() { >+ // ignore >+ super.dispose(); >+ abstractRepositorySettingsPage.dispose(); >+ } > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/ScheduledTaskListSynchJob.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduledTaskListSynchJob.java,v >retrieving revision 1.26 >diff -u -r1.26 ScheduledTaskListSynchJob.java >--- src/org/eclipse/mylyn/internal/tasks/ui/ScheduledTaskListSynchJob.java 6 Sep 2007 03:19:29 -0000 1.26 >+++ src/org/eclipse/mylyn/internal/tasks/ui/ScheduledTaskListSynchJob.java 21 Oct 2007 19:51:30 -0000 >@@ -18,6 +18,8 @@ > import org.eclipse.core.runtime.Status; > import org.eclipse.core.runtime.SubProgressMonitor; > import org.eclipse.core.runtime.jobs.Job; >+import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; >+import org.eclipse.mylyn.monitor.core.StatusHandler; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; > import org.eclipse.mylyn.tasks.core.TaskList; >@@ -55,6 +57,20 @@ > this.taskListManager = taskListManager; > this.setSystem(true); > this.setPriority(Job.BUILD); >+ >+ if (repositories == null) { >+ repositories = TasksUiPlugin.getRepositoryManager().getAllRepositories(); >+ } >+ >+ for (final TaskRepository repository : repositories) { >+ try { >+ TasksUiPlugin.testAndSetMemoryOnlyPassword(repository); >+ } catch (Exception e) { >+ StatusHandler.fail(e, "credentials for repository " >+ + repository.getProperty(IRepositoryConstants.PROPERTY_LABEL) >+ + " could not set because Dialog allready in use", true, Status.WARNING); >+ } >+ } > } > > public ScheduledTaskListSynchJob(TaskListManager taskListManager) { >@@ -62,6 +78,20 @@ > this.taskListManager = taskListManager; > this.setPriority(Job.BUILD); > this.scheduleDelay = -1; >+ >+ if (repositories == null) { >+ repositories = TasksUiPlugin.getRepositoryManager().getAllRepositories(); >+ } >+ >+ for (final TaskRepository repository : repositories) { >+ try { >+ TasksUiPlugin.testAndSetMemoryOnlyPassword(repository); >+ } catch (Exception e) { >+ StatusHandler.fail(e, "credentials for repository " >+ + repository.getProperty(IRepositoryConstants.PROPERTY_LABEL) >+ + " could not set because Dialog allready in use", true, Status.WARNING); >+ } >+ } > } > > @Override >Index: src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java,v >retrieving revision 1.32 >diff -u -r1.32 AbstractRepositorySettingsPage.java >--- src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java 11 Sep 2007 22:26:52 -0000 1.32 >+++ src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java 21 Oct 2007 19:51:47 -0000 >@@ -24,6 +24,7 @@ > import org.eclipse.jface.preference.StringFieldEditor; > import org.eclipse.jface.wizard.WizardPage; > import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; >+import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; > import org.eclipse.mylyn.monitor.core.StatusHandler; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; > import org.eclipse.mylyn.tasks.core.TaskRepository; >@@ -141,7 +142,7 @@ > private boolean needsHttpAuth; > > private boolean needsValidation; >- >+ > private boolean needsAdvanced; > > protected Composite compositeContainer; >@@ -188,6 +189,16 @@ > > private Hyperlink manageAccountHyperlink; > >+ private boolean onlyAuthenticationCredentials; >+ >+ protected Button savePasswordButton; >+ >+ protected Button saveHttpPasswordButton; >+ >+ protected Button saveProxyPasswordButton; >+ >+ private static AbstractRepositorySettingsPage single; >+ > public AbstractRepositorySettingsPage(String title, String description, AbstractRepositoryConnectorUi repositoryUi) { > super(title); > super.setTitle(title); >@@ -202,6 +213,8 @@ > setNeedsProxy(true); > setNeedsValidation(true); > setNeedsAdvanced(true); >+ setOnlyAuthenticationCredentials(false); >+ single = this; > } > > @Override >@@ -212,6 +225,7 @@ > toolkit.dispose(); > } > } >+ single = null; > } > > public void createControl(Composite parent) { >@@ -254,6 +268,14 @@ > FillLayout layout = new FillLayout(); > compositeContainer.setLayout(layout); > >+ if (onlyAuthenticationCredentials()) { >+ Label infoLabel = new Label(compositeContainer, SWT.NONE); >+ infoLabel.setImage(TasksUiImages.getImage(TasksUiImages.WARNING)); >+ infoLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_CENTER)); >+ infoLabel = new Label(compositeContainer, SWT.NONE); >+ infoLabel.setText("\nIf you Cancel this Dialog this will disable the Repository!\n\n"); >+ } >+ > new Label(compositeContainer, SWT.NONE).setText(LABEL_SERVER); > serverUrlCombo = new Combo(compositeContainer, SWT.DROP_DOWN); > serverUrlCombo.addModifyListener(new ModifyListener() { >@@ -304,6 +326,11 @@ > }; > // repositoryLabelEditor.setErrorMessage("error"); > >+ if (onlyAuthenticationCredentials()) { >+ serverUrlCombo.setEnabled(false); >+ repositoryLabelEditor.setEnabled(false, compositeContainer); >+ } >+ > if (needsAnonymousLogin()) { > anonymousButton = new Button(compositeContainer, SWT.CHECK); > GridDataFactory.fillDefaults().span(2, SWT.DEFAULT).applyTo(anonymousButton); >@@ -354,6 +381,18 @@ > } > }; > >+ savePasswordButton = new Button(compositeContainer, SWT.CHECK); >+ GridDataFactory.fillDefaults().span(2, SWT.DEFAULT).applyTo(savePasswordButton); >+ >+ savePasswordButton.setText("Save Password"); >+ savePasswordButton.addSelectionListener(new SelectionAdapter() { >+ @Override >+ public void widgetSelected(SelectionEvent e) { >+ setSavePassword(savePasswordButton.getSelection()); >+ isPageComplete(); >+ } >+ }); >+ > if (repository != null) { > try { > String repositoryLabel = repository.getProperty(IRepositoryConstants.PROPERTY_LABEL); >@@ -378,6 +417,12 @@ > } > } > >+ if (repository != null) { >+ savePasswordButton.setSelection(repository.isSavePassword()); >+ } else { >+ savePasswordButton.setSelection(false); >+ } >+ > // TODO: put this back if we can't get the info from all connectors > // if (needsTimeZone()) { > // Label timeZoneLabel = new Label(container, SWT.NONE); >@@ -400,10 +445,10 @@ > // } > // } > >- if(needsAdvanced() || needsEncoding()){ >- >- advancedExpComposite = toolkit.createExpandableComposite(compositeContainer, Section.COMPACT | Section.TWISTIE >- | Section.TITLE_BAR); >+ if (needsAdvanced() || needsEncoding()) { >+ >+ advancedExpComposite = toolkit.createExpandableComposite(compositeContainer, Section.COMPACT >+ | Section.TWISTIE | Section.TITLE_BAR); > advancedExpComposite.clientVerticalSpacing = 0; > GridData gridData_2 = new GridData(SWT.FILL, SWT.FILL, true, false); > gridData_2.horizontalIndent = -5; >@@ -417,9 +462,9 @@ > getControl().getShell().pack(); > } > }); >- >+ > GridDataFactory.fillDefaults().span(2, SWT.DEFAULT).applyTo(advancedExpComposite); >- >+ > advancedComp = toolkit.createComposite(advancedExpComposite, SWT.NONE); > GridLayout gridLayout2 = new GridLayout(); > gridLayout2.numColumns = 2; >@@ -427,25 +472,25 @@ > advancedComp.setLayout(gridLayout2); > advancedComp.setBackground(compositeContainer.getBackground()); > advancedExpComposite.setClient(advancedComp); >- >+ > createAdditionalControls(advancedComp); >- >+ > if (needsEncoding()) { > Label encodingLabel = new Label(advancedComp, SWT.HORIZONTAL); > encodingLabel.setText("Character encoding:"); > GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.TOP).applyTo(encodingLabel); >- >+ > Composite encodingContainer = new Composite(advancedComp, SWT.NONE); > GridLayout gridLayout = new GridLayout(2, false); > gridLayout.marginWidth = 0; > gridLayout.marginHeight = 0; > encodingContainer.setLayout(gridLayout); >- >+ > defaultEncoding = new Button(encodingContainer, SWT.RADIO); > defaultEncoding.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); > defaultEncoding.setText("Default (" + TaskRepository.DEFAULT_CHARACTER_ENCODING + ")"); > defaultEncoding.setSelection(true); >- >+ > otherEncoding = new Button(encodingContainer, SWT.RADIO); > otherEncoding.setText("Other:"); > otherEncodingCombo = new Combo(encodingContainer, SWT.READ_ONLY); >@@ -454,11 +499,11 @@ > otherEncodingCombo.add(encoding); > } > } >- >+ > setDefaultEncoding(); >- >+ > otherEncoding.addSelectionListener(new SelectionAdapter() { >- >+ > @Override > public void widgetSelected(SelectionEvent e) { > if (otherEncoding.getSelection()) { >@@ -470,7 +515,7 @@ > } > } > }); >- >+ > if (repository != null) { > try { > String repositoryEncoding = repository.getCharacterEncoding(); >@@ -555,11 +600,28 @@ > httpAuthComp); > ((RepositoryStringFieldEditor) httpAuthPasswordEditor).getTextControl().setEchoChar('*'); > >+ saveHttpPasswordButton = new Button(httpAuthComp, SWT.CHECK); >+ GridDataFactory.fillDefaults().span(2, SWT.DEFAULT).applyTo(saveHttpPasswordButton); >+ >+ saveHttpPasswordButton.setText("Save Http Password"); >+ saveHttpPasswordButton.addSelectionListener(new SelectionAdapter() { >+ @Override >+ public void widgetSelected(SelectionEvent e) { >+ setSaveHttpPassword(saveHttpPasswordButton.getSelection()); >+ isPageComplete(); >+ } >+ }); >+ > httpAuthUserNameEditor.setEnabled(httpAuthButton.getSelection(), httpAuthComp); > httpAuthPasswordEditor.setEnabled(httpAuthButton.getSelection(), httpAuthComp); >+ saveHttpPasswordButton.setEnabled(httpAuthButton.getSelection()); > >- setHttpAuth(oldHttpAuthPassword != null && oldHttpAuthUserId != null && !oldHttpAuthPassword.equals("") >- && !oldHttpAuthUserId.equals("")); >+ if (repository != null) { >+ saveHttpPasswordButton.setSelection(repository.isSaveHttpPassword()); >+ } else { >+ saveHttpPasswordButton.setSelection(false); >+ } >+ setHttpAuth(oldHttpAuthPassword != null && oldHttpAuthUserId != null && !oldHttpAuthUserId.equals("")); > > httpAuthExpComposite.setExpanded(httpAuthButton.getSelection()); > } >@@ -640,6 +702,11 @@ > > updateHyperlinks(); > >+ if (onlyAuthenticationCredentials()) { >+ httpAuthExpComposite.setExpanded(true); >+ proxyExpComposite.setExpanded(true); >+ } >+ > setControl(compositeContainer); > } > >@@ -777,8 +844,27 @@ > // httpAuthPasswordEditor).setEnabled(httpAuthButton.getSelection(), > // advancedComp); > >- setProxyAuth(oldProxyUsername != null && oldProxyPassword != null && !oldProxyUsername.equals("") >- && !oldProxyPassword.equals("")); >+ saveProxyPasswordButton = new Button(proxyAuthComp, SWT.CHECK); >+ GridDataFactory.fillDefaults().span(2, SWT.DEFAULT).applyTo(saveProxyPasswordButton); >+ >+ saveProxyPasswordButton.setText("Save Proxy Password"); >+ saveProxyPasswordButton.addSelectionListener(new SelectionAdapter() { >+ @Override >+ public void widgetSelected(SelectionEvent e) { >+ setSaveProxyPassword(saveProxyPasswordButton.getSelection()); >+ isPageComplete(); >+ } >+ }); >+ >+ saveProxyPasswordButton.setEnabled(proxyAuthButton.getSelection()); >+ >+ if (repository != null) { >+ saveProxyPasswordButton.setSelection(repository.isSaveProxyPassword()); >+ } else { >+ saveProxyPasswordButton.setSelection(false); >+ } >+ >+ setProxyAuth(oldProxyUsername != null && oldProxyPassword != null && !oldProxyUsername.equals("")); > > setUseDefaultProxy(repository != null ? repository.isDefaultProxyEnabled() : true); > proxyExpComposite.setExpanded(!systemProxyButton.getSelection()); >@@ -819,10 +905,10 @@ > oldUsername = repositoryUserNameEditor.getStringValue(); > oldPassword = (repositoryPasswordEditor).getStringValue(); > repositoryUserNameEditor.setStringValue(""); >- (repositoryPasswordEditor).setStringValue(""); >+ repositoryPasswordEditor.setStringValue(""); > } else { > repositoryUserNameEditor.setStringValue(oldUsername); >- (repositoryPasswordEditor).setStringValue(oldPassword); >+ repositoryPasswordEditor.setStringValue(oldPassword); > } > > repositoryUserNameEditor.setEnabled(!selected, compositeContainer); >@@ -839,15 +925,16 @@ > httpAuthButton.setSelection(selected); > if (!selected) { > oldHttpAuthUserId = httpAuthUserNameEditor.getStringValue(); >- oldHttpAuthPassword = (httpAuthPasswordEditor).getStringValue(); >+ oldHttpAuthPassword = httpAuthPasswordEditor.getStringValue(); > httpAuthUserNameEditor.setStringValue(null); >- (httpAuthPasswordEditor).setStringValue(null); >+ httpAuthPasswordEditor.setStringValue(null); > } else { > httpAuthUserNameEditor.setStringValue(oldHttpAuthUserId); >- (httpAuthPasswordEditor).setStringValue(oldHttpAuthPassword); >+ httpAuthPasswordEditor.setStringValue(oldHttpAuthPassword); > } > httpAuthUserNameEditor.setEnabled(selected, httpAuthComp); >- (httpAuthPasswordEditor).setEnabled(selected, httpAuthComp); >+ httpAuthPasswordEditor.setEnabled(selected, httpAuthComp); >+ saveHttpPasswordButton.setEnabled(selected); > } > > public void setUseDefaultProxy(boolean selected) { >@@ -878,9 +965,9 @@ > proxyAuthButton.setEnabled(!systemProxyButton.getSelection()); > if (!selected) { > oldProxyUsername = proxyUserNameEditor.getStringValue(); >- oldProxyPassword = (proxyPasswordEditor).getStringValue(); >+ oldProxyPassword = proxyPasswordEditor.getStringValue(); > proxyUserNameEditor.setStringValue(null); >- (proxyPasswordEditor).setStringValue(null); >+ proxyPasswordEditor.setStringValue(null); > } else { > proxyUserNameEditor.setStringValue(oldProxyUsername); > proxyPasswordEditor.setStringValue(oldProxyPassword); >@@ -888,6 +975,7 @@ > > proxyUserNameEditor.setEnabled(selected && !systemProxyButton.getSelection(), proxyAuthComp); > proxyPasswordEditor.setEnabled(selected && !systemProxyButton.getSelection(), proxyAuthComp); >+ saveProxyPasswordButton.setEnabled(selected && !systemProxyButton.getSelection()); > } > > protected abstract void createAdditionalControls(Composite parent); >@@ -895,7 +983,7 @@ > protected abstract boolean isValidUrl(String name); > > void updateHyperlinks() { >- if (getServerUrl() != null && getServerUrl().length() > 0) { >+ if (!onlyAuthenticationCredentials() && getServerUrl() != null && getServerUrl().length() > 0) { > TaskRepository repository = createTaskRepository(); > String accountCreationUrl = TasksUiPlugin.getConnectorUi(connector.getConnectorKind()) > .getAccountCreationUrl(repository); >@@ -1027,10 +1115,12 @@ > @Override > public boolean isPageComplete() { > String errorMessage = null; >- String url = getServerUrl(); >- errorMessage = isUniqueUrl(url); >- if (errorMessage == null && !isValidUrl(url)) { >- errorMessage = "Enter a valid server url"; >+ if (!onlyAuthenticationCredentials()) { >+ String url = getServerUrl(); >+ errorMessage = isUniqueUrl(url); >+ if (errorMessage == null && !isValidUrl(url)) { >+ errorMessage = "Enter a valid server url"; >+ } > } > if (errorMessage == null) { > errorMessage = credentialsComplete(); >@@ -1042,9 +1132,8 @@ > > private String credentialsComplete() { > if ((needsAnonymousLogin() && !anonymousButton.getSelection()) >- && (repositoryUserNameEditor.getStringValue().trim().equals("") || repositoryPasswordEditor.getStringValue() >- .trim() >- .equals(""))) { >+ && (repositoryUserNameEditor.getStringValue().trim().equals("") || (repositoryPasswordEditor.getStringValue() >+ .trim().equals(""))) && savePasswordButton.getSelection()) { > return "Repository user name and password must not be blank"; > } > return null; >@@ -1122,21 +1211,26 @@ > if (needsAnonymousLogin()) { > repository.setAnonymous(anonymousButton.getSelection()); > } >+ repository.setSavePassword(savePasswordButton.getSelection()); > // repository.setProperty(TaskRepository.AUTH_HTTP_USERNAME, > // getHttpAuthUserId()); > // repository.setProperty(TaskRepository.AUTH_HTTP_PASSWORD, > // getHttpAuthPassword()); >- if (getHttpAuthUserId().length() > 0 && getHttpAuthPassword().length() > 0) { >- repository.setHttpAuthenticationCredentials(getHttpAuthUserId(), getHttpAuthPassword()); >+ if (getHttpAuthUserId().length() > 0) { >+ repository.setHttpAuthenticationCredentials(getHttpAuthUserId(), getHttpAuthPassword(), >+ saveHttpPasswordButton.getSelection()); >+ repository.setSavePassword(saveHttpPasswordButton.getSelection()); > } > > repository.setProperty(TaskRepository.PROXY_USEDEFAULT, String.valueOf(getUseDefaultProxy())); > repository.setProperty(TaskRepository.PROXY_HOSTNAME, getProxyHostname()); > repository.setProperty(TaskRepository.PROXY_PORT, getProxyPort()); > >- if (getProxyUserName().length() > 0 && getProxyPassword().length() > 0) { >- repository.setProxyAuthenticationCredentials(getProxyUserName(), getProxyPassword()); >+ if (getProxyUserName().length() > 0) { >+ repository.setProxyAuthenticationCredentials(getProxyUserName(), getProxyPassword(), >+ saveProxyPasswordButton.getSelection()); > } >+ repository.setSavePassword(saveProxyPasswordButton.getSelection()); > // repository.setProperty(TaskRepository.PROXY_USERNAME, > // getProxyUsername()); > >@@ -1166,15 +1260,14 @@ > return needsAnonymousLogin; > } > >- >- public boolean needsAdvanced(){ >+ public boolean needsAdvanced() { > return needsAdvanced; > } >- >+ > public void setNeedsEncoding(boolean needsEncoding) { > this.needsEncoding = needsEncoding; > } >- >+ > public void setNeedsTimeZone(boolean needsTimeZone) { > this.needsTimeZone = needsTimeZone; > } >@@ -1182,7 +1275,7 @@ > public void setNeedsAdvanced(boolean needsAdvanced) { > this.needsAdvanced = needsAdvanced; > } >- >+ > public boolean needsHttpAuth() { > return this.needsHttpAuth; > } >@@ -1314,4 +1407,79 @@ > > } > >+ public void setSavePassword(boolean selected) { >+ >+ savePasswordButton.setSelection(selected); >+ >+ if (selected) { >+ repositoryPasswordEditor.setStringValue(oldPassword); >+ } else { >+ oldPassword = repositoryPasswordEditor.getStringValue(); >+ repositoryPasswordEditor.setStringValue(""); >+ } >+ >+ repositoryPasswordEditor.setEnabled(selected, compositeContainer); >+ if (getWizard() != null) { >+ getWizard().getContainer().updateButtons(); >+ } >+ } >+ >+ public void setSaveHttpPassword(boolean selected) { >+ >+ saveHttpPasswordButton.setSelection(selected); >+ >+ if (selected) { >+ httpAuthPasswordEditor.setStringValue(oldHttpAuthPassword); >+ } else { >+ oldHttpAuthPassword = httpAuthPasswordEditor.getStringValue(); >+ httpAuthPasswordEditor.setStringValue(""); >+ } >+ >+ httpAuthPasswordEditor.setEnabled(selected, compositeContainer); >+ if (getWizard() != null) { >+ getWizard().getContainer().updateButtons(); >+ } >+ } >+ >+ public void setSaveProxyPassword(boolean selected) { >+ >+ saveProxyPasswordButton.setSelection(selected); >+ >+ if (selected) { >+ proxyPasswordEditor.setStringValue(oldHttpAuthPassword); >+ } else { >+ oldHttpAuthPassword = proxyPasswordEditor.getStringValue(); >+ proxyPasswordEditor.setStringValue(""); >+ } >+ >+ proxyPasswordEditor.setEnabled(selected, compositeContainer); >+ if (getWizard() != null) { >+ getWizard().getContainer().updateButtons(); >+ } >+ } >+ >+ public boolean onlyAuthenticationCredentials() { >+ return onlyAuthenticationCredentials; >+ } >+ >+ public void setOnlyAuthenticationCredentials(boolean onlyAuthenticationCredentials) { >+ this.onlyAuthenticationCredentials = onlyAuthenticationCredentials; >+ } >+ >+ public Boolean getSavePassword() { >+ return savePasswordButton.getSelection(); >+ } >+ >+ public Boolean getSaveProxyPassword() { >+ return saveProxyPasswordButton.getSelection(); >+ } >+ >+ public Boolean getSaveHttpPassword() { >+ return saveHttpPasswordButton.getSelection(); >+ } >+ >+ public static AbstractRepositorySettingsPage getSingle() { >+ return single; >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditCredentialsWizard.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditCredentialsWizard.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditCredentialsWizard.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditCredentialsWizard.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+/******************************************************************************* >+ * Copyright (c) 2004, 2007 Mylyn project committers and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui.wizards; >+ >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositorySettingsPage; >+ >+public class EditCredentialsWizard extends EditRepositoryWizard { >+ >+ public EditCredentialsWizard(TaskRepository repository) { >+ super(repository); >+ AbstractRepositorySettingsPage theSettingsPage = getSettingsPage(); >+ theSettingsPage.setNeedsAnonymousLogin(false); >+ theSettingsPage.setNeedsEncoding(false); >+ theSettingsPage.setNeedsTimeZone(false); >+ theSettingsPage.setNeedsProxy(true); >+ theSettingsPage.setNeedsHttpAuth(true); >+ theSettingsPage.setNeedsValidation(false); >+ theSettingsPage.setNeedsAdvanced(false); >+ theSettingsPage.setOnlyAuthenticationCredentials(true); >+ } >+} >#P org.eclipse.mylyn.tasks.core >Index: src/org/eclipse/mylyn/tasks/core/TaskRepository.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java,v >retrieving revision 1.41 >diff -u -r1.41 TaskRepository.java >--- src/org/eclipse/mylyn/tasks/core/TaskRepository.java 19 Oct 2007 02:48:50 -0000 1.41 >+++ src/org/eclipse/mylyn/tasks/core/TaskRepository.java 21 Oct 2007 19:51:51 -0000 >@@ -85,6 +85,32 @@ > > private String cachedUserName; > >+ public static final String SAVE_PASSWORD = "org.eclipse.mylyn.tasklist.repositories.save.password"; >+ >+ public static final String SAVE_HTTP_PASSWORD = "org.eclipse.mylyn.tasklist.repositories.save.http.password"; >+ >+ public static final String SAVE_PROXY_PASSWORD = "org.eclipse.mylyn.tasklist.repositories.save.proxy.password"; >+ >+ private boolean isCachedUserPassword; >+ >+ private String cachedUserPassword; >+ >+ private boolean isCachedProxyUserName; >+ >+ private String cachedProxyUserName; >+ >+ private boolean isCachedProxyUserPassword; >+ >+ private String cachedProxyUserPassword; >+ >+ private boolean isCachedHttpUserName; >+ >+ private String cachedHttpUserName; >+ >+ private boolean isCachedHttpUserPassword; >+ >+ private String cachedHttpUserPassword; >+ > static { > URL url = null; > try { >@@ -159,34 +185,62 @@ > public String getUserName() { > // NOTE: if anonymous, user name is "" string so we won't go to keyring > if (!isCachedUserName) { >- cachedUserName = getUserNameFromKeyRing(); >+ cachedUserName = getAuthInfo(AUTH_USERNAME); > isCachedUserName = true; > } > return cachedUserName; > } > >- private String getUserNameFromKeyRing() { >- return getAuthInfo(AUTH_USERNAME); >- } >- > public String getPassword() { >- return getAuthInfo(AUTH_PASSWORD); >+ if (!isCachedUserPassword) { >+ if (!isSavePassword()) { >+ cachedUserPassword = ""; >+ } else { >+ cachedUserPassword = getAuthInfo(AUTH_PASSWORD); >+ isCachedUserPassword = true; >+ } >+ } >+ return cachedUserPassword; > } > > public String getProxyUsername() { >- return getAuthInfo(PROXY_USERNAME); >+ if (!isCachedProxyUserName) { >+ cachedProxyUserName = getAuthInfo(PROXY_USERNAME); >+ isCachedProxyUserName = true; >+ } >+ return cachedProxyUserName; > } > > public String getProxyPassword() { >- return getAuthInfo(PROXY_PASSWORD); >+ if (!isCachedProxyUserPassword) { >+ if (!isSaveProxyPassword()) { >+ cachedProxyUserPassword = ""; >+ } else { >+ cachedProxyUserPassword = getAuthInfo(PROXY_PASSWORD); >+ isCachedProxyUserPassword = true; >+ } >+ } >+ return cachedProxyUserPassword; > } > > public String getHttpUser() { >- return getAuthInfo(AUTH_HTTP_USERNAME); >+ if (!isCachedHttpUserName) { >+ cachedHttpUserName = getAuthInfo(AUTH_HTTP_USERNAME); >+ isCachedHttpUserName = true; >+ } >+ return cachedHttpUserName; > } > > public String getHttpPassword() { >- return getAuthInfo(AUTH_HTTP_PASSWORD); >+ if (!isCachedHttpUserPassword) { >+ if (!isSaveHttpPassword()) { >+ cachedHttpUserPassword = ""; >+ } else { >+ cachedHttpUserPassword = getAuthInfo(AUTH_HTTP_PASSWORD); >+ isCachedHttpUserPassword = true; >+ } >+ } >+ return cachedHttpUserPassword; > } > > public void setAuthenticationCredentials(String username, String password) { >@@ -203,6 +257,39 @@ > setCredentials(username, password, AUTH_HTTP_USERNAME, AUTH_HTTP_PASSWORD); > } > >+ public void setAuthenticationCredentials(String username, String password, boolean savePassword) { >+ if (savePassword) >+ setCredentials(username, password, AUTH_USERNAME, AUTH_PASSWORD); >+ else >+ setCredentials(username, "", AUTH_USERNAME, AUTH_PASSWORD); >+ cachedUserName = username; >+ isCachedUserName = true; >+ cachedUserPassword = password; >+ isCachedUserPassword = true; >+ } >+ >+ public void setProxyAuthenticationCredentials(String username, String password, boolean savePassword) { >+ if (savePassword) >+ setCredentials(username, password, PROXY_USERNAME, PROXY_PASSWORD); >+ else >+ setCredentials(username, "", PROXY_USERNAME, PROXY_PASSWORD); >+ cachedProxyUserName = username; >+ isCachedProxyUserName = true; >+ cachedProxyUserPassword = password; >+ isCachedProxyUserPassword = true; >+ } >+ >+ public void setHttpAuthenticationCredentials(String username, String password, boolean savePassword) { >+ if (savePassword) >+ setCredentials(username, password, AUTH_HTTP_USERNAME, AUTH_HTTP_PASSWORD); >+ else >+ setCredentials(username, "", AUTH_HTTP_USERNAME, AUTH_HTTP_PASSWORD); >+ cachedHttpUserName = username; >+ isCachedHttpUserName = true; >+ cachedHttpUserPassword = password; >+ isCachedHttpUserPassword = true; >+ } >+ > private void setCredentials(String username, String password, String userProperty, String passwordProperty) { > Map<String, String> map = getAuthInfo(); > if (map == null) { >@@ -232,6 +319,11 @@ > headlessCreds.clear(); > } > isCachedUserName = false; >+ isCachedProxyUserName = false; >+ isCachedHttpUserName = false; >+ isCachedUserPassword = false; >+ isCachedProxyUserPassword = false; >+ isCachedHttpUserPassword = false; > } catch (CoreException e) { > StatusHandler.fail(e, "could not flush authorization credentials", true); > } >@@ -468,4 +560,49 @@ > return getProperty(OFFLINE) != null && "true".equals(getProperty(OFFLINE)); > } > >+ public void setSavePassword(boolean b) { >+ properties.put(SAVE_PASSWORD, String.valueOf(b)); >+ } >+ >+ public boolean isSavePassword() { >+ return getProperty(SAVE_PASSWORD) != null && "true".equals(getProperty(SAVE_PASSWORD)); >+ } >+ >+ public void setSaveHttpPassword(boolean b) { >+ properties.put(SAVE_HTTP_PASSWORD, String.valueOf(b)); >+ } >+ >+ public boolean isSaveHttpPassword() { >+ return getProperty(SAVE_HTTP_PASSWORD) != null && "true".equals(getProperty(SAVE_HTTP_PASSWORD)); >+ } >+ >+ public void setSaveProxyPassword(boolean b) { >+ properties.put(SAVE_PROXY_PASSWORD, String.valueOf(b)); >+ } >+ >+ public boolean isSaveProxyPassword() { >+ return getProperty(SAVE_PROXY_PASSWORD) != null && "true".equals(getProperty(SAVE_PROXY_PASSWORD)); >+ } >+ >+ public String getCachedPassword() { >+ if (isCachedUserPassword) >+ return cachedUserPassword; >+ else >+ return null; >+ } >+ >+ public String getCachedHttpPassword() { >+ if (isCachedHttpUserPassword) >+ return cachedHttpUserPassword; >+ else >+ return null; >+ } >+ >+ public String getCachedProxyPassword() { >+ if (isCachedProxyUserPassword) >+ return cachedProxyUserPassword; >+ else >+ return null; >+ } >+ > } >#P org.eclipse.mylyn.bugzilla.tests >Index: src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java,v >retrieving revision 1.23 >diff -u -r1.23 EncodingTest.java >--- src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java 26 Jun 2007 01:16:22 -0000 1.23 >+++ src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java 21 Oct 2007 19:52:17 -0000 >@@ -41,7 +41,7 @@ > * different encoding (though it may not be legible) > */ > public void testDifferentReportEncoding() throws CoreException { >- init222(); >+ init222(true); > repository.setCharacterEncoding("UTF-8"); > BugzillaTask task = (BugzillaTask) connector.createTaskFromExistingId(repository, "57", > new NullProgressMonitor()); >@@ -59,7 +59,7 @@ > } > > public void testProperEncodingUponPost() throws CoreException { >- init222(); >+ init222(true); > repository.setCharacterEncoding("UTF-8"); > BugzillaTask task = (BugzillaTask) connector.createTaskFromExistingId(repository, "57", > new NullProgressMonitor()); >Index: src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java,v >retrieving revision 1.120 >diff -u -r1.120 BugzillaRepositoryConnectorTest.java >--- src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java 11 Sep 2007 01:57:30 -0000 1.120 >+++ src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java 21 Oct 2007 19:52:13 -0000 >@@ -51,19 +51,25 @@ > // 3.1 1 rob.elves@eclipse.org tests@mylar.eclipse.org > > public void testReassign222() throws CoreException { >- init222(); >+ init222(true); > String taskNumber = "92"; > doReassignOld(taskNumber, "user@mylar.eclipse.org"); > } > > public void testReassign30() throws CoreException { >- init30(); >+ init30(true); >+ String taskNumber = "5"; >+ doReassignOld(taskNumber, "tests@mylyn.eclipse.org"); >+ } >+ >+ public void testReassign30MemoryonlyPassword() throws CoreException { >+ init30(false); > String taskNumber = "5"; > doReassignOld(taskNumber, "tests@mylyn.eclipse.org"); > } > > public void testReassign31() throws CoreException { >- init31(); >+ init31(false); > String taskNumber = "1"; > > TasksUiPlugin.getTaskDataManager().clear(); >@@ -178,7 +184,7 @@ > } > > public void testSubTaskHasIncoming() throws CoreException { >- init30(); >+ init30(true); > String taskNumber = "6"; > BugzillaTask task = generateLocalTaskAndDownload(taskNumber); > assertNotNull(task); >@@ -188,7 +194,7 @@ > } > > public void testFocedQuerySynchronization() throws CoreException { >- init222(); >+ init222(true); > TasksUiPlugin.getSynchronizationManager().setForceSyncExec(true); > TasksUiPlugin.getTaskDataManager().clear(); > assertEquals(0, taskList.getAllTasks().size()); >@@ -214,7 +220,7 @@ > } > > public void testCreateTaskFromExistingId() throws Exception { >- init222(); >+ init222(true); > try { > connector.createTaskFromExistingId(repository, "9999", new NullProgressMonitor()); > fail(); >@@ -233,7 +239,7 @@ > } > > public void testAnonymousRepositoryAccess() throws Exception { >- init218(); >+ init218(true); > assertNotNull(repository); > repository.setAuthenticationCredentials("", ""); > // test anonymous task retrieval >@@ -271,7 +277,7 @@ > } > > public void testUpdate() throws Exception { >- init222(); >+ init222(true); > String taskNumber = "3"; > TasksUiPlugin.getTaskDataManager().clear(); > assertEquals(0, TasksUiPlugin.getTaskListManager().getTaskList().getAllTasks().size()); >@@ -288,7 +294,7 @@ > } > > public void testUpdateWithSubTasks() throws Exception { >- init222(); >+ init222(true); > String taskNumber = "23"; > TasksUiPlugin.getTaskDataManager().clear(); > assertEquals(0, TasksUiPlugin.getTaskListManager().getTaskList().getAllTasks().size()); >@@ -298,7 +304,7 @@ > } > > public void testContextAttachFailure() throws Exception { >- init218(); >+ init218(true); > BugzillaTask task = this.generateLocalTaskAndDownload("3"); > assertNotNull(task); > assertNotNull(TasksUiPlugin.getTaskDataManager().getNewTaskData(task.getRepositoryUrl(), task.getTaskId())); >@@ -318,7 +324,7 @@ > } > > public void testSynchronize() throws CoreException { >- init222(); >+ init222(true); > > TasksUiPlugin.getTaskDataManager().clear(); > >@@ -378,7 +384,7 @@ > } > > public void testUniqueQueryHitObjects() { >- init222(); >+ init222(true); > BugzillaRepositoryQuery query1 = new BugzillaRepositoryQuery(IBugzillaConstants.TEST_BUGZILLA_222_URL, > "queryurl", "description1"); > BugzillaTask query1Hit = new BugzillaTask(IBugzillaConstants.TEST_BUGZILLA_222_URL, "1", "description1"); >@@ -405,7 +411,7 @@ > } > > public void testAttachToExistingReport() throws Exception { >- init222(); >+ init222(true); > String taskNumber = "33"; > BugzillaTask task = generateLocalTaskAndDownload(taskNumber); > RepositoryTaskData taskData = TasksUiPlugin.getTaskDataManager().getNewTaskData(task.getRepositoryUrl(), >@@ -497,7 +503,7 @@ > > public void testSynchChangedReports() throws Exception { > >- init222(); >+ init222(true); > String taskID = "4"; > BugzillaTask task4 = generateLocalTaskAndDownload(taskID); > RepositoryTaskData taskData4 = TasksUiPlugin.getTaskDataManager().getEditableCopy(task4.getRepositoryUrl(), >@@ -575,7 +581,7 @@ > > public void testIncomingWhenOfflineDeleted() throws Exception { > >- init222(); >+ init222(true); > BugzillaTask task7 = generateLocalTaskAndDownload("7"); > RepositoryTaskData recentTaskData = TasksUiPlugin.getTaskDataManager().getNewTaskData(task7.getRepositoryUrl(), > task7.getTaskId()); >@@ -618,7 +624,7 @@ > } > > public void testTimeTracker222() throws Exception { >- init222(); >+ init222(true); > timeTracker(15, true); > } > >@@ -635,7 +641,7 @@ > // } > > public void testTimeTracker218() throws Exception { >- init218(); >+ init218(true); > timeTracker(20, false); > } > >@@ -724,7 +730,7 @@ > * Ensure obsoletes and patches are marked as such by the parser. > */ > public void testAttachmentAttributes() throws Exception { >- init222(); >+ init222(true); > int bugId = 19; > String taskNumber = "" + bugId; > BugzillaTask task = generateLocalTaskAndDownload(taskNumber); >Index: src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java,v >retrieving revision 1.32 >diff -u -r1.32 AbstractBugzillaTest.java >--- src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java 4 Sep 2007 20:49:17 -0000 1.32 >+++ src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java 21 Oct 2007 19:51:53 -0000 >@@ -70,35 +70,35 @@ > manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath()); > } > >- protected void init31() { >- init(IBugzillaConstants.TEST_BUGZILLA_31_URL); >+ protected void init31(boolean useKeyring) { >+ init(IBugzillaConstants.TEST_BUGZILLA_31_URL, useKeyring); > } > >- protected void init30() { >- init(IBugzillaConstants.TEST_BUGZILLA_30_URL); >+ protected void init30(boolean useKeyring) { >+ init(IBugzillaConstants.TEST_BUGZILLA_30_URL, useKeyring); > } > >- protected void init222() { >- init(IBugzillaConstants.TEST_BUGZILLA_222_URL); >+ protected void init222(boolean useKeyring) { >+ init(IBugzillaConstants.TEST_BUGZILLA_222_URL, useKeyring); > } > >- protected void init2201() { >- init(IBugzillaConstants.TEST_BUGZILLA_2201_URL); >+ protected void init2201(boolean useKeyring) { >+ init(IBugzillaConstants.TEST_BUGZILLA_2201_URL, useKeyring); > } > >- protected void init220() { >- init(IBugzillaConstants.TEST_BUGZILLA_220_URL); >+ protected void init220(boolean useKeyring) { >+ init(IBugzillaConstants.TEST_BUGZILLA_220_URL, useKeyring); > } > >- protected void init218() { >- init(IBugzillaConstants.TEST_BUGZILLA_218_URL); >+ protected void init218(boolean useKeyring) { >+ init(IBugzillaConstants.TEST_BUGZILLA_218_URL, useKeyring); > } > > @SuppressWarnings("deprecation") >- protected void init(String url) { >+ protected void init(String url, boolean useKeyring) { > repository = new TaskRepository(DEFAULT_KIND, url); > Credentials credentials = TestUtil.readCredentials(); >- repository.setAuthenticationCredentials(credentials.username, credentials.password); >+ repository.setAuthenticationCredentials(credentials.username, credentials.password, useKeyring); > > repository.setTimeZoneId("Canada/Eastern"); > assertNotNull(manager);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 200634
:
78041
|
78503
|
78504
|
78816
|
78817
|
80187
|
80288
|
80289
|
80290
|
80305
|
80306
|
80829
|
80830
| 80840 |
80841
|
81025
|
81212