From b5a07489f33d70ded88f059c72e13a426f6dd439 Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Tue, 20 Sep 2016 10:11:30 -0400 Subject: [PATCH] Convert some Functions/Predicates to streams & lambdas The conversion is somewhat conservative; there are many places where we use things like Lists.transform and FluentIterable where we could in theory switch entirely to streams, but the win is not obvious. Converting Functions to lambdas is pretty much always a win, though. Change-Id: I771b13bddb768426c8bb2dbf81207664994ee21d --- .../java/com/google/gerrit/metrics/Field.java | 9 +- .../metrics/dropwizard/BucketedCallback.java | 10 +- .../metrics/dropwizard/BucketedCounter.java | 10 +- .../metrics/dropwizard/BucketedHistogram.java | 10 +- .../metrics/dropwizard/BucketedTimer.java | 10 +- .../dropwizard/DropWizardMetricMaker.java | 11 +- .../google/gerrit/server/ApprovalsUtil.java | 12 +-- .../server/account/AccountResolver.java | 15 +-- .../gerrit/server/account/AccountState.java | 7 +- .../server/account/CapabilityControl.java | 35 +++--- .../server/account/DeleteWatchedProjects.java | 17 ++- .../gerrit/server/account/GetSshKeys.java | 11 +- .../server/account/InternalGroupBackend.java | 30 ++---- .../account/VersionedAuthorizedKeys.java | 10 +- .../gerrit/server/config/GetServerInfo.java | 14 +-- .../server/config/ProjectConfigEntry.java | 15 +-- .../extensions/events/ReviewerAdded.java | 11 +- .../server/extensions/webui/UiActions.java | 102 ++++++++---------- .../gerrit/server/notedb/ChangeBundle.java | 44 +++----- .../gerrit/server/notedb/ChangeNotes.java | 19 +--- .../server/notedb/ChangeNotesParser.java | 12 +-- .../server/notedb/RevisionNoteBuilder.java | 14 +-- .../server/notedb/RevisionNoteData.java | 22 ++-- .../gerrit/server/patch/PatchListLoader.java | 20 ++-- .../gerrit/server/project/BanCommit.java | 10 +- .../gerrit/server/project/GetReflog.java | 8 +- .../gerrit/server/project/ProjectState.java | 61 ++--------- .../google/gerrit/server/query/AndSource.java | 8 +- .../query/account/AccountQueryBuilder.java | 11 +- .../query/change/ChangeQueryBuilder.java | 14 +-- .../query/change/InternalChangeQuery.java | 17 +-- .../schema/ProjectConfigSchemaUpdate.java | 25 ++--- .../gerrit/server/schema/Schema_124.java | 11 +- .../gerrit/server/notedb/ChangeNotesTest.java | 13 +-- .../account/AbstractQueryAccountsTest.java | 17 +-- 35 files changed, 194 insertions(+), 471 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/metrics/Field.java b/gerrit-server/src/main/java/com/google/gerrit/metrics/Field.java index 364f4f871e..95fbf04afb 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/metrics/Field.java +++ b/gerrit-server/src/main/java/com/google/gerrit/metrics/Field.java @@ -161,17 +161,10 @@ public class Field { private static Function initFormatter(Class keyType) { if (keyType == String.class) { return (Function) Functions. identity(); - } else if (keyType == Integer.class || keyType == Boolean.class) { return (Function) Functions.toStringFunction(); - } else if (Enum.class.isAssignableFrom(keyType)) { - return new Function() { - @Override - public String apply(T in) { - return ((Enum) in).name(); - } - }; + return in -> ((Enum) in).name(); } throw new IllegalStateException("unsupported type " + keyType.getName()); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCallback.java b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCallback.java index e7ab75cd51..d3fe6edeb9 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCallback.java +++ b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCallback.java @@ -14,7 +14,6 @@ package com.google.gerrit.metrics.dropwizard; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import com.google.gerrit.metrics.Description; @@ -124,14 +123,7 @@ abstract class BucketedCallback implements BucketedMetric { @Override public Map getCells() { - return Maps.transformValues( - cells, - new Function () { - @Override - public Metric apply(ValueGauge in) { - return in; - } - }); + return Maps.transformValues(cells, in -> (Metric) in); } final class ValueGauge implements Gauge { diff --git a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCounter.java b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCounter.java index 10b92e6171..7894a84338 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCounter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedCounter.java @@ -14,7 +14,6 @@ package com.google.gerrit.metrics.dropwizard; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import com.google.gerrit.metrics.Description; @@ -98,13 +97,6 @@ abstract class BucketedCounter implements BucketedMetric { @Override public Map getCells() { - return Maps.transformValues( - cells, - new Function () { - @Override - public Metric apply(CounterImpl in) { - return in.metric; - } - }); + return Maps.transformValues(cells, c -> c.metric); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedHistogram.java b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedHistogram.java index 071c678559..ff38cd428f 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedHistogram.java +++ b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedHistogram.java @@ -14,7 +14,6 @@ package com.google.gerrit.metrics.dropwizard; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import com.google.gerrit.metrics.Description; @@ -96,13 +95,6 @@ abstract class BucketedHistogram implements BucketedMetric { @Override public Map getCells() { - return Maps.transformValues( - cells, - new Function () { - @Override - public Metric apply(HistogramImpl in) { - return in.metric; - } - }); + return Maps.transformValues(cells, h -> h.metric); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java index 6981ef1475..aff6c4a868 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java +++ b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java @@ -14,7 +14,6 @@ package com.google.gerrit.metrics.dropwizard; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import com.google.gerrit.metrics.Description; @@ -96,13 +95,6 @@ abstract class BucketedTimer implements BucketedMetric { @Override public Map getCells() { - return Maps.transformValues( - cells, - new Function () { - @Override - public Metric apply(TimerImpl in) { - return in.metric; - } - }); + return Maps.transformValues(cells, t -> t.metric); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/DropWizardMetricMaker.java b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/DropWizardMetricMaker.java index e159c82656..ee2ce29a07 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/DropWizardMetricMaker.java +++ b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/DropWizardMetricMaker.java @@ -18,7 +18,6 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.gerrit.metrics.dropwizard.MetricResource.METRIC_KIND; import static com.google.gerrit.server.config.ConfigResource.CONFIG_KIND; -import com.google.common.base.Function; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -304,14 +303,8 @@ public class DropWizardMetricMaker extends MetricMaker { @Override public synchronized RegistrationHandle newTrigger( Set> metrics, Runnable trigger) { - final ImmutableSet all = FluentIterable.from(metrics) - .transform( - new Function, CallbackMetricGlue>() { - @Override - public CallbackMetricGlue apply(CallbackMetric input) { - return (CallbackMetricGlue) input; - } - }) + ImmutableSet all = FluentIterable.from(metrics) + .transform(m -> (CallbackMetricGlue) m) .toSet(); trigger = new CallbackGroup(trigger, all); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/ApprovalsUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/ApprovalsUtil.java index 5c0723a3f3..bbc7ced973 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/ApprovalsUtil.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/ApprovalsUtil.java @@ -16,9 +16,9 @@ package com.google.gerrit.server; import static com.google.gerrit.server.notedb.ReviewerStateInternal.CC; import static com.google.gerrit.server.notedb.ReviewerStateInternal.REVIEWER; +import static java.util.Comparator.comparing; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -52,7 +52,6 @@ import com.google.inject.Singleton; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -81,14 +80,7 @@ public class ApprovalsUtil { LoggerFactory.getLogger(ApprovalsUtil.class); private static final Ordering SORT_APPROVALS = - Ordering.natural() - .onResultOf( - new Function() { - @Override - public Timestamp apply(PatchSetApproval a) { - return a.getGranted(); - } - }); + Ordering.from(comparing(PatchSetApproval::getGranted)); public static List sortApprovals( Iterable approvals) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java index 5a182696a9..b400eb779a 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java @@ -14,8 +14,8 @@ package com.google.gerrit.server.account; -import com.google.common.base.Function; -import com.google.common.collect.FluentIterable; +import static java.util.stream.Collectors.toSet; + import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.AccountExternalId; import com.google.gerrit.reviewdb.server.ReviewDb; @@ -191,14 +191,9 @@ public class AccountResolver { // At this point we have no clue. Just perform a whole bunch of suggestions // and pray we come up with a reasonable result list. - return FluentIterable - .from(accountQueryProvider.get().byDefault(nameOrEmail)) - .transform(new Function() { - @Override - public Account.Id apply(AccountState accountState) { - return accountState.getAccount().getId(); - } - }).toSet(); + return accountQueryProvider.get().byDefault(nameOrEmail).stream() + .map(a -> a.getAccount().getId()) + .collect(toSet()); } List m = db.accounts().byFullName(nameOrEmail).toList(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountState.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountState.java index 05a7179c7a..ed99266f8d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountState.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountState.java @@ -36,12 +36,7 @@ import java.util.Set; public class AccountState { public static final Function ACCOUNT_ID_FUNCTION = - new Function() { - @Override - public Account.Id apply(AccountState in) { - return in.getAccount().getId(); - } - }; + a -> a.getAccount().getId(); private final Account account; private final Set internalGroups; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java index e348e73752..d86d27cd55 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java @@ -14,15 +14,14 @@ package com.google.gerrit.server.account; -import com.google.common.base.Function; +import static com.google.common.base.Predicates.not; + import com.google.common.base.Predicate; -import com.google.common.base.Predicates; -import com.google.common.collect.Iterables; +import com.google.common.collect.FluentIterable; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.common.data.PermissionRange; import com.google.gerrit.common.data.PermissionRule; import com.google.gerrit.common.data.PermissionRule.Action; -import com.google.gerrit.reviewdb.client.AccountGroup; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.PeerDaemonUser; import com.google.gerrit.server.git.QueueProvider; @@ -32,6 +31,7 @@ import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -98,7 +98,7 @@ public class CapabilityControl { if (canEmailReviewers == null) { canEmailReviewers = matchAny(capabilities.emailReviewers, ALLOWED_RULE) - || !matchAny(capabilities.emailReviewers, Predicates.not(ALLOWED_RULE)); + || !matchAny(capabilities.emailReviewers, not(ALLOWED_RULE)); } return canEmailReviewers; @@ -279,23 +279,16 @@ public class CapabilityControl { return mine; } - private static final Predicate ALLOWED_RULE = new Predicate() { - @Override - public boolean apply(PermissionRule rule) { - return rule.getAction() == Action.ALLOW; - } - }; + private static final Predicate ALLOWED_RULE = + r -> r.getAction() == Action.ALLOW; - private boolean matchAny(Iterable rules, Predicate predicate) { - Iterable ids = Iterables.transform( - Iterables.filter(rules, predicate), - new Function() { - @Override - public AccountGroup.UUID apply(PermissionRule rule) { - return rule.getGroup().getUUID(); - } - }); - return user.getEffectiveGroups().containsAnyOf(ids); + private boolean matchAny(Collection rules, + Predicate predicate) { + return user.getEffectiveGroups() + .containsAnyOf( + FluentIterable.from(rules) + .filter(predicate) + .transform(r -> r.getGroup().getUUID())); } private static boolean match(GroupMembership groups, diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java index e2fbc3c39c..0e9bc2e3b3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java @@ -14,8 +14,8 @@ package com.google.gerrit.server.account; -import com.google.common.base.Function; -import com.google.common.collect.Lists; +import static java.util.stream.Collectors.toList; + import com.google.gerrit.extensions.client.ProjectWatchInfo; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.Response; @@ -105,13 +105,10 @@ public class DeleteWatchedProjects private void deleteFromGit(Account.Id accountId, List input) throws IOException, ConfigInvalidException { - watchConfig.deleteProjectWatches(accountId, Lists.transform(input, - new Function() { - @Override - public ProjectWatchKey apply(ProjectWatchInfo info) { - return ProjectWatchKey.create(new Project.NameKey(info.project), - info.filter); - } - })); + watchConfig.deleteProjectWatches( + accountId, + input.stream().map(w -> ProjectWatchKey.create( + new Project.NameKey(w.project), w.filter)) + .collect(toList())); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetSshKeys.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetSshKeys.java index bf1a3afd16..df125e05bb 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetSshKeys.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetSshKeys.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.account; -import com.google.common.base.Function; import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.gerrit.extensions.common.SshKeyInfo; @@ -60,13 +59,9 @@ public class GetSshKeys implements RestReadView { public List apply(IdentifiedUser user) throws RepositoryNotFoundException, IOException, ConfigInvalidException { - return Lists.transform(authorizedKeys.getKeys(user.getAccountId()), - new Function() { - @Override - public SshKeyInfo apply(AccountSshKey key) { - return newSshKeyInfo(key); - } - }); + return Lists.transform( + authorizedKeys.getKeys(user.getAccountId()), + GetSshKeys::newSshKeyInfo); } public static SshKeyInfo newSshKeyInfo(AccountSshKey sshKey) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java index c47d6f8386..84660ece7d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java @@ -14,10 +14,8 @@ package com.google.gerrit.server.account; -import com.google.common.base.Function; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; +import static java.util.stream.Collectors.toList; + import com.google.gerrit.common.data.GroupDescription; import com.google.gerrit.common.data.GroupDescriptions; import com.google.gerrit.common.data.GroupReference; @@ -30,18 +28,11 @@ import com.google.inject.Singleton; import org.eclipse.jgit.lib.ObjectId; import java.util.Collection; +import java.util.stream.StreamSupport; /** Implementation of GroupBackend for the internal group system. */ @Singleton public class InternalGroupBackend implements GroupBackend { - private static final Function ACT_GROUP_TO_GROUP_REF = - new Function() { - @Override - public GroupReference apply(AccountGroup group) { - return GroupReference.forGroup(group); - } - }; - private final GroupControl.Factory groupControlFactory; private final GroupCache groupCache; private final IncludingGroupMembership.Factory groupMembershipFactory; @@ -77,16 +68,13 @@ public class InternalGroupBackend implements GroupBackend { @Override public Collection suggest(final String name, final ProjectControl project) { - Iterable filtered = Iterables.filter(groupCache.all(), - new Predicate() { - @Override - public boolean apply(AccountGroup group) { + return StreamSupport.stream(groupCache.all().spliterator(), false) + .filter(group -> // startsWithIgnoreCase && isVisible - return group.getName().regionMatches(true, 0, name, 0, name.length()) - && groupControlFactory.controlFor(group).isVisible(); - } - }); - return Lists.newArrayList(Iterables.transform(filtered, ACT_GROUP_TO_GROUP_REF)); + group.getName().regionMatches(true, 0, name, 0, name.length()) + && groupControlFactory.controlFor(group).isVisible()) + .map(GroupReference::forGroup) + .collect(toList()); } @Override diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java index 30a3bdffe8..871b1cd5df 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java @@ -15,8 +15,8 @@ package com.google.gerrit.server.account; import static com.google.common.base.Preconditions.checkState; +import static java.util.Comparator.comparing; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Strings; import com.google.common.collect.Lists; @@ -278,13 +278,7 @@ public class VersionedAuthorizedKeys extends VersionedMetaData { * @param newKeys the new public SSH keys */ public void setKeys(Collection newKeys) { - Ordering o = - Ordering.natural().onResultOf(new Function() { - @Override - public Integer apply(AccountSshKey sshKey) { - return sshKey.getKey().get(); - } - }); + Ordering o = Ordering.from(comparing(k -> k.getKey().get())); keys = new ArrayList<>(Collections.nCopies(o.max(newKeys).getKey().get(), Optional. absent())); for (AccountSshKey key : newKeys) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java b/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java index 14c6da7f3c..4d15a2f9ce 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java @@ -14,11 +14,11 @@ package com.google.gerrit.server.config; +import static java.util.stream.Collectors.toList; + import com.google.common.base.CharMatcher; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Strings; -import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.gerrit.common.data.ContributorAgreement; import com.google.gerrit.extensions.common.AuthInfo; @@ -225,14 +225,8 @@ public class GetServerInfo implements RestReadView { getDownloadSchemeInfo(scheme, downloadCommands, cloneCommands)); } } - info.archives = Lists.newArrayList(Iterables.transform( - archiveFormats.getAllowed(), - new Function() { - @Override - public String apply(ArchiveFormat in) { - return in.getShortName(); - } - })); + info.archives = archiveFormats.getAllowed().stream() + .map(ArchiveFormat::getShortName).collect(toList()); return info; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/config/ProjectConfigEntry.java b/gerrit-server/src/main/java/com/google/gerrit/server/config/ProjectConfigEntry.java index cc7857c80e..7d11ff4958 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/config/ProjectConfigEntry.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/config/ProjectConfigEntry.java @@ -14,8 +14,8 @@ package com.google.gerrit.server.config; -import com.google.common.base.Function; -import com.google.common.collect.Lists; +import static java.util.stream.Collectors.toList; + import com.google.gerrit.extensions.annotations.ExtensionPoint; import com.google.gerrit.extensions.api.projects.ConfigValue; import com.google.gerrit.extensions.api.projects.ProjectConfigEntryType; @@ -137,14 +137,9 @@ public class ProjectConfigEntry { T defaultValue, Class permittedValues, boolean inheritable, String description) { this(displayName, defaultValue.name(), ProjectConfigEntryType.LIST, - Lists.transform( - Arrays.asList(permittedValues.getEnumConstants()), - new Function, String>() { - @Override - public String apply(Enum e) { - return e.name(); - } - }), inheritable, description); + Arrays.stream(permittedValues.getEnumConstants()) + .map(Enum::name).collect(toList()), + inheritable, description); } public ProjectConfigEntry(String displayName, String defaultValue, diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java index 35b14dc78c..9dbbeefd80 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/events/ReviewerAdded.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.extensions.events; -import com.google.common.base.Function; import com.google.common.collect.Lists; import com.google.gerrit.extensions.api.changes.NotifyHandling; import com.google.gerrit.extensions.common.AccountInfo; @@ -72,18 +71,10 @@ public class ReviewerAdded { return; } - List transformed = Lists.transform(reviewers, - new Function() { - @Override - public AccountInfo apply(Account.Id account) { - return util.accountInfo(account); - } - }); - try { fire(util.changeInfo(change), util.revisionInfo(change.getProject(), patchSet), - transformed, + Lists.transform(reviewers, util::accountInfo), util.accountInfo(adder), when); } catch (PatchListNotAvailableException | GpgException | IOException diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/webui/UiActions.java b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/webui/UiActions.java index 601bcc6496..3dbd1e389d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/extensions/webui/UiActions.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/extensions/webui/UiActions.java @@ -14,11 +14,8 @@ package com.google.gerrit.server.extensions.webui; -import com.google.common.base.Function; import com.google.common.base.Predicate; -import com.google.common.base.Predicates; -import com.google.common.collect.Iterables; -import com.google.gerrit.common.Nullable; +import com.google.common.collect.FluentIterable; import com.google.gerrit.extensions.registration.DynamicMap; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.RestCollection; @@ -33,16 +30,13 @@ import com.google.inject.Provider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Objects; + public class UiActions { private static final Logger log = LoggerFactory.getLogger(UiActions.class); public static Predicate enabled() { - return new Predicate() { - @Override - public boolean apply(UiAction.Description input) { - return input.isEnabled(); - } - }; + return UiAction.Description::isEnabled; } public static Iterable from( @@ -56,58 +50,52 @@ public class UiActions { DynamicMap> views, final R resource, final Provider userProvider) { - return Iterables.filter( - Iterables.transform( - views, - new Function>, UiAction.Description> () { - @Override - @Nullable - public UiAction.Description apply(DynamicMap.Entry> e) { - int d = e.getExportName().indexOf('.'); - if (d < 0) { - return null; - } + return FluentIterable.from(views) + .transform((DynamicMap.Entry> e) -> { + int d = e.getExportName().indexOf('.'); + if (d < 0) { + return null; + } - RestView view; - try { - view = e.getProvider().get(); - } catch (RuntimeException err) { - log.error(String.format( - "error creating view %s.%s", - e.getPluginName(), e.getExportName()), err); - return null; - } + RestView view; + try { + view = e.getProvider().get(); + } catch (RuntimeException err) { + log.error(String.format( + "error creating view %s.%s", + e.getPluginName(), e.getExportName()), err); + return null; + } - if (!(view instanceof UiAction)) { - return null; - } + if (!(view instanceof UiAction)) { + return null; + } - try { - CapabilityUtils.checkRequiresCapability(userProvider, - e.getPluginName(), view.getClass()); - } catch (AuthException exc) { - return null; - } + try { + CapabilityUtils.checkRequiresCapability(userProvider, + e.getPluginName(), view.getClass()); + } catch (AuthException exc) { + return null; + } - UiAction.Description dsc = - ((UiAction) view).getDescription(resource); - if (dsc == null || !dsc.isVisible()) { - return null; - } + UiAction.Description dsc = + ((UiAction) view).getDescription(resource); + if (dsc == null || !dsc.isVisible()) { + return null; + } - String name = e.getExportName().substring(d + 1); - PrivateInternals_UiActionDescription.setMethod( - dsc, - e.getExportName().substring(0, d)); - PrivateInternals_UiActionDescription.setId( - dsc, - "gerrit".equals(e.getPluginName()) - ? name - : e.getPluginName() + '~' + name); - return dsc; - } - }), - Predicates.notNull()); + String name = e.getExportName().substring(d + 1); + PrivateInternals_UiActionDescription.setMethod( + dsc, + e.getExportName().substring(0, d)); + PrivateInternals_UiActionDescription.setId( + dsc, + "gerrit".equals(e.getPluginName()) + ? name + : e.getPluginName() + '~' + name); + return dsc; + }) + .filter(Objects::nonNull); } private UiActions() { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeBundle.java b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeBundle.java index a8696a7cd8..9228770286 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeBundle.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeBundle.java @@ -345,54 +345,36 @@ public class ChangeBundle { private Map filterPatchSetApprovals() { - return limitToValidPatchSets(patchSetApprovals, - new Function() { - @Override - public PatchSet.Id apply(PatchSetApproval.Key in) { - return in.getParentKey(); - } - }); + return limitToValidPatchSets( + patchSetApprovals, PatchSetApproval.Key::getParentKey); } private Map filterPatchLineComments() { - return limitToValidPatchSets(patchLineComments, - new Function() { - @Override - public PatchSet.Id apply(PatchLineComment.Key in) { - return in.getParentKey().getParentKey(); - } - }); + return limitToValidPatchSets( + patchLineComments, + k -> k.getParentKey().getParentKey()); } private Map limitToValidPatchSets(Map in, - final Function func) { + Function func) { return Maps.filterKeys( in, Predicates.compose(validPatchSetPredicate(), func)); } private Predicate validPatchSetPredicate() { - final Predicate upToCurrent = upToCurrentPredicate(); - return new Predicate() { - @Override - public boolean apply(PatchSet.Id in) { - return upToCurrent.apply(in) && patchSets.containsKey(in); - } - }; + Predicate upToCurrent = upToCurrentPredicate(); + return p -> upToCurrent.apply(p) && patchSets.containsKey(p); } private Collection filterChangeMessages() { final Predicate validPatchSet = validPatchSetPredicate(); - return Collections2.filter(changeMessages, - new Predicate() { - @Override - public boolean apply(ChangeMessage in) { - PatchSet.Id psId = in.getPatchSetId(); - if (psId == null) { - return true; - } - return validPatchSet.apply(psId); + return Collections2.filter(changeMessages, m -> { + PatchSet.Id psId = m.getPatchSetId(); + if (psId == null) { + return true; } + return validPatchSet.apply(psId); }); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java index 42e4bc763a..a5c4324a81 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java @@ -19,9 +19,9 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import static com.google.gerrit.reviewdb.client.RefNames.changeMetaRef; import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES; +import static java.util.Comparator.comparing; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; @@ -70,7 +70,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -84,22 +83,10 @@ public class ChangeNotes extends AbstractChangeNotes { private static final Logger log = LoggerFactory.getLogger(ChangeNotes.class); static final Ordering PSA_BY_TIME = - Ordering.natural().onResultOf( - new Function() { - @Override - public Timestamp apply(PatchSetApproval input) { - return input.getGranted(); - } - }); + Ordering.from(comparing(PatchSetApproval::getGranted)); public static final Ordering MESSAGE_BY_TIME = - Ordering.natural().onResultOf( - new Function() { - @Override - public Timestamp apply(ChangeMessage input) { - return input.getWrittenOn(); - } - }); + Ordering.from(comparing(ChangeMessage::getWrittenOn)); public static ConfigInvalidException parseException(Change.Id changeId, String fmt, Object... args) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotesParser.java b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotesParser.java index c00121033a..8bf8ca1de4 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotesParser.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotesParser.java @@ -30,11 +30,10 @@ import static com.google.gerrit.server.notedb.ChangeNoteUtil.FOOTER_TAG; import static com.google.gerrit.server.notedb.ChangeNoteUtil.FOOTER_TOPIC; import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES; import static java.util.Comparator.comparing; +import static java.util.stream.Collectors.joining; import com.google.auto.value.AutoValue; import com.google.common.base.Enums; -import com.google.common.base.Function; -import com.google.common.base.Joiner; import com.google.common.base.Optional; import com.google.common.base.Splitter; import com.google.common.collect.ArrayListMultimap; @@ -883,13 +882,8 @@ class ChangeNotesParser { missing.add(FOOTER_SUBJECT); } if (!missing.isEmpty()) { - throw parseException("Missing footers: " + Joiner.on(", ") - .join(Lists.transform(missing, new Function() { - @Override - public String apply(FooterKey input) { - return input.getName(); - } - }))); + throw parseException("Missing footers: " + + missing.stream().map(FooterKey::getName).collect(joining(", "))); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteBuilder.java index af463d7d40..be0a689911 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteBuilder.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteBuilder.java @@ -17,10 +17,9 @@ package com.google.gerrit.server.notedb; import static com.google.common.base.Preconditions.checkArgument; import static com.google.gerrit.server.PatchLineCommentsUtil.PLC_ORDER; import static java.nio.charset.StandardCharsets.UTF_8; +import static java.util.stream.Collectors.toList; -import com.google.common.base.Function; import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.FluentIterable; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.google.gerrit.reviewdb.client.PatchLineComment; @@ -134,13 +133,10 @@ class RevisionNoteBuilder { } RevisionNoteData data = new RevisionNoteData(); - data.comments = FluentIterable.from(PLC_ORDER.sortedCopy(comments.values())) - .transform(new Function() { - @Override - public RevisionNoteData.Comment apply(PatchLineComment plc) { - return new RevisionNoteData.Comment(plc, noteUtil.getServerId()); - } - }).toList(); + data.comments = comments.values().stream() + .sorted(PLC_ORDER) + .map(plc -> new RevisionNoteData.Comment(plc, noteUtil.getServerId())) + .collect(toList()); data.pushCert = pushCert; try (OutputStreamWriter osw = new OutputStreamWriter(out)) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteData.java b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteData.java index f4c7d8ae32..ce0831c564 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteData.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/RevisionNoteData.java @@ -14,9 +14,9 @@ package com.google.gerrit.server.notedb; -import com.google.common.base.Function; +import static java.util.stream.Collectors.toList; + import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Patch; @@ -134,15 +134,15 @@ class RevisionNoteData { List comments; ImmutableList exportComments( - final PatchLineComment.Status status) { + PatchLineComment.Status status) { return ImmutableList.copyOf( - Lists.transform(comments, new Function() { - @Override - public PatchLineComment apply(Comment c) { - PatchLineComment plc = c.export(); - plc.setStatus(status); - return plc; - } - })); + comments.stream() + .map( + c -> { + PatchLineComment plc = c.export(); + plc.setStatus(status); + return plc; + }) + .collect(toList())); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java index 2fa43bb0fd..0ae9a99ffb 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java @@ -16,12 +16,12 @@ package com.google.gerrit.server.patch; import static com.google.common.base.Preconditions.checkArgument; + import static java.nio.charset.StandardCharsets.UTF_8; +import static java.util.stream.Collectors.toSet; import static org.eclipse.jgit.lib.Constants.OBJ_BLOB; -import com.google.common.base.Function; import com.google.common.base.Throwables; -import com.google.common.collect.FluentIterable; import com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace; import com.google.gerrit.reviewdb.client.Patch; import com.google.gerrit.reviewdb.client.Project; @@ -70,6 +70,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.stream.Stream; public class PatchListLoader implements Callable { static final Logger log = LoggerFactory.getLogger(PatchListLoader.class); @@ -179,16 +180,11 @@ public class PatchListLoader implements Callable { key.getNewId(), key.getWhitespace()); PatchListKey oldKey = PatchListKey.againstDefaultBase( key.getOldId(), key.getWhitespace()); - paths = FluentIterable - .from(patchListCache.get(newKey, project).getPatches()) - .append(patchListCache.get(oldKey, project).getPatches()) - .transform(new Function() { - @Override - public String apply(PatchListEntry entry) { - return entry.getNewName(); - } - }) - .toSet(); + paths = Stream.concat( + patchListCache.get(newKey, project).getPatches().stream(), + patchListCache.get(oldKey, project).getPatches().stream()) + .map(PatchListEntry::getNewName) + .collect(toSet()); } int cnt = diffEntries.size(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/BanCommit.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/BanCommit.java index f0c2b78250..ce97a837df 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/BanCommit.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/BanCommit.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.project; -import com.google.common.base.Function; import com.google.common.collect.Lists; import com.google.gerrit.common.errors.PermissionDeniedException; import com.google.gerrit.extensions.restapi.AuthException; @@ -91,14 +90,7 @@ public class BanCommit implements RestModifyView { if (commits == null || commits.isEmpty()) { return null; } - - return Lists.transform(commits, - new Function() { - @Override - public String apply(ObjectId id) { - return id.getName(); - } - }); + return Lists.transform(commits, ObjectId::getName); } public static class BanResultInfo { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/GetReflog.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/GetReflog.java index 1735c3dc49..8718a9b1f0 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/GetReflog.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/GetReflog.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.project; -import com.google.common.base.Function; import com.google.common.collect.Lists; import com.google.gerrit.extensions.common.GitPerson; import com.google.gerrit.extensions.restapi.AuthException; @@ -102,12 +101,7 @@ public class GetReflog implements RestReadView { } } } - return Lists.transform(entries, new Function() { - @Override - public ReflogEntryInfo apply(ReflogEntry e) { - return new ReflogEntryInfo(e); - } - }); + return Lists.transform(entries, ReflogEntryInfo::new); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java index 68d236edd5..bb6c62f7a0 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java @@ -17,7 +17,6 @@ package com.google.gerrit.server.project; import static com.google.gerrit.common.data.PermissionRule.Action.ALLOW; import static java.nio.charset.StandardCharsets.UTF_8; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; @@ -72,6 +71,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Function; /** Cached information on a project. */ public class ProjectState { @@ -378,75 +378,35 @@ public class ProjectState { } public boolean isUseContributorAgreements() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getUseContributorAgreements(); - } - }); + return getInheritableBoolean(Project::getUseContributorAgreements); } public boolean isUseContentMerge() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getUseContentMerge(); - } - }); + return getInheritableBoolean(Project::getUseContentMerge); } public boolean isUseSignedOffBy() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getUseSignedOffBy(); - } - }); + return getInheritableBoolean(Project::getUseSignedOffBy); } public boolean isRequireChangeID() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getRequireChangeID(); - } - }); + return getInheritableBoolean(Project::getRequireChangeID); } public boolean isCreateNewChangeForAllNotInTarget() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getCreateNewChangeForAllNotInTarget(); - } - }); + return getInheritableBoolean(Project::getCreateNewChangeForAllNotInTarget); } public boolean isEnableSignedPush() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getEnableSignedPush(); - } - }); + return getInheritableBoolean(Project::getEnableSignedPush); } public boolean isRequireSignedPush() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getRequireSignedPush(); - } - }); + return getInheritableBoolean(Project::getRequireSignedPush); } public boolean isRejectImplicitMerges() { - return getInheritableBoolean(new Function() { - @Override - public InheritableBoolean apply(Project input) { - return input.getRejectImplicitMerges(); - } - }); + return getInheritableBoolean(Project::getRejectImplicitMerges); } public LabelTypes getLabelTypes() { @@ -551,7 +511,8 @@ public class ProjectState { return Files.exists(p) ? new String(Files.readAllBytes(p), UTF_8) : null; } - private boolean getInheritableBoolean(Function func) { + private boolean getInheritableBoolean( + Function func) { for (ProjectState s : tree()) { switch (func.apply(s.getProject())) { case TRUE: diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/AndSource.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/AndSource.java index 168be5d784..9f0bf89bb8 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/AndSource.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/AndSource.java @@ -16,7 +16,6 @@ package com.google.gerrit.server.query; import static com.google.common.base.Preconditions.checkArgument; -import com.google.common.base.Function; import com.google.common.base.Throwables; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; @@ -157,12 +156,7 @@ public class AndSource extends AndPredicate private Iterable buffer(ResultSet scanner) { return FluentIterable.from(Iterables.partition(scanner, 50)) - .transformAndConcat(new Function, List>() { - @Override - public List apply(List buffer) { - return transformBuffer(buffer); - } - }); + .transformAndConcat(this::transformBuffer); } protected List transformBuffer(List buffer) throws OrmRuntimeException { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java index 0288cb2c20..40fb3b623b 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.query.account; -import com.google.common.base.Function; import com.google.common.base.Splitter; import com.google.common.collect.Lists; import com.google.common.primitives.Ints; @@ -124,13 +123,9 @@ public class AccountQueryBuilder extends QueryBuilder { public Predicate defaultQuery(String query) { return Predicate.and( - Lists.transform(Splitter.on(' ').omitEmptyStrings().splitToList(query), - new Function>() { - @Override - public Predicate apply(String s) { - return defaultField(s); - } - })); + Lists.transform( + Splitter.on(' ').omitEmptyStrings().splitToList(query), + this::defaultField)); } @Override diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java index d7c7730843..f697d15ddc 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java @@ -16,9 +16,9 @@ package com.google.gerrit.server.query.change; import static com.google.gerrit.reviewdb.client.Change.CHANGE_ID_PATTERN; import static com.google.gerrit.server.query.change.ChangeData.asChanges; +import static java.util.stream.Collectors.toSet; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; @@ -26,7 +26,6 @@ import com.google.common.collect.Lists; import com.google.common.primitives.Ints; import com.google.gerrit.common.data.GroupReference; import com.google.gerrit.common.errors.NotSignedInException; -import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.registration.DynamicMap; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.AccountGroup; @@ -632,14 +631,9 @@ public class ChangeQueryBuilder extends QueryBuilder { // expand a group predicate into multiple user predicates if (group != null) { Set allMembers = - new HashSet<>(Lists.transform( - args.listMembers.get().setRecursive(true).apply(group), - new Function() { - @Override - public Account.Id apply(AccountInfo accountInfo) { - return new Account.Id(accountInfo._accountId); - } - })); + args.listMembers.get().setRecursive(true).apply(group).stream() + .map(a -> new Account.Id(a._accountId)) + .collect(toSet()); int maxLimit = args.indexConfig.maxLimit(); if (allMembers.size() > maxLimit) { // limit the number of query terms otherwise Gerrit will barf diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java index 5b1b1c644f..daf89765d3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java @@ -22,7 +22,6 @@ import static com.google.gerrit.server.query.Predicate.or; import static com.google.gerrit.server.query.change.ChangeStatusPredicate.open; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Function; import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -191,20 +190,14 @@ public class InternalChangeQuery extends InternalQuery { } } - return Lists.transform(notesFactory.create(db, branch.getParentKey(), - changeIds, new com.google.common.base.Predicate() { - @Override - public boolean apply(ChangeNotes notes) { - Change c = notes.getChange(); + List notes = notesFactory.create( + db, branch.getParentKey(), changeIds, + cn -> { + Change c = cn.getChange(); return c.getDest().equals(branch) && c.getStatus() != Change.Status.MERGED; - } - }), new Function() { - @Override - public ChangeData apply(ChangeNotes notes) { - return changeDataFactory.create(db, notes); - } }); + return Lists.transform(notes, n -> changeDataFactory.create(db, n)); } private Iterable byCommitsOnBranchNotMergedFromIndex( diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java index 53ed5ac9d0..2d9714f3cd 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java @@ -15,9 +15,8 @@ package com.google.gerrit.server.schema; import static com.google.gerrit.server.git.ProjectConfig.ACCESS; +import static java.util.stream.Collectors.toList; -import com.google.common.base.Function; -import com.google.common.collect.Lists; import com.google.gerrit.common.data.PermissionRule; import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.server.git.MetaDataUpdate; @@ -67,18 +66,16 @@ public class ProjectConfigSchemaUpdate extends VersionedMetaData { Set names = config.getNames(ACCESS, subsection); if (names.contains(name)) { List values = - Arrays.asList(config.getStringList(ACCESS, subsection, name)); - values = Lists.transform(values, new Function() { - @Override - public String apply(String ruleString) { - PermissionRule rule = PermissionRule.fromString(ruleString, false); - if (rule.getForce()) { - rule.setForce(false); - updated = true; - } - return rule.asString(false); - } - }); + Arrays.stream(config.getStringList(ACCESS, subsection, name)) + .map(r -> { + PermissionRule rule = PermissionRule.fromString(r, false); + if (rule.getForce()) { + rule.setForce(false); + updated = true; + } + return rule.asString(false); + }) + .collect(toList()); config.setStringList(ACCESS, subsection, name, values); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java index 16f0bcf4be..895c905d5e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java @@ -14,7 +14,8 @@ package com.google.gerrit.server.schema; -import com.google.common.base.Function; +import static java.util.Comparator.comparing; + import com.google.common.base.Strings; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; @@ -124,13 +125,7 @@ public class Schema_124 extends SchemaVersion { private Collection fixInvalidSequenceNumbers( Collection keys) { - Ordering o = - Ordering.natural().onResultOf(new Function() { - @Override - public Integer apply(AccountSshKey sshKey) { - return sshKey.getKey().get(); - } - }); + Ordering o = Ordering.from(comparing(k -> k.getKey().get())); List fixedKeys = new ArrayList<>(keys); AccountSshKey minKey = o.min(keys); while (minKey.getKey().get() <= 0) { diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java index bd8259c661..7a1dbf7dbe 100644 --- a/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java +++ b/gerrit-server/src/test/java/com/google/gerrit/server/notedb/ChangeNotesTest.java @@ -24,7 +24,6 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static org.eclipse.jgit.lib.Constants.OBJ_BLOB; import static org.junit.Assert.fail; -import com.google.common.base.Function; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -34,7 +33,6 @@ import com.google.common.collect.ImmutableTable; import com.google.common.collect.Iterables; import com.google.common.collect.ListMultimap; import com.google.common.collect.Lists; -import com.google.common.collect.Ordering; import com.google.gerrit.common.TimeUtil; import com.google.gerrit.common.data.SubmitRecord; import com.google.gerrit.reviewdb.client.Account; @@ -47,6 +45,7 @@ import com.google.gerrit.reviewdb.client.PatchLineComment.Status; import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSetApproval; import com.google.gerrit.reviewdb.client.RevId; +import com.google.gerrit.reviewdb.server.ReviewDbUtil; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.ReviewerSet; import com.google.gerrit.server.config.GerritServerId; @@ -381,13 +380,9 @@ public class ChangeNotesTest extends AbstractChangeNotesTest { update.commit(); ChangeNotes notes = newNotes(c); - List approvals = Ordering.natural().onResultOf( - new Function() { - @Override - public Integer apply(PatchSetApproval in) { - return in.getAccountId().get(); - } - }).sortedCopy(notes.getApprovals().get(c.currentPatchSetId())); + List approvals = ReviewDbUtil.intKeyOrdering() + .onResultOf(PatchSetApproval::getAccountId) + .sortedCopy(notes.getApprovals().get(c.currentPatchSetId())); assertThat(approvals).hasSize(2); assertThat(approvals.get(0).getAccountId()) diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java index f7b3b11d6a..b65d49dad7 100644 --- a/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java +++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java @@ -17,7 +17,6 @@ package com.google.gerrit.server.query.account; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; -import com.google.common.base.Function; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import com.google.gerrit.extensions.api.GerritApi; @@ -476,22 +475,10 @@ public abstract class AbstractQueryAccountsTest extends GerritServerTests { } protected static Iterable ids(AccountInfo... accounts) { - return FluentIterable.from(Arrays.asList(accounts)).transform( - new Function() { - @Override - public Integer apply(AccountInfo in) { - return in._accountId; - } - }); + return FluentIterable.of(accounts).transform(a -> a._accountId); } protected static Iterable ids(Iterable accounts) { - return FluentIterable.from(accounts).transform( - new Function() { - @Override - public Integer apply(AccountInfo in) { - return in._accountId; - } - }); + return FluentIterable.from(accounts).transform(a -> a._accountId); } }