diff options
author | Frank Becker | 2012-01-31 21:14:41 +0000 |
---|---|---|
committer | Frank Becker | 2012-01-31 21:14:41 +0000 |
commit | 97fa0d622ae5d53c449e4050e453cf44b9ea2597 (patch) | |
tree | 20840b6b05ba3921a345d4e97b802dd55d454e8b | |
parent | 00b12019b22744a0319be904886e0449ca3a89e5 (diff) | |
download | org.eclipse.mylyn.tasks-97fa0d622ae5d53c449e4050e453cf44b9ea2597.tar.gz org.eclipse.mylyn.tasks-97fa0d622ae5d53c449e4050e453cf44b9ea2597.tar.xz org.eclipse.mylyn.tasks-97fa0d622ae5d53c449e4050e453cf44b9ea2597.zip |
ASSIGNED - bug 356986: [patch] auto detect XML-RPC (was:
IllegalArgumentException when enabling XML-RPC)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=356986
Change-Id: Change-Id: I7b5821eaa7e7fc2f16411782398c2304b9c0bb17
6 files changed, 60 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java index e96d286e3..38fa8495e 100644 --- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java +++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java @@ -248,6 +248,19 @@ public class BugzillaClient { throw new CoreException(new Status(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN, "XMLRPC user could not login")); //$NON-NLS-1$ } + String version = xmlRpcClient.getVersion(monitor); + // We only support XMLRPC for Bugzilla >= 3.2 + // Reason: product.get was new in version 3.2 + if (version != null) { + BugzillaVersion versionToCompare = new BugzillaVersion(version); + if (versionToCompare != null) { + if (BugzillaVersion.BUGZILLA_3_2.compareTo(versionToCompare) > 0) { + throw new CoreException(new Status(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN, + "XMLRPC need version >= 3.2")); //$NON-NLS-1$ + } + } + } + } catch (XmlRpcException e) { throw new CoreException(new Status(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN, "XMLRPC is not installed")); //$NON-NLS-1$ diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java index 1bd517e63..31d33578d 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java @@ -741,4 +741,29 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa return repository; } + boolean doFinish; + + boolean isvalid; + + @Override + public boolean doPerformFinish(TaskRepository repository) { + doFinish = true; + isvalid = false; + validateSettings(); + doFinish = false; + if (!isvalid) { + return false; + } + super.doPerformFinish(repository); + return true; + } + + @Override + protected void applyValidatorResult(Validator validator) { + super.applyValidatorResult(validator); + if (doFinish) { + IStatus status = validator.getStatus(); + isvalid = IStatus.OK == status.getSeverity(); + } + } } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java index f5e76463f..92b840679 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java @@ -76,7 +76,10 @@ public class EditRepositoryWizard extends Wizard implements INewWizard { if (!repository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND)) { repository.setRepositoryUrl(newUrl); } - settingsPage.performFinish(repository); + boolean result = settingsPage.doPerformFinish(repository); + if (!result) { + return false; + } if (oldUrl != null && newUrl != null && !oldUrl.equals(newUrl)) { TasksUiPlugin.getRepositoryManager().notifyRepositoryUrlChanged(repository, oldUrl); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java index b5f9dd838..d5395c826 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java @@ -64,4 +64,9 @@ public class LocalRepositorySettingsPage extends AbstractTaskRepositoryPage { } } + public boolean doPerformFinish(TaskRepository repository) { + performFinish(repository); + return true; + } + } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java index 85dfd39d3..a617d7839 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java @@ -2017,4 +2017,12 @@ public abstract class AbstractRepositorySettingsPage extends AbstractTaskReposit return null; } + /** + * @since 3.7 + */ + public boolean doPerformFinish(TaskRepository repository) { + performFinish(repository); + return true; + } + } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java index 343af0c71..56ed330a0 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java @@ -49,4 +49,9 @@ public interface ITaskRepositoryPage extends IWizardPage { */ public abstract void performFinish(TaskRepository repository); + /** + * @since 3.7 + */ + public abstract boolean doPerformFinish(TaskRepository repository); + }
\ No newline at end of file |