ReplicationFileBasedConfig: Replace FluentIterable with streams/lambda

Change-Id: I85356369f245a45aaef6db20655ac18750cb3400
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
index 4b976bc..1585e43 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
@@ -13,8 +13,8 @@
 // limitations under the License.
 package com.googlesource.gerrit.plugins.replication;
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
+import static java.util.stream.Collectors.toList;
+
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.google.gerrit.server.PluginUser;
@@ -41,7 +41,9 @@
 import java.nio.file.Path;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
+import java.util.function.Predicate;
 
 @Singleton
 public class ReplicationFileBasedConfig implements ReplicationConfig {
@@ -89,39 +91,25 @@
    */
   @Override
   public List<Destination> getDestinations(FilterType filterType) {
-    Predicate<Destination> filter;
+    Predicate<? super Destination> filter;
     switch (filterType) {
-      case PROJECT_CREATION :
-        filter = new Predicate<Destination>() {
-
-          @Override
-          public boolean apply(Destination dest) {
-            if (dest == null || !dest.isCreateMissingRepos()) {
-              return false;
-            }
-            return true;
-          }
-        };
+      case PROJECT_CREATION:
+        filter = dest -> dest.isCreateMissingRepos();
         break;
-      case PROJECT_DELETION :
-        filter = new Predicate<Destination>() {
-
-          @Override
-          public boolean apply(Destination dest) {
-            if (dest == null || !dest.isReplicateProjectDeletions()) {
-              return false;
-            }
-            return true;
-          }
-        };
+      case PROJECT_DELETION:
+        filter = dest -> dest.isReplicateProjectDeletions();
         break;
-      case ALL :
-        return destinations;
-      default :
-        return destinations;
+      case ALL:
+      default:
+        filter = dest -> true;
+        break;
     }
-    return FluentIterable.from(destinations).filter(filter).toList();
+    return destinations.stream()
+        .filter(Objects::nonNull)
+        .filter(filter)
+        .collect(toList());
   }
+
   private List<Destination> allDestinations()
       throws ConfigInvalidException, IOException {
     if (!config.getFile().exists()) {