FALCON-2268 Extension list api does not follow default ASC order
Author: Pracheer Agarwal <pracheer.agarwal@inmobi.com>
Author: Pracheer Agarwal <pracheeragarwal@gmail.com>
Author: Pracheer Agarwal <pr@im2216-x0.corp.inmobi.com>
Reviewers: @pallavi-rao,@sandeepSamudrala
Closes #353 from PracheerAgarwal/FALCON-2268 and squashes the following commits:
40bbe9b [Pracheer Agarwal] review comments changes
48fe3f4 [Pracheer Agarwal] review comments changes
ac32e54 [Pracheer Agarwal] FALCON-2268 Extension list api does not follow default ASC order
1dbde80 [Pracheer Agarwal] FALCON-2268 Extension list api does not follow default ASC order
9ff05df [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
9c2f0a5 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
9cd8c17 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
778c579 [Pracheer Agarwal] Merge branch 'master' of https://github.com/PracheerAgarwal/falcon
e39808d [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
a932633 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
fda3b28 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
a93d71a [Pracheer Agarwal] Merge branch 'master' of https://github.com/PracheerAgarwal/falcon
e3728d5 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
066c8e2 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
b20f044 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
7f572a1 [Pracheer Agarwal] Merge branch 'master' of https://github.com/apache/falcon
46042fd [Pracheer Agarwal] Merge branch 'master' of https://github.com/PracheerAgarwal/falcon
daa3ffc [Pracheer Agarwal] FALCON-2225 extension owner added for trusted extensions
622cae4 [Pracheer Agarwal] FALCON-2225 extension owner added for trusted extensions
diff --git a/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java b/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java
index 0a1322e..2d4f915 100644
--- a/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java
+++ b/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java
@@ -37,10 +37,7 @@
import org.slf4j.LoggerFactory;
import javax.ws.rs.core.Response;
import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
@@ -111,36 +108,27 @@
}
public ExtensionJobList getExtensionJobs(String extensionName, String sortOrder, String doAsUser) {
-
- Comparator<ExtensionJobsBean> compareByJobName = new Comparator<ExtensionJobsBean>() {
- @Override
- public int compare(ExtensionJobsBean o1, ExtensionJobsBean o2) {
- return o1.getJobName().compareToIgnoreCase(o2.getJobName());
- }
- };
-
- Map<String, String> jobAndExtensionNames = new HashMap<>();
+ TreeMap<String, String> jobAndExtensionNames = new TreeMap<>();
List<ExtensionJobsBean> extensionJobs = null;
+
if (extensionName != null) {
extensionJobs = ExtensionStore.getMetaStore().getJobsForAnExtension(extensionName);
} else {
extensionJobs = ExtensionStore.getMetaStore().getAllExtensionJobs();
}
- sortOrder = (sortOrder == null) ? ASCENDING_SORT_ORDER : sortOrder;
- switch (sortOrder.toLowerCase()) {
- case DESCENDING_SORT_ORDER:
- Collections.sort(extensionJobs, Collections.reverseOrder(compareByJobName));
- break;
-
- default:
- Collections.sort(extensionJobs, compareByJobName);
- }
-
for (ExtensionJobsBean job : extensionJobs) {
jobAndExtensionNames.put(job.getJobName(), job.getExtensionName());
}
- return new ExtensionJobList(extensionJobs.size(), jobAndExtensionNames);
+
+ sortOrder = (sortOrder == null) ? ASCENDING_SORT_ORDER : sortOrder;
+ switch (sortOrder.toLowerCase()) {
+ case DESCENDING_SORT_ORDER:
+ return new ExtensionJobList(extensionJobs.size(), jobAndExtensionNames.descendingMap());
+
+ default:
+ return new ExtensionJobList(extensionJobs.size(), jobAndExtensionNames);
+ }
}
public APIResult deleteExtensionMetadata(String extensionName) {