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 <[email protected]> Authored: Fri Dec 15 12:01:49 2017 -0800 Committer: Bill Farner <[email protected]> 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.
