You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2017/12/15 20:01:55 UTC

[3/4] aurora git commit: Use java.util.Optional throughout

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/MesosTaskFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/MesosTaskFactory.java b/src/main/java/org/apache/aurora/scheduler/mesos/MesosTaskFactory.java
index 727be58..cb288bb 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/MesosTaskFactory.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/MesosTaskFactory.java
@@ -15,12 +15,12 @@ package org.apache.aurora.scheduler.mesos;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.protobuf.ByteString;
@@ -211,7 +211,7 @@ public interface MesosTaskFactory {
           taskBuilder.setExecutor(execBuilder.build());
         } else {
           LOG.warn("Running Docker-based task without an executor.");
-          taskBuilder.setContainer(getDockerContainerInfo(dockerContainer, Optional.absent()))
+          taskBuilder.setContainer(getDockerContainerInfo(dockerContainer, Optional.empty()))
               .setCommand(CommandInfo.newBuilder().setShell(false));
         }
       } else {
@@ -276,7 +276,7 @@ public interface MesosTaskFactory {
             .addVolumes(volume));
       }
 
-      return Optional.absent();
+      return Optional.empty();
     }
 
     private ContainerInfo getDockerContainerInfo(

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java b/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
index e0221f8..e378ef1 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
@@ -14,12 +14,12 @@
 package org.apache.aurora.scheduler.mesos;
 
 import java.util.Collection;
+import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicLong;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.AbstractIdleService;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java b/src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java
index 8afeec1..e436080 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.mesos;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.mesos.v1.Protos;
 import org.apache.mesos.v1.scheduler.Mesos;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java b/src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java
index 5329de5..43c8ee4 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java
@@ -13,12 +13,13 @@
  */
 package org.apache.aurora.scheduler.mesos;
 
+import java.util.Optional;
 import java.util.concurrent.Executor;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
+
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java b/src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java
index 4609064..673788d 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.mesos;
 
 import java.util.Collection;
+import java.util.Optional;
 import java.util.concurrent.CountDownLatch;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.Collections2;
 import com.google.common.eventbus.Subscribe;
 import com.google.common.util.concurrent.AbstractIdleService;
@@ -101,12 +101,12 @@ class VersionedSchedulerDriverService extends AbstractIdleService
       LOG.warn("Did not find a persisted framework ID, connecting as a new framework.");
     }
 
-    Credential credential = driverSettings.getCredentials().orNull();
+    Credential credential = driverSettings.getCredentials().orElse(null);
     Mesos mesos = factory.create(
         scheduler,
         frameworkBuilder.build(),
         driverSettings.getMasterUri(),
-        Optional.fromNullable(credential));
+        Optional.ofNullable(credential));
 
     mesosFuture.set(mesos);
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/offers/HostOffer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/HostOffer.java b/src/main/java/org/apache/aurora/scheduler/offers/HostOffer.java
index 7934838..b289ddb 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/HostOffer.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/HostOffer.java
@@ -15,10 +15,10 @@ package org.apache.aurora.scheduler.offers;
 
 import java.time.Instant;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.function.Supplier;
 
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Optional;
 import com.google.common.base.Suppliers;
 
 import org.apache.aurora.scheduler.base.Conversions;
@@ -84,7 +84,7 @@ public class HostOffer {
     if (offer.hasUnavailability()) {
       return Optional.of(Conversions.getStart(offer.getUnavailability()));
     } else {
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/offers/HostOffers.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/HostOffers.java b/src/main/java/org/apache/aurora/scheduler/offers/HostOffers.java
index c0a4b57..a01c0a8 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/HostOffers.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/HostOffers.java
@@ -14,12 +14,12 @@
 package org.apache.aurora.scheduler.offers;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
 import java.util.concurrent.atomic.AtomicLong;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.cache.Cache;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.Iterables;
@@ -98,7 +98,7 @@ class HostOffers {
     }
 
     addInternal(offer);
-    return Optional.absent();
+    return Optional.empty();
   }
 
   private void addInternal(HostOffer offer) {
@@ -135,7 +135,7 @@ class HostOffers {
   synchronized Optional<HostOffer> get(Protos.AgentID slaveId) {
     HostOffer offer = offersBySlave.get(slaveId);
     if (offer == null || globallyBannedOffers.contains(offer.getOffer().getId())) {
-      return Optional.absent();
+      return Optional.empty();
     }
 
     return Optional.of(offer);
@@ -163,9 +163,9 @@ class HostOffers {
       HostOffer offer = optionalOffer.get();
 
       if (isGloballyBanned(offer)
-          || isVetoed(offer, resourceRequest, revocable, Optional.absent())) {
+          || isVetoed(offer, resourceRequest, revocable, Optional.empty())) {
 
-        return Optional.absent();
+        return Optional.empty();
       }
     }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java b/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
index df32775..e90de3e 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
@@ -13,8 +13,9 @@
  */
 package org.apache.aurora.scheduler.offers;
 
+import java.util.Optional;
+
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 
 import org.apache.aurora.scheduler.base.TaskGroupKey;
 import org.apache.aurora.scheduler.events.PubsubEvent.EventSubscriber;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/offers/OfferManagerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/OfferManagerImpl.java b/src/main/java/org/apache/aurora/scheduler/offers/OfferManagerImpl.java
index 14a528f..8e806b7 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/OfferManagerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/OfferManagerImpl.java
@@ -13,12 +13,13 @@
  */
 package org.apache.aurora.scheduler.offers;
 
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
+
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.eventbus.Subscribe;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/offers/OfferOrderBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/OfferOrderBuilder.java b/src/main/java/org/apache/aurora/scheduler/offers/OfferOrderBuilder.java
index 57462a3..1260ef1 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/OfferOrderBuilder.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/OfferOrderBuilder.java
@@ -47,7 +47,7 @@ final class OfferOrderBuilder {
       Ordering
           .natural()
           .reverse()
-          .onResultOf(o -> o.getUnavailabilityStart().or(Instant.MAX));
+          .onResultOf(o -> o.getUnavailabilityStart().orElse(Instant.MAX));
 
   private static final Ordering<HostOffer> BASE_COMPARATOR =
       AURORA_MAINTENANCE_COMPARATOR.compound(MESOS_MAINTENANCE_COMPARATOR);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/preemptor/BiCache.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/preemptor/BiCache.java b/src/main/java/org/apache/aurora/scheduler/preemptor/BiCache.java
index 7616012..ad4c039 100644
--- a/src/main/java/org/apache/aurora/scheduler/preemptor/BiCache.java
+++ b/src/main/java/org/apache/aurora/scheduler/preemptor/BiCache.java
@@ -14,13 +14,13 @@
 package org.apache.aurora.scheduler.preemptor;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Ticker;
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
@@ -118,7 +118,7 @@ public class BiCache<K, V> {
    * @return Optional of value.
    */
   public synchronized Optional<V> get(K key) {
-    return Optional.fromNullable(cache.getIfPresent(key));
+    return Optional.ofNullable(cache.getIfPresent(key));
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessor.java b/src/main/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessor.java
index abfec58..056e466 100644
--- a/src/main/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessor.java
+++ b/src/main/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessor.java
@@ -19,6 +19,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -27,7 +28,6 @@ import javax.inject.Qualifier;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
@@ -179,7 +179,7 @@ public class PendingTaskProcessor implements Runnable {
                   task,
                   slavesToActiveTasks.get(slaveId),
                   jobStates.getUnchecked(task.getJob()),
-                  Optional.fromNullable(slavesToOffers.get(slaveId)),
+                  Optional.ofNullable(slavesToOffers.get(slaveId)),
                   store);
 
           metrics.recordSlotSearchResult(candidates, task);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilter.java b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilter.java
index cce93d8..cf6d348 100644
--- a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilter.java
+++ b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilter.java
@@ -15,13 +15,13 @@ package org.apache.aurora.scheduler.preemptor;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableSet;
@@ -197,9 +197,10 @@ public interface PreemptionVictimFilter {
       // get the host for the schedulingFilter.
       Set<String> hosts = ImmutableSet.<String>builder()
           .addAll(Iterables.transform(possibleVictims, VICTIM_TO_HOST))
-          .addAll(Iterables.transform(offer.asSet(), OFFER_TO_HOST)).build();
+          .addAll(offer.map(OFFER_TO_HOST).map(ImmutableSet::of).orElse(ImmutableSet.of()))
+          .build();
 
-      ResourceBag slackResources = offer.asSet().stream()
+      ResourceBag slackResources = offer.map(ImmutableSet::of).orElse(ImmutableSet.of()).stream()
           .map(o -> bagFromMesosResources(getNonRevocableOfferResources(o.getOffer())))
           .reduce((l, r) -> l.add(r))
           .orElse(EMPTY);
@@ -209,7 +210,7 @@ public interface PreemptionVictimFilter {
 
       List<PreemptionVictim> sortedVictims = resourceOrder.immutableSortedCopy(preemptableTasks);
       if (sortedVictims.isEmpty()) {
-        return Optional.absent();
+        return Optional.empty();
       }
 
       Set<PreemptionVictim> toPreemptTasks = Sets.newHashSet();
@@ -219,7 +220,7 @@ public interface PreemptionVictimFilter {
 
       if (!attributes.isPresent()) {
         metrics.recordMissingAttributes();
-        return Optional.absent();
+        return Optional.empty();
       }
 
       ResourceBag overhead = pendingTask.isSetExecutorConfig()
@@ -232,7 +233,7 @@ public interface PreemptionVictimFilter {
         toPreemptTasks.add(victim);
         totalResource = totalResource.add(victimToResources.apply(victim));
 
-        Optional<Instant> unavailability = Optional.absent();
+        Optional<Instant> unavailability = Optional.empty();
         if (offer.isPresent()) {
           unavailability = offer.get().getUnavailabilityStart();
         }
@@ -248,7 +249,7 @@ public interface PreemptionVictimFilter {
           return Optional.of(ImmutableSet.copyOf(toPreemptTasks));
         }
       }
-      return Optional.absent();
+      return Optional.empty();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/preemptor/Preemptor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/preemptor/Preemptor.java b/src/main/java/org/apache/aurora/scheduler/preemptor/Preemptor.java
index ffb8b90..293d106 100644
--- a/src/main/java/org/apache/aurora/scheduler/preemptor/Preemptor.java
+++ b/src/main/java/org/apache/aurora/scheduler/preemptor/Preemptor.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.preemptor;
 
 import java.util.Iterator;
+import java.util.Optional;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.aurora.scheduler.base.TaskGroupKey;
@@ -104,7 +104,7 @@ public interface Preemptor {
             stateManager.changeState(
                 store,
                 toPreempt.getTaskId(),
-                Optional.absent(),
+                Optional.empty(),
                 PREEMPTING,
                 Optional.of("Preempting in favor of " + pendingTask.getTaskId()));
           }
@@ -112,7 +112,7 @@ public interface Preemptor {
         }
       }
 
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorMetrics.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorMetrics.java b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorMetrics.java
index 662aa2d..8730577 100644
--- a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorMetrics.java
+++ b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorMetrics.java
@@ -13,12 +13,12 @@
  */
 package org.apache.aurora.scheduler.preemptor;
 
+import java.util.Optional;
 import java.util.Set;
 
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.aurora.scheduler.stats.CachedCounters;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
index 5d8907a..007ebc2 100644
--- a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
@@ -16,6 +16,7 @@ package org.apache.aurora.scheduler.preemptor;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 import java.util.List;
+import java.util.Optional;
 
 import javax.inject.Inject;
 import javax.inject.Qualifier;
@@ -23,7 +24,6 @@ import javax.inject.Singleton;
 
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.AbstractScheduledService;
 import com.google.inject.AbstractModule;
@@ -178,5 +178,5 @@ public class PreemptorModule extends AbstractModule {
   }
 
   private static final Preemptor NULL_PREEMPTOR =
-      (task, jobState, storeProvider) -> Optional.absent();
+      (task, jobState, storeProvider) -> Optional.empty();
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/quota/QuotaCheckResult.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/quota/QuotaCheckResult.java b/src/main/java/org/apache/aurora/scheduler/quota/QuotaCheckResult.java
index d3ca2df..f07814a 100644
--- a/src/main/java/org/apache/aurora/scheduler/quota/QuotaCheckResult.java
+++ b/src/main/java/org/apache/aurora/scheduler/quota/QuotaCheckResult.java
@@ -13,8 +13,9 @@
  */
 package org.apache.aurora.scheduler.quota;
 
+import java.util.Optional;
+
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 
 import org.apache.aurora.scheduler.resources.ResourceBag;
 import org.apache.aurora.scheduler.resources.ResourceType;
@@ -48,7 +49,7 @@ public class QuotaCheckResult {
 
   @VisibleForTesting
   public QuotaCheckResult(Result result) {
-    this(result, Optional.absent());
+    this(result, Optional.empty());
   }
 
   private QuotaCheckResult(Result result, Optional<String> details) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java b/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java
index 64ad12b..e2750d7 100644
--- a/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/quota/QuotaManager.java
@@ -15,13 +15,13 @@ package org.apache.aurora.scheduler.quota;
 
 import java.util.EnumSet;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.collect.FluentIterable;
@@ -172,7 +172,7 @@ public interface QuotaManager {
         throw new QuotaException("Negative values in: " + quota.toString());
       }
 
-      QuotaInfo info = getQuotaInfo(ownerRole, Optional.absent(), storeProvider);
+      QuotaInfo info = getQuotaInfo(ownerRole, Optional.empty(), storeProvider);
       ResourceBag prodConsumption = info.getProdSharedConsumption();
       ResourceBag overage = bagFromAggregate(quota).subtract(prodConsumption);
       if (!overage.filter(IS_NEGATIVE).getResourceVectors().isEmpty()) {
@@ -187,7 +187,7 @@ public interface QuotaManager {
 
     @Override
     public QuotaInfo getQuotaInfo(String role, StoreProvider storeProvider) {
-      return getQuotaInfo(role, Optional.absent(), storeProvider);
+      return getQuotaInfo(role, Optional.empty(), storeProvider);
     }
 
     @Override
@@ -237,7 +237,7 @@ public interface QuotaManager {
       }
 
       QuotaInfo quotaInfo =
-          getQuotaInfo(cronConfig.getKey().getRole(), Optional.absent(), storeProvider);
+          getQuotaInfo(cronConfig.getKey().getRole(), Optional.empty(), storeProvider);
 
       Optional<IJobConfiguration> oldCron =
           storeProvider.getCronJobStore().fetchJob(cronConfig.getKey());
@@ -296,8 +296,8 @@ public interface QuotaManager {
 
       return new QuotaInfo(
           storeProvider.getQuotaStore().fetchQuota(role)
-              .transform(ResourceManager::bagFromAggregate)
-              .or(EMPTY),
+              .map(ResourceManager::bagFromAggregate)
+              .orElse(EMPTY),
           getConsumption(tasks, updates, cronTemplates, PROD_SHARED),
           getConsumption(tasks, updates, cronTemplates, PROD_DEDICATED),
           getConsumption(tasks, updates, cronTemplates, NON_PROD_SHARED),
@@ -384,7 +384,7 @@ public interface QuotaManager {
         final Map<IJobKey, IJobUpdateInstructions> roleJobUpdates) {
 
       return task -> {
-        Optional<IJobUpdateInstructions> update = Optional.fromNullable(
+        Optional<IJobUpdateInstructions> update = Optional.ofNullable(
             roleJobUpdates.get(task.getTask().getJob()));
 
         if (update.isPresent()) {
@@ -437,7 +437,9 @@ public interface QuotaManager {
         Iterable<IInstanceTaskConfig> initialState =
             Iterables.filter(instructions.getInitialState(), instanceFilter);
         Iterable<IInstanceTaskConfig> desiredState = Iterables.filter(
-            Optional.fromNullable(instructions.getDesiredState()).asSet(),
+            Optional.ofNullable(instructions.getDesiredState())
+                .map(ImmutableSet::of)
+                .orElse(ImmutableSet.of()),
             instanceFilter);
 
         // Calculate result as max(existing, desired) per resource type.

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskReconciler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskReconciler.java b/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskReconciler.java
index 23ac714..b7add9d 100644
--- a/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskReconciler.java
+++ b/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskReconciler.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.scheduler.reconciliation;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
@@ -22,7 +23,6 @@ import javax.inject.Inject;
 
 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;
 import com.google.common.util.concurrent.AbstractIdleService;
@@ -120,7 +120,7 @@ public class TaskReconciler extends AbstractIdleService {
   }
 
   public void triggerExplicitReconciliation(Optional<Integer> batchSize) {
-    doExplicitReconcile(batchSize.or(settings.explicitBatchSize));
+    doExplicitReconcile(batchSize.orElse(settings.explicitBatchSize));
   }
 
   public void triggerImplicitReconciliation() {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java b/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
index 9910e77..454c4e0 100644
--- a/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
+++ b/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.scheduler.reconciliation;
 
 import java.util.EnumSet;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
@@ -22,7 +23,6 @@ import java.util.concurrent.atomic.AtomicLong;
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.eventbus.Subscribe;
 import com.google.common.util.concurrent.AbstractIdleService;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/scheduling/FirstFitOfferSelector.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/FirstFitOfferSelector.java b/src/main/java/org/apache/aurora/scheduler/scheduling/FirstFitOfferSelector.java
index 1ccab2d7..5f4f452 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/FirstFitOfferSelector.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/FirstFitOfferSelector.java
@@ -13,7 +13,8 @@
  */
 package org.apache.aurora.scheduler.scheduling;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
+
 import com.google.common.collect.Iterables;
 
 import org.apache.aurora.scheduler.filter.SchedulingFilter.ResourceRequest;
@@ -24,6 +25,6 @@ public class FirstFitOfferSelector implements OfferSelector {
   @Override
   public Optional<HostOffer> select(Iterable<HostOffer> offers, ResourceRequest resourceRequest) {
 
-    return Optional.fromNullable(Iterables.getFirst(offers, null));
+    return Optional.ofNullable(Iterables.getFirst(offers, null));
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/scheduling/OfferSelector.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/OfferSelector.java b/src/main/java/org/apache/aurora/scheduler/scheduling/OfferSelector.java
index a8b0cb8..6f5d55c 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/OfferSelector.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/OfferSelector.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.scheduling;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.scheduler.filter.SchedulingFilter.ResourceRequest;
 import org.apache.aurora.scheduler.offers.HostOffer;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java b/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
index c0e877d..0f6f00a 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
@@ -15,12 +15,12 @@ package org.apache.aurora.scheduler.scheduling;
 
 import java.util.EnumSet;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
@@ -143,7 +143,7 @@ public interface RescheduleCalculator {
 
     private Optional<IScheduledTask> getTaskAncestor(IScheduledTask task) {
       if (!task.isSetAncestorId()) {
-        return Optional.absent();
+        return Optional.empty();
       }
 
       return Storage.Util.fetchTask(storage, task.getAncestorId());

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImpl.java b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImpl.java
index 31af277..54bd177 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImpl.java
@@ -14,12 +14,13 @@
 package org.apache.aurora.scheduler.scheduling;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
+
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
@@ -216,7 +217,7 @@ public class TaskAssignerImpl implements TaskAssigner {
                                   Map<String, TaskGroupKey> preemptionReservations) {
 
     String agentId = offer.getOffer().getAgentId().getValue();
-    Optional<TaskGroupKey> reservedGroup = Optional.fromNullable(
+    Optional<TaskGroupKey> reservedGroup = Optional.ofNullable(
         preemptionReservations.get(agentId));
 
     return (reservedGroup.isPresent() && !reservedGroup.get().equals(groupKey))

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImpl.java b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImpl.java
index b6d5d95..cff4ab1 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImpl.java
@@ -16,15 +16,16 @@ package org.apache.aurora.scheduler.scheduling;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
+
 import javax.inject.Inject;
 import javax.inject.Qualifier;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java
index 24692b0..d69bd11 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java
@@ -13,12 +13,12 @@
  */
 package org.apache.aurora.scheduler.scheduling;
 
+import java.util.Optional;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.eventbus.Subscribe;
 
 import org.apache.aurora.common.stats.SlidingStats;
@@ -81,7 +81,7 @@ class TaskThrottler implements EventSubscriber {
                     stateChange.getTaskId(),
                     Optional.of(THROTTLED),
                     PENDING,
-                    Optional.absent());
+                    Optional.empty());
                 return BatchWorker.NO_RESULT;
               }),
           delayMs,

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/spi/Permissions.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/spi/Permissions.java b/src/main/java/org/apache/aurora/scheduler/spi/Permissions.java
index 843621c..99bb592 100644
--- a/src/main/java/org/apache/aurora/scheduler/spi/Permissions.java
+++ b/src/main/java/org/apache/aurora/scheduler/spi/Permissions.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.spi;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.scheduler.storage.entities.IJobKey;
 import org.apache.shiro.authz.Permission;
@@ -93,7 +93,7 @@ public final class Permissions {
         }
       }
 
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java b/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
index 1edb252..f58c66a 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
@@ -13,13 +13,13 @@
  */
 package org.apache.aurora.scheduler.state;
 
+import java.util.Optional;
 import java.util.Set;
 
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.base.Predicates;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableSet;
@@ -144,7 +144,7 @@ public interface MaintenanceController {
           stateManager.changeState(
               store,
               taskId,
-              Optional.absent(),
+              Optional.empty(),
               ScheduleStatus.DRAINING,
               DRAINING_MESSAGE);
         }
@@ -219,7 +219,7 @@ public interface MaintenanceController {
       if (offer.getUrl().getAddress().hasHostname()) {
         return Optional.of(offer.getUrl().getAddress().getHostname());
       } else {
-        return Optional.absent();
+        return Optional.empty();
       }
     }
 
@@ -249,9 +249,9 @@ public interface MaintenanceController {
     @Override
     public MaintenanceMode getMode(final String host) {
       return storage.read(storeProvider -> storeProvider.getAttributeStore().getHostAttributes(host)
-          .transform(ATTRS_TO_STATUS)
-          .transform(GET_MODE)
-          .or(MaintenanceMode.NONE));
+          .map(ATTRS_TO_STATUS)
+          .map(GET_MODE)
+          .orElse(MaintenanceMode.NONE));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/state/PartitionManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/PartitionManager.java b/src/main/java/org/apache/aurora/scheduler/state/PartitionManager.java
index 6d49c49..98b420a 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/PartitionManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/PartitionManager.java
@@ -14,11 +14,11 @@
 package org.apache.aurora.scheduler.state;
 
 import java.time.Duration;
+import java.util.Optional;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.eventbus.Subscribe;
 import com.google.inject.Inject;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/state/SideEffect.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/SideEffect.java b/src/main/java/org/apache/aurora/scheduler/state/SideEffect.java
index 2aa500a..a74f27f 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/SideEffect.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/SideEffect.java
@@ -14,8 +14,7 @@
 package org.apache.aurora.scheduler.state;
 
 import java.util.Objects;
-
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.gen.ScheduleStatus;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/state/StateManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/StateManager.java b/src/main/java/org/apache/aurora/scheduler/state/StateManager.java
index b09787f..b27c837 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/StateManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/StateManager.java
@@ -13,11 +13,10 @@
  */
 package org.apache.aurora.scheduler.state;
 
+import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 
-import com.google.common.base.Optional;
-
 import org.apache.aurora.gen.ScheduleStatus;
 import org.apache.aurora.scheduler.storage.entities.IAssignedTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java b/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
index 3ba676b..b2e454d 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
@@ -16,6 +16,7 @@ package org.apache.aurora.scheduler.state;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -23,7 +24,6 @@ import java.util.stream.Collectors;
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Supplier;
 import com.google.common.base.Suppliers;
@@ -134,7 +134,7 @@ public class StateManagerImpl implements StateManager {
           Tasks.id(scheduledTask),
           Optional.of(scheduledTask),
           Optional.of(PENDING),
-          Optional.absent());
+          Optional.empty());
     }
   }
 
@@ -179,10 +179,10 @@ public class StateManagerImpl implements StateManager {
 
     StateChangeResult changeResult = updateTaskAndExternalState(
         storeProvider.getUnsafeTaskStore(),
-        Optional.absent(),
+        Optional.empty(),
         taskId,
         ASSIGNED,
-        Optional.absent());
+        Optional.empty());
 
     Preconditions.checkState(
         changeResult == SUCCESS,
@@ -299,7 +299,7 @@ public class StateManagerImpl implements StateManager {
             mutableTask.addToTaskEvents(new TaskEvent()
                 .setTimestamp(clock.nowMillis())
                 .setStatus(targetState.get())
-                .setMessage(transitionMessage.orNull())
+                .setMessage(transitionMessage.orElse(null))
                 .setScheduler(LOCAL_HOST_SUPPLIER.get()));
             return IScheduledTask.build(mutableTask);
           });
@@ -309,7 +309,7 @@ public class StateManagerImpl implements StateManager {
         case TRANSITION_TO_LOST:
           updateTaskAndExternalState(
               taskStore,
-              Optional.absent(),
+              Optional.empty(),
               taskId,
               ScheduleStatus.LOST,
               Optional.of("Action performed on partitioned task, marking as LOST."));

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java b/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
index 914d401..b8ba5da 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
@@ -13,6 +13,7 @@
  */
 package org.apache.aurora.scheduler.state;
 
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.function.Consumer;
@@ -22,7 +23,6 @@ import javax.annotation.Nullable;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -89,7 +89,7 @@ class TaskStateMachine {
       Stats.exportLong("scheduler_illegal_task_state_transitions");
 
   private final StateMachine<TaskState> stateMachine;
-  private Optional<TaskState> previousState = Optional.absent();
+  private Optional<TaskState> previousState = Optional.empty();
 
   private final Set<SideEffect> sideEffects = Sets.newHashSet();
 
@@ -123,7 +123,7 @@ class TaskStateMachine {
     /**
      * The task does not have an associated state as it has been deleted from the store.
      */
-    DELETED(Optional.<ScheduleStatus>absent());
+    DELETED(Optional.empty());
 
     private final Optional<ScheduleStatus> status;
 
@@ -143,7 +143,7 @@ class TaskStateMachine {
    * @param name Name of the state machine, for logging.
    */
   TaskStateMachine(String name) {
-    this(name, Optional.absent());
+    this(name, Optional.empty());
   }
 
   /**
@@ -160,7 +160,7 @@ class TaskStateMachine {
     MorePreconditions.checkNotBlank(name);
     requireNonNull(task);
 
-    final TaskState initialState = task.transform(SCHEDULED_TO_TASK_STATE).or(DELETED);
+    final TaskState initialState = task.map(SCHEDULED_TO_TASK_STATE).orElse(DELETED);
     if (task.isPresent()) {
       Preconditions.checkState(
           initialState != DELETED,
@@ -517,7 +517,7 @@ class TaskStateMachine {
   }
 
   private void addFollowup(Action action) {
-    addFollowup(new SideEffect(action, Optional.absent()));
+    addFollowup(new SideEffect(action, Optional.empty()));
   }
 
   private void addFollowup(SideEffect sideEffect) {
@@ -537,7 +537,7 @@ class TaskStateMachine {
    * TODO(maxim): The current StateManager/TaskStateMachine interaction makes it hard to expose
    * a dedicated task deletion method without leaking out the state machine implementation details.
    * Consider refactoring here to allow for an unambiguous task deletion without resorting to
-   * Optional.absent().
+   * Optional.empty().
    *
    * @param status Status to apply to the task or absent if a task deletion is required.
    * @return {@code true} if the state change was allowed, {@code false} otherwise.
@@ -551,7 +551,7 @@ class TaskStateMachine {
      * state transition (e.g. storing resource consumption of a running task), we need to find
      * a different way to suppress noop transitions.
      */
-    TaskState taskState = status.transform(STATUS_TO_TASK_STATE).or(DELETED);
+    TaskState taskState = status.map(STATUS_TO_TASK_STATE).orElse(DELETED);
     if (stateMachine.getState() == taskState) {
       return new TransitionResult(NOOP, ImmutableSet.of());
     }
@@ -574,7 +574,7 @@ class TaskStateMachine {
    */
   @Nullable
   ScheduleStatus getPreviousState() {
-    return previousState.transform(item -> item.getStatus().orNull()).orNull();
+    return previousState.map(item -> item.getStatus().orElse(null)).orElse(null);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/AttributeStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/AttributeStore.java b/src/main/java/org/apache/aurora/scheduler/storage/AttributeStore.java
index 95632b3..f9b1379 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/AttributeStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/AttributeStore.java
@@ -13,9 +13,9 @@
  */
 package org.apache.aurora.scheduler.storage;
 
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 import org.apache.aurora.gen.MaintenanceMode;
@@ -97,7 +97,7 @@ public interface AttributeStore {
      * @param host The host to merge existing attributes from.
      * @param mode Maintenance mode to save if the host is known.
      * @return The attributes that should be saved if there were already attributes stored for
-     *         the {@code host}, or {@link Optional#absent() none} if the host is unknown and
+     *         the {@code host}, or {@link Optional#empty() none} if the host is unknown and
      *         attributes should not be saved.
      */
     public static Optional<IHostAttributes> mergeMode(
@@ -109,7 +109,7 @@ public interface AttributeStore {
       if (stored.isPresent()) {
         return Optional.of(IHostAttributes.build(stored.get().newBuilder().setMode(mode)));
       } else {
-        return Optional.absent();
+        return Optional.empty();
       }
     }
 
@@ -123,8 +123,8 @@ public interface AttributeStore {
     public static IHostAttributes mergeOffer(AttributeStore store, Protos.Offer offer) {
       IHostAttributes fromOffer = Conversions.getAttributes(offer);
       MaintenanceMode mode = store.getHostAttributes(fromOffer.getHost())
-          .transform(IHostAttributes::getMode)
-          .or(MaintenanceMode.NONE);
+          .map(IHostAttributes::getMode)
+          .orElse(MaintenanceMode.NONE);
       return IHostAttributes.build(fromOffer.newBuilder().setMode(mode));
     }
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/CronJobStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/CronJobStore.java b/src/main/java/org/apache/aurora/scheduler/storage/CronJobStore.java
index d78474a..a35e8e0 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/CronJobStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/CronJobStore.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.storage;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.scheduler.storage.entities.IJobConfiguration;
 import org.apache.aurora.scheduler.storage.entities.IJobKey;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/JobUpdateStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/JobUpdateStore.java b/src/main/java/org/apache/aurora/scheduler/storage/JobUpdateStore.java
index 6b91d97..b25f383 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/JobUpdateStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/JobUpdateStore.java
@@ -15,10 +15,9 @@ package org.apache.aurora.scheduler.storage;
 
 import java.util.EnumSet;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
-
 import org.apache.aurora.gen.JobUpdateQuery;
 import org.apache.aurora.gen.JobUpdateStatus;
 import org.apache.aurora.scheduler.storage.entities.IJobInstanceUpdateEvent;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/QuotaStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/QuotaStore.java b/src/main/java/org/apache/aurora/scheduler/storage/QuotaStore.java
index 688eb56..62f8399 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/QuotaStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/QuotaStore.java
@@ -14,8 +14,7 @@
 package org.apache.aurora.scheduler.storage;
 
 import java.util.Map;
-
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.scheduler.storage.entities.IResourceAggregate;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/SchedulerStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/SchedulerStore.java b/src/main/java/org/apache/aurora/scheduler/storage/SchedulerStore.java
index c822e20..0cde293 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/SchedulerStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/SchedulerStore.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.storage;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 /**
  * Stores data specific to the scheduler itself.

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/Storage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/Storage.java b/src/main/java/org/apache/aurora/scheduler/storage/Storage.java
index c9ea1de..da5534f 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/Storage.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/Storage.java
@@ -17,11 +17,10 @@ import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
+import java.util.Optional;
 
 import javax.inject.Qualifier;
 
-import com.google.common.base.Optional;
-
 import org.apache.aurora.scheduler.base.Query.Builder;
 import org.apache.aurora.scheduler.base.SchedulerException;
 import org.apache.aurora.scheduler.storage.entities.IJobConfiguration;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/TaskStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/TaskStore.java b/src/main/java/org/apache/aurora/scheduler/storage/TaskStore.java
index 29d3b24..1219215 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/TaskStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/TaskStore.java
@@ -13,11 +13,11 @@
  */
 package org.apache.aurora.scheduler.storage;
 
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.base.CharMatcher;
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
 
 import org.apache.aurora.scheduler.base.Query;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/durability/WriteRecorder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/durability/WriteRecorder.java b/src/main/java/org/apache/aurora/scheduler/storage/durability/WriteRecorder.java
index 5ae834a..dea8e69 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/durability/WriteRecorder.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/durability/WriteRecorder.java
@@ -15,10 +15,10 @@ package org.apache.aurora.scheduler.storage.durability;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
index 5aefe5f..50553f8 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
@@ -280,7 +280,7 @@ public class SnapshotStoreImpl implements Snapshotter {
     }
 
     SchedulerMetadata metadata = new SchedulerMetadata()
-        .setFrameworkId(storeProvider.getSchedulerStore().fetchFrameworkId().orNull())
+        .setFrameworkId(storeProvider.getSchedulerStore().fetchFrameworkId().orElse(null))
         .setDetails(buildInfo.getProperties());
 
     snapshot.setSchedulerMetadata(metadata);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/mem/MemAttributeStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemAttributeStore.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemAttributeStore.java
index f1a5309..67684cf 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemAttributeStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemAttributeStore.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.storage.mem;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableSet;
@@ -47,7 +47,7 @@ class MemAttributeStore implements AttributeStore.Mutable {
 
     IHostAttributes previous = hostAttributes.put(
         attributes.getHost(),
-        merge(attributes, Optional.fromNullable(hostAttributes.get(attributes.getHost()))));
+        merge(attributes, Optional.ofNullable(hostAttributes.get(attributes.getHost()))));
     return !attributes.equals(previous);
   }
 
@@ -72,7 +72,7 @@ class MemAttributeStore implements AttributeStore.Mutable {
 
   @Override
   public Optional<IHostAttributes> getHostAttributes(String host) {
-    return Optional.fromNullable(hostAttributes.get(host));
+    return Optional.ofNullable(hostAttributes.get(host));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/mem/MemCronJobStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemCronJobStore.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemCronJobStore.java
index 3fd7d30..a1e1f1e 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemCronJobStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemCronJobStore.java
@@ -14,11 +14,11 @@
 package org.apache.aurora.scheduler.storage.mem;
 
 import java.util.Map;
+import java.util.Optional;
 
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
 
@@ -71,6 +71,6 @@ class MemCronJobStore implements CronJobStore.Mutable {
   @Timed("mem_storage_cron_fetch_job")
   @Override
   public Optional<IJobConfiguration> fetchJob(IJobKey jobKey) {
-    return Optional.fromNullable(jobs.get(jobKey));
+    return Optional.ofNullable(jobs.get(jobKey));
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java
index f96ec08..9e86b9e 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemJobUpdateStore.java
@@ -16,12 +16,12 @@ package org.apache.aurora.scheduler.storage.mem;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
@@ -64,7 +64,7 @@ public class MemJobUpdateStore implements JobUpdateStore.Mutable {
   @Timed("job_update_store_fetch_details")
   @Override
   public synchronized Optional<IJobUpdateDetails> fetchJobUpdate(IJobUpdateKey key) {
-    return Optional.fromNullable(updates.get(key));
+    return Optional.ofNullable(updates.get(key));
   }
 
   private static void validateInstructions(IJobUpdateInstructions instructions) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/mem/MemQuotaStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemQuotaStore.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemQuotaStore.java
index 61b9eee..afb29fc 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemQuotaStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemQuotaStore.java
@@ -14,8 +14,8 @@
 package org.apache.aurora.scheduler.storage.mem;
 
 import java.util.Map;
+import java.util.Optional;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 
@@ -46,7 +46,7 @@ class MemQuotaStore implements QuotaStore.Mutable {
 
   @Override
   public Optional<IResourceAggregate> fetchQuota(String role) {
-    return Optional.fromNullable(quotas.get(role));
+    return Optional.ofNullable(quotas.get(role));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/mem/MemSchedulerStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemSchedulerStore.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemSchedulerStore.java
index 8a7ddd7..7ec8610 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemSchedulerStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemSchedulerStore.java
@@ -13,9 +13,9 @@
  */
 package org.apache.aurora.scheduler.storage.mem;
 
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicReference;
 
-import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Atomics;
 
 import org.apache.aurora.scheduler.storage.SchedulerStore;
@@ -33,6 +33,6 @@ class MemSchedulerStore implements SchedulerStore.Mutable {
 
   @Override
   public Optional<String> fetchFrameworkId() {
-    return Optional.fromNullable(frameworkId.get());
+    return Optional.ofNullable(frameworkId.get());
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
index 3bef9b7..b59999c 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
@@ -19,6 +19,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -28,7 +29,6 @@ import javax.inject.Qualifier;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
@@ -80,7 +80,7 @@ class MemTaskStore implements TaskStore.Mutable {
       JobKeys::from;
   private static final Function<Query.Builder, Optional<Set<String>>> QUERY_TO_SLAVE_HOST =
       query -> query.get().getSlaveHosts().isEmpty()
-          ? Optional.absent()
+          ? Optional.empty()
           : Optional.of(query.get().getSlaveHosts());
 
   // Since this class operates under the API and umbrella of {@link Storage}, it is expected to be
@@ -125,7 +125,7 @@ class MemTaskStore implements TaskStore.Mutable {
   @Override
   public Optional<IScheduledTask> fetchTask(String taskId) {
     requireNonNull(taskId);
-    return Optional.fromNullable(tasks.get(taskId)).transform(t -> t.storedTask);
+    return Optional.ofNullable(tasks.get(taskId)).map(t -> t.storedTask);
   }
 
   @Timed("mem_storage_fetch_tasks")
@@ -204,7 +204,7 @@ class MemTaskStore implements TaskStore.Mutable {
       String taskId,
       Function<IScheduledTask, IScheduledTask> mutator) {
 
-    return fetchTask(taskId).transform(original -> {
+    return fetchTask(taskId).map(original -> {
       IScheduledTask maybeMutated = mutator.apply(original);
       requireNonNull(maybeMutated);
       if (!original.equals(maybeMutated)) {
@@ -240,7 +240,7 @@ class MemTaskStore implements TaskStore.Mutable {
 
   private FluentIterable<IScheduledTask> matches(Query.Builder query) {
     // Apply the query against the working set.
-    Optional<? extends Iterable<Task>> from = Optional.absent();
+    Optional<? extends Iterable<Task>> from = Optional.empty();
     if (query.get().getTaskIds().isEmpty()) {
       for (SecondaryIndex<?> index : secondaryIndices) {
         Optional<Iterable<String>> indexMatch = index.getMatches(query);
@@ -399,7 +399,7 @@ class MemTaskStore implements TaskStore.Mutable {
     };
 
     Optional<Iterable<String>> getMatches(Query.Builder query) {
-      return queryExtractor.apply(query).transform(lookup);
+      return queryExtractor.apply(query).map(lookup);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/testing/FakeStatsProvider.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/testing/FakeStatsProvider.java b/src/main/java/org/apache/aurora/scheduler/testing/FakeStatsProvider.java
index f9d0baf..480712e 100644
--- a/src/main/java/org/apache/aurora/scheduler/testing/FakeStatsProvider.java
+++ b/src/main/java/org/apache/aurora/scheduler/testing/FakeStatsProvider.java
@@ -15,8 +15,8 @@ package org.apache.aurora.scheduler.testing;
 
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.function.Supplier;
 
-import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 
@@ -68,7 +68,7 @@ public class FakeStatsProvider implements StatsProvider {
   }
 
   @Override
-  public <T extends Number> Stat<T> makeGauge(final String name, final Supplier<T> gauge) {
+  public <T extends Number> Stat<T> makeGauge(String name, Supplier<T> gauge) {
     stats.put(name, gauge);
 
     return new Stat<T>() {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/thrift/AuditMessages.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/AuditMessages.java b/src/main/java/org/apache/aurora/scheduler/thrift/AuditMessages.java
index d7bf846..0b9ff58 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/AuditMessages.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/AuditMessages.java
@@ -46,17 +46,16 @@ class AuditMessages {
         .orElse(DEFAULT_USER);
   }
 
-  com.google.common.base.Optional<String> transitionedBy() {
-    return com.google.common.base.Optional.of("Transition forced by " + getRemoteUserName());
+  Optional<String> transitionedBy() {
+    return Optional.of("Transition forced by " + getRemoteUserName());
   }
 
-  com.google.common.base.Optional<String> killedByRemoteUser(
-      com.google.common.base.Optional<String> message) {
-    String suffix = message.transform(s -> ".\n" + s).or("");
-    return com.google.common.base.Optional.of("Killed by " + getRemoteUserName() + suffix);
+  Optional<String> killedByRemoteUser(Optional<String> message) {
+    String suffix = message.map(s -> ".\n" + s).orElse("");
+    return Optional.of("Killed by " + getRemoteUserName() + suffix);
   }
 
-  com.google.common.base.Optional<String> restartedByRemoteUser() {
-    return com.google.common.base.Optional.of("Restarted by " + getRemoteUserName());
+  Optional<String> restartedByRemoteUser() {
+    return Optional.of("Restarted by " + getRemoteUserName());
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java b/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
index 9d327e4..e88cad6 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
@@ -18,6 +18,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -28,7 +29,6 @@ import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
 import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.collect.FluentIterable;
@@ -250,7 +250,7 @@ class ReadOnlySchedulerImpl implements ReadOnlyScheduler.Iface {
 
   @Override
   public Response getJobSummary(@Nullable String maybeNullRole) {
-    Optional<String> ownerRole = Optional.fromNullable(maybeNullRole);
+    Optional<String> ownerRole = Optional.ofNullable(maybeNullRole);
 
     Multimap<IJobKey, IScheduledTask> tasks = getTasks(maybeRoleScoped(ownerRole));
     Map<IJobKey, IJobConfiguration> jobs = getJobs(ownerRole, tasks);
@@ -264,7 +264,7 @@ class ReadOnlySchedulerImpl implements ReadOnlyScheduler.Iface {
       if (job.isSetCronSchedule()) {
         CrontabEntry crontabEntry = CrontabEntry.parse(job.getCronSchedule());
         Optional<Date> nextRun = cronPredictor.predictNextRun(crontabEntry);
-        return nextRun.transform(date -> summary.setNextCronRunMs(date.getTime())).or(summary);
+        return nextRun.map(date -> summary.setNextCronRunMs(date.getTime())).orElse(summary);
       } else {
         return summary;
       }
@@ -278,7 +278,7 @@ class ReadOnlySchedulerImpl implements ReadOnlyScheduler.Iface {
 
   @Override
   public Response getJobs(@Nullable String maybeNullRole) {
-    Optional<String> ownerRole = Optional.fromNullable(maybeNullRole);
+    Optional<String> ownerRole = Optional.ofNullable(maybeNullRole);
 
     return ok(Result.getJobsResult(
         new GetJobsResult()

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
index 1b003ab..9fc0416 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
@@ -14,7 +14,9 @@
 package org.apache.aurora.scheduler.thrift;
 
 import java.util.Comparator;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -22,12 +24,11 @@ import javax.annotation.Nullable;
 import javax.inject.Inject;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ContiguousSet;
 import com.google.common.collect.DiscreteDomain;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.HashMultimap;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Maps;
@@ -482,9 +483,9 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
         if (StateChangeResult.SUCCESS == stateManager.changeState(
             storeProvider,
             taskId,
-            Optional.absent(),
+            Optional.empty(),
             ScheduleStatus.KILLING,
-            auditMessages.killedByRemoteUser(Optional.fromNullable(message)))) {
+            auditMessages.killedByRemoteUser(Optional.ofNullable(message)))) {
           ++tasksKilled;
         }
       }
@@ -519,7 +520,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
         stateManager.changeState(
             storeProvider,
             taskId,
-            Optional.absent(),
+            Optional.empty(),
             ScheduleStatus.RESTARTING,
             auditMessages.restartedByRemoteUser());
       }
@@ -592,7 +593,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
     storage.write(storeProvider -> stateManager.changeState(
         storeProvider,
         taskId,
-        Optional.absent(),
+        Optional.empty(),
         status,
         auditMessages.transitionedBy()));
 
@@ -657,7 +658,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
 
       Optional<Integer> batchSize = settings.isSetBatchSize()
           ? Optional.of(settings.getBatchSize())
-          : Optional.absent();
+          : Optional.empty();
 
       taskReconciler.triggerExplicitReconciliation(batchSize);
       return ok();
@@ -689,21 +690,20 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
 
         jobUpdateController.assertNotUpdating(jobKey);
 
-        FluentIterable<IScheduledTask> currentTasks = FluentIterable.from(
+        List<IScheduledTask> currentTasks = ImmutableList.copyOf(
             storeProvider.getTaskStore().fetchTasks(Query.jobScoped(jobKey).active()));
 
-        Optional<IScheduledTask> templateTask = Iterables.tryFind(
-            currentTasks,
-            e -> e.getAssignedTask().getInstanceId() == key.getInstanceId());
+        Optional<IScheduledTask> templateTask = currentTasks.stream()
+            .filter(e -> e.getAssignedTask().getInstanceId() == key.getInstanceId())
+            .findFirst();
         if (!templateTask.isPresent()) {
           return invalidRequest(INVALID_INSTANCE_ID);
         }
 
-        int lastId = currentTasks
-            .transform(e -> e.getAssignedTask().getInstanceId())
-            .toList()
-            .stream()
-            .max(Comparator.naturalOrder()).get();
+        int lastId = currentTasks.stream()
+            .map(e -> e.getAssignedTask().getInstanceId())
+            .max(Comparator.naturalOrder())
+            .get();
 
         Set<Integer> instanceIds = ContiguousSet.create(
             Range.openClosed(lastId, lastId + count),
@@ -748,7 +748,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
 
     if (quotaCheck.getResult() == INSUFFICIENT_QUOTA) {
       throw new TaskValidationException("Insufficient resource quota: "
-          + quotaCheck.getDetails().or(""));
+          + quotaCheck.getDetails().orElse(""));
     }
   }
 
@@ -870,7 +870,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
 
         jobUpdateController.start(
             update,
-            new AuditData(remoteUserName, Optional.fromNullable(message)));
+            new AuditData(remoteUserName, Optional.ofNullable(message)));
         startJobUpdateCounter.addAndGet(request.getInstanceCount());
         return response.setResponseCode(OK)
             .setResult(Result.startJobUpdateResult(
@@ -917,7 +917,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
     return changeJobUpdateState(
         mutableKey,
         JobUpdateController::pause,
-        Optional.fromNullable(message));
+        Optional.ofNullable(message));
   }
 
   @Override
@@ -925,7 +925,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
     return changeJobUpdateState(
         mutableKey,
         JobUpdateController::resume,
-        Optional.fromNullable(message));
+        Optional.ofNullable(message));
   }
 
   @Override
@@ -933,7 +933,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
     return changeJobUpdateState(
         mutableKey,
         JobUpdateController::abort,
-        Optional.fromNullable(message));
+        Optional.ofNullable(message));
   }
 
   @Override
@@ -941,7 +941,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
     return changeJobUpdateState(
         mutableKey,
         JobUpdateController::rollback,
-        Optional.fromNullable(message));
+        Optional.ofNullable(message));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/InstanceAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/InstanceAction.java b/src/main/java/org/apache/aurora/scheduler/updater/InstanceAction.java
index 9210757..fb2639d 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/InstanceAction.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/InstanceAction.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.updater;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import static org.apache.aurora.scheduler.updater.InstanceActionHandler.AddTask;
 import static org.apache.aurora.scheduler.updater.InstanceActionHandler.KillTask;
@@ -27,7 +27,7 @@ enum InstanceAction {
   // deciding to reschedule the task.
   ADD_TASK(Optional.of(new AddTask())),
   WATCH_TASK(Optional.of(new WatchRunningTask())),
-  AWAIT_STATE_CHANGE(Optional.absent());
+  AWAIT_STATE_CHANGE(Optional.empty());
 
   private final Optional<InstanceActionHandler> handler;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java b/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
index a39e871..9fa68b2 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
@@ -13,7 +13,8 @@
  */
 package org.apache.aurora.scheduler.updater;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
+
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Range;
@@ -55,7 +56,7 @@ interface InstanceActionHandler {
       MutableStoreProvider storeProvider,
       IInstanceKey instance) {
 
-    return Optional.fromNullable(Iterables.getOnlyElement(
+    return Optional.ofNullable(Iterables.getOnlyElement(
         storeProvider.getTaskStore().fetchTasks(Query.instanceScoped(instance).active()), null));
   }
 
@@ -108,7 +109,7 @@ interface InstanceActionHandler {
             ImmutableSet.of(instance.getInstanceId()));
       }
       // A task state transition will trigger re-evaluation in this case, rather than a timer.
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 
@@ -135,7 +136,7 @@ interface InstanceActionHandler {
         stateManager.changeState(
             storeProvider,
             Tasks.id(task.get()),
-            Optional.absent(),
+            Optional.empty(),
             ScheduleStatus.KILLING,
             Optional.of("Killed for job update " + key.getId()));
         if (reserveForReplacement && task.get().getAssignedTask().isSetSlaveId()) {
@@ -147,7 +148,7 @@ interface InstanceActionHandler {
         LOG.info("No active instance " + instance + " to kill while " + status);
       }
       // A task state transition will trigger re-evaluation in this case, rather than a timer.
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java b/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
index 0aa4f36..a002d95 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
@@ -13,10 +13,9 @@
  */
 package org.apache.aurora.scheduler.updater;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
+
 import com.google.common.base.Preconditions;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Iterables;
 
 import org.apache.aurora.common.quantity.Amount;
 import org.apache.aurora.common.quantity.Time;
@@ -25,7 +24,6 @@ import org.apache.aurora.gen.ScheduleStatus;
 import org.apache.aurora.scheduler.base.Tasks;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
-import org.apache.aurora.scheduler.storage.entities.ITaskEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -75,10 +73,8 @@ class InstanceUpdater implements StateEvaluator<Optional<IScheduledTask>> {
   }
 
   private static boolean isPermanentlyKilled(IScheduledTask task) {
-    boolean wasKilling =
-        Iterables.any(
-            task.getTaskEvents(),
-            Predicates.compose(Predicates.equalTo(KILLING), ITaskEvent::getStatus));
+    boolean wasKilling = task.getTaskEvents().stream()
+        .anyMatch(event -> event.getStatus() == KILLING);
     return task.getStatus() != KILLING && wasKilling;
   }
 
@@ -91,7 +87,7 @@ class InstanceUpdater implements StateEvaluator<Optional<IScheduledTask>> {
   }
 
   @Override
-  public synchronized StateEvaluator.Result evaluate(Optional<IScheduledTask> actualState) {
+  public synchronized Result evaluate(Optional<IScheduledTask> actualState) {
     boolean desiredPresent = desiredState.isPresent();
     boolean actualPresent = isTaskPresent(actualState);
 
@@ -127,7 +123,7 @@ class InstanceUpdater implements StateEvaluator<Optional<IScheduledTask>> {
     return desired.getConstraints().equals(existing.getConstraints());
   }
 
-  private StateEvaluator.Result handleActualAndDesiredPresent(IScheduledTask actualState) {
+  private Result handleActualAndDesiredPresent(IScheduledTask actualState) {
     Preconditions.checkState(desiredState.isPresent());
     Preconditions.checkArgument(!actualState.getTaskEvents().isEmpty());
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateController.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateController.java b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateController.java
index 9159d69..f71d5fe 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateController.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateController.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.updater;
 
 import java.util.Objects;
+import java.util.Optional;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 import org.apache.aurora.gen.JobUpdatePulseStatus;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
index 87b18b4..f8be805 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
@@ -18,6 +18,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.atomic.AtomicLong;
@@ -26,7 +27,6 @@ import java.util.stream.Collectors;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
-import com.google.common.base.Optional;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
@@ -399,7 +399,7 @@ class JobUpdateControllerImpl implements JobUpdateController {
   public void instanceDeleted(IInstanceKey instance) {
     // This is primarily used to detect when an instance was stuck in PENDING and killed, which
     // results in deletion.
-    instanceChanged(instance, Optional.absent());
+    instanceChanged(instance, Optional.empty());
   }
 
   private void instanceChanged(final IInstanceKey instance, final Optional<IScheduledTask> state) {
@@ -547,7 +547,7 @@ class JobUpdateControllerImpl implements JobUpdateController {
       IJobKey job,
       int instanceId) {
 
-    return Optional.fromNullable(Iterables.getOnlyElement(
+    return Optional.ofNullable(Iterables.getOnlyElement(
         taskStore.fetchTasks(Query.instanceScoped(job, instanceId).active()), null));
   }
 
@@ -745,7 +745,7 @@ class JobUpdateControllerImpl implements JobUpdateController {
   }
 
   private static JobUpdateEvent addAuditData(JobUpdateEvent event, AuditData auditData) {
-    return event.setMessage(auditData.getMessage().orNull())
+    return event.setMessage(auditData.getMessage().orElse(null))
         .setUser(auditData.getUser());
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateStateMachine.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateStateMachine.java b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateStateMachine.java
index 959a5a5..87d4162 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateStateMachine.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateStateMachine.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.updater;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.BiMap;
 import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.ImmutableMap;
@@ -183,7 +183,7 @@ final class JobUpdateStateMachine {
   }
 
   static MonitorAction getActionForStatus(JobUpdateStatus status) {
-    return Optional.fromNullable(ACTIONS.get(status)).or(MonitorAction.STOP_WATCHING);
+    return Optional.ofNullable(ACTIONS.get(status)).orElse(MonitorAction.STOP_WATCHING);
   }
 
   static boolean isActive(JobUpdateStatus status) {