Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Becker2012-01-31 21:14:41 +0000
committerFrank Becker2012-01-31 21:14:41 +0000
commit97fa0d622ae5d53c449e4050e453cf44b9ea2597 (patch)
tree20840b6b05ba3921a345d4e97b802dd55d454e8b
parent00b12019b22744a0319be904886e0449ca3a89e5 (diff)
downloadorg.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
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java13
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java25
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java5
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java5
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java8
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java5
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

Back to the top