Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 233757 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/jira/core/service/JiraClient.java (-1 / +32 lines)
Lines 14-19 Link Here
14
14
15
import java.io.File;
15
import java.io.File;
16
import java.io.OutputStream;
16
import java.io.OutputStream;
17
import java.util.Arrays;
18
import java.util.Collections;
19
import java.util.Comparator;
20
import java.util.List;
17
21
18
import org.apache.commons.httpclient.methods.multipart.PartSource;
22
import org.apache.commons.httpclient.methods.multipart.PartSource;
19
import org.eclipse.core.runtime.Assert;
23
import org.eclipse.core.runtime.Assert;
Lines 389-396 Link Here
389
		return (credentials != null) ? credentials.getUserName() : ""; //$NON-NLS-1$
393
		return (credentials != null) ? credentials.getUserName() : ""; //$NON-NLS-1$
390
	}
394
	}
391
395
396
	/**
397
	 * Returns sorted array of versions in descended order (the same as JIRA presents)
398
	 * 
399
	 * @param key
400
	 * @param monitor
401
	 * @return
402
	 * @throws JiraException
403
	 */
392
	public Version[] getVersions(String key, IProgressMonitor monitor) throws JiraException {
404
	public Version[] getVersions(String key, IProgressMonitor monitor) throws JiraException {
393
		return soapClient.getVersions(key, monitor);
405
		return sortVersions(soapClient.getVersions(key, monitor));
406
	}
407
408
	/**
409
	 * Returns sorted array of versions in descended order (the same as JIRA presents)
410
	 * 
411
	 * @param versions
412
	 * @return sorted list of versions
413
	 */
414
	public static Version[] sortVersions(Version[] versions) {
415
416
		List<Version> versionsList = Arrays.asList(versions);
417
418
		Collections.sort(versionsList, new Comparator<Version>() {
419
			public int compare(Version o1, Version o2) {
420
				return o1.getSequence() > o2.getSequence() ? -1 : (o1.getSequence() == o2.getSequence() ? 0 : 1);
421
			}
422
		});
423
424
		return versionsList.toArray(new Version[0]);
394
	}
425
	}
395
426
396
	@Override
427
	@Override
(-)src/org/eclipse/mylyn/jira/tests/client/JiraClientTest.java (+30 lines)
Lines 767-770 Link Here
767
		Project project = client.getCache().getProjectById("10050");
767
		Project project = client.getCache().getProjectById("10050");
768
		assertNotNull(project.getSecurityLevels());
768
		assertNotNull(project.getSecurityLevels());
769
	}
769
	}
770
771
	public void testSortVersions() throws JiraException {
772
773
		Version version1 = buildVersion("0.1.0", 1);
774
		Version version2 = buildVersion("0.2.0", 2);
775
		Version version3 = buildVersion("0.2.1", 3);
776
		Version version4 = buildVersion("1.0.0-beta1", 4);
777
		Version version5 = buildVersion("1.0.0", 5);
778
779
		Version[] versions = { version2, version5, version3, version1, version4 };
780
781
		Version[] sortedVersion = JiraClient.sortVersions(versions);
782
783
		assertEquals(versions.length, sortedVersion.length);
784
785
		assertEquals(version5, sortedVersion[0]);
786
		assertEquals(version4, sortedVersion[1]);
787
		assertEquals(version3, sortedVersion[2]);
788
		assertEquals(version2, sortedVersion[3]);
789
		assertEquals(version1, sortedVersion[4]);
790
791
	}
792
793
	private Version buildVersion(String name, long sequence) {
794
		Version version = new Version(name + sequence);
795
		version.setName(name);
796
		version.setSequence(sequence);
797
798
		return version;
799
	}
770
}
800
}

Return to bug 233757