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:53 UTC

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

Repository: aurora
Updated Branches:
  refs/heads/master 5f79f7ca7 -> 6fd765bcf


http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java
index 3ec6e2b..889cb01 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.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.ImmutableSet;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -61,15 +61,15 @@ public abstract class AbstractCronJobStoreTest {
 
   @Test
   public void testJobStore() {
-    assertNull(fetchJob(JobKeys.from("nobody", "nowhere", "noname")).orNull());
+    assertNull(fetchJob(JobKeys.from("nobody", "nowhere", "noname")).orElse(null));
     assertEquals(ImmutableSet.of(), fetchJobs());
 
     saveAcceptedJob(JOB_A);
-    assertEquals(JOB_A, fetchJob(KEY_A).orNull());
+    assertEquals(JOB_A, fetchJob(KEY_A).orElse(null));
     assertEquals(ImmutableSet.of(JOB_A), fetchJobs());
 
     saveAcceptedJob(JOB_B);
-    assertEquals(JOB_B, fetchJob(KEY_B).orNull());
+    assertEquals(JOB_B, fetchJob(KEY_B).orElse(null));
     assertEquals(ImmutableSet.of(JOB_A, JOB_B), fetchJobs());
 
     removeJob(KEY_B);
@@ -93,13 +93,13 @@ public abstract class AbstractCronJobStoreTest {
     saveAcceptedJob(staging);
 
     assertNull(fetchJob(
-        IJobKey.build(templateConfig.getKey().newBuilder().setEnvironment("test"))).orNull());
-    assertEquals(prod, fetchJob(prod.getKey()).orNull());
-    assertEquals(staging, fetchJob(staging.getKey()).orNull());
+        IJobKey.build(templateConfig.getKey().newBuilder().setEnvironment("test"))).orElse(null));
+    assertEquals(prod, fetchJob(prod.getKey()).orElse(null));
+    assertEquals(staging, fetchJob(staging.getKey()).orElse(null));
 
     removeJob(prod.getKey());
-    assertNull(fetchJob(prod.getKey()).orNull());
-    assertEquals(staging, fetchJob(staging.getKey()).orNull());
+    assertNull(fetchJob(prod.getKey()).orElse(null));
+    assertEquals(staging, fetchJob(staging.getKey()).orElse(null));
   }
 
   @Test
@@ -127,7 +127,7 @@ public abstract class AbstractCronJobStoreTest {
     IJobConfiguration jobAUpdated =
         IJobConfiguration.build(JOB_A.newBuilder().setCronSchedule("changed"));
     saveAcceptedJob(jobAUpdated);
-    assertEquals(jobAUpdated, fetchJob(KEY_A).orNull());
+    assertEquals(jobAUpdated, fetchJob(KEY_A).orElse(null));
   }
 
   private static IJobConfiguration makeJob(String name) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
index 1510817..3a06a45 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractJobUpdateStoreTest.java
@@ -15,11 +15,11 @@
 package org.apache.aurora.scheduler.storage;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.inject.Injector;
@@ -134,8 +134,8 @@ public abstract class AbstractJobUpdateStoreTest {
     IJobUpdateDetails update1 = makeFullyPopulatedUpdate(updateId1);
     IJobUpdateDetails update2 = makeJobUpdate(updateId2);
 
-    assertEquals(Optional.absent(), getUpdate(updateId1));
-    assertEquals(Optional.absent(), getUpdate(updateId2));
+    assertEquals(Optional.empty(), getUpdate(updateId1));
+    assertEquals(Optional.empty(), getUpdate(updateId2));
 
     StorageEntityUtil.assertFullyPopulated(
         update1,
@@ -381,7 +381,7 @@ public abstract class AbstractJobUpdateStoreTest {
     JobUpdateDetails builder = makeJobUpdate(updateId).newBuilder();
     builder.getUpdate().getSummary().setMetadata(duplicatedMetadata);
 
-    assertEquals(Optional.absent(), getUpdate(updateId));
+    assertEquals(Optional.empty(), getUpdate(updateId));
 
     IJobUpdateDetails update = IJobUpdateDetails.build(builder);
     saveUpdate(update);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/AbstractQuotaStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractQuotaStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractQuotaStoreTest.java
index c5aca7e..e1d7da5 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractQuotaStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractQuotaStoreTest.java
@@ -15,8 +15,8 @@ package org.apache.aurora.scheduler.storage;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Optional;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 
 import org.apache.aurora.scheduler.resources.ResourceTestUtil;
@@ -46,7 +46,7 @@ public abstract class AbstractQuotaStoreTest {
 
   @Test
   public void testCrud() {
-    assertEquals(Optional.absent(), select(ROLE_A));
+    assertEquals(Optional.empty(), select(ROLE_A));
     assertQuotas(ImmutableMap.of());
 
     save(ROLE_A, StorageEntityUtil.assertFullyPopulated(QUOTA_A));
@@ -58,21 +58,21 @@ public abstract class AbstractQuotaStoreTest {
 
     delete(ROLE_B);
     assertEquals(Optional.of(QUOTA_A), select(ROLE_A));
-    assertEquals(Optional.absent(), select(ROLE_B));
+    assertEquals(Optional.empty(), select(ROLE_B));
     assertQuotas(ImmutableMap.of(ROLE_A, QUOTA_A));
 
     deleteAll();
-    assertEquals(Optional.absent(), select(ROLE_A));
-    assertEquals(Optional.absent(), select(ROLE_B));
+    assertEquals(Optional.empty(), select(ROLE_A));
+    assertEquals(Optional.empty(), select(ROLE_B));
     assertQuotas(ImmutableMap.of());
   }
 
   @Test
   public void testDeleteNonExistent() {
-    assertEquals(Optional.absent(), select(ROLE_A));
+    assertEquals(Optional.empty(), select(ROLE_A));
     assertQuotas(ImmutableMap.of());
     delete(ROLE_A);
-    assertEquals(Optional.absent(), select(ROLE_A));
+    assertEquals(Optional.empty(), select(ROLE_A));
     assertQuotas(ImmutableMap.of());
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/AbstractSchedulerStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractSchedulerStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractSchedulerStoreTest.java
index 669b7c0..cb80519 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractSchedulerStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractSchedulerStoreTest.java
@@ -14,8 +14,7 @@
 package org.apache.aurora.scheduler.storage;
 
 import java.io.IOException;
-
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
 import org.junit.Before;
@@ -36,7 +35,7 @@ public abstract class AbstractSchedulerStoreTest {
 
   @Test
   public void testSchedulerStore() {
-    assertEquals(Optional.absent(), select());
+    assertEquals(Optional.empty(), select());
     save("a");
     assertEquals(Optional.of("a"), select());
     save("b");

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
index 76595c0..c53e584 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java
@@ -15,6 +15,7 @@ package org.apache.aurora.scheduler.storage;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
@@ -22,7 +23,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -358,7 +358,7 @@ public abstract class AbstractTaskStoreTest extends TearDownTestCase {
         IScheduledTask.build(TASK_A.newBuilder().setStatus(RUNNING)));
 
     assertEquals(
-        Optional.absent(),
+        Optional.empty(),
         mutateTask(
             "nonexistent",
             task -> IScheduledTask.build(task.newBuilder().setStatus(RUNNING))));

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/durability/DurableStorageTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/durability/DurableStorageTest.java b/src/test/java/org/apache/aurora/scheduler/storage/durability/DurableStorageTest.java
index a6bf330..3dd9ce4 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/durability/DurableStorageTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/durability/DurableStorageTest.java
@@ -13,6 +13,7 @@
  */
 package org.apache.aurora.scheduler.storage.durability;
 
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.ReentrantLock;
@@ -21,7 +22,6 @@ import java.util.stream.Stream;
 
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
@@ -652,7 +652,7 @@ public class DurableStorageTest extends EasyMockTest {
       protected void setupExpectations() throws Exception {
         storageUtil.expectWrite();
         expect(storageUtil.attributeStore.getHostAttributes(host))
-            .andReturn(Optional.absent());
+            .andReturn(Optional.empty());
 
         expect(storageUtil.attributeStore.getHostAttributes(host)).andReturn(hostAttributes);
 
@@ -670,7 +670,7 @@ public class DurableStorageTest extends EasyMockTest {
       @Override
       protected void performMutations(MutableStoreProvider storeProvider) {
         AttributeStore.Mutable store = storeProvider.getAttributeStore();
-        assertEquals(Optional.absent(), store.getHostAttributes(host));
+        assertEquals(Optional.empty(), store.getHostAttributes(host));
 
         assertTrue(store.saveHostAttributes(hostAttributes.get()));
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/durability/WriteRecorderTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/durability/WriteRecorderTest.java b/src/test/java/org/apache/aurora/scheduler/storage/durability/WriteRecorderTest.java
index 1a89e83..27c8c82 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/durability/WriteRecorderTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/durability/WriteRecorderTest.java
@@ -13,10 +13,10 @@
  */
 package org.apache.aurora.scheduler.storage.durability;
 
+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.ImmutableSet;
 
 import org.apache.aurora.common.testing.easymock.EasyMockTest;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/log/NonVolatileStorageTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/log/NonVolatileStorageTest.java b/src/test/java/org/apache/aurora/scheduler/storage/log/NonVolatileStorageTest.java
index fdde73d..ffd4167 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/log/NonVolatileStorageTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/log/NonVolatileStorageTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.storage.log;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.function.Consumer;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
@@ -132,7 +132,7 @@ public class NonVolatileStorageTest extends TearDownTestCase {
           stores.getQuotaStore().removeQuota("lucy");
         },
         stores -> {
-          assertEquals(Optional.absent(), stores.getQuotaStore().fetchQuota("lucy"));
+          assertEquals(Optional.empty(), stores.getQuotaStore().fetchQuota("lucy"));
         }
     ));
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/testing/StorageTestUtil.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/testing/StorageTestUtil.java b/src/test/java/org/apache/aurora/scheduler/storage/testing/StorageTestUtil.java
index 64fbb54..d59118b 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/testing/StorageTestUtil.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/testing/StorageTestUtil.java
@@ -13,7 +13,8 @@
  */
 package org.apache.aurora.scheduler.storage.testing;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
+
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
@@ -122,7 +123,7 @@ public class StorageTestUtil {
   }
 
   public IExpectationSetters<?> expectTaskFetch(String taskId) {
-    return expect(taskStore.fetchTask(taskId)).andReturn(Optional.absent());
+    return expect(taskStore.fetchTask(taskId)).andReturn(Optional.empty());
   }
 
   public IExpectationSetters<?> expectTaskFetch(Query.Builder query, IScheduledTask... result) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/thrift/AuditMessagesTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/AuditMessagesTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/AuditMessagesTest.java
index d9e935c..f7a5024 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/AuditMessagesTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/AuditMessagesTest.java
@@ -32,8 +32,8 @@ public class AuditMessagesTest extends EasyMockTest {
 
     control.replay();
 
-    assertThat(emptyMessages.killedByRemoteUser(
-        com.google.common.base.Optional.absent()).get(),
+    assertThat(
+        emptyMessages.killedByRemoteUser(Optional.empty()).get(),
         containsString(DEFAULT_USER));
     assertThat(emptyMessages.restartedByRemoteUser().get(), containsString(DEFAULT_USER));
     assertThat(emptyMessages.transitionedBy().get(), containsString(DEFAULT_USER));
@@ -48,9 +48,7 @@ public class AuditMessagesTest extends EasyMockTest {
 
     control.replay();
 
-    assertThat(presentMessages.killedByRemoteUser(
-        com.google.common.base.Optional.absent()).get(),
-        containsString("shiro"));
+    assertThat(presentMessages.killedByRemoteUser(Optional.empty()).get(), containsString("shiro"));
     assertThat(presentMessages.restartedByRemoteUser().get(), containsString("shiro"));
     assertThat(presentMessages.transitionedBy().get(), containsString("shiro"));
   }
@@ -65,10 +63,8 @@ public class AuditMessagesTest extends EasyMockTest {
     control.replay();
 
     assertEquals(messages.killedByRemoteUser(
-        com.google.common.base.Optional.of("Test message")).get(),
+        Optional.of("Test message")).get(),
         "Killed by shiro.\nTest message");
-    assertEquals(messages.killedByRemoteUser(
-        com.google.common.base.Optional.absent()).get(),
-        "Killed by shiro");
+    assertEquals(messages.killedByRemoteUser(Optional.empty()).get(), "Killed by shiro");
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java b/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
index e1b8eaa..2ad2a36 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/Fixtures.java
@@ -15,11 +15,11 @@ package org.apache.aurora.scheduler.thrift;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.UUID;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -127,7 +127,7 @@ final class Fixtures {
   static Response response(ResponseCode code, Optional<Result> result, String... messages) {
     Response response = Responses.empty()
         .setResponseCode(code)
-        .setResult(result.orNull());
+        .setResult(result.orElse(null));
     if (messages.length > 0) {
       response.setDetails(FluentIterable.from(Arrays.asList(messages)).transform(MESSAGE_TO_DETAIL)
           .toList());

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
index 312e5e0..91cd9ec 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImplTest.java
@@ -15,13 +15,13 @@ package org.apache.aurora.scheduler.thrift;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
 import javax.annotation.Nullable;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -251,7 +251,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
         .setCronSchedule(cronSchedule)
         .setTaskConfig(task);
     expect(cronPredictor.predictNextRun(CrontabEntry.parse(cronSchedule)))
-        .andReturn(Optional.absent())
+        .andReturn(Optional.empty())
         .anyTimes();
     storageUtil.expectTaskFetch(Query.roleScoped(ROLE));
     Set<JobConfiguration> jobOnly = ImmutableSet.of(job);
@@ -739,7 +739,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
   @Test
   public void testGetJobUpdateDetailsInvalidId() throws Exception {
     expect(storageUtil.jobUpdateStore.fetchJobUpdate(UPDATE_KEY))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
 
     control.replay();
 
@@ -761,7 +761,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
     makeTasks(30, 40, task4, tasks);
     makeTasks(40, 50, task5, tasks);
 
-    expect(storageUtil.jobStore.fetchJob(JOB_KEY)).andReturn(Optional.absent());
+    expect(storageUtil.jobStore.fetchJob(JOB_KEY)).andReturn(Optional.empty());
     storageUtil.expectTaskFetch(Query.jobScoped(JOB_KEY).active(), tasks.build());
 
     control.replay();
@@ -798,7 +798,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
     makeTasks(10, 20, task2, tasks);
     makeTasks(20, 30, task3, tasks);
 
-    expect(storageUtil.jobStore.fetchJob(JOB_KEY)).andReturn(Optional.absent());
+    expect(storageUtil.jobStore.fetchJob(JOB_KEY)).andReturn(Optional.empty());
     storageUtil.expectTaskFetch(Query.jobScoped(JOB_KEY).active(), tasks.build());
 
     control.replay();
@@ -822,7 +822,7 @@ public class ReadOnlySchedulerImplTest extends EasyMockTest {
 
   @Test
   public void testGetJobUpdateDiffWithUnchanged() throws Exception {
-    expect(storageUtil.jobStore.fetchJob(JOB_KEY)).andReturn(Optional.absent());
+    expect(storageUtil.jobStore.fetchJob(JOB_KEY)).andReturn(Optional.empty());
     storageUtil.expectTaskFetch(
         Query.jobScoped(JOB_KEY).active(),
         ImmutableSet.copyOf(makeDefaultScheduledTasks(10)));

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
index 040baf9..2cf66d8 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
@@ -16,9 +16,9 @@ package org.apache.aurora.scheduler.thrift;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Proxy;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -582,7 +582,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
   }
 
   private void expectTransitionsToKilling() {
-    expectTransitionsToKilling(Optional.absent());
+    expectTransitionsToKilling(Optional.empty());
   }
 
   private void expectTransitionsToKilling(Optional<String> message) {
@@ -590,7 +590,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         TASK_ID,
-        Optional.absent(),
+        Optional.empty(),
         ScheduleStatus.KILLING,
         Optional.of("test"))).andReturn(StateChangeResult.SUCCESS);
   }
@@ -768,7 +768,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         TASK_ID,
-        Optional.absent(),
+        Optional.empty(),
         ScheduleStatus.FAILED,
         Optional.of("test"))).andReturn(StateChangeResult.SUCCESS);
 
@@ -852,7 +852,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         TASK_ID,
-        Optional.absent(),
+        Optional.empty(),
         ScheduleStatus.RESTARTING,
         Optional.of("test"))).andReturn(StateChangeResult.SUCCESS);
 
@@ -1098,7 +1098,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
   }
 
   private static Response okEmptyResponse() {
-    return response(OK, Optional.absent());
+    return response(OK, Optional.empty());
   }
 
   private static Response okEmptyResponse(String message) {
@@ -1137,7 +1137,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
   public void testExplicitTaskReconciliationWithNoBatchSize() throws Exception {
     ExplicitReconciliationSettings settings = new ExplicitReconciliationSettings();
 
-    taskReconciler.triggerExplicitReconciliation(Optional.absent());
+    taskReconciler.triggerExplicitReconciliation(Optional.empty());
     expectLastCall();
 
     control.replay();
@@ -1930,7 +1930,7 @@ public class SchedulerThriftInterfaceTest extends EasyMockTest {
 
   private IExpectationSetters<?> expectNoCronJob() {
     return expect(storageUtil.jobStore.fetchJob(JOB_KEY))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
   }
 
   private IExpectationSetters<?> expectInstanceQuotaCheck(

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java b/src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java
index 231fd8d..40851c4 100644
--- a/src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java
+++ b/src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java
@@ -128,7 +128,7 @@ public class ThriftIT extends EasyMockTest {
             bindMock(DriverFactory.class);
             bind(DriverSettings.class).toInstance(new DriverSettings(
                 "fakemaster",
-                com.google.common.base.Optional.absent()));
+                Optional.empty()));
             bind(FrameworkInfo.class)
                 .annotatedWith(BaseFrameworkInfo.class)
                 .toInstance(base);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java b/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
index 30f3e4f..190d522 100644
--- a/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/updater/InstanceUpdaterTest.java
@@ -15,8 +15,8 @@ package org.apache.aurora.scheduler.updater;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
@@ -55,7 +55,7 @@ import static org.apache.aurora.scheduler.updater.StateEvaluator.Result.SUCCEEDE
 import static org.junit.Assert.assertEquals;
 
 public class InstanceUpdaterTest {
-  private static final Optional<ITaskConfig> NO_CONFIG = Optional.absent();
+  private static final Optional<ITaskConfig> NO_CONFIG = Optional.empty();
 
   private static final ITaskConfig OLD = ITaskConfig.build(new TaskConfig()
           .setResources(ImmutableSet.of(numCpus(1.0))));
@@ -75,7 +75,7 @@ public class InstanceUpdaterTest {
     private final FakeClock clock;
     private final InstanceUpdater updater;
     private final TaskUtil taskUtil;
-    private Optional<IScheduledTask> task = Optional.absent();
+    private Optional<IScheduledTask> task = Optional.empty();
 
     TestFixture(Optional<ITaskConfig> newConfig, int maxToleratedFailures) {
       this.clock = new FakeClock();
@@ -92,7 +92,7 @@ public class InstanceUpdaterTest {
     }
 
     void setActualStateAbsent() {
-      this.task = Optional.absent();
+      this.task = Optional.empty();
     }
 
     private Result changeStatusAndEvaluate(ScheduleStatus status) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java b/src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java
index 92f2582..5667a1b 100644
--- a/src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java
+++ b/src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java
@@ -14,11 +14,11 @@
 package org.apache.aurora.scheduler.updater;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ScheduledExecutorService;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMultimap;
@@ -236,9 +236,9 @@ public class JobUpdaterIT extends EasyMockTest {
               stateManager.changeState(
                   storeProvider,
                   getTaskId(job, instanceId),
-                  Optional.absent(),
+                  Optional.empty(),
                   s,
-                  Optional.absent())));
+                  Optional.empty())));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/updater/KillTaskTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/updater/KillTaskTest.java b/src/test/java/org/apache/aurora/scheduler/updater/KillTaskTest.java
index 61f66b9..2c27ec7 100644
--- a/src/test/java/org/apache/aurora/scheduler/updater/KillTaskTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/updater/KillTaskTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.updater;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
 import org.apache.aurora.gen.InstanceKey;
@@ -75,7 +75,7 @@ public class KillTaskTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         id,
-        Optional.absent(),
+        Optional.empty(),
         ScheduleStatus.KILLING,
         Optional.of("Killed for job update " + UPDATE_ID.getId())))
             .andReturn(StateChangeResult.SUCCESS);
@@ -101,7 +101,7 @@ public class KillTaskTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         id,
-        Optional.absent(),
+        Optional.empty(),
         ScheduleStatus.KILLING,
         Optional.of("Killed for job update " + UPDATE_ID.getId())))
         .andReturn(StateChangeResult.SUCCESS);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/updater/OneWayJobUpdaterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/updater/OneWayJobUpdaterTest.java b/src/test/java/org/apache/aurora/scheduler/updater/OneWayJobUpdaterTest.java
index 32a8c89..966678e 100644
--- a/src/test/java/org/apache/aurora/scheduler/updater/OneWayJobUpdaterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/updater/OneWayJobUpdaterTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.updater;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 
@@ -111,14 +111,14 @@ public class OneWayJobUpdaterTest extends EasyMockTest {
     return new SideEffect(
         Optional.of(action),
         ImmutableSet.<InstanceUpdateStatus>builder().add(statuses).build(),
-        Optional.absent());
+        Optional.empty());
   }
 
   private static SideEffect sideEffect(InstanceUpdateStatus... statuses) {
     return new SideEffect(
-        Optional.absent(),
+        Optional.empty(),
         ImmutableSet.<InstanceUpdateStatus>builder().add(statuses).build(),
-        Optional.absent());
+        Optional.empty());
   }
 
   @Test


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

Posted by wf...@apache.org.
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) {


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

Posted by wf...@apache.org.
http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/SideEffect.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/SideEffect.java b/src/main/java/org/apache/aurora/scheduler/updater/SideEffect.java
index 61d855e..aa736a6 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/SideEffect.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/SideEffect.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.updater;
 
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Optional;
 
 import org.apache.aurora.scheduler.updater.StateEvaluator.Failure;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/StateEvaluator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/StateEvaluator.java b/src/main/java/org/apache/aurora/scheduler/updater/StateEvaluator.java
index 06a7695..7d87ddf 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/StateEvaluator.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/StateEvaluator.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.updater;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import static java.util.Objects.requireNonNull;
 
@@ -47,7 +47,7 @@ interface StateEvaluator<T> {
    */
   Result evaluate(T actualState);
 
-  Optional<Failure> NO_FAILURE = Optional.absent();
+  Optional<Failure> NO_FAILURE = Optional.empty();
 
   enum Result {
     EVALUATE_ON_STATE_CHANGE(Optional.of(InstanceAction.AWAIT_STATE_CHANGE), NO_FAILURE),
@@ -56,8 +56,8 @@ interface StateEvaluator<T> {
     KILL_TASK_WITH_RESERVATION_AND_EVALUATE_ON_STATE_CHANGE(
         Optional.of(InstanceAction.KILL_TASK_AND_RESERVE), NO_FAILURE),
     EVALUATE_AFTER_MIN_RUNNING_MS(Optional.of(InstanceAction.WATCH_TASK), NO_FAILURE),
-    SUCCEEDED(Optional.absent(), NO_FAILURE),
-    FAILED_TERMINATED(Optional.absent(), Optional.of(Failure.EXITED));
+    SUCCEEDED(Optional.empty(), NO_FAILURE),
+    FAILED_TERMINATED(Optional.empty(), Optional.of(Failure.EXITED));
 
     private final Optional<InstanceAction> action;
     private final Optional<Failure> failure;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/UpdateAgentReserver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/UpdateAgentReserver.java b/src/main/java/org/apache/aurora/scheduler/updater/UpdateAgentReserver.java
index fca4b4e..b6909a6 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/UpdateAgentReserver.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/UpdateAgentReserver.java
@@ -13,9 +13,9 @@
  */
 package org.apache.aurora.scheduler.updater;
 
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.inject.Inject;
 
@@ -133,7 +133,7 @@ public interface UpdateAgentReserver {
 
     @Override
     public Optional<String> getAgent(IInstanceKey key) {
-      return Optional.absent();
+      return Optional.empty();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/updater/UpdateFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/UpdateFactory.java b/src/main/java/org/apache/aurora/scheduler/updater/UpdateFactory.java
index b408a65..3992aa7 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/UpdateFactory.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/UpdateFactory.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.updater;
 
 import java.io.Serializable;
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.DiscreteDomain;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -98,7 +98,7 @@ interface UpdateFactory {
         if (rollingForward) {
           desiredStateConfig = desiredInstances.contains(instanceId)
               ? Optional.of(instructions.getDesiredState().getTask())
-              : Optional.absent();
+              : Optional.empty();
         } else {
           desiredStateConfig = getConfig(instanceId, instructions.getInitialState());
         }
@@ -152,7 +152,7 @@ interface UpdateFactory {
         }
       }
 
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java b/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
index 56a6b0c..c2731d6 100644
--- a/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/TaskStatusHandlerImplTest.java
@@ -13,13 +13,12 @@
  */
 package org.apache.aurora.scheduler;
 
+import java.util.Optional;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 
-import com.google.common.base.Optional;
-
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
 import org.apache.aurora.scheduler.mesos.Driver;
 import org.apache.aurora.scheduler.state.StateChangeResult;
@@ -96,7 +95,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         TASK_ID_A,
-        Optional.absent(),
+        Optional.empty(),
         RUNNING,
         Optional.of("fake message")))
         .andReturn(StateChangeResult.SUCCESS);
@@ -122,7 +121,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         TASK_ID_A,
-        Optional.absent(),
+        Optional.empty(),
         RUNNING,
         Optional.of("fake message")))
         .andAnswer(() -> {
@@ -164,7 +163,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         TASK_ID_A,
-        Optional.absent(),
+        Optional.empty(),
         FAILED,
         expectedMessage))
         .andReturn(StateChangeResult.SUCCESS);
@@ -195,7 +194,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
   public void testMemoryLimitTranslationNoMessage() throws Exception {
     assertResourceLimitBehavior(
         TaskStatus.Reason.REASON_CONTAINER_LIMITATION_MEMORY,
-        Optional.absent(),
+        Optional.empty(),
         Optional.of(TaskStatusHandlerImpl.MEMORY_LIMIT_DISPLAY));
   }
 
@@ -213,7 +212,7 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
   public void testDiskLimitTranslationNoMessage() throws Exception {
     assertResourceLimitBehavior(
         TaskStatus.Reason.REASON_CONTAINER_LIMITATION_DISK,
-        Optional.absent(),
+        Optional.empty(),
         Optional.of(TaskStatusHandlerImpl.DISK_LIMIT_DISPLAY));
   }
 
@@ -231,9 +230,9 @@ public class TaskStatusHandlerImplTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         TASK_ID_A,
-        Optional.absent(),
+        Optional.empty(),
         KILLED,
-        Optional.absent()))
+        Optional.empty()))
         .andReturn(StateChangeResult.SUCCESS);
 
     CountDownLatch latch = new CountDownLatch(1);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/TaskVarsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/TaskVarsTest.java b/src/test/java/org/apache/aurora/scheduler/TaskVarsTest.java
index b1d9f8a..6321ec0 100644
--- a/src/test/java/org/apache/aurora/scheduler/TaskVarsTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/TaskVarsTest.java
@@ -15,9 +15,9 @@ package org.apache.aurora.scheduler;
 
 import java.util.EnumSet;
 import java.util.Map;
+import java.util.Optional;
+import java.util.function.Supplier;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
 
@@ -334,7 +334,7 @@ public class TaskVarsTest extends EasyMockTest {
   public void testRackMissing() {
     expectStatusCountersInitialized();
     expect(storageUtil.attributeStore.getHostAttributes("a"))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
 
     IScheduledTask a = makeTask(JOB_A, RUNNING, "a");
     expectStatExport(jobStatName(a, LOST), untrackedProvider);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java b/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
index 4929ecd..77fa904 100644
--- a/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
+++ b/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
@@ -17,6 +17,7 @@ import java.io.File;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.Arrays;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
@@ -24,7 +25,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -135,12 +135,12 @@ public class SchedulerIT extends BaseZooKeeperTest {
 
   private static final DriverSettings SETTINGS = new DriverSettings(
       "fakemaster",
-      Optional.absent());
+      Optional.empty());
 
   private final ExecutorService executor = Executors.newCachedThreadPool(
       new ThreadFactoryBuilder().setNameFormat("SchedulerIT-%d").setDaemon(true).build());
   private final AtomicReference<Optional<RuntimeException>> mainException =
-      Atomics.newReference(Optional.absent());
+      Atomics.newReference(Optional.empty());
 
   private IMocksControl control;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java b/src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java
index 63e8485..b9513673 100644
--- a/src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java
+++ b/src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java
@@ -17,6 +17,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
@@ -24,7 +25,6 @@ import java.util.concurrent.TimeUnit;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java b/src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java
index 020f348..936de89 100644
--- a/src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java
+++ b/src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java
@@ -15,10 +15,10 @@ package org.apache.aurora.scheduler.app.local;
 
 import java.io.File;
 import java.util.List;
+import java.util.Optional;
 
 import javax.inject.Singleton;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.io.Files;
 import com.google.inject.AbstractModule;
@@ -56,7 +56,7 @@ public final class LocalSchedulerMain {
           .build();
   private static final DriverSettings DRIVER_SETTINGS = new DriverSettings(
       "fakemaster",
-      Optional.absent());
+      Optional.empty());
 
   public static void main(String[] args) {
     File backupDir = Files.createTempDir();

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/cron/CrontabEntryTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/cron/CrontabEntryTest.java b/src/test/java/org/apache/aurora/scheduler/cron/CrontabEntryTest.java
index 7c7a950..d5646d6 100644
--- a/src/test/java/org/apache/aurora/scheduler/cron/CrontabEntryTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/cron/CrontabEntryTest.java
@@ -151,7 +151,7 @@ public class CrontabEntryTest {
     );
 
     for (String pattern : badPatterns) {
-      assertNull(CrontabEntry.tryParse(pattern).orNull());
+      assertNull(CrontabEntry.tryParse(pattern).orElse(null));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java b/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
index 742a97c..5083fcd 100644
--- a/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.cron.quartz;
 
 import java.util.HashMap;
+import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
@@ -138,7 +138,7 @@ public class AuroraCronJobTest extends EasyMockTest {
     expect(stateManager.changeState(
         anyObject(),
         eq(TASK_ID),
-        eq(Optional.absent()),
+        eq(Optional.empty()),
         eq(ScheduleStatus.KILLING),
         eq(AuroraCronJob.KILL_AUDIT_MESSAGE)))
         .andReturn(StateChangeResult.SUCCESS);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java b/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java
index 439cf3e..f2e6238 100644
--- a/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java
@@ -15,9 +15,9 @@ package org.apache.aurora.scheduler.cron.quartz;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.TimeZone;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -106,7 +106,9 @@ public class CronJobManagerImplTest extends EasyMockTest {
     control.replay();
 
     cronJobManager.updateJob(sanitizedCronJob);
-    assertEquals(sanitizedCronJob.getSanitizedConfig().getJobConfig(), fetchFromStorage().orNull());
+    assertEquals(
+        sanitizedCronJob.getSanitizedConfig().getJobConfig(),
+        fetchFromStorage().orElse(null));
   }
 
   @Test
@@ -120,7 +122,7 @@ public class CronJobManagerImplTest extends EasyMockTest {
       // Expected.
     }
 
-    assertEquals(Optional.absent(), fetchFromStorage());
+    assertEquals(Optional.empty(), fetchFromStorage());
   }
 
   @Test
@@ -136,7 +138,7 @@ public class CronJobManagerImplTest extends EasyMockTest {
 
     assertEquals(
         sanitizedCronJob.getSanitizedConfig().getJobConfig(),
-        fetchFromStorage().orNull());
+        fetchFromStorage().orElse(null));
   }
 
   @Test(expected = CronException.class)
@@ -182,7 +184,7 @@ public class CronJobManagerImplTest extends EasyMockTest {
       // Expected.
     }
 
-    assertEquals(Optional.absent(), fetchFromStorage());
+    assertEquals(Optional.empty(), fetchFromStorage());
   }
 
   @Test
@@ -194,7 +196,7 @@ public class CronJobManagerImplTest extends EasyMockTest {
     assertFalse(cronJobManager.deleteJob(QuartzTestUtil.AURORA_JOB_KEY));
     populateStorage();
     assertTrue(cronJobManager.deleteJob(QuartzTestUtil.AURORA_JOB_KEY));
-    assertEquals(Optional.absent(), fetchFromStorage());
+    assertEquals(Optional.empty(), fetchFromStorage());
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImplTest.java b/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImplTest.java
index 0f8c983..fc8fbf8 100644
--- a/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImplTest.java
@@ -15,9 +15,9 @@ package org.apache.aurora.scheduler.cron.quartz;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.TimeZone;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 
 import org.apache.aurora.common.quantity.Amount;
@@ -66,7 +66,7 @@ public class CronPredictorImplTest {
   public void testInvalidPrediction() {
     // Too far in the future to represent as a Date.
     clock.advance(Amount.of(Long.MAX_VALUE, Time.DAYS));
-    assertEquals(Optional.absent(), cronPredictor.predictNextRun(CrontabEntry.parse("* * * * *")));
+    assertEquals(Optional.empty(), cronPredictor.predictNextRun(CrontabEntry.parse("* * * * *")));
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/discovery/CuratorDiscoveryModuleTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/discovery/CuratorDiscoveryModuleTest.java b/src/test/java/org/apache/aurora/scheduler/discovery/CuratorDiscoveryModuleTest.java
index f847882..ef49668 100644
--- a/src/test/java/org/apache/aurora/scheduler/discovery/CuratorDiscoveryModuleTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/discovery/CuratorDiscoveryModuleTest.java
@@ -14,8 +14,8 @@
 package org.apache.aurora.scheduler.discovery;
 
 import java.net.InetSocketAddress;
+import java.util.Optional;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfigTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfigTest.java b/src/test/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfigTest.java
index f1ea9e6..906cfb4 100644
--- a/src/test/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfigTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfigTest.java
@@ -14,8 +14,8 @@
 package org.apache.aurora.scheduler.discovery;
 
 import java.net.InetSocketAddress;
+import java.util.Optional;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 import org.apache.aurora.common.quantity.Amount;
@@ -38,11 +38,11 @@ public class ZooKeeperConfigTest {
   public void testEmptyServers() {
     new ZooKeeperConfig(
         ImmutableList.of(),
-        Optional.absent(),
+        Optional.empty(),
         false,
         Amount.of(1, Time.DAYS),
         Amount.of(1, Time.DAYS),
-        Optional.absent());
+        Optional.empty());
   }
 
   @Test
@@ -50,11 +50,11 @@ public class ZooKeeperConfigTest {
     ZooKeeperConfig config =
         new ZooKeeperConfig(
             SERVERS,
-            Optional.absent(),
+            Optional.empty(),
             false,
             Amount.of(1, Time.HOURS),
             Amount.of(1, Time.HOURS),
-            Optional.absent()); // credentials
+            Optional.empty()); // credentials
     assertFalse(config.getCredentials().isPresent());
 
     Credentials joeCreds = Credentials.digestCredentials("Joe", "Schmoe");

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/filter/AttributeAggregateTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/filter/AttributeAggregateTest.java b/src/test/java/org/apache/aurora/scheduler/filter/AttributeAggregateTest.java
index 7496a70..3c2599b 100644
--- a/src/test/java/org/apache/aurora/scheduler/filter/AttributeAggregateTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/filter/AttributeAggregateTest.java
@@ -13,7 +13,9 @@
  */
 package org.apache.aurora.scheduler.filter;
 
-import com.google.common.base.Optional;
+import java.util.NoSuchElementException;
+import java.util.Optional;
+
 import com.google.common.base.Suppliers;
 import com.google.common.collect.ImmutableMultiset;
 import com.google.common.collect.ImmutableSet;
@@ -52,9 +54,9 @@ public class AttributeAggregateTest extends EasyMockTest {
     assertAggregate(aggregate, "none", "alsoNone", 0);
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test(expected = NoSuchElementException.class)
   public void testAttributesMissing() {
-    expect(attributeStore.getHostAttributes("a")).andReturn(Optional.absent());
+    expect(attributeStore.getHostAttributes("a")).andReturn(Optional.empty());
 
     control.replay();
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java b/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
index d2fe7a3..0de90d7 100644
--- a/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/filter/SchedulingFilterImplTest.java
@@ -15,9 +15,9 @@ package org.apache.aurora.scheduler.filter;
 
 import java.time.Instant;
 import java.util.Arrays;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Suppliers;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/http/LeaderRedirectTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/http/LeaderRedirectTest.java b/src/test/java/org/apache/aurora/scheduler/http/LeaderRedirectTest.java
index 1bd4440..a127eb8 100644
--- a/src/test/java/org/apache/aurora/scheduler/http/LeaderRedirectTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/http/LeaderRedirectTest.java
@@ -14,12 +14,12 @@
 package org.apache.aurora.scheduler.http;
 
 import java.util.Arrays;
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicReference;
 
 import javax.servlet.http.HttpServletRequest;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
@@ -77,7 +77,7 @@ public class LeaderRedirectTest extends EasyMockTest {
     replayAndMonitor(3);
     publishSchedulers(localPort(HTTP_PORT));
 
-    assertEquals(Optional.absent(), leaderRedirector.getRedirect());
+    assertEquals(Optional.empty(), leaderRedirector.getRedirect());
 
     // NB: LEADING takes 2 tests of the server group membership to calculate; thus we expect 3
     // server group get calls, 1 for the getRedirect() above and 2 here.
@@ -116,7 +116,7 @@ public class LeaderRedirectTest extends EasyMockTest {
   public void testNoLeaders() throws Exception {
     replayAndMonitor(2);
 
-    assertEquals(Optional.absent(), leaderRedirector.getRedirect());
+    assertEquals(Optional.empty(), leaderRedirector.getRedirect());
     assertEquals(LeaderStatus.NO_LEADER, leaderRedirector.getLeaderStatus());
   }
 
@@ -126,7 +126,7 @@ public class LeaderRedirectTest extends EasyMockTest {
 
     publishSchedulers(HostAndPort.fromParts("foobar", 500), HostAndPort.fromParts("baz", 800));
 
-    assertEquals(Optional.absent(), leaderRedirector.getRedirect());
+    assertEquals(Optional.empty(), leaderRedirector.getRedirect());
     assertEquals(LeaderStatus.NO_LEADER, leaderRedirector.getLeaderStatus());
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/http/MnameTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/http/MnameTest.java b/src/test/java/org/apache/aurora/scheduler/http/MnameTest.java
index c25264f..5f9e6fb 100644
--- a/src/test/java/org/apache/aurora/scheduler/http/MnameTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/http/MnameTest.java
@@ -14,12 +14,12 @@
 package org.apache.aurora.scheduler.http;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.ws.rs.HttpMethod;
 import javax.ws.rs.core.HttpHeaders;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.sun.jersey.api.client.ClientResponse;
@@ -149,9 +149,9 @@ public class MnameTest extends AbstractJettyTest {
   public void testRedirectPort() {
     replayAndStart();
 
-    assertEquals(Optional.absent(), getRedirectPort(null));
-    assertEquals(Optional.absent(), getRedirectPort(ImmutableMap.of()));
-    assertEquals(Optional.absent(), getRedirectPort(ImmutableMap.of("thrift", 5)));
+    assertEquals(Optional.empty(), getRedirectPort(null));
+    assertEquals(Optional.empty(), getRedirectPort(ImmutableMap.of()));
+    assertEquals(Optional.empty(), getRedirectPort(ImmutableMap.of("thrift", 5)));
     assertEquals(Optional.of(5), getRedirectPort(ImmutableMap.of("health", 5, "http", 6)));
     assertEquals(Optional.of(6), getRedirectPort(ImmutableMap.of("http", 6)));
     assertEquals(Optional.of(7), getRedirectPort(ImmutableMap.of("HTTP", 7)));

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/http/ServletFilterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/http/ServletFilterTest.java b/src/test/java/org/apache/aurora/scheduler/http/ServletFilterTest.java
index 62f5695..5a4dc5d 100644
--- a/src/test/java/org/apache/aurora/scheduler/http/ServletFilterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/http/ServletFilterTest.java
@@ -16,11 +16,11 @@ package org.apache.aurora.scheduler.http;
 import java.io.IOException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
+import java.util.Optional;
 
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 
-import com.google.common.base.Optional;
 import com.google.common.io.Resources;
 import com.sun.jersey.api.client.ClientResponse;
 import com.sun.jersey.api.client.ClientResponse.Status;
@@ -46,7 +46,9 @@ public class ServletFilterTest extends AbstractJettyTest {
   }
 
   private void assertContentEncoding(ClientResponse response, Optional<String> encoding) {
-    assertEquals(encoding.orNull(), response.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING));
+    assertEquals(
+        encoding.orElse(null),
+        response.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING));
   }
 
   private void assertGzipEncodedGet(String path) {
@@ -102,7 +104,7 @@ public class ServletFilterTest extends AbstractJettyTest {
   public void testLeaderRedirect() throws Exception {
     replayAndStart();
 
-    assertResponseStatus("/", Status.OK, Optional.absent());
+    assertResponseStatus("/", Status.OK, Optional.empty());
 
     // If there's no leader, we should send service unavailable and an error page.
     unsetLeadingSchduler();
@@ -115,11 +117,11 @@ public class ServletFilterTest extends AbstractJettyTest {
 
     // This process is leading
     setLeadingScheduler(httpServer.getHost(), httpServer.getPort());
-    leaderRedirectSmokeTest(Status.OK, Optional.absent());
+    leaderRedirectSmokeTest(Status.OK, Optional.empty());
 
     setLeadingScheduler("otherHost", 1234);
-    leaderRedirectSmokeTest(Status.TEMPORARY_REDIRECT, Optional.absent());
-    assertResponseStatus("/", Status.OK, Optional.absent());
+    leaderRedirectSmokeTest(Status.TEMPORARY_REDIRECT, Optional.empty());
+    assertResponseStatus("/", Status.OK, Optional.empty());
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptorTest.java b/src/test/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptorTest.java
index cda6ca2..a42b0d8 100644
--- a/src/test/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptorTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptorTest.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.http.api.security;
 
 import java.lang.reflect.Method;
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicLong;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.util.concurrent.UncheckedExecutionException;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetterTest.java b/src/test/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetterTest.java
index b0a8d75..2b599f2 100644
--- a/src/test/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetterTest.java
@@ -31,7 +31,7 @@ public class ThriftFieldGetterTest {
 
     JobConfiguration jobConfiguration = new JobConfiguration().setKey(jobKey);
 
-    assertSame(jobKey, fieldGetter.apply(jobConfiguration).orNull());
+    assertSame(jobKey, fieldGetter.apply(jobConfiguration).orElse(null));
   }
 
   @Test
@@ -41,6 +41,6 @@ public class ThriftFieldGetterTest {
 
     JobConfiguration jobConfiguration = new JobConfiguration().setInstanceCount(5);
 
-    assertNull(fieldGetter.apply(jobConfiguration).orNull());
+    assertNull(fieldGetter.apply(jobConfiguration).orElse(null));
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModuleTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModuleTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModuleTest.java
index a86184c..97be6b1 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModuleTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModuleTest.java
@@ -16,9 +16,9 @@ package org.apache.aurora.scheduler.mesos;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.util.Optional;
 import java.util.Properties;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Throwables;
 
 import org.apache.aurora.common.quantity.Amount;
@@ -79,12 +79,12 @@ public class CommandLineDriverSettingsModuleTest {
     Protos.FrameworkInfo info = CommandLineDriverSettingsModule.buildFrameworkInfo(
         "aurora",
         "user",
-        Optional.absent(),
+        Optional.empty(),
         Amount.of(1L, Time.MINUTES),
         false, // revocable
         false, // allow gpu
         false, // partition aware
-        Optional.absent());
+        Optional.empty());
     assertEquals("", info.getPrincipal());
     assertEquals(0, info.getCapabilitiesCount());
     assertFalse(info.hasRole());
@@ -95,12 +95,12 @@ public class CommandLineDriverSettingsModuleTest {
     Protos.FrameworkInfo info = CommandLineDriverSettingsModule.buildFrameworkInfo(
         "aurora",
         "user",
-        Optional.absent(),
+        Optional.empty(),
         Amount.of(1L, Time.MINUTES),
         true, // revocable
         false, // allow gpu
         false, // partition aware
-        Optional.absent());
+        Optional.empty());
     assertEquals("", info.getPrincipal());
     assertEquals(1, info.getCapabilitiesCount());
     assertEquals(REVOCABLE_RESOURCES, info.getCapabilities(0).getType());
@@ -112,12 +112,12 @@ public class CommandLineDriverSettingsModuleTest {
     Protos.FrameworkInfo info = CommandLineDriverSettingsModule.buildFrameworkInfo(
         "aurora",
         "user",
-        Optional.absent(),
+        Optional.empty(),
         Amount.of(1L, Time.MINUTES),
         false, // revocable
         true, // allow gpu
         false, // partition aware
-        Optional.absent());
+        Optional.empty());
     assertEquals("", info.getPrincipal());
     assertEquals(1, info.getCapabilitiesCount());
     assertEquals(GPU_RESOURCES, info.getCapabilities(0).getType());
@@ -129,12 +129,12 @@ public class CommandLineDriverSettingsModuleTest {
     Protos.FrameworkInfo info = CommandLineDriverSettingsModule.buildFrameworkInfo(
         "aurora",
         "user",
-        Optional.absent(),
+        Optional.empty(),
         Amount.of(1L, Time.MINUTES),
         false, // revocable
         false, // allow gpu
         true, // partition aware
-        Optional.absent());
+        Optional.empty());
     assertEquals("", info.getPrincipal());
     assertEquals(1, info.getCapabilitiesCount());
     assertEquals(PARTITION_AWARE, info.getCapabilities(0).getType());
@@ -151,7 +151,7 @@ public class CommandLineDriverSettingsModuleTest {
         false, // revocable
         false, // allow gpu
         false, // partition aware
-        Optional.absent());
+        Optional.empty());
     assertEquals("auroraprincipal", info.getPrincipal());
     assertEquals(0, info.getCapabilitiesCount());
     assertFalse(info.hasRole());

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
index d79a973..c6163bb 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
@@ -15,10 +15,10 @@ package org.apache.aurora.scheduler.mesos;
 
 import java.util.LinkedList;
 import java.util.NoSuchElementException;
+import java.util.Optional;
 import java.util.Queue;
 import java.util.concurrent.Executor;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.net.InetAddresses;
@@ -249,7 +249,7 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
 
   private void expectOfferAttributesSaved(HostOffer offer) {
     expect(storageUtil.attributeStore.getHostAttributes(offer.getOffer().getHostname()))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
     IHostAttributes defaultMode = IHostAttributes.build(
         Conversions.getAttributes(offer.getOffer()).newBuilder().setMode(NONE));
     expect(storageUtil.attributeStore.saveHostAttributes(defaultMode)).andReturn(true);
@@ -378,8 +378,8 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
   public void testUpdate() {
     eventSink.post(new PubsubEvent.TaskStatusReceived(
         STATUS.getState(),
-        Optional.fromNullable(STATUS.getSource()),
-        Optional.fromNullable(STATUS.getReason()),
+        Optional.ofNullable(STATUS.getSource()),
+        Optional.ofNullable(STATUS.getReason()),
         Optional.of(1000000L)
     ));
     statusHandler.statusUpdate(STATUS);
@@ -396,8 +396,8 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
 
     eventSink.post(new PubsubEvent.TaskStatusReceived(
         status.getState(),
-        Optional.absent(),
-        Optional.fromNullable(status.getReason()),
+        Optional.empty(),
+        Optional.ofNullable(status.getReason()),
         Optional.of(1000000L)
     ));
     statusHandler.statusUpdate(status);
@@ -414,8 +414,8 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
 
     eventSink.post(new PubsubEvent.TaskStatusReceived(
         status.getState(),
-        Optional.fromNullable(status.getSource()),
-        Optional.absent(),
+        Optional.ofNullable(status.getSource()),
+        Optional.empty(),
         Optional.of(1000000L)
     ));
     statusHandler.statusUpdate(status);
@@ -432,8 +432,8 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
 
     eventSink.post(new PubsubEvent.TaskStatusReceived(
         status.getState(),
-        Optional.fromNullable(status.getSource()),
-        Optional.fromNullable(status.getReason()),
+        Optional.ofNullable(status.getSource()),
+        Optional.ofNullable(status.getReason()),
         Optional.of(1000000L)
     ));
     statusHandler.statusUpdate(status);
@@ -448,8 +448,8 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
   public void testUpdateWithException() {
     eventSink.post(new PubsubEvent.TaskStatusReceived(
         STATUS.getState(),
-        Optional.fromNullable(STATUS.getSource()),
-        Optional.fromNullable(STATUS.getReason()),
+        Optional.ofNullable(STATUS.getSource()),
+        Optional.ofNullable(STATUS.getReason()),
         Optional.of(1000000L)
     ));
     statusHandler.statusUpdate(STATUS);
@@ -472,8 +472,8 @@ public class MesosCallbackHandlerTest extends EasyMockTest {
 
     eventSink.post(new PubsubEvent.TaskStatusReceived(
         STATUS_RECONCILIATION.getState(),
-        Optional.fromNullable(STATUS_RECONCILIATION.getSource()),
-        Optional.fromNullable(STATUS_RECONCILIATION.getReason()),
+        Optional.ofNullable(STATUS_RECONCILIATION.getSource()),
+        Optional.ofNullable(STATUS_RECONCILIATION.getReason()),
         Optional.of(1000000L)
     ));
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java
index be6e481..33851ae 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.mesos;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
 import org.apache.aurora.scheduler.storage.testing.StorageTestUtil;
@@ -32,7 +32,7 @@ import static org.easymock.EasyMock.expect;
 public class SchedulerDriverServiceTest extends EasyMockTest {
 
   private static final Optional<String> FRAMEWORK_ID = Optional.of("test framework");
-  private static final Optional<String> NEW_FRAMEWORK_ID = Optional.absent();
+  private static final Optional<String> NEW_FRAMEWORK_ID = Optional.empty();
 
   private static final FrameworkInfo BASE_INFO = FrameworkInfo.newBuilder()
           .setUser("framework user")
@@ -40,7 +40,7 @@ public class SchedulerDriverServiceTest extends EasyMockTest {
           .build();
   private static final DriverSettings SETTINGS = new DriverSettings(
       "fakemaster",
-      Optional.absent());
+      Optional.empty());
 
   private static final String TASK_1 = "1";
   private static final String TASK_2 = "2";

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java
index abef3f0..a410ece 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/TaskStatusStatsTest.java
@@ -13,9 +13,9 @@
  */
 package org.apache.aurora.scheduler.mesos;
 
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicLong;
 
-import com.google.common.base.Optional;
 import com.google.common.eventbus.EventBus;
 
 import org.apache.aurora.common.quantity.Amount;
@@ -88,7 +88,7 @@ public class TaskStatusStatsTest extends EasyMockTest {
     eventBus.post(new TaskStatusReceived(
         TaskState.TASK_RUNNING,
         Optional.of(Source.SOURCE_MASTER),
-        Optional.absent(),
+        Optional.empty(),
         Optional.of(agoMicros(ONE_SECOND))));
 
     clock.advance(ONE_SECOND);
@@ -111,19 +111,19 @@ public class TaskStatusStatsTest extends EasyMockTest {
     // No counting for these since they do not have both a source and timestamp.
     eventBus.post(new TaskStatusReceived(
         TaskState.TASK_LOST,
-        Optional.absent(),
-        Optional.absent(),
-        Optional.absent()));
+        Optional.empty(),
+        Optional.empty(),
+        Optional.empty()));
     eventBus.post(new TaskStatusReceived(
         TaskState.TASK_LOST,
-        Optional.absent(),
-        Optional.absent(),
+        Optional.empty(),
+        Optional.empty(),
         Optional.of(agoMicros(ONE_SECOND))));
     eventBus.post(new TaskStatusReceived(
         TaskState.TASK_LOST,
         Optional.of(Source.SOURCE_MASTER),
         Optional.of(Reason.REASON_AGENT_DISCONNECTED),
-        Optional.absent()));
+        Optional.empty()));
 
     // No time tracking for this since the timestamp is the current time.
     eventBus.post(new TaskStatusReceived(

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java
index 8c259bf..dc40247 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java
@@ -13,9 +13,9 @@
  */
 package org.apache.aurora.scheduler.mesos;
 
+import java.util.Optional;
 import java.util.concurrent.Executors;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.net.InetAddresses;
 import com.google.protobuf.ByteString;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java b/src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java
index a72bd4d..d4a65a4 100644
--- a/src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java
@@ -13,7 +13,8 @@
  */
 package org.apache.aurora.scheduler.mesos;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
+
 import com.google.common.collect.ImmutableList;
 
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
@@ -46,7 +47,7 @@ public class VersionedSchedulerDriverServiceTest extends EasyMockTest {
           .build();
   private static final DriverSettings SETTINGS = new DriverSettings(
       "fakemaster",
-      Optional.absent());
+      Optional.empty());
 
   private StorageTestUtil storage;
   private Scheduler scheduler;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java b/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
index 75aedf5..1e9532b 100644
--- a/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/offers/OfferManagerImplTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.offers;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.concurrent.ScheduledExecutorService;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
@@ -639,7 +639,7 @@ public class OfferManagerImplTest extends EasyMockTest {
     offerManager.add(OFFER_A);
     assertEquals(0, statsProvider.getLongValue(GLOBALLY_BANNED_OFFERS));
     offerManager.ban(OFFER_A_ID);
-    assertEquals(Optional.absent(),
+    assertEquals(Optional.empty(),
         offerManager.getMatching(OFFER_A.getOffer().getAgentId(), EMPTY_REQUEST, false));
     assertEquals(1, statsProvider.getLongValue(GLOBALLY_BANNED_OFFERS));
   }
@@ -654,7 +654,7 @@ public class OfferManagerImplTest extends EasyMockTest {
     control.replay();
     offerManager.add(OFFER_A);
     assertEquals(0, statsProvider.getLongValue(STATICALLY_BANNED_OFFERS));
-    assertEquals(Optional.absent(),
+    assertEquals(Optional.empty(),
         offerManager.getMatching(OFFER_A.getOffer().getAgentId(), EMPTY_REQUEST, false));
     assertEquals(0, statsProvider.getLongValue(STATICALLY_BANNED_OFFERS));
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/preemptor/BiCacheTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/preemptor/BiCacheTest.java b/src/test/java/org/apache/aurora/scheduler/preemptor/BiCacheTest.java
index 4e27fbb..f203ad9 100644
--- a/src/test/java/org/apache/aurora/scheduler/preemptor/BiCacheTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/preemptor/BiCacheTest.java
@@ -14,8 +14,8 @@
 package org.apache.aurora.scheduler.preemptor;
 
 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.ImmutableSet;
 
@@ -38,7 +38,7 @@ public class BiCacheTest {
   private static final String CACHE_EXPIRATION_REMOVAL_STAT_NAME = "TEST_cache_expiration_removals";
   private static final String KEY_1 = "Key 1";
   private static final String KEY_2 = "Key 2";
-  private static final Optional<Integer> NO_VALUE = Optional.absent();
+  private static final Optional<Integer> NO_VALUE = Optional.empty();
 
   private FakeStatsProvider statsProvider;
   private FakeClock clock;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessorTest.java b/src/test/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessorTest.java
index 9ef55c8..35e9348 100644
--- a/src/test/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessorTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessorTest.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.preemptor;
 
 import java.util.Arrays;
+import java.util.Optional;
 
 import javax.annotation.Nullable;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMultiset;
 import com.google.common.collect.ImmutableSet;
@@ -316,7 +316,7 @@ public class PendingTaskProcessorTest extends EasyMockTest {
         eq(storageUtil.storeProvider)));
     expectLastCall().andReturn(
         victims.length == 0
-            ? Optional.absent()
+            ? Optional.empty()
             : Optional.of(ImmutableSet.copyOf(getVictims(victims).values())))
         .anyTimes();
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
index 40a5d4c..348386e 100644
--- a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilterTest.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.preemptor;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.IntStream;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -103,7 +103,7 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
   private static final String RACK_ATTRIBUTE = "rack";
   private static final String HOST_ATTRIBUTE = "host";
   private static final String OFFER = "offer";
-  private static final Optional<HostOffer> NO_OFFER = Optional.absent();
+  private static final Optional<HostOffer> NO_OFFER = Optional.empty();
   private static final Amount<Long, Time> UNAVAILABLITY_THRESHOLD = Amount.of(1L, Time.MINUTES);
 
   private StorageTestUtil storageUtil;
@@ -527,7 +527,7 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
     assignToHost(a1);
     expectGetTier(a1, DEV_TIER);
 
-    expect(storageUtil.attributeStore.getHostAttributes(HOST_A)).andReturn(Optional.absent());
+    expect(storageUtil.attributeStore.getHostAttributes(HOST_A)).andReturn(Optional.empty());
 
     control.replay();
 
@@ -604,7 +604,7 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
   }
 
   private static void assertNoVictims(Optional<ImmutableSet<PreemptionVictim>> actual) {
-    assertEquals(Optional.<ImmutableSet<PreemptionVictim>>absent(), actual);
+    assertEquals(Optional.<ImmutableSet<PreemptionVictim>>empty(), actual);
   }
 
   private Optional<HostOffer> makeOffer(
@@ -621,7 +621,7 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
         mesosScalar(DISK_MB, disk.getValue()),
         mesosRange(
             PORTS,
-            Optional.absent(),
+            Optional.empty(),
             IntStream.range(1, numPorts).boxed().collect(toSet())));
     if (revocable) {
       resources = ImmutableList.<Resource>builder()
@@ -649,7 +649,7 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
   }
 
   private IExpectationSetters<Set<SchedulingFilter.Veto>> expectFiltering() {
-    return expectFiltering(Optional.absent());
+    return expectFiltering(Optional.empty());
   }
 
   private IExpectationSetters<Set<SchedulingFilter.Veto>> expectFiltering(
@@ -658,8 +658,7 @@ public class PreemptionVictimFilterTest extends EasyMockTest {
     return expect(schedulingFilter.filter(
         EasyMock.anyObject(),
         EasyMock.anyObject()))
-        .andAnswer(
-            veto::asSet);
+        .andAnswer(() -> veto.map(ImmutableSet::of).orElse(ImmutableSet.of()));
   }
 
   private IExpectationSetters<TierInfo> expectGetTier(ScheduledTask task, TierInfo tier) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorImplTest.java b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorImplTest.java
index 3d2c7fa..0ef29d5 100644
--- a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorImplTest.java
@@ -13,9 +13,9 @@
  */
 package org.apache.aurora.scheduler.preemptor;
 
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
@@ -63,7 +63,7 @@ public class PreemptorImplTest extends EasyMockTest {
       TaskGroupKey.from(ITaskConfig.build(makeTask().getAssignedTask().getTask()));
 
   private static final Set<PreemptionProposal> NO_SLOTS = ImmutableSet.of();
-  private static final Optional<String> EMPTY_RESULT = Optional.absent();
+  private static final Optional<String> EMPTY_RESULT = Optional.empty();
   private static final HostOffer OFFER =
       new HostOffer(Protos.Offer.getDefaultInstance(), IHostAttributes.build(new HostAttributes()));
 
@@ -115,7 +115,7 @@ public class PreemptorImplTest extends EasyMockTest {
   public void testPreemptTasksValidationFailed() throws Exception {
     expect(slotCache.getByValue(GROUP_KEY)).andReturn(ImmutableSet.of(PROPOSAL_1));
     slotCache.remove(PROPOSAL_1, GROUP_KEY);
-    expectSlotValidation(PROPOSAL_1, Optional.absent());
+    expectSlotValidation(PROPOSAL_1, Optional.empty());
 
     control.replay();
 
@@ -129,7 +129,7 @@ public class PreemptorImplTest extends EasyMockTest {
   public void testMultiplePreemptionProposalsSuccessful() throws Exception {
     expect(slotCache.getByValue(GROUP_KEY)).andReturn(ImmutableSet.of(PROPOSAL_1, PROPOSAL_2));
     slotCache.remove(PROPOSAL_1, GROUP_KEY);
-    expectSlotValidation(PROPOSAL_1, Optional.absent());
+    expectSlotValidation(PROPOSAL_1, Optional.empty());
     slotCache.remove(PROPOSAL_2, GROUP_KEY);
     expectSlotValidation(PROPOSAL_2, Optional.of(ImmutableSet.of(
         PreemptionVictim.fromTask(TASK.getAssignedTask()))));
@@ -148,9 +148,9 @@ public class PreemptorImplTest extends EasyMockTest {
   public void testMultiplePreemptionProposalsFailed() throws Exception {
     expect(slotCache.getByValue(GROUP_KEY)).andReturn(ImmutableSet.of(PROPOSAL_1, PROPOSAL_2));
     slotCache.remove(PROPOSAL_1, GROUP_KEY);
-    expectSlotValidation(PROPOSAL_1, Optional.absent());
+    expectSlotValidation(PROPOSAL_1, Optional.empty());
     slotCache.remove(PROPOSAL_2, GROUP_KEY);
-    expectSlotValidation(PROPOSAL_2, Optional.absent());
+    expectSlotValidation(PROPOSAL_2, Optional.empty());
 
     control.replay();
 
@@ -192,7 +192,7 @@ public class PreemptorImplTest extends EasyMockTest {
     expect(stateManager.changeState(
         anyObject(Storage.MutableStoreProvider.class),
         eq(Tasks.id(preempted)),
-        eq(Optional.absent()),
+        eq(Optional.empty()),
         eq(ScheduleStatus.PREEMPTING),
         anyObject()))
         .andReturn(StateChangeResult.SUCCESS);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorModuleTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorModuleTest.java b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorModuleTest.java
index 815a3ef..2571b6b 100644
--- a/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorModuleTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorModuleTest.java
@@ -13,7 +13,8 @@
  */
 package org.apache.aurora.scheduler.preemptor;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
+
 import com.google.common.collect.ImmutableList;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
@@ -87,7 +88,7 @@ public class PreemptorModuleTest extends EasyMockTest {
 
     injector.getBindings();
     assertEquals(
-        Optional.absent(),
+        Optional.empty(),
         injector.getInstance(Preemptor.class).attemptPreemptionFor(
             IAssignedTask.build(new AssignedTask()),
             AttributeAggregate.empty(),

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java b/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
index c1825f6..cbcde23 100644
--- a/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java
@@ -13,7 +13,8 @@
  */
 package org.apache.aurora.scheduler.quota;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
+
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
@@ -272,7 +273,7 @@ public class QuotaManagerImplTest extends EasyMockTest {
   @Test
   public void testCheckQuotaNoQuotaSet() {
     expect(storageUtil.quotaStore.fetchQuota(ROLE))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
 
     expectNoTasks();
     expectNoJobUpdates();
@@ -886,7 +887,7 @@ public class QuotaManagerImplTest extends EasyMockTest {
 
   private IExpectationSetters<?> expectNoCronJob() {
     return expect(storageUtil.jobStore.fetchJob(anyObject(IJobKey.class)))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
   }
 
   private IExpectationSetters<Optional<IResourceAggregate>> expectQuota(IResourceAggregate quota) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskReconcilerTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskReconcilerTest.java b/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskReconcilerTest.java
index fb489ad..29c21a8 100644
--- a/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskReconcilerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskReconcilerTest.java
@@ -14,10 +14,10 @@
 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 com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
@@ -145,7 +145,7 @@ public class TaskReconcilerTest extends EasyMockTest {
     reconciler.triggerImplicitReconciliation();
     assertEquals(3L, implicitRuns.get());
 
-    reconciler.triggerExplicitReconciliation(Optional.absent());
+    reconciler.triggerExplicitReconciliation(Optional.empty());
     assertEquals(7L, explicitRuns.get());
     assertEquals(3L, implicitRuns.get());
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskTimeoutTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskTimeoutTest.java b/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskTimeoutTest.java
index 71125bc..8e0e793 100644
--- a/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskTimeoutTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/reconciliation/TaskTimeoutTest.java
@@ -13,11 +13,11 @@
  */
 package org.apache.aurora.scheduler.reconciliation;
 
+import java.util.Optional;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 import org.apache.aurora.common.quantity.Amount;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/resources/AcceptedOfferTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/resources/AcceptedOfferTest.java b/src/test/java/org/apache/aurora/scheduler/resources/AcceptedOfferTest.java
index 468dcac..f4a19fe 100644
--- a/src/test/java/org/apache/aurora/scheduler/resources/AcceptedOfferTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/resources/AcceptedOfferTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.resources;
 
 import java.util.Collections;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.aurora.gen.AssignedTask;
@@ -45,7 +45,7 @@ import static org.junit.Assert.assertTrue;
 
 public class AcceptedOfferTest {
   private static final Optional<String> TEST_ROLE = Optional.of("test-role");
-  private static final Optional<String> ABSENT_ROLE = Optional.absent();
+  private static final Optional<String> ABSENT_ROLE = Optional.empty();
   private static final IAssignedTask TASK = makeTask("id", JOB).getAssignedTask();
   private static final ResourceBag EXECUTOR_BAG = bag(0.25, 25, 75);
   private static final ResourceBag TOTAL_BAG =

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/resources/MesosResourceConverterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/resources/MesosResourceConverterTest.java b/src/test/java/org/apache/aurora/scheduler/resources/MesosResourceConverterTest.java
index e13fe71..c29720d 100644
--- a/src/test/java/org/apache/aurora/scheduler/resources/MesosResourceConverterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/resources/MesosResourceConverterTest.java
@@ -14,8 +14,8 @@
 package org.apache.aurora.scheduler.resources;
 
 import java.util.List;
+import java.util.Optional;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
@@ -55,15 +55,15 @@ public class MesosResourceConverterTest {
   @Test
   public void testAllocateRange() {
     List<Resource> expected = ImmutableList.<Resource>builder()
-        .add(mesosRange(PORTS, Optional.absent(), 80))
-        .add(mesosRange(PORTS, Optional.absent(), 90, 100))
+        .add(mesosRange(PORTS, Optional.empty(), 80))
+        .add(mesosRange(PORTS, Optional.empty(), 90, 100))
         .build();
 
     Iterable<Resource> actual = RANGES.toMesosResource(
         ImmutableSet.of(
-            mesosRange(PORTS, Optional.absent(), 79).toBuilder(),
-            mesosRange(PORTS, Optional.absent(), 80).toBuilder(),
-            mesosRange(PORTS, Optional.absent(), 80, 90, 91, 92, 100).toBuilder()),
+            mesosRange(PORTS, Optional.empty(), 79).toBuilder(),
+            mesosRange(PORTS, Optional.empty(), 80).toBuilder(),
+            mesosRange(PORTS, Optional.empty(), 80, 90, 91, 92, 100).toBuilder()),
         () -> ImmutableSet.of(80, 90, 100),
         false);
     assertEquals(expected, actual);
@@ -71,7 +71,7 @@ public class MesosResourceConverterTest {
 
   @Test
   public void testAllocateRangeRevocable() {
-    Resource.Builder builder = mesosRange(PORTS, Optional.absent(), 80).toBuilder()
+    Resource.Builder builder = mesosRange(PORTS, Optional.empty(), 80).toBuilder()
         .setRevocable(Resource.RevocableInfo.newBuilder());
 
     List<Resource> expected = ImmutableList.<Resource>builder().add(builder.build()).build();
@@ -86,7 +86,7 @@ public class MesosResourceConverterTest {
   @Test(expected = ResourceManager.InsufficientResourcesException.class)
   public void testAllocateRangeInsufficent() {
     RANGES.toMesosResource(
-        ImmutableSet.of(mesosRange(PORTS, Optional.absent(), 80, 81, 90, 91, 92).toBuilder()),
+        ImmutableSet.of(mesosRange(PORTS, Optional.empty(), 80, 81, 90, 91, 92).toBuilder()),
         () -> ImmutableSet.of(80, 90, 100),
         false);
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java b/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
index 9739e91..567586f 100644
--- a/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
+++ b/src/test/java/org/apache/aurora/scheduler/resources/ResourceTestUtil.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.resources;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 
@@ -79,11 +79,11 @@ public final class ResourceTestUtil {
   }
 
   public static Protos.Resource mesosScalar(ResourceType type, double value) {
-    return mesosScalar(type, Optional.absent(), false, value);
+    return mesosScalar(type, Optional.empty(), false, value);
   }
 
   public static Protos.Resource mesosScalar(ResourceType type, double value, boolean revocable) {
-    return mesosScalar(type, Optional.absent(), revocable, value);
+    return mesosScalar(type, Optional.empty(), revocable, value);
   }
 
   public static Protos.Resource mesosScalar(
@@ -98,7 +98,7 @@ public final class ResourceTestUtil {
   }
 
   public static Protos.Resource mesosRange(ResourceType type, Integer... values) {
-    return mesosRange(type, Optional.absent(), values);
+    return mesosRange(type, Optional.empty(), values);
   }
 
   public static Protos.Resource mesosRange(

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImplTest.java b/src/test/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImplTest.java
index a0e8634..78e1269 100644
--- a/src/test/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/scheduling/TaskAssignerImplTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.scheduling;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 
@@ -288,7 +288,7 @@ public class TaskAssignerImplTest extends EasyMockTest {
     expect(updateAgentReserver.hasReservations(GROUP_KEY)).andReturn(true);
     expect(updateAgentReserver.getAgent(INSTANCE_KEY)).andReturn(Optional.of(SLAVE_ID));
     expect(offerManager.getMatching(MESOS_OFFER.getAgentId(), resourceRequest, false))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
     expect(tierManager.getTier(TASK.getAssignedTask().getTask())).andReturn(DEV_TIER);
     expectLastCall();
 
@@ -326,7 +326,7 @@ public class TaskAssignerImplTest extends EasyMockTest {
         .setTaskId(TaskID.newBuilder().setValue(Tasks.id(secondTask)))
         .setAgentId(MESOS_OFFER.getAgentId())
         .build();
-    expect(updateAgentReserver.getAgent(InstanceKeys.from(JOB, 9999))).andReturn(Optional.absent());
+    expect(updateAgentReserver.getAgent(InstanceKeys.from(JOB, 9999))).andReturn(Optional.empty());
     ImmutableSet<HostOffer> matchingOffers = ImmutableSet.of(OFFER);
     expect(offerManager.getAllMatching(GROUP_KEY, resourceRequest, false))
         .andReturn(matchingOffers);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java b/src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java
index 260ff9d..ecf2987 100644
--- a/src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java
@@ -14,11 +14,11 @@
 package org.apache.aurora.scheduler.scheduling;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.Executor;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.MoreExecutors;
@@ -223,7 +223,7 @@ public class TaskSchedulerImplTest extends EasyMockTest {
     expectAssigned(TASK_A, NO_RESERVATION).andReturn(NOT_SCHEDULED_RESULT);
     expectAsMap(NO_RESERVATION);
     expectNoReservation(TASK_A);
-    expectPreemptorCall(TASK_A, Optional.absent());
+    expectPreemptorCall(TASK_A, Optional.empty());
 
     // Slave is reserved.
     expectTaskStillPendingQuery(TASK_A);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/scheduling/TaskThrottlerTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/scheduling/TaskThrottlerTest.java b/src/test/java/org/apache/aurora/scheduler/scheduling/TaskThrottlerTest.java
index 2501618..2b4e057 100644
--- a/src/test/java/org/apache/aurora/scheduler/scheduling/TaskThrottlerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/scheduling/TaskThrottlerTest.java
@@ -13,10 +13,10 @@
  */
 package org.apache.aurora.scheduler.scheduling;
 
+import java.util.Optional;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 import org.apache.aurora.common.quantity.Amount;
@@ -135,7 +135,7 @@ public class TaskThrottlerTest extends EasyMockTest {
         Tasks.id(task),
         Optional.of(THROTTLED),
         PENDING,
-        Optional.absent()))
+        Optional.empty()))
         .andReturn(StateChangeResult.SUCCESS);
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java b/src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java
index 953b65f..e3f7fad 100644
--- a/src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java
@@ -107,11 +107,11 @@ public class MetricCalculatorTest extends EasyMockTest {
 
   private Set<String> generateMetricNames(
       Set<IScheduledTask> tasks,
-      Set<Multimap<AlgorithmType, SlaGroup.GroupType>> definitions) {
+      Set<Multimap<AlgorithmType, GroupType>> definitions) {
 
     ImmutableSet.Builder<String> names = ImmutableSet.builder();
-    for (Multimap<AlgorithmType, SlaGroup.GroupType> definition : definitions) {
-      for (Map.Entry<AlgorithmType, SlaGroup.GroupType> entry : definition.entries()) {
+    for (Multimap<AlgorithmType, GroupType> definition : definitions) {
+      for (Map.Entry<AlgorithmType, GroupType> entry : definition.entries()) {
         for (String metric : entry.getValue().getSlaGroup().createNamedGroups(tasks).keys()) {
           names.add(metric + entry.getKey().getAlgorithmName() + NAME_QUALIFIER_PROD);
           names.add(metric + entry.getKey().getAlgorithmName() + NAME_QUALIFIER_NON_PROD);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/state/MaintenanceControllerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/state/MaintenanceControllerImplTest.java b/src/test/java/org/apache/aurora/scheduler/state/MaintenanceControllerImplTest.java
index 0f1d4d4..770846e 100644
--- a/src/test/java/org/apache/aurora/scheduler/state/MaintenanceControllerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/state/MaintenanceControllerImplTest.java
@@ -13,10 +13,10 @@
  */
 package org.apache.aurora.scheduler.state;
 
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.Executor;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.inject.AbstractModule;
@@ -173,7 +173,7 @@ public class MaintenanceControllerImplTest extends EasyMockTest {
   @Test
   public void testUnknownHost() {
     expect(storageUtil.attributeStore.getHostAttributes("b"))
-        .andReturn(Optional.absent());
+        .andReturn(Optional.empty());
 
     control.replay();
 
@@ -217,7 +217,7 @@ public class MaintenanceControllerImplTest extends EasyMockTest {
   public void testGetMode() {
     expect(storageUtil.attributeStore.getHostAttributes(HOST_A)).andReturn(Optional.of(
         IHostAttributes.build(new HostAttributes().setHost(HOST_A).setMode(DRAINING))));
-    expect(storageUtil.attributeStore.getHostAttributes("unknown")).andReturn(Optional.absent());
+    expect(storageUtil.attributeStore.getHostAttributes("unknown")).andReturn(Optional.empty());
 
     control.replay();
 
@@ -239,7 +239,7 @@ public class MaintenanceControllerImplTest extends EasyMockTest {
     expect(stateManager.changeState(
         storageUtil.mutableStoreProvider,
         Tasks.id(task),
-        Optional.absent(),
+        Optional.empty(),
         ScheduleStatus.DRAINING,
         MaintenanceControllerImpl.DRAINING_MESSAGE))
         .andReturn(StateChangeResult.SUCCESS);

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/state/PartitionManagerTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/state/PartitionManagerTest.java b/src/test/java/org/apache/aurora/scheduler/state/PartitionManagerTest.java
index 8f654db..3d46413 100644
--- a/src/test/java/org/apache/aurora/scheduler/state/PartitionManagerTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/state/PartitionManagerTest.java
@@ -13,13 +13,12 @@
  */
 package org.apache.aurora.scheduler.state;
 
+import java.util.Optional;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
-import com.google.common.base.Optional;
-
 import org.apache.aurora.common.testing.easymock.EasyMockTest;
 import org.apache.aurora.common.util.testing.FakeClock;
 import org.apache.aurora.gen.PartitionPolicy;
@@ -77,7 +76,7 @@ public class PartitionManagerTest extends EasyMockTest {
   }
 
   private static TaskStateChange makeStateChange(IScheduledTask task, ScheduleStatus newState) {
-    return makeStateChange(task, Optional.absent(), newState);
+    return makeStateChange(task, Optional.empty(), newState);
   }
 
   private static IScheduledTask taskWithoutPartitionPolicy() {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java b/src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java
index 4cff10b..4065056 100644
--- a/src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java
@@ -16,11 +16,11 @@ package org.apache.aurora.scheduler.state;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -210,8 +210,8 @@ public class StateManagerImplTest extends EasyMockTest {
             .setTaskId(taskId)
             .setTask(NON_SERVICE_CONFIG.newBuilder()));
     assertEquals(
-        ImmutableSet.of(IScheduledTask.build(expected)),
-        Storage.Util.fetchTask(storage, taskId).asSet());
+        Optional.of(IScheduledTask.build(expected)),
+        Storage.Util.fetchTask(storage, taskId));
   }
 
   @Test
@@ -454,12 +454,12 @@ public class StateManagerImplTest extends EasyMockTest {
         taskId,
         Optional.of(PENDING),
         RUNNING,
-        Optional.absent()));
+        Optional.empty()));
     assertEquals(SUCCESS, changeState(
         taskId,
         Optional.of(ASSIGNED),
         FAILED,
-        Optional.absent()));
+        Optional.empty()));
   }
 
   @Test
@@ -470,7 +470,7 @@ public class StateManagerImplTest extends EasyMockTest {
         "a",
         Optional.of(PENDING),
         ASSIGNED,
-        Optional.absent()));
+        Optional.empty()));
   }
 
   @Test
@@ -631,9 +631,9 @@ public class StateManagerImplTest extends EasyMockTest {
   private StateChangeResult changeState(String taskId, ScheduleStatus status) {
     return changeState(
         taskId,
-        Optional.absent(),
+        Optional.empty(),
         status,
-        Optional.absent());
+        Optional.empty());
   }
 
   private void assignTask(String taskId, IHostAttributes host) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/state/TaskStateMachineTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/state/TaskStateMachineTest.java b/src/test/java/org/apache/aurora/scheduler/state/TaskStateMachineTest.java
index bb4e752..3d98fe6 100644
--- a/src/test/java/org/apache/aurora/scheduler/state/TaskStateMachineTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/state/TaskStateMachineTest.java
@@ -14,12 +14,13 @@
 package org.apache.aurora.scheduler.state;
 
 import java.util.Map;
+import java.util.NoSuchElementException;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.base.Function;
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -278,7 +279,7 @@ public class TaskStateMachineTest {
   }
 
   private static final Function<Action, SideEffect> TO_SIDE_EFFECT =
-      action -> new SideEffect(action, Optional.absent());
+      action -> new SideEffect(action, Optional.empty());
 
   private void legalTransition(TaskState state, SideEffect.Action... expectedActions) {
     legalTransition(state, ImmutableSet.copyOf(expectedActions));
@@ -325,38 +326,38 @@ public class TaskStateMachineTest {
 
   private static final TransitionResult SAVE = new TransitionResult(
       SUCCESS,
-      ImmutableSet.of(new SideEffect(Action.SAVE_STATE, Optional.absent())));
+      ImmutableSet.of(new SideEffect(Action.SAVE_STATE, Optional.empty())));
   private static final TransitionResult SAVE_AND_KILL = new TransitionResult(
       SUCCESS,
       ImmutableSet.of(
-          new SideEffect(Action.SAVE_STATE, Optional.absent()),
-          new SideEffect(Action.KILL, Optional.absent())));
+          new SideEffect(Action.SAVE_STATE, Optional.empty()),
+          new SideEffect(Action.KILL, Optional.empty())));
   private static final TransitionResult SAVE_AND_RESCHEDULE = new TransitionResult(
       SUCCESS,
       ImmutableSet.of(
-          new SideEffect(Action.SAVE_STATE, Optional.absent()),
-          new SideEffect(Action.RESCHEDULE, Optional.absent())));
+          new SideEffect(Action.SAVE_STATE, Optional.empty()),
+          new SideEffect(Action.RESCHEDULE, Optional.empty())));
   private static final TransitionResult SAVE_KILL_AND_RESCHEDULE = new TransitionResult(
       SUCCESS,
       ImmutableSet.of(
-          new SideEffect(Action.SAVE_STATE, Optional.absent()),
-          new SideEffect(Action.KILL, Optional.absent()),
-          new SideEffect(Action.RESCHEDULE, Optional.absent())));
+          new SideEffect(Action.SAVE_STATE, Optional.empty()),
+          new SideEffect(Action.KILL, Optional.empty()),
+          new SideEffect(Action.RESCHEDULE, Optional.empty())));
   private static final TransitionResult ILLEGAL_KILL = new TransitionResult(
       ILLEGAL_WITH_SIDE_EFFECTS,
-      ImmutableSet.of(new SideEffect(Action.KILL, Optional.absent())));
+      ImmutableSet.of(new SideEffect(Action.KILL, Optional.empty())));
   private static final TransitionResult TRANSITION_TO_LOST = new TransitionResult(
       SUCCESS,
-      ImmutableSet.of(new SideEffect(Action.TRANSITION_TO_LOST, Optional.absent()),
-          new SideEffect(Action.SAVE_STATE, Optional.absent())));
+      ImmutableSet.of(new SideEffect(Action.TRANSITION_TO_LOST, Optional.empty()),
+          new SideEffect(Action.SAVE_STATE, Optional.empty())));
   private static final TransitionResult RECORD_FAILURE = new TransitionResult(
       SUCCESS,
       ImmutableSet.of(
-          new SideEffect(Action.SAVE_STATE, Optional.absent()),
-          new SideEffect(Action.INCREMENT_FAILURES, Optional.absent())));
+          new SideEffect(Action.SAVE_STATE, Optional.empty()),
+          new SideEffect(Action.INCREMENT_FAILURES, Optional.empty())));
   private static final TransitionResult DELETE_TASK = new TransitionResult(
       SUCCESS,
-      ImmutableSet.of(new SideEffect(Action.DELETE, Optional.absent())));
+      ImmutableSet.of(new SideEffect(Action.DELETE, Optional.empty())));
 
   private static final class TestCase {
     private final boolean taskPresent;
@@ -592,7 +593,7 @@ public class TaskStateMachineTest {
               if (expectException) {
                 fail();
               }
-            } catch (IllegalStateException e) {
+            } catch (NoSuchElementException e) {
               if (expectException) {
                 continue;
               } else {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java b/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
index 04350fa..a30d74e 100644
--- a/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.stats;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -64,7 +64,7 @@ public class ResourceCounterTest {
 
   private static final Metric ZERO = new Metric(TOTAL_CONSUMED, ResourceBag.EMPTY);
   private static final long GB = 1024;
-  private static final Optional<String> NOT_DEDICATED = Optional.absent();
+  private static final Optional<String> NOT_DEDICATED = Optional.empty();
 
   private static final boolean PRODUCTION = true;
   private static final boolean NONPRODUCTION = false;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/test/java/org/apache/aurora/scheduler/storage/AbstractAttributeStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/AbstractAttributeStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/AbstractAttributeStoreTest.java
index 1ad4680..687fd96 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/AbstractAttributeStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/AbstractAttributeStoreTest.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.storage;
 
 import java.io.IOException;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
 import org.apache.aurora.gen.Attribute;
@@ -67,7 +67,7 @@ public abstract class AbstractAttributeStoreTest {
 
   @Test
   public void testSaveAttributes() {
-    assertEquals(Optional.absent(), read(HOST_A));
+    assertEquals(Optional.empty(), read(HOST_A));
 
     // Initial save returns true since it changes previous attributes
     assertTrue(insert(HOST_A_ATTRS));
@@ -79,7 +79,7 @@ public abstract class AbstractAttributeStoreTest {
 
   @Test
   public void testCrud() {
-    assertEquals(Optional.absent(), read(HOST_A));
+    assertEquals(Optional.empty(), read(HOST_A));
     assertEquals(ImmutableSet.of(), readAll());
 
     assertTrue(insert(HOST_A_ATTRS));
@@ -103,7 +103,7 @@ public abstract class AbstractAttributeStoreTest {
     assertEquals(ImmutableSet.of(updatedMode, HOST_B_ATTRS), readAll());
 
     truncate();
-    assertEquals(Optional.absent(), read(HOST_A));
+    assertEquals(Optional.empty(), read(HOST_A));
     assertEquals(ImmutableSet.of(), readAll());
   }
 


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

Posted by wf...@apache.org.
Use java.util.Optional throughout

Reviewed at https://reviews.apache.org/r/64629/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/6fd765bc
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/6fd765bc
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/6fd765bc

Branch: refs/heads/master
Commit: 6fd765bcf8fa5dc0d6d8f2c2fcfce6609ab8fb01
Parents: 5f79f7c
Author: Bill Farner <wf...@apache.org>
Authored: Fri Dec 15 12:01:49 2017 -0800
Committer: Bill Farner <wf...@apache.org>
Committed: Fri Dec 15 12:01:49 2017 -0800

----------------------------------------------------------------------
 .../net/http/handlers/TimeSeriesDataSource.java |  4 +-
 .../org/apache/aurora/common/stats/Stats.java   |  2 +-
 .../aurora/common/stats/StatsProvider.java      |  3 +-
 .../aurora/benchmark/StatusUpdateBenchmark.java |  6 +--
 .../benchmark/fakes/FakeOfferManager.java       |  6 +--
 .../benchmark/fakes/FakeStatsProvider.java      |  3 +-
 .../aurora/scheduler/SchedulerLifecycle.java    |  2 +-
 .../aurora/scheduler/TaskStatusHandlerImpl.java |  8 ++--
 .../org/apache/aurora/scheduler/TaskVars.java   |  9 ++--
 .../apache/aurora/scheduler/base/JobKeys.java   |  4 +-
 .../aurora/scheduler/base/TaskTestUtil.java     |  6 +--
 .../config/converters/DataAmountConverter.java  | 13 +++---
 .../config/converters/TimeAmountConverter.java  | 13 +++---
 .../configuration/ConfigurationManager.java     |  2 +-
 .../executor/ExecutorSettingsLoader.java        |  4 +-
 .../aurora/scheduler/cron/CronPredictor.java    |  2 +-
 .../aurora/scheduler/cron/CronScheduler.java    |  2 +-
 .../aurora/scheduler/cron/CrontabEntry.java     |  4 +-
 .../aurora/scheduler/cron/SanitizedCronJob.java |  4 +-
 .../scheduler/cron/quartz/AuroraCronJob.java    |  4 +-
 .../cron/quartz/CronJobManagerImpl.java         |  5 ++-
 .../cron/quartz/CronPredictorImpl.java          |  5 +--
 .../cron/quartz/CronSchedulerImpl.java          |  5 ++-
 .../discovery/FlaggedZooKeeperConfig.java       |  6 +--
 .../scheduler/discovery/ZooKeeperConfig.java    |  7 ++--
 .../aurora/scheduler/events/PubsubEvent.java    |  4 +-
 .../aurora/scheduler/events/WebhookInfo.java    | 13 +++---
 .../aurora/scheduler/events/WebhookModule.java  |  6 +--
 .../scheduler/filter/ConstraintMatcher.java     | 10 ++---
 .../scheduler/filter/SchedulingFilter.java      |  4 +-
 .../scheduler/filter/SchedulingFilterImpl.java  | 15 +++----
 .../scheduler/http/JettyServerModule.java       |  6 +--
 .../aurora/scheduler/http/LeaderRedirect.java   | 20 ++++-----
 .../scheduler/http/LeaderRedirectFilter.java    |  2 +-
 .../org/apache/aurora/scheduler/http/Mname.java | 14 +++----
 .../apache/aurora/scheduler/http/Quotas.java    |  2 +-
 .../aurora/scheduler/http/StructDump.java       |  7 ++--
 .../http/api/security/FieldGetter.java          |  5 ++-
 .../http/api/security/FieldGetters.java         |  4 +-
 .../http/api/security/IniShiroRealmModule.java  |  7 ++--
 .../api/security/Kerberos5ShiroRealmModule.java |  6 +--
 .../ShiroAuthorizingParamInterceptor.java       | 12 +++---
 .../ShiroKerberosAuthenticationFilter.java      |  5 +--
 .../http/api/security/ThriftFieldGetter.java    |  4 +-
 .../aurora/scheduler/log/mesos/MesosLog.java    |  4 +-
 .../mesos/CommandLineDriverSettingsModule.java  |  8 ++--
 .../aurora/scheduler/mesos/DriverFactory.java   |  2 +-
 .../scheduler/mesos/DriverFactoryImpl.java      |  4 +-
 .../aurora/scheduler/mesos/DriverSettings.java  |  3 +-
 .../scheduler/mesos/LibMesosLoadingModule.java  |  4 +-
 .../scheduler/mesos/MesosCallbackHandler.java   |  9 ++--
 .../scheduler/mesos/MesosTaskFactory.java       |  6 +--
 .../scheduler/mesos/SchedulerDriverService.java |  2 +-
 .../scheduler/mesos/VersionedDriverFactory.java |  2 +-
 .../mesos/VersionedMesosSchedulerImpl.java      |  3 +-
 .../mesos/VersionedSchedulerDriverService.java  |  6 +--
 .../aurora/scheduler/offers/HostOffer.java      |  4 +-
 .../aurora/scheduler/offers/HostOffers.java     | 10 ++---
 .../aurora/scheduler/offers/OfferManager.java   |  3 +-
 .../scheduler/offers/OfferManagerImpl.java      |  3 +-
 .../scheduler/offers/OfferOrderBuilder.java     |  2 +-
 .../aurora/scheduler/preemptor/BiCache.java     |  4 +-
 .../preemptor/PendingTaskProcessor.java         |  4 +-
 .../preemptor/PreemptionVictimFilter.java       | 15 +++----
 .../aurora/scheduler/preemptor/Preemptor.java   |  6 +--
 .../scheduler/preemptor/PreemptorMetrics.java   |  2 +-
 .../scheduler/preemptor/PreemptorModule.java    |  4 +-
 .../scheduler/quota/QuotaCheckResult.java       |  5 ++-
 .../aurora/scheduler/quota/QuotaManager.java    | 18 ++++----
 .../reconciliation/TaskReconciler.java          |  4 +-
 .../scheduler/reconciliation/TaskTimeout.java   |  2 +-
 .../scheduling/FirstFitOfferSelector.java       |  5 ++-
 .../scheduler/scheduling/OfferSelector.java     |  2 +-
 .../scheduling/RescheduleCalculator.java        |  4 +-
 .../scheduler/scheduling/TaskAssignerImpl.java  |  5 ++-
 .../scheduler/scheduling/TaskSchedulerImpl.java |  3 +-
 .../scheduler/scheduling/TaskThrottler.java     |  4 +-
 .../aurora/scheduler/spi/Permissions.java       |  4 +-
 .../scheduler/state/MaintenanceController.java  | 12 +++---
 .../scheduler/state/PartitionManager.java       |  2 +-
 .../aurora/scheduler/state/SideEffect.java      |  3 +-
 .../aurora/scheduler/state/StateManager.java    |  3 +-
 .../scheduler/state/StateManagerImpl.java       | 12 +++---
 .../scheduler/state/TaskStateMachine.java       | 18 ++++----
 .../scheduler/storage/AttributeStore.java       | 10 ++---
 .../aurora/scheduler/storage/CronJobStore.java  |  2 +-
 .../scheduler/storage/JobUpdateStore.java       |  3 +-
 .../aurora/scheduler/storage/QuotaStore.java    |  3 +-
 .../scheduler/storage/SchedulerStore.java       |  2 +-
 .../aurora/scheduler/storage/Storage.java       |  3 +-
 .../aurora/scheduler/storage/TaskStore.java     |  2 +-
 .../storage/durability/WriteRecorder.java       |  2 +-
 .../storage/log/SnapshotStoreImpl.java          |  2 +-
 .../storage/mem/MemAttributeStore.java          |  6 +--
 .../scheduler/storage/mem/MemCronJobStore.java  |  4 +-
 .../storage/mem/MemJobUpdateStore.java          |  4 +-
 .../scheduler/storage/mem/MemQuotaStore.java    |  4 +-
 .../storage/mem/MemSchedulerStore.java          |  4 +-
 .../scheduler/storage/mem/MemTaskStore.java     | 12 +++---
 .../scheduler/testing/FakeStatsProvider.java    |  4 +-
 .../aurora/scheduler/thrift/AuditMessages.java  | 15 ++++---
 .../scheduler/thrift/ReadOnlySchedulerImpl.java |  8 ++--
 .../thrift/SchedulerThriftInterface.java        | 44 ++++++++++----------
 .../scheduler/updater/InstanceAction.java       |  4 +-
 .../updater/InstanceActionHandler.java          | 11 ++---
 .../scheduler/updater/InstanceUpdater.java      | 16 +++----
 .../scheduler/updater/JobUpdateController.java  |  2 +-
 .../updater/JobUpdateControllerImpl.java        |  8 ++--
 .../updater/JobUpdateStateMachine.java          |  4 +-
 .../aurora/scheduler/updater/SideEffect.java    |  2 +-
 .../scheduler/updater/StateEvaluator.java       |  8 ++--
 .../scheduler/updater/UpdateAgentReserver.java  |  4 +-
 .../aurora/scheduler/updater/UpdateFactory.java |  6 +--
 .../scheduler/TaskStatusHandlerImplTest.java    | 17 ++++----
 .../apache/aurora/scheduler/TaskVarsTest.java   |  6 +--
 .../aurora/scheduler/app/SchedulerIT.java       |  6 +--
 .../aurora/scheduler/app/local/FakeMaster.java  |  2 +-
 .../scheduler/app/local/LocalSchedulerMain.java |  4 +-
 .../aurora/scheduler/cron/CrontabEntryTest.java |  2 +-
 .../cron/quartz/AuroraCronJobTest.java          |  4 +-
 .../cron/quartz/CronJobManagerImplTest.java     | 14 ++++---
 .../cron/quartz/CronPredictorImplTest.java      |  4 +-
 .../discovery/CuratorDiscoveryModuleTest.java   |  2 +-
 .../discovery/ZooKeeperConfigTest.java          | 10 ++---
 .../filter/AttributeAggregateTest.java          |  8 ++--
 .../filter/SchedulingFilterImplTest.java        |  2 +-
 .../scheduler/http/LeaderRedirectTest.java      |  8 ++--
 .../apache/aurora/scheduler/http/MnameTest.java |  8 ++--
 .../scheduler/http/ServletFilterTest.java       | 14 ++++---
 .../ShiroAuthorizingParamInterceptorTest.java   |  2 +-
 .../api/security/ThriftFieldGetterTest.java     |  4 +-
 .../CommandLineDriverSettingsModuleTest.java    | 20 ++++-----
 .../mesos/MesosCallbackHandlerTest.java         | 28 ++++++-------
 .../mesos/SchedulerDriverServiceTest.java       |  6 +--
 .../scheduler/mesos/TaskStatusStatsTest.java    | 16 +++----
 .../mesos/VersionedMesosSchedulerImplTest.java  |  2 +-
 .../VersionedSchedulerDriverServiceTest.java    |  5 ++-
 .../scheduler/offers/OfferManagerImplTest.java  |  6 +--
 .../aurora/scheduler/preemptor/BiCacheTest.java |  4 +-
 .../preemptor/PendingTaskProcessorTest.java     |  4 +-
 .../preemptor/PreemptionVictimFilterTest.java   | 15 ++++---
 .../scheduler/preemptor/PreemptorImplTest.java  | 14 +++----
 .../preemptor/PreemptorModuleTest.java          |  5 ++-
 .../scheduler/quota/QuotaManagerImplTest.java   |  7 ++--
 .../reconciliation/TaskReconcilerTest.java      |  4 +-
 .../reconciliation/TaskTimeoutTest.java         |  2 +-
 .../scheduler/resources/AcceptedOfferTest.java  |  4 +-
 .../resources/MesosResourceConverterTest.java   | 16 +++----
 .../scheduler/resources/ResourceTestUtil.java   |  8 ++--
 .../scheduling/TaskAssignerImplTest.java        |  6 +--
 .../scheduling/TaskSchedulerImplTest.java       |  4 +-
 .../scheduler/scheduling/TaskThrottlerTest.java |  4 +-
 .../scheduler/sla/MetricCalculatorTest.java     |  6 +--
 .../state/MaintenanceControllerImplTest.java    |  8 ++--
 .../scheduler/state/PartitionManagerTest.java   |  5 +--
 .../scheduler/state/StateManagerImplTest.java   | 16 +++----
 .../scheduler/state/TaskStateMachineTest.java   | 35 ++++++++--------
 .../scheduler/stats/ResourceCounterTest.java    |  4 +-
 .../storage/AbstractAttributeStoreTest.java     |  8 ++--
 .../storage/AbstractCronJobStoreTest.java       | 20 ++++-----
 .../storage/AbstractJobUpdateStoreTest.java     |  8 ++--
 .../storage/AbstractQuotaStoreTest.java         | 14 +++----
 .../storage/AbstractSchedulerStoreTest.java     |  5 +--
 .../storage/AbstractTaskStoreTest.java          |  4 +-
 .../storage/durability/DurableStorageTest.java  |  6 +--
 .../storage/durability/WriteRecorderTest.java   |  2 +-
 .../storage/log/NonVolatileStorageTest.java     |  4 +-
 .../storage/testing/StorageTestUtil.java        |  5 ++-
 .../scheduler/thrift/AuditMessagesTest.java     | 14 +++----
 .../aurora/scheduler/thrift/Fixtures.java       |  4 +-
 .../thrift/ReadOnlySchedulerImplTest.java       | 12 +++---
 .../thrift/SchedulerThriftInterfaceTest.java    | 16 +++----
 .../aurora/scheduler/thrift/ThriftIT.java       |  2 +-
 .../scheduler/updater/InstanceUpdaterTest.java  |  8 ++--
 .../aurora/scheduler/updater/JobUpdaterIT.java  |  6 +--
 .../aurora/scheduler/updater/KillTaskTest.java  |  6 +--
 .../scheduler/updater/OneWayJobUpdaterTest.java |  8 ++--
 177 files changed, 608 insertions(+), 605 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/commons/src/main/java/org/apache/aurora/common/net/http/handlers/TimeSeriesDataSource.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/net/http/handlers/TimeSeriesDataSource.java b/commons/src/main/java/org/apache/aurora/common/net/http/handlers/TimeSeriesDataSource.java
index e40f327..d243245 100644
--- a/commons/src/main/java/org/apache/aurora/common/net/http/handlers/TimeSeriesDataSource.java
+++ b/commons/src/main/java/org/apache/aurora/common/net/http/handlers/TimeSeriesDataSource.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.common.net.http.handlers;
 
 import java.util.List;
+import java.util.Optional;
 
 import javax.annotation.Nullable;
 import javax.ws.rs.GET;
@@ -23,7 +24,6 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 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;
@@ -85,7 +85,7 @@ public class TimeSeriesDataSource {
       tsData.add(series.getSamples());
     }
 
-    final long since = Long.parseLong(Optional.fromNullable(sinceQuery).or("0"));
+    final long since = Long.parseLong(Optional.ofNullable(sinceQuery).orElse("0"));
     Predicate<List<Number>> sinceFilter = next -> next.get(0).longValue() > since;
 
     ResponseStruct response = new ResponseStruct(

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/stats/Stats.java b/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
index af1a7b3..304aaa3 100644
--- a/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
+++ b/commons/src/main/java/org/apache/aurora/common/stats/Stats.java
@@ -21,10 +21,10 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.function.Supplier;
 import java.util.regex.Pattern;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Supplier;
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.collect.ImmutableList;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java b/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
index c02dd38..db3b5cc 100644
--- a/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
+++ b/commons/src/main/java/org/apache/aurora/common/stats/StatsProvider.java
@@ -15,8 +15,7 @@ package org.apache.aurora.common.stats;
 
 import java.util.Collection;
 import java.util.concurrent.atomic.AtomicLong;
-
-import com.google.common.base.Supplier;
+import java.util.function.Supplier;
 
 /**
  * A minimal interface to a Stats repository.

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java
----------------------------------------------------------------------
diff --git a/src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java b/src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java
index 0c31c4a..37374dc 100644
--- a/src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java
+++ b/src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java
@@ -13,6 +13,7 @@
  */
 package org.apache.aurora.benchmark;
 
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.CountDownLatch;
@@ -22,7 +23,6 @@ import java.util.concurrent.TimeUnit;
 
 import javax.inject.Singleton;
 
-import com.google.common.base.Optional;
 import com.google.common.eventbus.EventBus;
 import com.google.common.eventbus.Subscribe;
 import com.google.common.util.concurrent.AbstractExecutionThreadService;
@@ -120,7 +120,7 @@ public class StatusUpdateBenchmark {
    */
   private static final class SlowStorageWrapper implements Storage {
     private final Storage underlyingStorage;
-    private Optional<Amount<Long, Time>> latency = Optional.absent();
+    private Optional<Amount<Long, Time>> latency = Optional.empty();
 
     private SlowStorageWrapper(Storage underlyingStorage) {
       this.underlyingStorage = requireNonNull(underlyingStorage);
@@ -209,7 +209,7 @@ public class StatusUpdateBenchmark {
             bind(DriverSettings.class).toInstance(
                 new DriverSettings(
                     "fakemaster",
-                    Optional.absent()));
+                    Optional.empty()));
             bind(FrameworkInfoFactory.class).toInstance(() -> Protos.FrameworkInfo.newBuilder()
                     .setUser("framework user")
                     .setName("test framework")

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeOfferManager.java
----------------------------------------------------------------------
diff --git a/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeOfferManager.java b/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeOfferManager.java
index c70f108..f0dacd4 100644
--- a/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeOfferManager.java
+++ b/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeOfferManager.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.benchmark.fakes;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.scheduler.base.TaskGroupKey;
 import org.apache.aurora.scheduler.events.PubsubEvent;
@@ -50,7 +50,7 @@ public class FakeOfferManager implements OfferManager {
 
   @Override
   public Optional<HostOffer> get(Protos.AgentID agentId) {
-    return Optional.absent();
+    return Optional.empty();
   }
 
   @Override
@@ -63,7 +63,7 @@ public class FakeOfferManager implements OfferManager {
                                          ResourceRequest resourceRequest,
                                          boolean revocable) {
 
-    return Optional.absent();
+    return Optional.empty();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeStatsProvider.java
----------------------------------------------------------------------
diff --git a/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeStatsProvider.java b/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeStatsProvider.java
index d83a11f..3d1b3dd 100644
--- a/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeStatsProvider.java
+++ b/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeStatsProvider.java
@@ -14,8 +14,7 @@
 package org.apache.aurora.benchmark.fakes;
 
 import java.util.concurrent.atomic.AtomicLong;
-
-import com.google.common.base.Supplier;
+import java.util.function.Supplier;
 
 import org.apache.aurora.common.stats.Stat;
 import org.apache.aurora.common.stats.StatsProvider;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java b/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
index aa09aff..99610d6 100644
--- a/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
+++ b/src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
@@ -77,7 +77,7 @@ import static org.apache.aurora.common.zookeeper.SingletonService.LeadershipList
  *       {@link LeaderControl#advertise() advertise()}.</li>
  * </ol>
  * If this call order is broken, calls will fail by throwing
- * {@link java.lang.IllegalStateException}.
+ * {@link IllegalStateException}.
  * <p>
  * At any point in the lifecycle, the scheduler will respond to
  * {@link LeadershipListener#onDefeated()

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java b/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
index 1aacecf..f506e9e 100644
--- a/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java
@@ -16,6 +16,7 @@ package org.apache.aurora.scheduler;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 import java.util.ArrayDeque;
+import java.util.Optional;
 import java.util.Queue;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.atomic.AtomicReference;
@@ -24,7 +25,6 @@ import javax.inject.Inject;
 import javax.inject.Qualifier;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.util.concurrent.AbstractExecutionThreadService;
 import com.google.common.util.concurrent.MoreExecutors;
 
@@ -158,7 +158,7 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService
             StateChangeResult result = stateManager.changeState(
                 storeProvider,
                 status.getTaskId().getValue(),
-                Optional.absent(),
+                Optional.empty(),
                 translatedState,
                 formatMessage(status));
 
@@ -183,7 +183,7 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService
   }
 
   private static Optional<String> formatMessage(TaskStatus status) {
-    Optional<String> message = Optional.absent();
+    Optional<String> message = Optional.empty();
     if (status.hasMessage()) {
       message = Optional.of(status.getMessage());
     }
@@ -206,7 +206,7 @@ public class TaskStatusHandlerImpl extends AbstractExecutionThreadService
 
         case REASON_EXECUTOR_UNREGISTERED:
           // Suppress "Unregistered executor" message as it bears no meaning to the user.
-          message = Optional.absent();
+          message = Optional.empty();
           break;
 
         default:

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/TaskVars.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/TaskVars.java b/src/main/java/org/apache/aurora/scheduler/TaskVars.java
index 3911626..ee20ed3 100644
--- a/src/main/java/org/apache/aurora/scheduler/TaskVars.java
+++ b/src/main/java/org/apache/aurora/scheduler/TaskVars.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.scheduler;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -21,7 +22,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.base.Predicate;
 import com.google.common.base.Strings;
 import com.google.common.base.Supplier;
@@ -142,13 +142,14 @@ public class TaskVars extends AbstractIdleService implements EventSubscriber {
     final String host = task.getAssignedTask().getSlaveHost();
     Optional<String> rack;
     if (Strings.isNullOrEmpty(task.getAssignedTask().getSlaveHost())) {
-      rack = Optional.absent();
+      rack = Optional.empty();
     } else {
       rack = storage.read(storeProvider -> {
         Optional<IAttribute> rack1 = FluentIterable
             .from(AttributeStore.Util.attributesOrNone(storeProvider, host))
-            .firstMatch(IS_RACK);
-        return rack1.transform(ATTR_VALUE);
+            .firstMatch(IS_RACK)
+            .toJavaUtil();
+        return rack1.map(ATTR_VALUE);
       });
     }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/base/JobKeys.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/base/JobKeys.java b/src/main/java/org/apache/aurora/scheduler/base/JobKeys.java
index 0136afb..cab620d 100644
--- a/src/main/java/org/apache/aurora/scheduler/base/JobKeys.java
+++ b/src/main/java/org/apache/aurora/scheduler/base/JobKeys.java
@@ -14,11 +14,11 @@
 package org.apache.aurora.scheduler.base;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.annotation.Nullable;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableSet;
 
@@ -136,7 +136,7 @@ public final class JobKeys {
       builder.addAll(taskQuery.getJobKeys());
       return Optional.of(assertValid(builder.build()));
     } 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/base/TaskTestUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java b/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
index e1f20f4..22d5a64 100644
--- a/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
+++ b/src/main/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
@@ -14,9 +14,9 @@
 package org.apache.aurora.scheduler.base;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -155,7 +155,7 @@ public final class TaskTestUtil {
   }
 
   public static IScheduledTask makeTask(String id, IJobKey job, int instanceId) {
-    return makeTask(id, makeConfig(job), instanceId, Optional.absent());
+    return makeTask(id, makeConfig(job), instanceId, Optional.empty());
   }
 
   public static IScheduledTask makeTask(String id, IJobKey job, int instanceId, String agentId) {
@@ -167,7 +167,7 @@ public final class TaskTestUtil {
   }
 
   public static IScheduledTask makeTask(String id, ITaskConfig config, int instanceId) {
-    return makeTask(id, config, instanceId, Optional.absent());
+    return makeTask(id, config, instanceId, Optional.empty());
   }
 
   public static IScheduledTask makeTask(

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/config/converters/DataAmountConverter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/config/converters/DataAmountConverter.java b/src/main/java/org/apache/aurora/scheduler/config/converters/DataAmountConverter.java
index a0d2620..7087cea 100644
--- a/src/main/java/org/apache/aurora/scheduler/config/converters/DataAmountConverter.java
+++ b/src/main/java/org/apache/aurora/scheduler/config/converters/DataAmountConverter.java
@@ -14,15 +14,13 @@
 
 package org.apache.aurora.scheduler.config.converters;
 
+import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Stream;
 
 import com.beust.jcommander.ParameterException;
 import com.beust.jcommander.converters.BaseConverter;
-import com.google.common.base.Functions;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
 import org.apache.aurora.common.quantity.Data;
@@ -43,10 +41,9 @@ public class DataAmountConverter extends BaseConverter<DataAmount> {
       throw new ParameterException(getErrorString(raw, "must be of the format 1KB, 2GB, etc."));
     }
 
-    Optional<Data> unit = FluentIterable.from(Data.values())
-        .firstMatch(Predicates.compose(
-            Predicates.equalTo(matcher.group(2)),
-            Functions.toStringFunction()));
+    Optional<Data> unit = Stream.of(Data.values())
+        .filter(value -> value.toString().equals(matcher.group(2)))
+        .findFirst();
     if (unit.isPresent()) {
       return new DataAmount(Integer.parseInt(matcher.group(1)), unit.get());
     } else {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/config/converters/TimeAmountConverter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/config/converters/TimeAmountConverter.java b/src/main/java/org/apache/aurora/scheduler/config/converters/TimeAmountConverter.java
index 7e66cf2..7891d54 100644
--- a/src/main/java/org/apache/aurora/scheduler/config/converters/TimeAmountConverter.java
+++ b/src/main/java/org/apache/aurora/scheduler/config/converters/TimeAmountConverter.java
@@ -14,15 +14,13 @@
 
 package org.apache.aurora.scheduler.config.converters;
 
+import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Stream;
 
 import com.beust.jcommander.ParameterException;
 import com.beust.jcommander.converters.BaseConverter;
-import com.google.common.base.Functions;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
 import org.apache.aurora.common.quantity.Time;
@@ -43,10 +41,9 @@ public class TimeAmountConverter extends BaseConverter<TimeAmount> {
       throw new ParameterException(getErrorString(raw, "must be of the format 1ns, 2secs, etc."));
     }
 
-    Optional<Time> unit = FluentIterable.from(Time.values())
-        .firstMatch(Predicates.compose(
-            Predicates.equalTo(matcher.group(2)),
-            Functions.toStringFunction()));
+    Optional<Time> unit = Stream.of(Time.values())
+        .filter(value -> value.toString().equals(matcher.group(2)))
+        .findFirst();
     if (unit.isPresent()) {
       return new TimeAmount(Long.parseLong(matcher.group(1)), unit.get());
     } else {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java b/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
index f3e98f2..4073229 100644
--- a/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.scheduler.configuration;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
@@ -21,7 +22,6 @@ 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.Predicate;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/configuration/executor/ExecutorSettingsLoader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/configuration/executor/ExecutorSettingsLoader.java b/src/main/java/org/apache/aurora/scheduler/configuration/executor/ExecutorSettingsLoader.java
index af28913..7fdf642 100644
--- a/src/main/java/org/apache/aurora/scheduler/configuration/executor/ExecutorSettingsLoader.java
+++ b/src/main/java/org/apache/aurora/scheduler/configuration/executor/ExecutorSettingsLoader.java
@@ -17,10 +17,10 @@ package org.apache.aurora.scheduler.configuration.executor;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.io.CharStreams;
 import com.hubspot.jackson.datatype.protobuf.ProtobufModule;
@@ -88,7 +88,7 @@ public final class ExecutorSettingsLoader {
               m -> m.executor.getName(),
               m -> new ExecutorConfig(
                   m.executor.setExecutorId(PLACEHOLDER_EXECUTOR_ID).build(),
-                  Optional.fromNullable(m.volumeMounts).or(ImmutableList.of()),
+                  Optional.ofNullable(m.volumeMounts).orElse(ImmutableList.of()),
                   m.taskPrefix)));
 
     } catch (RuntimeException e) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/cron/CronPredictor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/CronPredictor.java b/src/main/java/org/apache/aurora/scheduler/cron/CronPredictor.java
index 8957b3a..c43926e 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/CronPredictor.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/CronPredictor.java
@@ -15,7 +15,7 @@ package org.apache.aurora.scheduler.cron;
 
 import java.util.Date;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 /**
  * A utility function that predicts a cron run given a schedule.

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/cron/CronScheduler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/CronScheduler.java b/src/main/java/org/apache/aurora/scheduler/cron/CronScheduler.java
index ac45f15..5db07a7 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/CronScheduler.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/CronScheduler.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.cron;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 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/cron/CrontabEntry.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/CrontabEntry.java b/src/main/java/org/apache/aurora/scheduler/cron/CrontabEntry.java
index 6e56867..c1e0269 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/CrontabEntry.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/CrontabEntry.java
@@ -17,11 +17,11 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Splitter;
 import com.google.common.collect.BiMap;
 import com.google.common.collect.ContiguousSet;
@@ -136,7 +136,7 @@ public final class CrontabEntry {
     try {
       return Optional.of(parse(schedule));
     } catch (IllegalArgumentException e) {
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/cron/SanitizedCronJob.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/SanitizedCronJob.java b/src/main/java/org/apache/aurora/scheduler/cron/SanitizedCronJob.java
index 87970f6..85b2468 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/SanitizedCronJob.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/SanitizedCronJob.java
@@ -14,12 +14,12 @@
 package org.apache.aurora.scheduler.cron;
 
 import java.util.Objects;
+import java.util.Optional;
 
 import javax.annotation.Nullable;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 
 import org.apache.aurora.gen.CronCollisionPolicy;
@@ -67,7 +67,7 @@ public final class SanitizedCronJob {
    * @return The given policy or a default if the policy was null.
    */
   public static CronCollisionPolicy orDefault(@Nullable CronCollisionPolicy policy) {
-    return Optional.fromNullable(policy).or(CronCollisionPolicy.KILL_EXISTING);
+    return Optional.ofNullable(policy).orElse(CronCollisionPolicy.KILL_EXISTING);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java b/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
index d890cad..3604dd4 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java
@@ -16,6 +16,7 @@ package org.apache.aurora.scheduler.cron.quartz;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 import java.util.Date;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
@@ -25,7 +26,6 @@ import javax.inject.Inject;
 import javax.inject.Qualifier;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
 
@@ -196,7 +196,7 @@ class AuroraCronJob implements Job, EventSubscriber {
             stateManager.changeState(
                 storeProvider,
                 taskId,
-                Optional.absent(),
+                Optional.empty(),
                 KILLING,
                 KILL_AUDIT_MESSAGE);
           }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java
index 90399f2..8949617 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java
@@ -14,11 +14,11 @@
 package org.apache.aurora.scheduler.cron.quartz;
 
 import java.util.Map;
+import java.util.Optional;
 import java.util.TimeZone;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableMap;
 
@@ -197,7 +197,8 @@ class CronJobManagerImpl implements CronJobManager {
         // we're defensive here since this function is used for debugging.
         Optional<CronTrigger> trigger = FluentIterable.from(scheduler.getTriggersOfJob(jobKey))
             .filter(CronTrigger.class)
-            .first();
+            .first()
+            .toJavaUtil();
         if (trigger.isPresent()) {
           scheduledJobs.put(
               Quartz.auroraJobKey(jobKey),

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImpl.java b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImpl.java
index e937667..445aeb3 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronPredictorImpl.java
@@ -14,12 +14,11 @@
 package org.apache.aurora.scheduler.cron.quartz;
 
 import java.util.Date;
+import java.util.Optional;
 import java.util.TimeZone;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
-
 import org.apache.aurora.common.util.Clock;
 import org.apache.aurora.scheduler.cron.CronPredictor;
 import org.apache.aurora.scheduler.cron.CrontabEntry;
@@ -41,6 +40,6 @@ class CronPredictorImpl implements CronPredictor {
   public Optional<Date> predictNextRun(CrontabEntry schedule) {
     CronExpression cronExpression = Quartz.cronExpression(schedule, timeZone);
     // The getNextValidTimeAfter call may return null; eg: if the date is too far in the future.
-    return Optional.fromNullable(cronExpression.getNextValidTimeAfter(new Date(clock.nowMillis())));
+    return Optional.ofNullable(cronExpression.getNextValidTimeAfter(new Date(clock.nowMillis())));
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronSchedulerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronSchedulerImpl.java b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronSchedulerImpl.java
index ead85c3..0518017 100644
--- a/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronSchedulerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/cron/quartz/CronSchedulerImpl.java
@@ -13,9 +13,10 @@
  */
 package org.apache.aurora.scheduler.cron.quartz;
 
+import java.util.Optional;
+
 import javax.inject.Inject;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.Iterables;
 
@@ -56,7 +57,7 @@ class CronSchedulerImpl implements CronScheduler {
       LOG.error(
           "Error reading job " + JobKeys.canonicalString(jobKey) + " cronExpression Quartz: " + e,
           e);
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/discovery/FlaggedZooKeeperConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/discovery/FlaggedZooKeeperConfig.java b/src/main/java/org/apache/aurora/scheduler/discovery/FlaggedZooKeeperConfig.java
index 48c7bfd..694a4fc 100644
--- a/src/main/java/org/apache/aurora/scheduler/discovery/FlaggedZooKeeperConfig.java
+++ b/src/main/java/org/apache/aurora/scheduler/discovery/FlaggedZooKeeperConfig.java
@@ -15,12 +15,12 @@ package org.apache.aurora.scheduler.discovery;
 
 import java.net.InetSocketAddress;
 import java.util.List;
+import java.util.Optional;
 
 import javax.annotation.Nullable;
 
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
-import com.google.common.base.Optional;
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
 
@@ -81,7 +81,7 @@ public final class FlaggedZooKeeperConfig {
   public static ZooKeeperConfig create(Options opts) {
     return new ZooKeeperConfig(
         opts.zkEndpoints,
-        Optional.fromNullable(opts.chrootPath),
+        Optional.ofNullable(opts.chrootPath),
         opts.inProcess,
         Amount.of(opts.sessionTimeout.getValue().intValue(), opts.sessionTimeout.getUnit()),
         Amount.of(opts.connectionTimeout.getValue().intValue(), opts.connectionTimeout.getUnit()),
@@ -90,7 +90,7 @@ public final class FlaggedZooKeeperConfig {
 
   private static Optional<Credentials> getCredentials(@Nullable String userAndPass) {
     if (userAndPass == null) {
-      return Optional.absent();
+      return Optional.empty();
     }
 
     List<String> parts = ImmutableList.copyOf(Splitter.on(":").split(userAndPass));

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfig.java b/src/main/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfig.java
index 1a7e8cb..d3112dc 100644
--- a/src/main/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfig.java
+++ b/src/main/java/org/apache/aurora/scheduler/discovery/ZooKeeperConfig.java
@@ -14,8 +14,7 @@
 package org.apache.aurora.scheduler.discovery;
 
 import java.net.InetSocketAddress;
-
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.common.base.MorePreconditions;
 import org.apache.aurora.common.quantity.Amount;
@@ -50,11 +49,11 @@ public class ZooKeeperConfig {
   public static ZooKeeperConfig create(Iterable<InetSocketAddress> servers) {
     return new ZooKeeperConfig(
         servers,
-        Optional.absent(), // chrootPath
+        Optional.empty(), // chrootPath
         false,
         ZooKeeperUtils.DEFAULT_ZK_SESSION_TIMEOUT,
         ZooKeeperUtils.DEFAULT_ZK_CONNECTION_TIMEOUT,
-        Optional.absent()); // credentials
+        Optional.empty()); // credentials
   }
 
   private final Iterable<InetSocketAddress> servers;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/events/PubsubEvent.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/events/PubsubEvent.java b/src/main/java/org/apache/aurora/scheduler/events/PubsubEvent.java
index 73fcdd0..1d19f67 100644
--- a/src/main/java/org/apache/aurora/scheduler/events/PubsubEvent.java
+++ b/src/main/java/org/apache/aurora/scheduler/events/PubsubEvent.java
@@ -14,10 +14,10 @@
 package org.apache.aurora.scheduler.events;
 
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Optional;
 import com.google.gson.Gson;
 
 import org.apache.aurora.gen.ScheduleStatus;
@@ -98,7 +98,7 @@ public interface PubsubEvent {
      * @return A state change event.
      */
     public static TaskStateChange initialized(IScheduledTask task) {
-      return new TaskStateChange(task, Optional.absent());
+      return new TaskStateChange(task, Optional.empty());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/events/WebhookInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/events/WebhookInfo.java b/src/main/java/org/apache/aurora/scheduler/events/WebhookInfo.java
index 44789d6..c89f7f3 100644
--- a/src/main/java/org/apache/aurora/scheduler/events/WebhookInfo.java
+++ b/src/main/java/org/apache/aurora/scheduler/events/WebhookInfo.java
@@ -19,12 +19,11 @@ import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
-
-import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -81,8 +80,8 @@ public class WebhookInfo {
   }
 
   private static final Predicate<List<String>> IS_ALL_WHITELISTED = statuses ->
-      !Optional.fromNullable(statuses).isPresent()
-          || Optional.fromNullable(statuses).get().stream().anyMatch(status -> "*".equals(status));
+      !Optional.ofNullable(statuses).isPresent()
+          || Optional.ofNullable(statuses).get().stream().anyMatch(status -> "*".equals(status));
 
   @JsonCreator
   public WebhookInfo(
@@ -94,8 +93,8 @@ public class WebhookInfo {
     this.headers = ImmutableMap.copyOf(headers);
     this.targetURI = new URI(requireNonNull(targetURL));
     this.connectTimeoutMsec = requireNonNull(timeout);
-    this.whitelistedStatuses = IS_ALL_WHITELISTED.apply(statuses) ? Optional.absent()
-        : Optional.fromNullable(statuses).transform(
+    this.whitelistedStatuses = IS_ALL_WHITELISTED.apply(statuses) ? Optional.empty()
+        : Optional.ofNullable(statuses).map(
             s -> ImmutableList.copyOf(s.stream()
                 .map(ScheduleStatus::valueOf)
                 .collect(Collectors.toList())));
@@ -171,7 +170,7 @@ public class WebhookInfo {
         .add("headers", headers.toString())
         .add("targetURI", targetURI.toString())
         .add("connectTimeoutMsec", connectTimeoutMsec)
-        .add("whitelistedStatuses", whitelistedStatuses.orNull())
+        .add("whitelistedStatuses", whitelistedStatuses.orElse(null))
         .toString();
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/events/WebhookModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/events/WebhookModule.java b/src/main/java/org/apache/aurora/scheduler/events/WebhookModule.java
index b0a9081..5ad1251 100644
--- a/src/main/java/org/apache/aurora/scheduler/events/WebhookModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/events/WebhookModule.java
@@ -16,11 +16,11 @@ package org.apache.aurora.scheduler.events;
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.util.Optional;
 
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 import com.google.common.io.Files;
 import com.google.inject.AbstractModule;
@@ -60,8 +60,8 @@ public class WebhookModule extends AbstractModule {
   private final Optional<String> webhookConfig;
 
   public WebhookModule(Options options) {
-    this.webhookConfig = Optional.fromNullable(options.webhookConfigFile)
-        .transform(f -> {
+    this.webhookConfig = Optional.ofNullable(options.webhookConfigFile)
+        .map(f -> {
           try {
             return Files.asCharSource(options.webhookConfigFile, StandardCharsets.UTF_8).read();
           } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/filter/ConstraintMatcher.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/filter/ConstraintMatcher.java b/src/main/java/org/apache/aurora/scheduler/filter/ConstraintMatcher.java
index d4099c2..3194051 100644
--- a/src/main/java/org/apache/aurora/scheduler/filter/ConstraintMatcher.java
+++ b/src/main/java/org/apache/aurora/scheduler/filter/ConstraintMatcher.java
@@ -13,10 +13,10 @@
  */
 package org.apache.aurora.scheduler.filter;
 
+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.Predicate;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
@@ -55,7 +55,7 @@ final class ConstraintMatcher {
         Iterables.filter(hostAttributes, new NameFilter(constraint.getName()));
     Optional<IAttribute> attribute;
     if (Iterables.isEmpty(sameNameAttributes)) {
-      attribute = Optional.absent();
+      attribute = Optional.empty();
     } else {
       Set<String> attributeValues = ImmutableSet.copyOf(
           Iterables.concat(Iterables.transform(sameNameAttributes, GET_VALUES)));
@@ -67,10 +67,10 @@ final class ConstraintMatcher {
     switch (taskConstraint.getSetField()) {
       case VALUE:
         boolean matches = AttributeFilter.matches(
-            attribute.transform(GET_VALUES).or(ImmutableSet.of()),
+            attribute.map(GET_VALUES).orElse(ImmutableSet.of()),
             taskConstraint.getValue());
         return matches
-            ? Optional.absent()
+            ? Optional.empty()
             : Optional.of(Veto.constraintMismatch(constraint.getName()));
 
       case LIMIT:
@@ -83,7 +83,7 @@ final class ConstraintMatcher {
             taskConstraint.getLimit().getLimit(),
             cachedjobState);
         return satisfied
-            ? Optional.absent()
+            ? Optional.empty()
             : Optional.of(Veto.unsatisfiedLimit(constraint.getName()));
 
       default:

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilter.java b/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilter.java
index 82a7a16..bd41590 100644
--- a/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilter.java
+++ b/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilter.java
@@ -15,11 +15,11 @@ package org.apache.aurora.scheduler.filter;
 
 import java.time.Instant;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
-import com.google.common.base.Optional;
 
 import org.apache.aurora.scheduler.offers.HostOffer;
 import org.apache.aurora.scheduler.resources.ResourceBag;
@@ -256,7 +256,7 @@ public interface SchedulingFilter {
 
     @VisibleForTesting
     public UnusedResource(ResourceBag offer, IHostAttributes attributes) {
-      this(offer, attributes, Optional.absent());
+      this(offer, attributes, Optional.empty());
     }
 
     public UnusedResource(HostOffer offer, boolean revocable) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilterImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilterImpl.java b/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilterImpl.java
index 41a0764..e6e8e95 100644
--- a/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilterImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/filter/SchedulingFilterImpl.java
@@ -16,11 +16,12 @@ package org.apache.aurora.scheduler.filter;
 import java.time.Instant;
 import java.util.Comparator;
 import java.util.EnumSet;
+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 com.google.common.collect.Iterables;
 import com.google.common.collect.Ordering;
@@ -117,13 +118,13 @@ public class SchedulingFilterImpl implements SchedulingFilter {
       }
     }
 
-    return Optional.absent();
+    return Optional.empty();
   }
 
   private Optional<Veto> getAuroraMaintenanceVeto(MaintenanceMode mode) {
     return VETO_MODES.contains(mode)
         ? Optional.of(Veto.maintenance(mode.toString().toLowerCase()))
-        : Optional.absent();
+        : Optional.empty();
   }
 
   private Optional<Veto> getMesosMaintenanceVeto(Optional<Instant> unavailabilityStart) {
@@ -135,7 +136,7 @@ public class SchedulingFilterImpl implements SchedulingFilter {
         return Optional.of(Veto.maintenance(DRAINING.toString().toLowerCase()));
       }
     }
-    return Optional.absent();
+    return Optional.empty();
   }
 
   private boolean isDedicated(IHostAttributes attributes) {
@@ -161,13 +162,13 @@ public class SchedulingFilterImpl implements SchedulingFilter {
     // 2. Host maintenance check.
     Optional<Veto> maintenanceVeto = getAuroraMaintenanceVeto(resource.getAttributes().getMode());
     if (maintenanceVeto.isPresent()) {
-      return maintenanceVeto.asSet();
+      return ImmutableSet.of(maintenanceVeto.get());
     }
 
     Optional<Veto> mesosMaintenanceVeto =
         getMesosMaintenanceVeto(resource.getUnavailabilityStart());
     if (mesosMaintenanceVeto.isPresent()) {
-      return mesosMaintenanceVeto.asSet();
+      return ImmutableSet.of(mesosMaintenanceVeto.get());
     }
 
     // 3. Value and limit constraint check.
@@ -177,7 +178,7 @@ public class SchedulingFilterImpl implements SchedulingFilter {
         resource.getAttributes().getAttributes());
 
     if (constraintVeto.isPresent()) {
-      return constraintVeto.asSet();
+      return ImmutableSet.of(constraintVeto.get());
     }
 
     // 4. Resource check (lowest score).

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java b/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
index 9a03140..905ec11 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
@@ -19,6 +19,7 @@ import java.net.UnknownHostException;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 
@@ -33,7 +34,6 @@ import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
 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.base.Supplier;
 import com.google.common.base.Suppliers;
@@ -155,7 +155,7 @@ public class JettyServerModule extends AbstractModule {
         .toInstance(Suppliers.ofInstance(true));
 
     final Optional<String> hostnameOverride =
-        Optional.fromNullable(options.jetty.hostnameOverride);
+        Optional.ofNullable(options.jetty.hostnameOverride);
     if (hostnameOverride.isPresent()) {
       try {
         InetAddress.getByName(hostnameOverride.get());
@@ -368,7 +368,7 @@ public class JettyServerModule extends AbstractModule {
     public HostAndPort getAddress() {
       Preconditions.checkState(state() == State.RUNNING);
       return HostAndPort.fromParts(
-          advertisedHostOverride.or(serverAddress.getHost()),
+          advertisedHostOverride.orElse(serverAddress.getHost()),
           serverAddress.getPort());
     }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirect.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirect.java b/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirect.java
index 41bed3e..ebc0bc9 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirect.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirect.java
@@ -15,12 +15,12 @@ package org.apache.aurora.scheduler.http;
 
 import java.io.Closeable;
 import java.io.IOException;
+import java.util.Optional;
 
 import javax.inject.Inject;
 import javax.servlet.http.HttpServletRequest;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.net.HostAndPort;
@@ -91,12 +91,12 @@ class LeaderRedirect implements Closeable {
     }
 
     LOG.warn("Leader service instance seems to be incomplete: " + leadingScheduler);
-    return Optional.absent();
+    return Optional.empty();
   }
 
   private Optional<HostAndPort> getLocalHttp() {
     HostAndPort localHttp = httpService.getAddress();
-    return (localHttp == null) ? Optional.absent()
+    return (localHttp == null) ? Optional.empty()
         : Optional.of(HostAndPort.fromParts(localHttp.getHost(), localHttp.getPort()));
   }
 
@@ -113,13 +113,13 @@ class LeaderRedirect implements Closeable {
 
     if (leaderHttp.isPresent()) {
       if (leaderHttp.equals(localHttp)) {
-        return Optional.absent();
+        return Optional.empty();
       } else {
         return leaderHttp;
       }
     } else {
       LOG.info("No leader found, not redirecting.");
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 
@@ -165,9 +165,9 @@ class LeaderRedirect implements Closeable {
           .append(
               // If Jetty rewrote the path, we want to be sure to redirect to the original path
               // rather than the rewritten path to be sure it's a route the UI code recognizes.
-              Optional.fromNullable(
+              Optional.ofNullable(
                   req.getAttribute(JettyServerModule.ORIGINAL_PATH_ATTRIBUTE_NAME))
-                  .or(req.getRequestURI()));
+                  .orElse(req.getRequestURI()));
 
       String queryString = req.getQueryString();
       if (queryString != null) {
@@ -176,7 +176,7 @@ class LeaderRedirect implements Closeable {
 
       return Optional.of(redirect.toString());
     } else {
-      return Optional.absent();
+      return Optional.empty();
     }
   }
 
@@ -185,13 +185,13 @@ class LeaderRedirect implements Closeable {
     switch (hostSet.size()) {
       case 0:
         LOG.warn("No serviceGroupMonitor in host set, will not redirect despite not being leader.");
-        return Optional.absent();
+        return Optional.empty();
       case 1:
         LOG.debug("Found leader scheduler at {}", hostSet);
         return Optional.of(Iterables.getOnlyElement(hostSet));
       default:
         LOG.error("Multiple serviceGroupMonitor detected, will not redirect: {}", hostSet);
-        return Optional.absent();
+        return Optional.empty();
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirectFilter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirectFilter.java b/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirectFilter.java
index 8b8b305..a744d45 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirectFilter.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/LeaderRedirectFilter.java
@@ -15,6 +15,7 @@ package org.apache.aurora.scheduler.http;
 
 import java.io.IOException;
 import java.util.Objects;
+import java.util.Optional;
 
 import javax.inject.Inject;
 import javax.servlet.FilterChain;
@@ -24,7 +25,6 @@ import javax.servlet.http.HttpServletResponse;
 import javax.ws.rs.core.HttpHeaders;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.io.Resources;
 
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/Mname.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/Mname.java b/src/main/java/org/apache/aurora/scheduler/http/Mname.java
index c1ff654..b89b16d 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/Mname.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/Mname.java
@@ -16,6 +16,7 @@ package org.apache.aurora.scheduler.http;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -32,7 +33,6 @@ import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.core.UriInfo;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 
@@ -139,7 +139,7 @@ public class Mname {
       @PathParam("instance") int instanceId,
       @Context UriInfo uriInfo) {
 
-    return get(role, env, job, instanceId, uriInfo, Optional.absent());
+    return get(role, env, job, instanceId, uriInfo, Optional.empty());
   }
 
   @PUT
@@ -151,7 +151,7 @@ public class Mname {
       @PathParam("instance") int instanceId,
       @Context UriInfo uriInfo) {
 
-    return get(role, env, job, instanceId, uriInfo, Optional.absent());
+    return get(role, env, job, instanceId, uriInfo, Optional.empty());
   }
 
   @POST
@@ -163,7 +163,7 @@ public class Mname {
       @PathParam("instance") int instanceId,
       @Context UriInfo uriInfo) {
 
-    return get(role, env, job, instanceId, uriInfo, Optional.absent());
+    return get(role, env, job, instanceId, uriInfo, Optional.empty());
   }
 
   @DELETE
@@ -175,7 +175,7 @@ public class Mname {
       @PathParam("instance") int instanceId,
       @Context UriInfo uriInfo) {
 
-    return get(role, env, job, instanceId, uriInfo, Optional.absent());
+    return get(role, env, job, instanceId, uriInfo, Optional.empty());
   }
 
   private Response get(
@@ -205,7 +205,7 @@ public class Mname {
     }
 
     UriBuilder redirect = UriBuilder
-        .fromPath(forwardRequest.or("/"))
+        .fromPath(forwardRequest.orElse("/"))
         .scheme("http")
         .host(assignedTask.getSlaveHost())
         .port(port.get());
@@ -227,7 +227,7 @@ public class Mname {
         return Optional.of(port);
       }
     }
-    return Optional.absent();
+    return Optional.empty();
   }
 
   private Response respond(Status status, String message) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/Quotas.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/Quotas.java b/src/main/java/org/apache/aurora/scheduler/http/Quotas.java
index 399203b..aa68c44 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/Quotas.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/Quotas.java
@@ -15,6 +15,7 @@ package org.apache.aurora.scheduler.http;
 
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 
 import javax.inject.Inject;
 import javax.ws.rs.GET;
@@ -25,7 +26,6 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/StructDump.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/StructDump.java b/src/main/java/org/apache/aurora/scheduler/http/StructDump.java
index 8826d25..1710e39 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/StructDump.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/StructDump.java
@@ -13,6 +13,8 @@
  */
 package org.apache.aurora.scheduler.http;
 
+import java.util.Optional;
+
 import javax.inject.Inject;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
@@ -22,7 +24,6 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 
-import com.google.common.base.Optional;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 
@@ -77,7 +78,7 @@ public class StructDump extends JerseyTemplateServlet {
     return dumpEntity(
         "Task " + taskId,
         storeProvider ->
-            storeProvider.getTaskStore().fetchTask(taskId).transform(IScheduledTask::newBuilder));
+            storeProvider.getTaskStore().fetchTask(taskId).map(IScheduledTask::newBuilder));
   }
 
   /**
@@ -96,7 +97,7 @@ public class StructDump extends JerseyTemplateServlet {
     final IJobKey jobKey = JobKeys.from(role, environment, job);
     return dumpEntity("Cron job " + JobKeys.canonicalString(jobKey),
         storeProvider -> storeProvider.getCronJobStore().fetchJob(jobKey)
-            .transform(IJobConfiguration::newBuilder));
+            .map(IJobConfiguration::newBuilder));
   }
 
   private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetter.java b/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetter.java
index b2ca012..db98ec3 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetter.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetter.java
@@ -13,8 +13,9 @@
  */
 package org.apache.aurora.scheduler.http.api.security;
 
+import java.util.Optional;
+
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 
 import static java.util.Objects.requireNonNull;
 
@@ -67,7 +68,7 @@ interface FieldGetter<T, V> extends Function<T, Optional<V>> {
 
     @Override
     public Optional<T> apply(T input) {
-      return Optional.fromNullable(input);
+      return Optional.ofNullable(input);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetters.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetters.java b/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetters.java
index a833672..03670ef 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetters.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/api/security/FieldGetters.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.http.api.security;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.thrift.TBase;
 
@@ -42,7 +42,7 @@ final class FieldGetters {
         if (parentValue.isPresent()) {
           return child.apply(parentValue.get());
         } 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/http/api/security/IniShiroRealmModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/api/security/IniShiroRealmModule.java b/src/main/java/org/apache/aurora/scheduler/http/api/security/IniShiroRealmModule.java
index fc4c3ec..42ae5dd 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/api/security/IniShiroRealmModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/api/security/IniShiroRealmModule.java
@@ -13,12 +13,13 @@
  */
 package org.apache.aurora.scheduler.http.api.security;
 
+import java.util.Optional;
+
 import javax.inject.Singleton;
 
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 
@@ -58,8 +59,8 @@ public class IniShiroRealmModule extends AbstractModule {
 
   public IniShiroRealmModule(CliOptions options) {
     this(
-        Optional.fromNullable(options.iniShiroRealm.shiroIniPath),
-        Optional.fromNullable(options.iniShiroRealm.shiroCredentialsMatcher));
+        Optional.ofNullable(options.iniShiroRealm.shiroIniPath),
+        Optional.ofNullable(options.iniShiroRealm.shiroCredentialsMatcher));
   }
 
   @VisibleForTesting

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/api/security/Kerberos5ShiroRealmModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/api/security/Kerberos5ShiroRealmModule.java b/src/main/java/org/apache/aurora/scheduler/http/api/security/Kerberos5ShiroRealmModule.java
index 8da06a0..b662043 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/api/security/Kerberos5ShiroRealmModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/api/security/Kerberos5ShiroRealmModule.java
@@ -17,6 +17,7 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.security.PrivilegedAction;
+import java.util.Optional;
 
 import javax.inject.Singleton;
 import javax.security.auth.Subject;
@@ -27,7 +28,6 @@ import javax.security.auth.login.LoginException;
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.io.Files;
 import com.google.inject.AbstractModule;
 import com.google.inject.PrivateModule;
@@ -93,8 +93,8 @@ public class Kerberos5ShiroRealmModule extends AbstractModule {
 
   public Kerberos5ShiroRealmModule(CliOptions options) {
     this(
-        Optional.fromNullable(options.kerberos.serverKeytab),
-        Optional.fromNullable(options.kerberos.serverPrincipal),
+        Optional.ofNullable(options.kerberos.serverKeytab),
+        Optional.ofNullable(options.kerberos.serverPrincipal),
         GSSManager.getInstance(),
         options.kerberos.kerberosDebug);
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptor.java b/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptor.java
index 203599e..d550cde 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptor.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroAuthorizingParamInterceptor.java
@@ -16,6 +16,7 @@ package org.apache.aurora.scheduler.http.api.security;
 import java.lang.reflect.Method;
 import java.lang.reflect.Parameter;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -24,7 +25,6 @@ import javax.inject.Provider;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
@@ -150,7 +150,9 @@ class ShiroAuthorizingParamInterceptor implements MethodInterceptor {
         }
 
         Iterable<Class<?>> searchOrder = ImmutableList.<Class<?>>builder()
-            .addAll(Optional.fromNullable(declaringClass.getSuperclass()).asSet())
+            .addAll(Optional.ofNullable(declaringClass.getSuperclass())
+                .map(ImmutableSet::of)
+                .orElse(ImmutableSet.of()))
             .addAll(ImmutableList.copyOf(declaringClass.getInterfaces()))
             .build();
 
@@ -177,7 +179,7 @@ class ShiroAuthorizingParamInterceptor implements MethodInterceptor {
           Class<?> parameterType = param.getType();
           @SuppressWarnings("unchecked")
           Optional<Function<Object, Optional<JobKey>>> jobKeyGetter =
-              Optional.fromNullable(
+              Optional.ofNullable(
                   (Function<Object, Optional<JobKey>>) FIELD_GETTERS_BY_TYPE.get(parameterType));
           if (!jobKeyGetter.isPresent()) {
             throw new UnsupportedOperationException(
@@ -226,7 +228,7 @@ class ShiroAuthorizingParamInterceptor implements MethodInterceptor {
             Iterable<JobKeyGetter> nonNullArgGetters =
                 Iterables.filter(getters, getter -> arguments[getter.index] != null);
             if (Iterables.isEmpty(nonNullArgGetters)) {
-              return Optional.absent();
+              return Optional.empty();
             } else {
               if (Iterables.size(nonNullArgGetters) > 1) {
                 throw new IllegalStateException(
@@ -280,7 +282,7 @@ class ShiroAuthorizingParamInterceptor implements MethodInterceptor {
     Optional<IJobKey> jobKey = authorizingParamGetters
         .getUnchecked(invocation.getMethod())
         .apply(invocation.getArguments())
-        .transform(IJobKey::build);
+        .map(IJobKey::build);
     if (jobKey.isPresent() && JobKeys.isValid(jobKey.get())) {
       Permission targetPermission = makeTargetPermission(method.getName(), jobKey.get());
       if (subject.isPermitted(targetPermission)) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroKerberosAuthenticationFilter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroKerberosAuthenticationFilter.java b/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroKerberosAuthenticationFilter.java
index 2b7621a..54b81ea 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroKerberosAuthenticationFilter.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/api/security/ShiroKerberosAuthenticationFilter.java
@@ -14,6 +14,7 @@
 package org.apache.aurora.scheduler.http.api.security;
 
 import java.io.IOException;
+import java.util.Optional;
 
 import javax.inject.Inject;
 import javax.inject.Provider;
@@ -23,8 +24,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.ws.rs.core.HttpHeaders;
 
-import com.google.common.base.Optional;
-
 import org.apache.aurora.scheduler.http.AbstractFilter;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.subject.Subject;
@@ -56,7 +55,7 @@ public class ShiroKerberosAuthenticationFilter extends AbstractFilter {
       FilterChain chain) throws IOException, ServletException {
 
     Optional<String> authorizationHeaderValue =
-        Optional.fromNullable(request.getHeader(HttpHeaders.AUTHORIZATION));
+        Optional.ofNullable(request.getHeader(HttpHeaders.AUTHORIZATION));
     if (authorizationHeaderValue.isPresent()) {
       LOG.debug("Authorization header is present");
       AuthorizeHeaderToken token;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetter.java b/src/main/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetter.java
index 0b64d1a..4ccd633 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetter.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/api/security/ThriftFieldGetter.java
@@ -13,7 +13,7 @@
  */
 package org.apache.aurora.scheduler.http.api.security;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 import org.apache.aurora.scheduler.http.api.security.FieldGetter.AbstractFieldGetter;
 import org.apache.thrift.TBase;
@@ -58,7 +58,7 @@ class ThriftFieldGetter<T extends TBase<T, F>, F extends TFieldIdEnum, V extends
     if (input.isSet(fieldId)) {
       return Optional.of((V) input.getFieldValue(fieldId));
     } 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/log/mesos/MesosLog.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/log/mesos/MesosLog.java b/src/main/java/org/apache/aurora/scheduler/log/mesos/MesosLog.java
index bcdd459..d7b4645 100644
--- a/src/main/java/org/apache/aurora/scheduler/log/mesos/MesosLog.java
+++ b/src/main/java/org/apache/aurora/scheduler/log/mesos/MesosLog.java
@@ -18,6 +18,7 @@ import java.lang.annotation.Target;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
+import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicLong;
@@ -29,7 +30,6 @@ import javax.inject.Qualifier;
 
 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.collect.Iterables;
 import com.google.common.collect.UnmodifiableIterator;
@@ -197,7 +197,7 @@ public class MesosLog implements org.apache.aurora.scheduler.log.Log {
      * When {@code true}, indicates that the log has suffered a fatal error and no further
      * operations may be performed.
      */
-    @Nullable private Optional<WriterInterface> writer = Optional.absent();
+    @Nullable private Optional<WriterInterface> writer = Optional.empty();
 
     LogStream(
         LogInterface log,

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java b/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
index bcfb888..0310a60 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
@@ -18,6 +18,7 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Optional;
 import java.util.Properties;
 
 import javax.inject.Singleton;
@@ -25,7 +26,6 @@ import javax.inject.Singleton;
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.inject.AbstractModule;
 
@@ -121,11 +121,11 @@ public class CommandLineDriverSettingsModule extends AbstractModule {
   @Override
   protected void configure() {
     Optional<Protos.Credential> credentials = getCredentials(options);
-    Optional<String> principal = Optional.absent();
+    Optional<String> principal = Optional.empty();
     if (options.frameworkAnnouncePrincipal && credentials.isPresent()) {
       principal = Optional.of(credentials.get().getPrincipal());
     }
-    Optional<String> role = Optional.fromNullable(options.mesosRole);
+    Optional<String> role = Optional.ofNullable(options.mesosRole);
     DriverSettings settings = new DriverSettings(options.mesosMasterAddress, credentials);
     bind(DriverSettings.class).toInstance(settings);
 
@@ -149,7 +149,7 @@ public class CommandLineDriverSettingsModule extends AbstractModule {
 
   private static Optional<Protos.Credential> getCredentials(Options opts) {
     if (opts.frameworkAuthenticationFile == null) {
-      return Optional.absent();
+      return Optional.empty();
     } else {
       Properties properties;
       try {

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java b/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java
index 88a12b8..5916158 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.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.Scheduler;
 import org.apache.mesos.SchedulerDriver;

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java b/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java
index 2fc37e4..d56d77a 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.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.MesosSchedulerDriver;
 import org.apache.mesos.Protos.Credential;
@@ -38,7 +38,7 @@ class DriverFactoryImpl implements DriverFactory {
       String master) {
 
     FrameworkInfo convertedFrameworkInfo = convert(frameworkInfo);
-    Optional<Credential> convertedCredentials = credentials.transform(ProtosConversion::convert);
+    Optional<Credential> convertedCredentials = credentials.map(ProtosConversion::convert);
 
     if (credentials.isPresent()) {
       return new MesosSchedulerDriver(

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java b/src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java
index 39c0144..ba9e51a 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java
@@ -13,8 +13,9 @@
  */
 package org.apache.aurora.scheduler.mesos;
 
+import java.util.Optional;
+
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 
 import org.apache.mesos.v1.Protos;
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java b/src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
index ec07279..1cf6582 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
@@ -39,11 +39,11 @@ public class LibMesosLoadingModule extends AbstractModule {
         break;
       case V0_DRIVER:
         bind(VersionedDriverFactory.class).toInstance((scheduler, frameworkInfo, master, creds)
-            -> new V0Mesos(scheduler, frameworkInfo, master, creds.orNull()));
+            -> new V0Mesos(scheduler, frameworkInfo, master, creds.orElse(null)));
         break;
       case V1_DRIVER:
         bind(VersionedDriverFactory.class).toInstance((scheduler, frameworkInfo, master, creds)
-            -> new V1Mesos(scheduler, master, creds.orNull()));
+            -> new V1Mesos(scheduler, master, creds.orElse(null)));
         break;
       default:
         checkState(false, "Unknown driver kind");

http://git-wip-us.apache.org/repos/asf/aurora/blob/6fd765bc/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java b/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
index c61af2b..3b4df55 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
@@ -16,14 +16,15 @@ package org.apache.aurora.scheduler.mesos;
 import java.time.Instant;
 import java.time.temporal.ChronoUnit;
 import java.util.List;
+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.annotations.VisibleForTesting;
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 
 import org.apache.aurora.GuiceUtils.AllowUnchecked;
 import org.apache.aurora.common.application.Lifecycle;
@@ -322,9 +323,9 @@ public interface MesosCallbackHandler {
       eventSink.post(new PubsubEvent.TaskStatusReceived(
           status.getState(),
           // Source and Reason are enums. They cannot be null so we we need to use `hasXXX`.
-          status.hasSource() ? Optional.of(status.getSource()) : Optional.absent(),
-          status.hasReason() ? Optional.of(status.getReason()) : Optional.absent(),
-          Optional.fromNullable(status.getTimestamp()).transform(SECONDS_TO_MICROS)));
+          status.hasSource() ? Optional.of(status.getSource()) : Optional.empty(),
+          status.hasReason() ? Optional.of(status.getReason()) : Optional.empty(),
+          Optional.ofNullable(status.getTimestamp()).map(SECONDS_TO_MICROS)));
 
       try {
         // The status handler is responsible for acknowledging the update.