From 2ee22249927079a00b9130512085647e84f3d64b Mon Sep 17 00:00:00 2001
From: Frank Becker <Frank@Frank-Becker.de>
Date: Mon, 3 Jun 2013 21:46:52 +0200
Subject: [PATCH] 403024: Ability to reopen a task when 'REOPENED' state is not
available. (nor only use xmlrpc activate Workflow and default milestone
separate) Change-Id: I4269767dabfac05cac115150e69ec2356f5a6873 Task-Url:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=403024
---
.../internal/bugzilla/core/BugzillaClient.java | 9 ++-
.../internal/bugzilla/core/IBugzillaConstants.java | 6 +-
.../mylyn/internal/bugzilla/core/Messages.java | 4 ++
.../internal/bugzilla/core/messages.properties | 2 +
.../core/service/BugzillaXmlRpcClient.java | 80 ++++++++++++++--------
.../internal/bugzilla/core/service/Messages.java | 31 +++++++++
.../bugzilla/core/service/messages.properties | 3 +
.../ui/tasklist/BugzillaRepositoryMigrator.java | 10 +++
.../tasklist/BugzillaRepositorySettingsPage.java | 53 +++++++++++---
.../internal/bugzilla/ui/tasklist/Messages.java | 8 +++
.../bugzilla/ui/tasklist/messages.properties | 6 +-
11 files changed, 169 insertions(+), 43 deletions(-)
create mode 100644 org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/Messages.java
create mode 100644 org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/messages.properties
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java
index 06647e6..4f2921f 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java
@@ -729,6 +729,8 @@ public class BugzillaClient {
throws IOException, CoreException {
GzipGetMethod method = null;
int attempt = 0;
+ StatusHandler.log(new Status(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN,
+ Messages.BugzillaClient_Start_GetConfiguration + repositoryUrl));
while (attempt < 2) {
try {
method = getConnectGzip(repositoryUrl + IBugzillaConstants.URL_GET_CONFIG_RDF, monitor, eTagValue);
@@ -748,6 +750,7 @@ public class BugzillaClient {
stream, getCharacterEncoding());
repositoryConfiguration = configFactory.getConfiguration();
+ repositoryConfiguration.setRepositoryUrl(repositoryUrl.toExternalForm());
Header eTag = method.getResponseHeader("ETag"); //$NON-NLS-1$
if (eTag != null) {
repositoryConfiguration.setETagValue(eTag.getValue());
@@ -769,7 +772,7 @@ public class BugzillaClient {
getXmlRpcClient();
if (xmlRpcClient != null) {
xmlRpcClient.updateConfiguration(monitor, repositoryConfiguration,
- configParameters.get(IBugzillaConstants.BUGZILLA_DESCRIPTOR_FILE));
+ configParameters);
} else {
repositoryConfiguration.setValidTransitions(monitor,
configParameters.get(IBugzillaConstants.BUGZILLA_DESCRIPTOR_FILE), null);
@@ -779,6 +782,8 @@ public class BugzillaClient {
}
if (!repositoryConfiguration.getOptionValues(BugzillaAttribute.PRODUCT).isEmpty()) {
+ StatusHandler.log(new Status(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN,
+ Messages.BugzillaClient_Stop_GetConfiguration + repositoryUrl));
return repositoryConfiguration;
} else {
if (attempt == 0) {
@@ -809,6 +814,8 @@ public class BugzillaClient {
}
}
}
+ StatusHandler.log(new Status(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN,
+ Messages.BugzillaClient_Start_GetConfiguration + repositoryUrl));
return null;
}
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java
index 7a2513e..4d8eb8d 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java
@@ -252,7 +252,11 @@ public interface IBugzillaConstants {
public static final String BUGZILLA_DESCRIPTOR_FILE = "bugzilla.desciptorFile"; //$NON-NLS-1$
- public static final String BUGZILLA_USE_XMLRPC = "bugzilla.xmlrpc.status.transition"; //$NON-NLS-1$
+ public static final String BUGZILLA_USE_XMLRPC = "bugzilla.xmlrpc"; //$NON-NLS-1$
+
+ public static final String BUGZILLA_USE_XMLRPC_WORKFLOW = "bugzilla.xmlrpc.status.transition"; //$NON-NLS-1$
+
+ public static final String BUGZILLA_USE_XMLRPC_DEFAULT_MILESTONE = "bugzilla.xmlrpc.default.milestone"; //$NON-NLS-1$
public static final String DEFAULT_LANG = "en (default)"; //$NON-NLS-1$
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
index 0d4a71c..2900bd4 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
@@ -219,6 +219,10 @@
public static String BugzillaClient_description_required_when_submitting_attachments;
+ public static String BugzillaClient_Start_GetConfiguration;
+
+ public static String BugzillaClient_Stop_GetConfiguration;
+
public static String BugzillaClient_Unable_to_retrieve_new_task;
public static String BugzillaOperation_Accept_to_ASSIGNED;
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
index 31c9faf..636eabc 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
@@ -107,6 +107,8 @@ BugzillaAttachmentMapper_URL=URL:
BugzillaClient_could_not_post_form_null_returned=Could not post form, client returned null method.
BugzillaClient_description_required_when_submitting_attachments=A description is required when submitting attachments.
BugzillaClient_Unable_to_retrieve_new_task=Unable to retrieve new task.
+BugzillaClient_Start_GetConfiguration=Start getRepositoryConfiguration for
+BugzillaClient_Stop_GetConfiguration=Stop getRepositoryConfiguration for
BugzillaOperation_Accept_to_ASSIGNED=Accept (change status to ASSIGNED)
BugzillaOperation_confirmed=Confirm (change status to CONFIRMED)
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java
index af2d235..51da85d 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java
@@ -32,6 +32,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.commons.net.AbstractWebLocation;
import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
import org.eclipse.mylyn.commons.net.AuthenticationType;
@@ -54,6 +55,7 @@ import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
+import org.eclipse.osgi.util.NLS;
@SuppressWarnings("restriction")
public class BugzillaXmlRpcClient extends CommonXmlRpcClient {
@@ -413,51 +415,71 @@ public class BugzillaXmlRpcClient extends CommonXmlRpcClient {
}
public void updateConfiguration(IProgressMonitor monitor, RepositoryConfiguration repositoryConfiguration,
- String fileName) throws CoreException {
- repositoryConfiguration.setValidTransitions(monitor, fileName, this);
- if (!repositoryConfiguration.getOptionValues(BugzillaAttribute.PRODUCT).isEmpty()) {
+ Map<String, String> configParameters) throws CoreException {
+ if (Boolean.parseBoolean(configParameters.get(IBugzillaConstants.BUGZILLA_USE_XMLRPC_WORKFLOW))) {
+ repositoryConfiguration.setValidTransitions(monitor,
+ configParameters.get(IBugzillaConstants.BUGZILLA_DESCRIPTOR_FILE), this);
+ }
+ if (!repositoryConfiguration.getOptionValues(BugzillaAttribute.PRODUCT).isEmpty()
+ && Boolean.parseBoolean(configParameters.get(IBugzillaConstants.BUGZILLA_USE_XMLRPC_DEFAULT_MILESTONE))) {
updateProductInfo(monitor, repositoryConfiguration);
}
}
public void updateProductInfo(IProgressMonitor monitor, RepositoryConfiguration repositoryConfiguration)
throws CoreException {
+ ArrayList<Object> productIDNew = new ArrayList<Object>();
+ StatusHandler.log(new Status(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN, Messages.BugzillaXmlRpcClient_Start_UpdateProductInfo
+ + repositoryConfiguration.getRepositoryUrl()));
try {
Object[] productIDs = getAccessibleProducts(monitor);
- Object[] products = getProducts(monitor, productIDs);
- for (Object object : products) {
- if (object instanceof HashMap<?, ?>) {
- String defaultMilestone = null;
- String product = (String) ((HashMap<?, ?>) object).get("name"); //$NON-NLS-1$
- HashMap<?, ?> values = (HashMap<?, ?>) ((HashMap<?, ?>) object).get("internals"); //$NON-NLS-1$
- Object defaultMilestoneObj = null;
- if (values != null) {
- if (values instanceof HashMap<?, ?>) {
- defaultMilestoneObj = ((HashMap<?, ?>) values).get("defaultmilestone"); //$NON-NLS-1$
- }
- } else {
- defaultMilestoneObj = ((HashMap<?, ?>) object).get("default_milestone"); //$NON-NLS-1$
- }
- if (defaultMilestoneObj != null) {
- if (defaultMilestoneObj instanceof String) {
- defaultMilestone = (String) defaultMilestoneObj;
- } else if (defaultMilestoneObj instanceof Double) {
- defaultMilestone = ((Double) defaultMilestoneObj).toString();
- } else if (defaultMilestoneObj instanceof Integer) {
- defaultMilestone = ((Integer) defaultMilestoneObj).toString();
+ for (Object productID : productIDs) {
+ productIDNew.clear();
+ productIDNew.add(productID);
+ try {
+ Object[] products = getProducts(monitor, productIDNew.toArray());
+ for (Object object : products) {
+ if (object instanceof HashMap<?, ?>) {
+ String defaultMilestone = null;
+ String product = (String) ((HashMap<?, ?>) object).get("name"); //$NON-NLS-1$
+ HashMap<?, ?> values = (HashMap<?, ?>) ((HashMap<?, ?>) object).get("internals"); //$NON-NLS-1$
+ Object defaultMilestoneObj = null;
+ if (values != null) {
+ if (values instanceof HashMap<?, ?>) {
+ defaultMilestoneObj = ((HashMap<?, ?>) values).get("defaultmilestone"); //$NON-NLS-1$
+ }
+ } else {
+ defaultMilestoneObj = ((HashMap<?, ?>) object).get("default_milestone"); //$NON-NLS-1$
+ }
+ if (defaultMilestoneObj != null) {
+ if (defaultMilestoneObj instanceof String) {
+ defaultMilestone = (String) defaultMilestoneObj;
+ } else if (defaultMilestoneObj instanceof Double) {
+ defaultMilestone = ((Double) defaultMilestoneObj).toString();
+ } else if (defaultMilestoneObj instanceof Integer) {
+ defaultMilestone = ((Integer) defaultMilestoneObj).toString();
+ }
+ }
+ if (product != null && !product.equals("") //$NON-NLS-1$
+ && defaultMilestone != null && !defaultMilestone.equals("")) { //$NON-NLS-1$
+ repositoryConfiguration.setDefaultMilestone(product, defaultMilestone);
+ }
}
}
- if (product != null && !product.equals("") //$NON-NLS-1$
- && defaultMilestone != null && !defaultMilestone.equals("")) { //$NON-NLS-1$
- repositoryConfiguration.setDefaultMilestone(product, defaultMilestone);
- }
+ } catch (Exception e) {
+ Status status = new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, NLS.bind(
+ Messages.BugzillaXmlRpcClient_CanNotGetTheDefaultMilestoneForProductWithID,
+ productIDNew.get(0)));
+ StatusHandler.log(status);
}
}
} catch (XmlRpcException e) {
throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
"Can not get the Default Milestones using XMLRPC")); //$NON-NLS-1$
+ } finally {
+ StatusHandler.log(new Status(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN, Messages.BugzillaXmlRpcClient_Stop_UpdateProductInfo
+ + repositoryConfiguration.getRepositoryUrl()));
}
-
}
public int getUserID() {
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/Messages.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/Messages.java
new file mode 100644
index 0000000..9b672ca
--- /dev/null
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/Messages.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Tasktop Technologies 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
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.bugzilla.core.service;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.core.service.messages"; //$NON-NLS-1$
+
+ public static String BugzillaXmlRpcClient_CanNotGetTheDefaultMilestoneForProductWithID;
+
+ public static String BugzillaXmlRpcClient_Start_UpdateProductInfo;
+
+ public static String BugzillaXmlRpcClient_Stop_UpdateProductInfo;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/messages.properties org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/messages.properties
new file mode 100644
index 0000000..734191b
--- /dev/null
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/messages.properties
@@ -0,0 +1,3 @@
+BugzillaXmlRpcClient_CanNotGetTheDefaultMilestoneForProductWithID=Can not get the Default Milestone for Product with ID {0} using XMLRPC
+BugzillaXmlRpcClient_Start_UpdateProductInfo=Start updateProductInfo for
+BugzillaXmlRpcClient_Stop_UpdateProductInfo=Stop updateProductInfo for
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java
index 1f31898..4eea2cf 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java
@@ -12,6 +12,7 @@
package org.eclipse.mylyn.internal.bugzilla.ui.tasklist;
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
+import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorExtensions;
import org.eclipse.mylyn.tasks.core.AbstractRepositoryMigrator;
import org.eclipse.mylyn.tasks.core.TaskRepository;
@@ -40,6 +41,15 @@ public class BugzillaRepositoryMigrator extends AbstractRepositoryMigrator {
repository.setProperty(TaskEditorExtensions.REPOSITORY_PROPERTY_AVATAR_SUPPORT, Boolean.TRUE.toString());
migrated = true;
}
+ if (repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_DEFAULT_MILESTONE) == null
+ && repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC) == null
+ && repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_WORKFLOW) != null) {
+ repository.setProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC,
+ repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_WORKFLOW));
+ repository.setProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_DEFAULT_MILESTONE,
+ repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_WORKFLOW));
+ migrated = true;
+ }
return migrated;
}
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java
index eabb201..c1b47a7 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java
@@ -78,7 +78,7 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
private static final String LABEL_SHORT_LOGINS = Messages.BugzillaRepositorySettingsPage_local_users_enabled;
- private static final String LABEL_VERSION_NUMBER = "3.0 - 4.0"; //$NON-NLS-1$
+ private static final String LABEL_VERSION_NUMBER = "3.0 - 4.4"; //$NON-NLS-1$
private static final String TITLE = Messages.BugzillaRepositorySettingsPage_bugzilla_repository_settings;
@@ -104,7 +104,11 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
private Combo languageSettingCombo;
- private Button useXMLRPCstatusTransitions;
+ private Button useXMLRPC;
+
+ private Button useXMLRPCWorkflowTransitions;
+
+ private Button useXMLRPCDefaultMilestones;
private Button autodetectXMLRPCFile;
@@ -283,9 +287,7 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
.align(SWT.FILL, SWT.CENTER)
.hint(300, SWT.DEFAULT)
.applyTo(descriptorFile);
- useXMLRPCstatusTransitions = new Button(workflowGroup, SWT.CHECK | SWT.LEFT);
- useXMLRPCstatusTransitions.setText(Messages.BugzillaRepositorySettingsPage_UseXmlRpc);
- useXMLRPCstatusTransitions.setToolTipText(Messages.BugzillaRepositorySettingsPage_RequiresBugzilla3_6);
+ new Label(workflowGroup, SWT.NONE);
Composite descriptorComposite = new Composite(workflowGroup, SWT.NONE);
gridLayout = new GridLayout(2, false);
gridLayout.marginWidth = 0;
@@ -392,6 +394,22 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
languageSettingCombo.select(languageSettingCombo.indexOf(IBugzillaConstants.DEFAULT_LANG));
}
}
+
+ Group xmlrpcGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
+ xmlrpcGroup.setLayout(new GridLayout(3, false));
+ xmlrpcGroup.setText(Messages.BugzillaRepositorySettingsPage_XMLRPC);
+ xmlrpcGroup.setToolTipText(Messages.BugzillaRepositorySettingsPage_RequiresBugzilla3_6);
+ GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).span(2, 1).applyTo(xmlrpcGroup);
+ useXMLRPC = new Button(xmlrpcGroup, SWT.CHECK | SWT.LEFT);
+ useXMLRPC.setText(Messages.BugzillaRepositorySettingsPage_XMLRPC_Active);
+ useXMLRPC.setToolTipText(Messages.BugzillaRepositorySettingsPage_RequiresBugzilla3_6);
+ useXMLRPCWorkflowTransitions = new Button(xmlrpcGroup, SWT.CHECK | SWT.LEFT);
+ useXMLRPCWorkflowTransitions.setText(Messages.BugzillaRepositorySettingsPage_XMLRPC_WorkflowTransitions);
+ useXMLRPCWorkflowTransitions.setToolTipText(Messages.BugzillaRepositorySettingsPage_RequiresBugzilla3_6);
+ useXMLRPCDefaultMilestones = new Button(xmlrpcGroup, SWT.CHECK | SWT.LEFT);
+ useXMLRPCDefaultMilestones.setText(Messages.BugzillaRepositorySettingsPage_XMLRPC_DefaultMilestones);
+ useXMLRPCDefaultMilestones.setToolTipText(Messages.BugzillaRepositorySettingsPage_RequiresBugzilla3_6);
+
Group adminGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
adminGroup.setLayout(new GridLayout(3, true));
adminGroup.setText(Messages.BugzillaRepositorySettingsPage_admin_parameter);
@@ -452,7 +470,7 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
use_see_also.setSelection(!value);
value = Boolean.parseBoolean(myTemplate.getAttribute("useXMLRPC")); //$NON-NLS-1$
- useXMLRPCstatusTransitions.setSelection(value);
+ useXMLRPC.setSelection(value);
} else {
useclassification.setSelection(true);
usetargetmilestone.setSelection(false);
@@ -460,7 +478,9 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
usestatuswhiteboard.setSelection(false);
usebugaliases.setSelection(true);
use_see_also.setSelection(true);
- useXMLRPCstatusTransitions.setSelection(false);
+ useXMLRPC.setSelection(false);
+ useXMLRPCWorkflowTransitions.setSelection(false);
+ useXMLRPCDefaultMilestones.setSelection(false);
}
} else {
// we use the repository values
@@ -478,7 +498,11 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
use_see_also.setSelection(!value);
value = Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC));
- useXMLRPCstatusTransitions.setSelection(value);
+ useXMLRPC.setSelection(value);
+ value = Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_WORKFLOW));
+ useXMLRPCWorkflowTransitions.setSelection(value);
+ value = Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_DEFAULT_MILESTONE));
+ useXMLRPCDefaultMilestones.setSelection(value);
}
}
}
@@ -539,7 +563,11 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
changed = changed || repositoryAuth.getPassword().compareTo(getPassword()) != 0;
}
changed = changed
- || Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC)) != useXMLRPCstatusTransitions.getSelection();
+ || Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC)) != useXMLRPC.getSelection();
+ changed = changed
+ || Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_WORKFLOW)) != useXMLRPCWorkflowTransitions.getSelection();
+ changed = changed
+ || Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_DEFAULT_MILESTONE)) != useXMLRPCDefaultMilestones.getSelection();
changed = changed
|| !equals(repository.getProperty(IBugzillaConstants.BUGZILLA_DESCRIPTOR_FILE),
descriptorFile.getText());
@@ -667,8 +695,11 @@ public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPa
repository.setProperty(IBugzillaConstants.REPOSITORY_SETTING_SHORT_LOGIN,
String.valueOf(cleanQAContact.getSelection()));
repository.setProperty(IBugzillaConstants.BUGZILLA_LANGUAGE_SETTING, languageSettingCombo.getText());
- repository.setProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC,
- Boolean.toString(useXMLRPCstatusTransitions.getSelection()));
+ repository.setProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC, Boolean.toString(useXMLRPC.getSelection()));
+ repository.setProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_WORKFLOW,
+ Boolean.toString(useXMLRPCWorkflowTransitions.getSelection()));
+ repository.setProperty(IBugzillaConstants.BUGZILLA_USE_XMLRPC_DEFAULT_MILESTONE,
+ Boolean.toString(useXMLRPCDefaultMilestones.getSelection()));
repository.setProperty(IBugzillaConstants.BUGZILLA_DESCRIPTOR_FILE, descriptorFile.getText());
if (!autodetectPlatformOS.getSelection()) {
repository.setProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM,
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java
index f30aa00..4081048 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java
@@ -119,6 +119,14 @@ public class Messages extends NLS {
public static String BugzillaRepositorySettingsPage_Validating_server_settings;
+ public static String BugzillaRepositorySettingsPage_XMLRPC;
+
+ public static String BugzillaRepositorySettingsPage_XMLRPC_Active;
+
+ public static String BugzillaRepositorySettingsPage_XMLRPC_DefaultMilestones;
+
+ public static String BugzillaRepositorySettingsPage_XMLRPC_WorkflowTransitions;
+
public static String BugzillaTaskAttachmentPage_Advanced;
}
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties
index c547c84..b76360c 100644
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties
@@ -43,7 +43,11 @@ BugzillaRepositorySettingsPage_insiderGroup=Enable private comments:
BugzillaRepositorySettingsPage_insiderGroup_ToolTip=User ID is member of the insider group\nso private comments are supported
BugzillaRepositorySettingsPage_local_users_enabled=Local users enabled:
BugzillaRepositorySettingsPage_override_auto_detection_of_platform=Override auto detection of Platform and OS for new bug reports.
-BugzillaRepositorySettingsPage_RequiresBugzilla3_6=Requires Bugzilla > 3.6\nThe description file is not used
+BugzillaRepositorySettingsPage_RequiresBugzilla3_6=To use XMLRPC you need Bugzilla > 3.6
+BugzillaRepositorySettingsPage_XMLRPC=XMLRPC
+BugzillaRepositorySettingsPage_XMLRPC_Active=Active
+BugzillaRepositorySettingsPage_XMLRPC_DefaultMilestones=Default Milestones
+BugzillaRepositorySettingsPage_XMLRPC_WorkflowTransitions=Workflow Transitions
BugzillaRepositorySettingsPage_Retrieving_repository_configuration=Retrieving repository configuration
BugzillaRepositorySettingsPage_SelectDescriptorFile=Select descriptor file
BugzillaRepositorySettingsPage_Server_URL_is_invalid=Server URL is invalid.
--
1.8.2.1