Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Becker2013-06-03 19:18:12 +0000
committerFrank Becker2013-06-03 19:18:12 +0000
commit4df8e40de32fb67695bd3413913feebc06eec2df (patch)
tree56b3077c2f425ef9b00b2eec57ec23dd2ccc5805 /org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core
parent1752f99a0b376d6806de5ec958d25ad96d6f88ef (diff)
downloadorg.eclipse.mylyn.tasks-4df8e40de32fb67695bd3413913feebc06eec2df.tar.gz
org.eclipse.mylyn.tasks-4df8e40de32fb67695bd3413913feebc06eec2df.tar.xz
org.eclipse.mylyn.tasks-4df8e40de32fb67695bd3413913feebc06eec2df.zip
403024: Ability to reopen a task when 'REOPENED' state is not available.
Change-Id: I0fb34dc4017a82ec8381d7f7cf78a330f305adb9 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=403024
Diffstat (limited to 'org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core')
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java9
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java6
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java4
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties2
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java80
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/Messages.java31
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/messages.properties3
7 files changed, 104 insertions, 31 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 06647e699..4f2921f7e 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
@@ -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 a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java
index 7a2513e65..4d8eb8d81 100644
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java
+++ b/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 a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
index 0d4a71cfe..2900bd402 100644
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
+++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
@@ -219,6 +219,10 @@ public class Messages extends NLS {
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 BugzillaClientManager_Refreshing_repository_configuration;
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
index 31c9fafb7..636eabcbd 100644
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
+++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
@@ -107,6 +107,8 @@ BugzillaAttachmentMapper_URL=URL:
BugzillaClient_anonymous_user_not_allowed=Anonymous user not allowed for this operation.
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_Start_GetConfiguration=Start getRepositoryConfiguration for
+BugzillaClient_Stop_GetConfiguration=Stop getRepositoryConfiguration for
BugzillaClient_Unable_to_retrieve_new_task=Unable to retrieve new task.
BugzillaClientManager_Refreshing_repository_configuration=Refreshing repository configuration
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java
index af2d235a7..51da85d7a 100644
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/BugzillaXmlRpcClient.java
+++ b/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 a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/Messages.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/Messages.java
new file mode 100644
index 000000000..9b672cac0
--- /dev/null
+++ b/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 a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/messages.properties b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/service/messages.properties
new file mode 100644
index 000000000..734191b51
--- /dev/null
+++ b/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

Back to the top