Merge "Document how features in Gerrit can be deprecated"
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
index 3587bf8..0f786a6 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
@@ -32,7 +32,6 @@
import com.google.gwtjsonrpc.client.impl.ser.JavaSqlTimestamp_JsonSerializer;
import java.sql.Timestamp;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -448,9 +447,8 @@
public static void sortRevisionInfoByNumber(JsArray<RevisionInfo> list) {
final int editParent = findEditParent(list);
- Collections.sort(
- Natives.asList(list),
- comparing(r -> !r.isEdit() ? 2 * (r._number() - 1) + 1 : 2 * editParent));
+ Natives.asList(list)
+ .sort(comparing(r -> !r.isEdit() ? 2 * (r._number() - 1) + 1 : 2 * editParent));
}
public static int findEditParent(JsArray<RevisionInfo> list) {
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java
index 345a260..fc3dbf1 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java
@@ -19,7 +19,6 @@
import com.google.gerrit.reviewdb.client.Patch;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
-import java.util.Collections;
import java.util.Comparator;
public class FileInfo extends JavaScriptObject {
@@ -55,8 +54,7 @@
public final native void _row(int r) /*-{ this._row = r }-*/;
public static void sortFileInfoByPath(JsArray<FileInfo> list) {
- Collections.sort(
- Natives.asList(list), Comparator.comparing(FileInfo::path, FilenameComparator.INSTANCE));
+ Natives.asList(list).sort(Comparator.comparing(FileInfo::path, FilenameComparator.INSTANCE));
}
public static String getFileName(String path) {
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java
index 4b17068..41306ff 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java
@@ -14,11 +14,12 @@
package com.google.gerrit.client.rpc;
+import static java.util.stream.Collectors.toCollection;
+
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.user.client.rpc.AsyncCallback;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -57,10 +58,7 @@
}
public final List<String> sortedKeys() {
- Set<String> keys = keySet();
- List<String> sorted = new ArrayList<>(keys);
- Collections.sort(sorted);
- return sorted;
+ return keySet().stream().sorted().collect(toCollection(ArrayList::new));
}
public final native JsArray<T> values() /*-{
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyGpgKeysScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyGpgKeysScreen.java
index bbd94f2..1a0090a 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyGpgKeysScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyGpgKeysScreen.java
@@ -42,7 +42,6 @@
import com.google.gwtexpui.clippy.client.CopyableLabel;
import com.google.gwtexpui.globalkey.client.NpTextArea;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
public class MyGpgKeysScreen extends SettingsScreen {
@@ -119,7 +118,7 @@
List<GpgKeyInfo> list = Natives.asList(result.values());
// TODO(dborowitz): Sort on something more meaningful, like
// created date?
- Collections.sort(list, comparing(GpgKeyInfo::id));
+ list.sort(comparing(GpgKeyInfo::id));
keys.clear();
keyText.setText("");
errorPanel.setVisible(false);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java
index 5c6d40f..730d98e 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java
@@ -14,6 +14,8 @@
package com.google.gerrit.client.account;
+import static java.util.Comparator.naturalOrder;
+
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.VoidResult;
import com.google.gerrit.client.rpc.GerritCallback;
@@ -29,7 +31,6 @@
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -169,7 +170,7 @@
void display(JsArray<ExternalIdInfo> results) {
List<ExternalIdInfo> idList = Natives.asList(results);
- Collections.sort(idList);
+ idList.sort(naturalOrder());
while (1 < table.getRowCount()) {
table.removeRow(table.getRowCount() - 1);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.java
index 1b946cd..7bd8b82 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.java
@@ -14,6 +14,8 @@
package com.google.gerrit.client.admin;
+import static java.util.stream.Collectors.toCollection;
+
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.common.data.AccessSection;
import com.google.gerrit.common.data.LabelType;
@@ -45,7 +47,6 @@
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.ValueListBox;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
public class AccessSectionEditor extends Composite
@@ -205,9 +206,8 @@
}
private void sortPermissions(AccessSection accessSection) {
- List<Permission> permissionList = new ArrayList<>(accessSection.getPermissions());
- Collections.sort(permissionList);
- accessSection.setPermissions(permissionList);
+ accessSection.setPermissions(
+ accessSection.getPermissions().stream().sorted().collect(toCollection(ArrayList::new)));
}
void setEditing(boolean editing) {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java
index c09f936..be0db41 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java
@@ -34,7 +34,6 @@
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
import com.google.gwt.user.client.ui.HTMLTable.Cell;
import com.google.gwt.user.client.ui.Image;
-import java.util.Collections;
import java.util.List;
public class GroupTable extends NavigationTable<GroupInfo> {
@@ -106,7 +105,7 @@
table.removeRow(table.getRowCount() - 1);
}
- Collections.sort(list, comparing(GroupInfo::name));
+ list.sort(comparing(GroupInfo::name));
for (GroupInfo group : list.subList(fromIndex, toIndex)) {
final int row = table.getRowCount();
table.insertRow(row);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Labels.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Labels.java
index 1f4820f..801a927 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Labels.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Labels.java
@@ -14,6 +14,10 @@
package com.google.gerrit.client.change;
+import static java.util.stream.Collectors.collectingAndThen;
+import static java.util.stream.Collectors.toCollection;
+import static java.util.stream.Collectors.toList;
+
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.changes.ChangeApi;
import com.google.gerrit.client.changes.Util;
@@ -135,9 +139,12 @@
}
void set(ChangeInfo info) {
- List<String> names = new ArrayList<>(info.labels());
+ List<String> names =
+ info.labels()
+ .stream()
+ .sorted()
+ .collect(collectingAndThen(toList(), Collections::unmodifiableList));
Set<Integer> removable = info.removableReviewerIds();
- Collections.sort(names);
resize(names.size(), 2);
@@ -197,8 +204,7 @@
}
private static List<Integer> sort(Set<Integer> keySet, int a, int b) {
- List<Integer> r = new ArrayList<>(keySet);
- Collections.sort(r);
+ List<Integer> r = keySet.stream().sorted().collect(toCollection(ArrayList::new));
if (keySet.contains(a)) {
r.remove(Integer.valueOf(a));
r.add(0, a);
@@ -238,31 +244,32 @@
Set<Integer> removable,
String label,
Map<Integer, VotableInfo> votable) {
- List<AccountInfo> users = new ArrayList<>(in);
- Collections.sort(
- users,
- new Comparator<AccountInfo>() {
- @Override
- public int compare(AccountInfo a, AccountInfo b) {
- String as = name(a);
- String bs = name(b);
- if (as.isEmpty()) {
- return 1;
- } else if (bs.isEmpty()) {
- return -1;
- }
- return as.compareTo(bs);
- }
+ List<AccountInfo> users =
+ in.stream()
+ .sorted(
+ new Comparator<AccountInfo>() {
+ @Override
+ public int compare(AccountInfo a, AccountInfo b) {
+ String as = name(a);
+ String bs = name(b);
+ if (as.isEmpty()) {
+ return 1;
+ } else if (bs.isEmpty()) {
+ return -1;
+ }
+ return as.compareTo(bs);
+ }
- private String name(AccountInfo a) {
- if (a.name() != null) {
- return a.name();
- } else if (a.email() != null) {
- return a.email();
- }
- return "";
- }
- });
+ private String name(AccountInfo a) {
+ if (a.name() != null) {
+ return a.name();
+ } else if (a.email() != null) {
+ return a.email();
+ }
+ return "";
+ }
+ })
+ .collect(collectingAndThen(toList(), Collections::unmodifiableList));
SafeHtmlBuilder html = new SafeHtmlBuilder();
Iterator<? extends AccountInfo> itr = users.iterator();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java
index 0bbd614..8a1a2d5 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java
@@ -16,6 +16,8 @@
import static com.google.gwt.event.dom.client.KeyCodes.KEY_ENTER;
import static com.google.gwt.event.dom.client.KeyCodes.KEY_MAC_ENTER;
+import static java.util.stream.Collectors.collectingAndThen;
+import static java.util.stream.Collectors.toList;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.changes.ChangeApi;
@@ -123,11 +125,15 @@
this.lc = new LocalComments(project, psId.getParentKey());
initWidget(uiBinder.createAndBindUi(this));
- List<String> names = new ArrayList<>(permitted.keySet());
+ List<String> names =
+ permitted
+ .keySet()
+ .stream()
+ .sorted()
+ .collect(collectingAndThen(toList(), Collections::unmodifiableList));
if (names.isEmpty()) {
UIObject.setVisible(labelsParent, false);
} else {
- Collections.sort(names);
renderLabels(names, all, permitted);
}
@@ -439,8 +445,11 @@
clp, project, psId, Util.C.commitMessage(), copyPath(Patch.MERGE_LIST, l)));
}
- List<String> paths = new ArrayList<>(m.keySet());
- Collections.sort(paths);
+ List<String> paths =
+ m.keySet()
+ .stream()
+ .sorted()
+ .collect(collectingAndThen(toList(), Collections::unmodifiableList));
for (String path : paths) {
if (!Patch.isMagic(path)) {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java
index 495a3d4..7ec1102 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/AccountDashboardScreen.java
@@ -178,7 +178,7 @@
}
}
- Collections.sort(Natives.asList(out), outComparator());
+ Natives.asList(out).sort(outComparator());
table.updateColumnsForLabels(wip, out, in, done);
workInProgress.display(wip);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/dashboards/DashboardsTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/dashboards/DashboardsTable.java
index 1a2f502..dcb9c01 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/dashboards/DashboardsTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/dashboards/DashboardsTable.java
@@ -27,7 +27,6 @@
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
import com.google.gwt.user.client.ui.Image;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -76,7 +75,7 @@
table.removeRow(table.getRowCount() - 1);
}
- Collections.sort(list, comparing(DashboardInfo::id));
+ list.sort(comparing(DashboardInfo::id));
String ref = null;
for (DashboardInfo d : list) {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentsCollections.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentsCollections.java
index 5db62bd..2698584 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentsCollections.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/CommentsCollections.java
@@ -29,7 +29,6 @@
import com.google.gerrit.reviewdb.client.Project;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.user.client.rpc.AsyncCallback;
-import java.util.Collections;
/** Collection of published and draft comments loaded from the server. */
class CommentsCollections {
@@ -159,7 +158,7 @@
for (CommentInfo c : Natives.asList(in)) {
c.path(path);
}
- Collections.sort(Natives.asList(in), comparing(CommentInfo::updated));
+ Natives.asList(in).sort(comparing(CommentInfo::updated));
}
return in;
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java
index 74f04ff..3576b12 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectsTable.java
@@ -22,7 +22,6 @@
import com.google.gerrit.client.rpc.Natives;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
import com.google.gwt.user.client.ui.Image;
-import java.util.Collections;
import java.util.List;
public class ProjectsTable extends NavigationTable<ProjectInfo> {
@@ -70,7 +69,7 @@
}
List<ProjectInfo> list = Natives.asList(projects.values());
- Collections.sort(list, comparing(ProjectInfo::name));
+ list.sort(comparing(ProjectInfo::name));
for (ProjectInfo p : list.subList(fromIndex, toIndex)) {
insert(table.getRowCount(), p);
}
diff --git a/gerrit-gwtui/src/main/java/net/codemirror/mode/ModeInfo.java b/gerrit-gwtui/src/main/java/net/codemirror/mode/ModeInfo.java
index ff12a07..9df066d 100644
--- a/gerrit-gwtui/src/main/java/net/codemirror/mode/ModeInfo.java
+++ b/gerrit-gwtui/src/main/java/net/codemirror/mode/ModeInfo.java
@@ -23,7 +23,6 @@
import com.google.gwt.core.client.JsArrayString;
import com.google.gwt.resources.client.DataResource;
import com.google.gwt.safehtml.shared.SafeUri;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -243,7 +242,7 @@
byMime.put(m.mode(), m);
}
}
- Collections.sort(Natives.asList(filtered), comparing((ModeInfo m) -> m.name().toLowerCase()));
+ Natives.asList(filtered).sort(comparing(m -> m.name().toLowerCase()));
setAll(filtered);
}
diff --git a/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java b/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java
index 9a24e47..74cadd3 100644
--- a/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java
+++ b/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java
@@ -456,8 +456,8 @@
}
}
- Collections.sort(cmds, PluginEntry.COMPARATOR_BY_NAME);
- Collections.sort(docs, PluginEntry.COMPARATOR_BY_NAME);
+ cmds.sort(PluginEntry.COMPARATOR_BY_NAME);
+ docs.sort(PluginEntry.COMPARATOR_BY_NAME);
StringBuilder md = new StringBuilder();
md.append(String.format("# Plugin %s #\n", pluginName));
diff --git a/java/com/google/gerrit/index/query/AndSource.java b/java/com/google/gerrit/index/query/AndSource.java
index e2605f4..d1e1c30 100644
--- a/java/com/google/gerrit/index/query/AndSource.java
+++ b/java/com/google/gerrit/index/query/AndSource.java
@@ -15,6 +15,7 @@
package com.google.gerrit.index.query;
import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.collect.ImmutableList.toImmutableList;
import com.google.common.base.Throwables;
import com.google.common.collect.FluentIterable;
@@ -26,7 +27,6 @@
import com.google.gwtorm.server.ResultSet;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -175,10 +175,8 @@
return cardinality;
}
- private List<Predicate<T>> sort(Collection<? extends Predicate<T>> that) {
- List<Predicate<T>> r = new ArrayList<>(that);
- Collections.sort(r, this);
- return r;
+ private ImmutableList<Predicate<T>> sort(Collection<? extends Predicate<T>> that) {
+ return that.stream().sorted(this).collect(toImmutableList());
}
@Override
diff --git a/java/com/google/gerrit/pgm/init/InitPlugins.java b/java/com/google/gerrit/pgm/init/InitPlugins.java
index 7f55903..e43114c 100644
--- a/java/com/google/gerrit/pgm/init/InitPlugins.java
+++ b/java/com/google/gerrit/pgm/init/InitPlugins.java
@@ -30,7 +30,6 @@
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
@@ -66,7 +65,7 @@
}
result.add(new PluginData(pluginName, pluginVersion, tmpPlugin));
});
- Collections.sort(result, comparing(p -> p.name));
+ result.sort(comparing(p -> p.name));
return result;
}
diff --git a/java/com/google/gerrit/server/CommentsUtil.java b/java/com/google/gerrit/server/CommentsUtil.java
index 18d9b3d..99dfbbb 100644
--- a/java/com/google/gerrit/server/CommentsUtil.java
+++ b/java/com/google/gerrit/server/CommentsUtil.java
@@ -502,7 +502,7 @@
}
private static <T extends Comment> List<T> sort(List<T> comments) {
- Collections.sort(comments, COMMENT_ORDER);
+ comments.sort(COMMENT_ORDER);
return comments;
}
diff --git a/java/com/google/gerrit/server/change/WalkSorter.java b/java/com/google/gerrit/server/change/WalkSorter.java
index cff1ac7..916a62b 100644
--- a/java/com/google/gerrit/server/change/WalkSorter.java
+++ b/java/com/google/gerrit/server/change/WalkSorter.java
@@ -34,7 +34,6 @@
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.Deque;
import java.util.HashSet;
import java.util.List;
@@ -110,7 +109,7 @@
for (Map.Entry<Project.NameKey, Collection<ChangeData>> e : byProject.asMap().entrySet()) {
sortedByProject.add(sortProject(e.getKey(), e.getValue()));
}
- Collections.sort(sortedByProject, PROJECT_LIST_SORTER);
+ sortedByProject.sort(PROJECT_LIST_SORTER);
return Iterables.concat(sortedByProject);
}
diff --git a/java/com/google/gerrit/server/events/EventFactory.java b/java/com/google/gerrit/server/events/EventFactory.java
index 2fbc1c7..fbce4b2 100644
--- a/java/com/google/gerrit/server/events/EventFactory.java
+++ b/java/com/google/gerrit/server/events/EventFactory.java
@@ -73,7 +73,6 @@
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -329,10 +328,9 @@
}
}
// Sort by original parent order.
- Collections.sort(
- ca.dependsOn,
+ ca.dependsOn.sort(
comparing(
- (DependencyAttribute d) -> {
+ d -> {
for (int i = 0; i < parentNames.size(); i++) {
if (parentNames.get(i).equals(d.revision)) {
return i;
diff --git a/java/com/google/gerrit/server/git/MergeUtil.java b/java/com/google/gerrit/server/git/MergeUtil.java
index 0231378..686be19 100644
--- a/java/com/google/gerrit/server/git/MergeUtil.java
+++ b/java/com/google/gerrit/server/git/MergeUtil.java
@@ -220,7 +220,7 @@
} catch (IOException e) {
throw new IntegrationException("Branch head sorting failed", e);
}
- Collections.sort(result, CodeReviewCommit.ORDER);
+ result.sort(CodeReviewCommit.ORDER);
return result;
}
diff --git a/java/com/google/gerrit/server/git/meta/TabFile.java b/java/com/google/gerrit/server/git/meta/TabFile.java
index ef25cd8..4c0378a 100644
--- a/java/com/google/gerrit/server/git/meta/TabFile.java
+++ b/java/com/google/gerrit/server/git/meta/TabFile.java
@@ -14,13 +14,15 @@
package com.google.gerrit.server.git.meta;
+import static com.google.common.collect.ImmutableList.toImmutableList;
+
+import com.google.common.collect.ImmutableList;
import com.google.gerrit.server.git.ValidationError;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -122,10 +124,8 @@
return buf.toString();
}
- protected static <T extends Comparable<? super T>> List<T> sort(Collection<T> m) {
- ArrayList<T> r = new ArrayList<>(m);
- Collections.sort(r);
- return r;
+ protected static <T extends Comparable<? super T>> ImmutableList<T> sort(Collection<T> m) {
+ return m.stream().sorted().collect(toImmutableList());
}
protected static String pad(int len, String src) {
diff --git a/java/com/google/gerrit/server/mail/send/CommentSender.java b/java/com/google/gerrit/server/mail/send/CommentSender.java
index 54176e2..0baaa11c 100644
--- a/java/com/google/gerrit/server/mail/send/CommentSender.java
+++ b/java/com/google/gerrit/server/mail/send/CommentSender.java
@@ -239,7 +239,7 @@
}
}
- Collections.sort(groups, Comparator.comparing(g -> g.filename, FilenameComparator.INSTANCE));
+ groups.sort(Comparator.comparing(g -> g.filename, FilenameComparator.INSTANCE));
return groups;
}
diff --git a/java/com/google/gerrit/server/notedb/ChangeNotesParser.java b/java/com/google/gerrit/server/notedb/ChangeNotesParser.java
index 4eeab81..cbb7020 100644
--- a/java/com/google/gerrit/server/notedb/ChangeNotesParser.java
+++ b/java/com/google/gerrit/server/notedb/ChangeNotesParser.java
@@ -79,7 +79,6 @@
import java.sql.Timestamp;
import java.text.ParseException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -297,9 +296,7 @@
}
result.put(a.getPatchSetId(), a);
}
- for (Collection<PatchSetApproval> v : result.asMap().values()) {
- Collections.sort((List<PatchSetApproval>) v, ChangeNotes.PSA_BY_TIME);
- }
+ result.keySet().forEach(k -> result.get(k).sort(ChangeNotes.PSA_BY_TIME));
return result;
}
diff --git a/java/com/google/gerrit/server/notedb/LegacyChangeNoteWrite.java b/java/com/google/gerrit/server/notedb/LegacyChangeNoteWrite.java
index 7931d88..c9711b5 100644
--- a/java/com/google/gerrit/server/notedb/LegacyChangeNoteWrite.java
+++ b/java/com/google/gerrit/server/notedb/LegacyChangeNoteWrite.java
@@ -15,10 +15,12 @@
package com.google.gerrit.server.notedb;
import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.gerrit.server.CommentsUtil.COMMENT_ORDER;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ListMultimap;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Comment;
@@ -30,8 +32,6 @@
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.Date;
import java.util.List;
import org.eclipse.jgit.lib.PersonIdent;
@@ -87,8 +87,7 @@
return;
}
- List<Integer> psIds = new ArrayList<>(comments.keySet());
- Collections.sort(psIds);
+ ImmutableList<Integer> psIds = comments.keySet().stream().sorted().collect(toImmutableList());
OutputStreamWriter streamWriter = new OutputStreamWriter(out, UTF_8);
try (PrintWriter writer = new PrintWriter(streamWriter)) {
diff --git a/java/com/google/gerrit/server/patch/DiffSummaryLoader.java b/java/com/google/gerrit/server/patch/DiffSummaryLoader.java
index 8bca19f..9153638 100644
--- a/java/com/google/gerrit/server/patch/DiffSummaryLoader.java
+++ b/java/com/google/gerrit/server/patch/DiffSummaryLoader.java
@@ -19,7 +19,6 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
@@ -66,8 +65,9 @@
break;
}
}
- Collections.sort(r);
return new DiffSummary(
- r.toArray(new String[r.size()]), patchList.getInsertions(), patchList.getDeletions());
+ r.stream().sorted().toArray(String[]::new),
+ patchList.getInsertions(),
+ patchList.getDeletions());
}
}
diff --git a/java/com/google/gerrit/server/patch/PatchScriptBuilder.java b/java/com/google/gerrit/server/patch/PatchScriptBuilder.java
index e94f7e8..61f0180 100644
--- a/java/com/google/gerrit/server/patch/PatchScriptBuilder.java
+++ b/java/com/google/gerrit/server/patch/PatchScriptBuilder.java
@@ -35,7 +35,6 @@
import eu.medsea.mimeutil.MimeUtil2;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
@@ -364,7 +363,7 @@
// them correctly later.
//
edits.addAll(empty);
- Collections.sort(edits, EDIT_SORT);
+ edits.sort(EDIT_SORT);
}
private void safeAdd(List<Edit> empty, Edit toAdd) {
diff --git a/java/com/google/gerrit/server/permissions/SectionSortCache.java b/java/com/google/gerrit/server/permissions/SectionSortCache.java
index 48c8bff..e5392b0 100644
--- a/java/com/google/gerrit/server/permissions/SectionSortCache.java
+++ b/java/com/google/gerrit/server/permissions/SectionSortCache.java
@@ -26,7 +26,6 @@
import com.google.inject.Singleton;
import com.google.inject.name.Named;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.List;
@@ -88,7 +87,7 @@
poison |= srcMap.put(sections.get(i), i) != null;
}
- Collections.sort(sections, new MostSpecificComparator(ref));
+ sections.sort(new MostSpecificComparator(ref));
int[] srcIdx;
if (isIdentityTransform(sections, srcMap)) {
diff --git a/java/com/google/gerrit/server/project/ProjectConfig.java b/java/com/google/gerrit/server/project/ProjectConfig.java
index 60c9ffd..5b79ab9 100644
--- a/java/com/google/gerrit/server/project/ProjectConfig.java
+++ b/java/com/google/gerrit/server/project/ProjectConfig.java
@@ -15,6 +15,7 @@
package com.google.gerrit.server.project;
import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.gerrit.common.data.Permission.isPermission;
import static com.google.gerrit.reviewdb.client.Project.DEFAULT_SUBMIT_TYPE;
import static java.util.stream.Collectors.toList;
@@ -1451,10 +1452,8 @@
validationErrors.add(error);
}
- private static <T extends Comparable<? super T>> List<T> sort(Collection<T> m) {
- ArrayList<T> r = new ArrayList<>(m);
- Collections.sort(r);
- return r;
+ private static <T extends Comparable<? super T>> ImmutableList<T> sort(Collection<T> m) {
+ return m.stream().sorted().collect(toImmutableList());
}
public boolean hasLegacyPermissions() {
diff --git a/java/com/google/gerrit/server/restapi/change/CommentJson.java b/java/com/google/gerrit/server/restapi/change/CommentJson.java
index 742fe16..a562592 100644
--- a/java/com/google/gerrit/server/restapi/change/CommentJson.java
+++ b/java/com/google/gerrit/server/restapi/change/CommentJson.java
@@ -37,7 +37,6 @@
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.inject.Inject;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -98,9 +97,7 @@
list.add(o);
}
- for (List<T> list : out.values()) {
- Collections.sort(list, COMMENT_INFO_ORDER);
- }
+ out.values().forEach(l -> l.sort(COMMENT_INFO_ORDER));
if (loader != null) {
loader.fill();
diff --git a/java/com/google/gerrit/server/restapi/change/ListRevisionDrafts.java b/java/com/google/gerrit/server/restapi/change/ListRevisionDrafts.java
index db8ef0c..dbd0ccf 100644
--- a/java/com/google/gerrit/server/restapi/change/ListRevisionDrafts.java
+++ b/java/com/google/gerrit/server/restapi/change/ListRevisionDrafts.java
@@ -14,6 +14,7 @@
package com.google.gerrit.server.restapi.change;
+import com.google.common.collect.ImmutableList;
import com.google.gerrit.extensions.common.CommentInfo;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.reviewdb.client.Comment;
@@ -61,7 +62,7 @@
.format(listComments(rsrc));
}
- public List<CommentInfo> getComments(RevisionResource rsrc)
+ public ImmutableList<CommentInfo> getComments(RevisionResource rsrc)
throws OrmException, PermissionBackendException {
return commentJson
.get()
diff --git a/java/com/google/gerrit/server/restapi/change/ListRobotComments.java b/java/com/google/gerrit/server/restapi/change/ListRobotComments.java
index 66138ab..99366aa 100644
--- a/java/com/google/gerrit/server/restapi/change/ListRobotComments.java
+++ b/java/com/google/gerrit/server/restapi/change/ListRobotComments.java
@@ -14,6 +14,7 @@
package com.google.gerrit.server.restapi.change;
+import com.google.common.collect.ImmutableList;
import com.google.gerrit.extensions.common.RobotCommentInfo;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.reviewdb.client.RobotComment;
@@ -52,7 +53,7 @@
.format(listComments(rsrc));
}
- public List<RobotCommentInfo> getComments(RevisionResource rsrc)
+ public ImmutableList<RobotCommentInfo> getComments(RevisionResource rsrc)
throws OrmException, PermissionBackendException {
return commentJson
.get()
diff --git a/java/com/google/gerrit/server/restapi/group/GetAuditLog.java b/java/com/google/gerrit/server/restapi/group/GetAuditLog.java
index 7af4284..dcdd8a8 100644
--- a/java/com/google/gerrit/server/restapi/group/GetAuditLog.java
+++ b/java/com/google/gerrit/server/restapi/group/GetAuditLog.java
@@ -41,7 +41,6 @@
import com.google.inject.Singleton;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Optional;
import org.eclipse.jgit.errors.ConfigInvalidException;
@@ -138,7 +137,7 @@
accountLoader.fill();
// sort by date and then reverse so that the newest audit event comes first
- Collections.sort(auditEvents, comparing((GroupAuditEventInfo a) -> a.date).reversed());
+ auditEvents.sort(comparing((GroupAuditEventInfo a) -> a.date).reversed());
return auditEvents;
}
}
diff --git a/java/com/google/gerrit/server/restapi/group/ListSubgroups.java b/java/com/google/gerrit/server/restapi/group/ListSubgroups.java
index 26b6db4..864b01b 100644
--- a/java/com/google/gerrit/server/restapi/group/ListSubgroups.java
+++ b/java/com/google/gerrit/server/restapi/group/ListSubgroups.java
@@ -30,7 +30,6 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
@Singleton
@@ -72,8 +71,7 @@
continue;
}
}
- Collections.sort(
- included,
+ included.sort(
comparing((GroupInfo g) -> nullToEmpty(g.name)).thenComparing(g -> nullToEmpty(g.id)));
return included;
}
diff --git a/java/com/google/gerrit/server/restapi/project/ListBranches.java b/java/com/google/gerrit/server/restapi/project/ListBranches.java
index bf4a547..a0d2528 100644
--- a/java/com/google/gerrit/server/restapi/project/ListBranches.java
+++ b/java/com/google/gerrit/server/restapi/project/ListBranches.java
@@ -46,7 +46,6 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
@@ -226,7 +225,7 @@
// Do nothing.
}
}
- Collections.sort(branches, new BranchComparator());
+ branches.sort(new BranchComparator());
return branches;
}
diff --git a/java/com/google/gerrit/server/restapi/project/ListTags.java b/java/com/google/gerrit/server/restapi/project/ListTags.java
index 578fbf3..f59e984 100644
--- a/java/com/google/gerrit/server/restapi/project/ListTags.java
+++ b/java/com/google/gerrit/server/restapi/project/ListTags.java
@@ -40,7 +40,6 @@
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
@@ -135,7 +134,7 @@
}
}
- Collections.sort(tags, comparing(t -> t.ref));
+ tags.sort(comparing(t -> t.ref));
return new RefFilter<TagInfo>(Constants.R_TAGS)
.start(start)
diff --git a/java/com/google/gerrit/server/submit/SubmitStrategyOp.java b/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
index 290e917..51dad5b 100644
--- a/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
+++ b/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
@@ -53,7 +53,6 @@
import com.google.gwtorm.server.OrmException;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -184,8 +183,7 @@
continue; // Bogus ref, can't be merged into tip so we don't care.
}
}
- Collections.sort(
- commits,
+ commits.sort(
ReviewDbUtil.intKeyOrdering().reverse().onResultOf(CodeReviewCommit::getPatchsetId));
CodeReviewCommit result = MergeUtil.findAnyMergedInto(rw, commits, tip);
if (result == null) {
diff --git a/java/com/google/gerrit/sshd/commands/ShowConnections.java b/java/com/google/gerrit/sshd/commands/ShowConnections.java
index 9b517c6..baadf02 100644
--- a/java/com/google/gerrit/sshd/commands/ShowConnections.java
+++ b/java/com/google/gerrit/sshd/commands/ShowConnections.java
@@ -15,8 +15,10 @@
package com.google.gerrit.sshd.commands;
import static com.google.common.base.Preconditions.checkState;
+import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.gerrit.sshd.CommandMetaData.Mode.MASTER_OR_SLAVE;
+import com.google.common.collect.ImmutableList;
import com.google.gerrit.common.TimeUtil;
import com.google.gerrit.common.data.GlobalCapability;
import com.google.gerrit.extensions.annotations.RequiresCapability;
@@ -33,11 +35,7 @@
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.Date;
-import java.util.List;
import java.util.Optional;
import org.apache.sshd.common.io.IoAcceptor;
import org.apache.sshd.common.io.IoSession;
@@ -92,25 +90,27 @@
throw new Failure(1, "fatal: sshd no longer running");
}
- final List<IoSession> list = new ArrayList<>(acceptor.getManagedSessions().values());
- Collections.sort(
- list,
- new Comparator<IoSession>() {
- @Override
- public int compare(IoSession arg0, IoSession arg1) {
- if (arg0 instanceof MinaSession) {
- MinaSession mArg0 = (MinaSession) arg0;
- MinaSession mArg1 = (MinaSession) arg1;
- if (mArg0.getSession().getCreationTime() < mArg1.getSession().getCreationTime()) {
- return -1;
- } else if (mArg0.getSession().getCreationTime()
- > mArg1.getSession().getCreationTime()) {
- return 1;
- }
- }
- return (int) (arg0.getId() - arg1.getId());
- }
- });
+ final ImmutableList<IoSession> list =
+ acceptor
+ .getManagedSessions()
+ .values()
+ .stream()
+ .sorted(
+ (arg0, arg1) -> {
+ if (arg0 instanceof MinaSession) {
+ MinaSession mArg0 = (MinaSession) arg0;
+ MinaSession mArg1 = (MinaSession) arg1;
+ if (mArg0.getSession().getCreationTime()
+ < mArg1.getSession().getCreationTime()) {
+ return -1;
+ } else if (mArg0.getSession().getCreationTime()
+ > mArg1.getSession().getCreationTime()) {
+ return 1;
+ }
+ }
+ return (int) (arg0.getId() - arg1.getId());
+ })
+ .collect(toImmutableList());
hostNameWidth = wide ? Integer.MAX_VALUE : columns - 9 - 9 - 10 - 32;
diff --git a/plugins/replication b/plugins/replication
index b62f006..d557ccc 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit b62f006b1350180de0af02c82fb18fb290a2548f
+Subproject commit d557ccc642c59a55750f560ce0d98870e1550d65
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
index 4f0a73b..9f1b412 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
@@ -96,7 +96,10 @@
reflectToAttribute: true,
},
noRenderOnPrefsChange: Boolean,
- comments: Object,
+ comments: {
+ type: Object,
+ value: {left: [], right: []},
+ },
lineWrapping: {
type: Boolean,
value: false,