dbc0022
From ea0c936844574443fbd327b9c2f33927cab2eb83 Mon Sep 17 00:00:00 2001
dbc0022
From: Frank Becker
dbc0022
Date: Fri, 18 Oct 2013 13:45:29 -0400
dbc0022
Subject: 419869: Bugzilla Version update 4.5.1, 4.4.1, 4.2.7, and 4.0.11
dbc0022
dbc0022
Change-Id: I40bdc470325accc55908566f9a1573fbe6d6fabc
dbc0022
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=419869
dbc0022
---
dbc0022
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
dbc0022
index 06647e6..e915ecd 100644
dbc0022
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java
dbc0022
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzillorg.eclipse.mylyn.tasks/core/BugzillaClient.java
dbc0022
@@ -1587,6 +1587,9 @@ public class BugzillaClient {
dbc0022
 						// Don't post any remaining non-bugzilla specific attributes
dbc0022
 						continue;
dbc0022
 					}
dbc0022
+					if (id.equals(BugzillaAttribute.DELTA_TS.getKey())) {
dbc0022
+						value = BugzillaUtil.removeTimezone(value);
dbc0022
+					}
dbc0022
 					fields.put(id, new NameValuePair(id, value != null ? value : "")); //$NON-NLS-1$
dbc0022
 				}
dbc0022
 			}
dbc0022
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaUtil.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaUtil.java
dbc0022
index b746a68..65af1d7 100644
dbc0022
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaUtil.java
dbc0022
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzillorg.eclipse.mylyn.tasks/core/BugzillaUtil.java
dbc0022
@@ -11,9 +11,16 @@
dbc0022
 
dbc0022
 package org.eclipse.mylyn.internal.bugzilla.core;
dbc0022
 
dbc0022
+import java.util.regex.Matcher;
dbc0022
+import java.util.regex.Pattern;
dbc0022
+
dbc0022
+import org.eclipse.core.runtime.CoreException;
dbc0022
+import org.eclipse.core.runtime.IStatus;
dbc0022
+import org.eclipse.core.runtime.Status;
dbc0022
 import org.eclipse.mylyn.tasks.core.TaskRepository;
dbc0022
 import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
dbc0022
 import org.eclipse.mylyn.tasks.core.data.TaskData;
dbc0022
+import org.eclipse.osgi.util.NLS;
dbc0022
 
dbc0022
 public class BugzillaUtil {
dbc0022
 
dbc0022
@@ -65,4 +72,16 @@ public class BugzillaUtil {
dbc0022
 		String useParam = taskRepository.getProperty(property);
dbc0022
 		return (useParam == null || (useParam != null && useParam.equals("true"))); //$NON-NLS-1$
dbc0022
 	}
dbc0022
+
dbc0022
+	private static final Pattern TIME_STAMP_PATTERN = Pattern.compile(
dbc0022
+			"[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
dbc0022
+
dbc0022
+	public static String removeTimezone(String timeWithTimezone) throws CoreException {
dbc0022
+		Matcher matcher = TIME_STAMP_PATTERN.matcher(timeWithTimezone);
dbc0022
+		if (matcher.find()) {
dbc0022
+			return matcher.group();
dbc0022
+		}
dbc0022
+		throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, NLS.bind(
dbc0022
+				"{0} is not a valid time", timeWithTimezone))); //$NON-NLS-1$
dbc0022
+	}
dbc0022
 }
dbc0022
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp
dbc0022
index 96f44b0..071a8c1 100644
dbc0022
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp
dbc0022
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.releng/modules/bugzillorg.eclipse.mylyn.tasks/manifests/defaultsites.pp
dbc0022
@@ -51,25 +51,25 @@ define bugzilla::defaultsites($base = $bugzilla::bugzillaBase, $userOwner = $bug
dbc0022
     xmlrpc_enabled => false,
dbc0022
   }
dbc0022
 
dbc0022
-  bugzilla::site { "bugzilla-4.0.10":
dbc0022
+  bugzilla::site { "bugzilla-4.0.11":
dbc0022
     major   => "4",
dbc0022
     minor   => "0",
dbc0022
   }
dbc0022
 
dbc0022
-  bugzilla::site { "bugzilla-4.2.6":
dbc0022
+  bugzilla::site { "bugzilla-4.2.7":
dbc0022
     major   => "4",
dbc0022
     minor   => "2",
dbc0022
     envdefault => true,
dbc0022
   }
dbc0022
 
dbc0022
-  bugzilla::site { "bugzilla-4.2.6-bugaliases":
dbc0022
+  bugzilla::site { "bugzilla-4.2.7-bugaliases":
dbc0022
     major   => "4",
dbc0022
     minor   => "2",
dbc0022
-    branchTag      => "bugzilla-4.2.6",
dbc0022
+    branchTag      => "bugzilla-4.2.7",
dbc0022
     usebugaliases => true,
dbc0022
   }
dbc0022
 
dbc0022
-  bugzilla::site { "bugzilla-4.4":
dbc0022
+  bugzilla::site { "bugzilla-4.4.1":
dbc0022
     major     => "4",
dbc0022
     minor     => "4",
dbc0022
   }
dbc0022
@@ -80,4 +80,5 @@ define bugzilla::defaultsites($base = $bugzilla::bugzillaBase, $userOwner = $bug
dbc0022
     branch      => "trunk",
dbc0022
     branchTag   => "trunk",
dbc0022
   }
dbc0022
+
dbc0022
 }
dbc0022
\ No newline at end of file
dbc0022
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaHeadlessStandaloneTests.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaHeadlessStandaloneTests.java
dbc0022
index 23ab85a..892e04f 100644
dbc0022
--- org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaHeadlessStandaloneTests.java
dbc0022
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzillorg.eclipse.mylyn.tasks/tests/AllBugzillaHeadlessStandaloneTests.java
dbc0022
@@ -26,6 +26,7 @@ import org.eclipse.mylyn.bugzilla.tests.core.BugzillaFlagsTest;
dbc0022
 import org.eclipse.mylyn.bugzilla.tests.core.BugzillaRepositoryConnectorConfigurationTest;
dbc0022
 import org.eclipse.mylyn.bugzilla.tests.core.BugzillaRepositoryConnectorStandaloneTest;
dbc0022
 import org.eclipse.mylyn.bugzilla.tests.core.BugzillaTaskCompletionTest;
dbc0022
+import org.eclipse.mylyn.bugzilla.tests.core.BugzillaUtilTest;
dbc0022
 import org.eclipse.mylyn.bugzilla.tests.core.BugzillaVersionTest;
dbc0022
 import org.eclipse.mylyn.bugzilla.tests.core.RepositoryConfigurationTest;
dbc0022
 import org.eclipse.mylyn.bugzilla.tests.support.BugzillaFixture;
dbc0022
@@ -74,6 +75,7 @@ public class AllBugzillaHeadlessStandaloneTests {
dbc0022
 		fixture.add(BugzillaRepositoryConnectorStandaloneTest.class);
dbc0022
 		fixture.add(BugzillaRepositoryConnectorConfigurationTest.class);
dbc0022
 		fixture.add(BugzillaClientTest.class);
dbc0022
+		fixture.add(BugzillaUtilTest.class);
dbc0022
 
dbc0022
 		// Only run these tests on > 3.2 repositories
dbc0022
 		if (!fixture.getBugzillaVersion().isSmallerOrEquals(BugzillaVersion.BUGZILLA_3_2)) {
dbc0022
diff --git org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/core/BugzillaUtilTest.java org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/core/BugzillaUtilTest.java
dbc0022
new file mode 100644
dbc0022
index 0000000..44f4f80
dbc0022
--- /dev/null
dbc0022
+++ org.eclipse.mylyn.tasks/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzillorg.eclipse.mylyn.tasks/tests/core/BugzillaUtilTest.java
dbc0022
@@ -0,0 +1,38 @@
dbc0022
+/*******************************************************************************
dbc0022
+ * Copyright (c) 2013 Frank Becker and others.
dbc0022
+ * All rights reserved. This program and the accompanying materials
dbc0022
+ * are made available under the terms of the Eclipse Public License v1.0
dbc0022
+ * which accompanies this distribution, and is available at
dbc0022
+ * http://www.eclipse.org/legal/epl-v10.html
dbc0022
+ *
dbc0022
+ * Contributors:
dbc0022
+ *     Frank Becker - initial API and implementation
dbc0022
+ *******************************************************************************/
dbc0022
+
dbc0022
+package org.eclipse.mylyn.bugzilla.tests.core;
dbc0022
+
dbc0022
+import junit.framework.TestCase;
dbc0022
+
dbc0022
+import org.eclipse.core.runtime.CoreException;
dbc0022
+import org.eclipse.mylyn.internal.bugzilla.core.BugzillaUtil;
dbc0022
+import org.junit.Test;
dbc0022
+
dbc0022
+public class BugzillaUtilTest extends TestCase {
dbc0022
+
dbc0022
+	@Test
dbc0022
+	public void testValidTimezoneRemove() throws CoreException {
dbc0022
+		assertEquals("2013-10-21 18:50:29", BugzillaUtil.removeTimezone("2013-10-21 18:50:29 +0000"));
dbc0022
+		assertEquals("2013-10-21 18:50:29", BugzillaUtil.removeTimezone("2013-10-21 18:50:29 CEST"));
dbc0022
+		assertEquals("2013-10-21 18:50:29", BugzillaUtil.removeTimezone("2013-10-21 18:50:29 GMT+02:00"));
dbc0022
+	}
dbc0022
+
dbc0022
+	@Test
dbc0022
+	public void testInvalidTimezoneRemove() {
dbc0022
+		try {
dbc0022
+			BugzillaUtil.removeTimezone("2013-10-21T18:50:29");
dbc0022
+			fail("Expected CoreException");
dbc0022
+		} catch (CoreException e) {
dbc0022
+			assertEquals("2013-10-21T18:50:29 is not a valid time", e.getMessage());
dbc0022
+		}
dbc0022
+	}
dbc0022
+}
dbc0022
--
dbc0022
cgit v0.8.3.4-115-g1759