diff --git a/Claude_Code_Guava_Upgrade_OnePager.docx b/Claude_Code_Guava_Upgrade_OnePager.docx new file mode 100644 index 000000000000..ad5cc984e4a9 Binary files /dev/null and b/Claude_Code_Guava_Upgrade_OnePager.docx differ diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/common/twill/TwillAppLifecycleEventHandler.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/common/twill/TwillAppLifecycleEventHandler.java index 0ca496ed2db9..16d8809bb292 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/common/twill/TwillAppLifecycleEventHandler.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/common/twill/TwillAppLifecycleEventHandler.java @@ -43,7 +43,6 @@ import java.nio.file.Files; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.hadoop.conf.Configuration; -import org.apache.twill.api.EventHandler; import org.apache.twill.api.EventHandlerContext; import org.apache.twill.api.RunId; import org.apache.twill.zookeeper.ZKClientService; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/AuthorizationHandler.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/AuthorizationHandler.java index cd065f011166..b293d8ae5efb 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/AuthorizationHandler.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/AuthorizationHandler.java @@ -17,7 +17,6 @@ package io.cdap.cdap.gateway.handlers; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -34,10 +33,8 @@ import io.cdap.cdap.proto.codec.EntityIdTypeAdapter; import io.cdap.cdap.proto.id.EntityId; import io.cdap.cdap.proto.security.Action; -import io.cdap.cdap.proto.security.Authorizable; import io.cdap.cdap.proto.security.AuthorizationRequest; import io.cdap.cdap.proto.security.GrantRequest; -import io.cdap.cdap.proto.security.GrantedPermission; import io.cdap.cdap.proto.security.Permission; import io.cdap.cdap.proto.security.PermissionAdapterFactory; import io.cdap.cdap.proto.security.Principal; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/ProgramScheduleHttpHandler.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/ProgramScheduleHttpHandler.java index 32a6d576a4b3..5fd4a346f3bb 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/ProgramScheduleHttpHandler.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/gateway/handlers/ProgramScheduleHttpHandler.java @@ -19,7 +19,6 @@ import com.google.common.base.Charsets; import com.google.common.base.Joiner; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; @@ -38,15 +37,12 @@ import io.cdap.cdap.internal.app.runtime.schedule.ProgramSchedule; import io.cdap.cdap.internal.app.runtime.schedule.ProgramScheduleRecord; import io.cdap.cdap.internal.app.runtime.schedule.ProgramScheduleStatus; -import io.cdap.cdap.internal.app.runtime.schedule.SchedulerException; import io.cdap.cdap.internal.app.runtime.schedule.store.Schedulers; -import io.cdap.cdap.internal.app.runtime.schedule.trigger.ProgramStatusTrigger; import io.cdap.cdap.internal.app.services.ProgramLifecycleService; import io.cdap.cdap.internal.app.store.ApplicationMeta; import io.cdap.cdap.internal.schedule.constraint.Constraint; import io.cdap.cdap.proto.BatchProgram; import io.cdap.cdap.proto.BatchProgramSchedule; -import io.cdap.cdap.proto.ProgramStatus; import io.cdap.cdap.proto.ProgramType; import io.cdap.cdap.proto.ProtoTrigger; import io.cdap.cdap.proto.ScheduleDetail; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/DefaultPreviewRunner.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/DefaultPreviewRunner.java index f72ffdeda95d..d646136d6f01 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/DefaultPreviewRunner.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/DefaultPreviewRunner.java @@ -17,7 +17,6 @@ package io.cdap.cdap.internal.app.preview; import com.google.common.util.concurrent.AbstractIdleService; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Service; import com.google.common.util.concurrent.Uninterruptibles; import com.google.gson.Gson; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/PreviewRunnerTwillRunnable.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/PreviewRunnerTwillRunnable.java index 7265e12dd5fb..315d9dcbdb90 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/PreviewRunnerTwillRunnable.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/preview/PreviewRunnerTwillRunnable.java @@ -33,7 +33,6 @@ import io.cdap.cdap.app.deploy.Configurator; import io.cdap.cdap.app.guice.AuditLogWriterModule; import io.cdap.cdap.app.preview.PreviewConfigModule; -import io.cdap.cdap.app.preview.PreviewRunner; import io.cdap.cdap.app.preview.PreviewRunnerManager; import io.cdap.cdap.app.preview.PreviewRunnerManagerModule; import io.cdap.cdap.common.conf.CConfiguration; @@ -85,7 +84,6 @@ import org.apache.tephra.TransactionSystemClient; import org.apache.twill.api.AbstractTwillRunnable; import org.apache.twill.api.TwillContext; -import org.apache.twill.api.TwillRunnable; import org.apache.twill.common.Threads; import org.apache.twill.discovery.DiscoveryService; import org.apache.twill.discovery.DiscoveryServiceClient; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramControllerServiceAdapter.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramControllerServiceAdapter.java index 50cf3852d46f..bf1cdb38662b 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramControllerServiceAdapter.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramControllerServiceAdapter.java @@ -18,7 +18,6 @@ import com.google.common.util.concurrent.Service; import io.cdap.cdap.api.exception.WrappedStageException; -import io.cdap.cdap.app.runtime.ProgramController; import io.cdap.cdap.common.conf.Constants; import io.cdap.cdap.common.logging.Loggers; import io.cdap.cdap.proto.id.ProgramRunId; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramRunners.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramRunners.java index 34feea52b953..075bbdb4b44b 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramRunners.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/ProgramRunners.java @@ -24,7 +24,6 @@ import com.google.common.base.Strings; import com.google.common.collect.Maps; import com.google.common.io.ByteStreams; -import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.Service; import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.api.metrics.MetricsContext; @@ -32,7 +31,6 @@ import io.cdap.cdap.app.guice.ClusterMode; import io.cdap.cdap.app.runtime.Arguments; import io.cdap.cdap.app.runtime.ProgramOptions; -import io.cdap.cdap.app.runtime.ProgramRunner; import io.cdap.cdap.common.app.RunIds; import io.cdap.cdap.common.conf.Constants; import io.cdap.cdap.common.io.Locations; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/BasicMapReduceTaskContext.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/BasicMapReduceTaskContext.java index 233553ae67c5..bf961e4f992f 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/BasicMapReduceTaskContext.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/BasicMapReduceTaskContext.java @@ -17,7 +17,6 @@ package io.cdap.cdap.internal.app.runtime.batch; import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; @@ -68,7 +67,6 @@ import io.cdap.cdap.messaging.spi.MessagingService; import io.cdap.cdap.proto.id.NamespaceId; import io.cdap.cdap.proto.id.TopicId; -import io.cdap.cdap.proto.security.Principal; import io.cdap.cdap.security.spi.authentication.AuthenticationContext; import io.cdap.cdap.security.spi.authorization.AccessEnforcer; import io.cdap.cdap.security.spi.authorization.UnauthorizedException; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MainOutputCommitter.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MainOutputCommitter.java index 4ec463fb2254..d13e740bdb74 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MainOutputCommitter.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MainOutputCommitter.java @@ -16,7 +16,6 @@ package io.cdap.cdap.internal.app.runtime.batch; -import com.google.common.base.Throwables; import com.google.inject.Injector; import io.cdap.cdap.api.data.batch.DatasetOutputCommitter; import io.cdap.cdap.app.guice.ClusterMode; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceClassLoader.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceClassLoader.java index ff55a4c0ab4c..a1998e731478 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceClassLoader.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceClassLoader.java @@ -37,12 +37,9 @@ import io.cdap.cdap.internal.app.runtime.ProgramClassLoader; import io.cdap.cdap.internal.app.runtime.ProgramRunners; import io.cdap.cdap.internal.app.runtime.batch.distributed.DistributedMapReduceTaskContextProvider; -import io.cdap.cdap.internal.app.runtime.batch.distributed.MapReduceContainerLauncher; import io.cdap.cdap.internal.app.runtime.plugin.PluginClassLoaders; import io.cdap.cdap.internal.app.runtime.plugin.PluginInstantiator; import io.cdap.cdap.logging.context.LoggingContextHelper; -import io.cdap.cdap.logging.context.MapReduceLoggingContext; -import io.cdap.cdap.logging.context.WorkflowProgramLoggingContext; import io.cdap.cdap.proto.id.ProgramId; import java.io.File; import java.io.IOException; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceRuntimeService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceRuntimeService.java index 87e8353fa227..bbb062b377cb 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceRuntimeService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceRuntimeService.java @@ -21,7 +21,6 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Sets; import com.google.common.io.ByteStreams; -import com.google.common.io.Files; import com.google.common.reflect.TypeToken; import com.google.common.util.concurrent.AbstractExecutionThreadService; import com.google.inject.Injector; @@ -111,7 +110,6 @@ import org.apache.twill.api.ClassAcceptor; import org.apache.twill.api.Configs; import org.apache.twill.filesystem.Location; -import org.apache.twill.filesystem.LocationFactory; import org.apache.twill.internal.ApplicationBundler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/dataset/DataSetInputSplit.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/dataset/DataSetInputSplit.java index ca07c702be15..70ee9480d5db 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/dataset/DataSetInputSplit.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/batch/dataset/DataSetInputSplit.java @@ -18,7 +18,6 @@ import io.cdap.cdap.api.data.batch.Split; import io.cdap.cdap.api.data.batch.Splits; -import io.cdap.cdap.api.dataset.Dataset; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedProgramRunner.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedProgramRunner.java index 2bd0bb8b378c..0f75d8f70667 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedProgramRunner.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedProgramRunner.java @@ -103,7 +103,6 @@ import org.apache.twill.api.TwillPreparer; import org.apache.twill.api.TwillRunner; import org.apache.twill.api.logging.LogEntry; -import org.apache.twill.api.logging.LogHandler; import org.apache.twill.common.Cancellable; import org.apache.twill.common.Threads; import org.apache.twill.filesystem.Location; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedWorkflowProgramRunner.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedWorkflowProgramRunner.java index 2dfbd00e4b7d..2ddb8838ff4d 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedWorkflowProgramRunner.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/DistributedWorkflowProgramRunner.java @@ -25,7 +25,6 @@ import io.cdap.cdap.api.common.RuntimeArguments; import io.cdap.cdap.api.schedule.SchedulableProgramType; import io.cdap.cdap.api.workflow.ScheduleProgramInfo; -import io.cdap.cdap.api.workflow.Workflow; import io.cdap.cdap.api.workflow.WorkflowActionNode; import io.cdap.cdap.api.workflow.WorkflowConditionNode; import io.cdap.cdap.api.workflow.WorkflowForkNode; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/remote/RemoteExecutionTwillPreparer.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/remote/RemoteExecutionTwillPreparer.java index cb8723487929..aa01f41e0b23 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/remote/RemoteExecutionTwillPreparer.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/distributed/remote/RemoteExecutionTwillPreparer.java @@ -53,8 +53,6 @@ import org.apache.twill.api.ClassAcceptor; import org.apache.twill.api.LocalFile; import org.apache.twill.api.RuntimeSpecification; -import org.apache.twill.api.TwillPreparer; -import org.apache.twill.api.TwillRunnable; import org.apache.twill.api.TwillSpecification; import org.apache.twill.filesystem.Location; import org.apache.twill.filesystem.LocationFactory; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/monitor/DirectRuntimeRequestValidator.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/monitor/DirectRuntimeRequestValidator.java index b9d46216a181..54ccf314b91f 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/monitor/DirectRuntimeRequestValidator.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/monitor/DirectRuntimeRequestValidator.java @@ -17,7 +17,6 @@ package io.cdap.cdap.internal.app.runtime.monitor; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/plugin/PluginInstantiator.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/plugin/PluginInstantiator.java index 2445a36bb909..b82c77f28d40 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/plugin/PluginInstantiator.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/plugin/PluginInstantiator.java @@ -18,7 +18,6 @@ import com.google.common.base.Defaults; import com.google.common.base.Strings; -import com.google.common.base.Throwables; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/ServiceProgramRunner.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/ServiceProgramRunner.java index 4af863534d0f..7fc69a553d47 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/ServiceProgramRunner.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/ServiceProgramRunner.java @@ -29,7 +29,6 @@ import io.cdap.cdap.app.program.Program; import io.cdap.cdap.app.runtime.ProgramController; import io.cdap.cdap.app.runtime.ProgramOptions; -import io.cdap.cdap.app.runtime.ProgramRunner; import io.cdap.cdap.common.conf.CConfiguration; import io.cdap.cdap.common.conf.SConfiguration; import io.cdap.cdap.common.encryption.AeadCipher; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/DelayedHttpServiceResponder.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/DelayedHttpServiceResponder.java index 9741cb2baca6..7c3ac3d12b76 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/DelayedHttpServiceResponder.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/DelayedHttpServiceResponder.java @@ -22,7 +22,6 @@ import io.cdap.cdap.api.common.HttpErrorStatusProvider; import io.cdap.cdap.api.metrics.MetricsContext; import io.cdap.cdap.api.service.http.HttpContentProducer; -import io.cdap.cdap.api.service.http.HttpServiceResponder; import io.cdap.http.BodyProducer; import io.cdap.http.HttpResponder; import io.netty.buffer.ByteBuf; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGenerator.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGenerator.java index 24971f1a8429..fd9277533ede 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGenerator.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGenerator.java @@ -35,7 +35,6 @@ import io.cdap.cdap.internal.asm.Methods; import io.cdap.cdap.internal.asm.Signatures; import io.cdap.http.BodyConsumer; -import io.cdap.http.HttpHandler; import io.cdap.http.HttpResponder; import io.netty.handler.codec.http.HttpRequest; import java.io.IOException; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/worker/WorkerProgramRunner.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/worker/WorkerProgramRunner.java index 841230b8424a..24c387d98537 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/worker/WorkerProgramRunner.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/worker/WorkerProgramRunner.java @@ -23,12 +23,10 @@ import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.api.security.store.SecureStore; import io.cdap.cdap.api.security.store.SecureStoreManager; -import io.cdap.cdap.api.worker.Worker; import io.cdap.cdap.api.worker.WorkerSpecification; import io.cdap.cdap.app.program.Program; import io.cdap.cdap.app.runtime.ProgramController; import io.cdap.cdap.app.runtime.ProgramOptions; -import io.cdap.cdap.app.runtime.ProgramRunner; import io.cdap.cdap.common.conf.CConfiguration; import io.cdap.cdap.common.internal.remote.RemoteClientFactory; import io.cdap.cdap.common.namespace.NamespaceQueryAdmin; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowDriver.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowDriver.java index db2528fe0660..9bfc79f5ec78 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowDriver.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowDriver.java @@ -102,7 +102,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowProgramRunner.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowProgramRunner.java index 1aa222e4c5cb..ff71a2c57314 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowProgramRunner.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/runtime/workflow/WorkflowProgramRunner.java @@ -23,12 +23,10 @@ import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.api.security.store.SecureStore; import io.cdap.cdap.api.security.store.SecureStoreManager; -import io.cdap.cdap.api.workflow.Workflow; import io.cdap.cdap.api.workflow.WorkflowSpecification; import io.cdap.cdap.app.program.Program; import io.cdap.cdap.app.runtime.ProgramController; import io.cdap.cdap.app.runtime.ProgramOptions; -import io.cdap.cdap.app.runtime.ProgramRunner; import io.cdap.cdap.app.runtime.ProgramRunnerFactory; import io.cdap.cdap.app.runtime.ProgramStateWriter; import io.cdap.cdap.common.conf.CConfiguration; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricProcessorService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricProcessorService.java index cad3789dfce1..0ba01f973aae 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricProcessorService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricProcessorService.java @@ -16,10 +16,7 @@ package io.cdap.cdap.internal.app.services; -import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.AbstractIdleService; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import com.google.inject.Inject; import com.google.inject.name.Named; import io.cdap.cdap.api.feature.FeatureFlagsProvider; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricServer.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricServer.java index 153a2764dc0a..8a891525b248 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricServer.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/AppFabricServer.java @@ -16,10 +16,7 @@ package io.cdap.cdap.internal.app.services; -import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.AbstractIdleService; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import com.google.inject.Inject; import com.google.inject.name.Named; import io.cdap.cdap.api.feature.FeatureFlagsProvider; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/ApplicationLifecycleService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/ApplicationLifecycleService.java index 027b9c092a52..df1ebccce7bb 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/ApplicationLifecycleService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/services/ApplicationLifecycleService.java @@ -24,7 +24,6 @@ import com.google.common.util.concurrent.AbstractIdleService; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonIOException; import com.google.gson.stream.JsonWriter; import com.google.inject.Inject; import io.cdap.cdap.api.ProgramSpecification; @@ -53,7 +52,6 @@ import io.cdap.cdap.app.store.ScanApplicationsRequest; import io.cdap.cdap.app.store.Store; import io.cdap.cdap.common.ApplicationNotFoundException; -import io.cdap.cdap.common.ArtifactAlreadyExistsException; import io.cdap.cdap.common.ArtifactNotFoundException; import io.cdap.cdap.common.BadRequestException; import io.cdap.cdap.common.CannotBeDeletedException; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerService.java index c3a22e98526f..07e117425772 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerService.java @@ -20,7 +20,6 @@ import com.google.common.util.concurrent.AbstractIdleService; import com.google.inject.Inject; import io.cdap.cdap.api.metrics.MetricsCollectionService; -import io.cdap.cdap.api.service.worker.RunnableTask; import io.cdap.cdap.common.conf.CConfiguration; import io.cdap.cdap.common.conf.Constants; import io.cdap.cdap.common.conf.Constants.TaskWorker; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerTwillRunnable.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerTwillRunnable.java index d9a42bab9a48..bb487801f5cf 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerTwillRunnable.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/TaskWorkerTwillRunnable.java @@ -60,7 +60,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.twill.api.AbstractTwillRunnable; import org.apache.twill.api.TwillContext; -import org.apache.twill.api.TwillRunnable; import org.apache.twill.common.Threads; import org.apache.twill.discovery.DiscoveryService; import org.apache.twill.discovery.DiscoveryServiceClient; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/sidecar/ArtifactLocalizerTwillRunnable.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/sidecar/ArtifactLocalizerTwillRunnable.java index d98c73effc2b..a51086977fab 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/sidecar/ArtifactLocalizerTwillRunnable.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/sidecar/ArtifactLocalizerTwillRunnable.java @@ -64,7 +64,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.twill.api.AbstractTwillRunnable; import org.apache.twill.api.TwillContext; -import org.apache.twill.api.TwillRunnable; import org.apache.twill.common.Threads; import org.apache.twill.discovery.DiscoveryService; import org.apache.twill.discovery.DiscoveryServiceClient; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerService.java index 5ab8f453b0cd..5060aad39c4b 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerService.java @@ -21,7 +21,6 @@ import com.google.inject.Inject; import com.google.inject.Injector; import io.cdap.cdap.api.metrics.MetricsCollectionService; -import io.cdap.cdap.api.service.worker.RunnableTask; import io.cdap.cdap.common.conf.CConfiguration; import io.cdap.cdap.common.conf.Constants; import io.cdap.cdap.common.conf.SConfiguration; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerTwillRunnable.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerTwillRunnable.java index 2bec1908c0bd..0ca9f8640ac9 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerTwillRunnable.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/internal/app/worker/system/SystemWorkerTwillRunnable.java @@ -99,7 +99,6 @@ import org.apache.tephra.TransactionSystemClient; import org.apache.twill.api.AbstractTwillRunnable; import org.apache.twill.api.TwillContext; -import org.apache.twill.api.TwillRunnable; import org.apache.twill.api.TwillRunner; import org.apache.twill.api.TwillRunnerService; import org.apache.twill.common.Threads; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/master/environment/k8s/MasterEnvironmentMain.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/master/environment/k8s/MasterEnvironmentMain.java index cd48d72e29fb..e5b0c1ba756f 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/master/environment/k8s/MasterEnvironmentMain.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/master/environment/k8s/MasterEnvironmentMain.java @@ -39,8 +39,6 @@ import io.cdap.cdap.master.spi.environment.MasterEnvironmentRunnableContext; import io.cdap.cdap.security.auth.TokenManager; import io.cdap.cdap.security.auth.context.AuthenticationContextModules; -import io.cdap.cdap.security.auth.context.SystemAuthenticationContext; -import io.cdap.cdap.security.auth.context.WorkerAuthenticationContext; import io.cdap.cdap.security.guice.CoreSecurityRuntimeModule; import io.cdap.cdap.security.impersonation.SecurityUtil; import io.cdap.cdap.security.spi.authenticator.RemoteAuthenticator; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/operations/OperationalStatsService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/operations/OperationalStatsService.java index 9cbb926a0c5d..054ee762316a 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/operations/OperationalStatsService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/operations/OperationalStatsService.java @@ -34,7 +34,6 @@ import javax.management.InstanceNotFoundException; import javax.management.MBeanRegistrationException; import javax.management.MBeanServer; -import javax.management.MXBean; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import org.apache.thrift.TException; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ProgramScheduleService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ProgramScheduleService.java index 710f5e2b0f23..6ab969a8bfa8 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ProgramScheduleService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ProgramScheduleService.java @@ -17,19 +17,13 @@ package io.cdap.cdap.scheduler; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import com.google.inject.Inject; import io.cdap.cdap.api.ProgramStatus; import io.cdap.cdap.api.schedule.Trigger; -import io.cdap.cdap.common.AlreadyExistsException; import io.cdap.cdap.common.BadRequestException; -import io.cdap.cdap.common.ConflictException; -import io.cdap.cdap.common.NotFoundException; -import io.cdap.cdap.common.ProfileConflictException; import io.cdap.cdap.internal.app.runtime.schedule.ProgramSchedule; import io.cdap.cdap.internal.app.runtime.schedule.ProgramScheduleRecord; import io.cdap.cdap.internal.app.runtime.schedule.ProgramScheduleStatus; -import io.cdap.cdap.internal.app.runtime.schedule.SchedulerException; import io.cdap.cdap.internal.app.runtime.schedule.TimeSchedulerService; import io.cdap.cdap.internal.app.runtime.schedule.store.Schedulers; import io.cdap.cdap.internal.schedule.constraint.Constraint; @@ -44,7 +38,6 @@ import io.cdap.cdap.proto.security.StandardPermission; import io.cdap.cdap.security.spi.authentication.AuthenticationContext; import io.cdap.cdap.security.spi.authorization.AccessEnforcer; -import io.cdap.cdap.security.spi.authorization.UnauthorizedException; import java.util.Collection; import java.util.HashSet; import java.util.List; diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ScheduleNotificationSubscriberService.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ScheduleNotificationSubscriberService.java index f492aca53300..24bd7130df87 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ScheduleNotificationSubscriberService.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/scheduler/ScheduleNotificationSubscriberService.java @@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.util.concurrent.AbstractIdleService; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Service; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; @@ -51,10 +50,8 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; -import java.util.stream.Collectors; import javax.annotation.Nullable; import org.apache.twill.common.Threads; import org.slf4j.Logger; diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/app/runtime/AbstractProgramRuntimeServiceTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/app/runtime/AbstractProgramRuntimeServiceTest.java index 0dd8c7f2aba2..071eb68c74d4 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/app/runtime/AbstractProgramRuntimeServiceTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/app/runtime/AbstractProgramRuntimeServiceTest.java @@ -110,7 +110,7 @@ public void testConcurrentStartLimit() throws Exception { Service service = new FastService(); ProgramController controller = new ProgramControllerServiceAdapter(service, programId.run(RunIds.generate())); - service.start(); + service.startAsync().awaitRunning(); return controller; }; @@ -323,7 +323,7 @@ private ProgramRunnerFactory createProgramRunnerFactory(final Map startCompletion = service.start(); + service.startAsync(); controller.addListener(new AbstractListener() { private volatile boolean initCalled; @@ -86,7 +85,7 @@ public void alive() { } }, executor); - startCompletion.get(); + service.awaitRunning(); service.stopAsync().awaitTerminated(); } diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceProgramRunnerTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceProgramRunnerTest.java index d4ee727b2b5c..c2baa32b7e61 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceProgramRunnerTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/MapReduceProgramRunnerTest.java @@ -55,6 +55,7 @@ import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; +import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.URI; @@ -324,9 +325,11 @@ private void testMapreduceWithFile(String inputDatasetName, String inputPaths, Assert.assertFalse(resultLocation.isDirectory()); // read output and verify result - String line = CharStreams.readFirstLine( - CharStreams.newReaderSupplier( - Locations.newInputSupplier(resultLocation), Charsets.UTF_8)); + String line; + try (InputStreamReader reader = new InputStreamReader(Locations.newInputSupplier(resultLocation).getInput(), + Charsets.UTF_8)) { + line = CharStreams.readLines(reader).stream().findFirst().orElse(null); + } Assert.assertNotNull(line); String[] fields = line.split(outputSeparator == null ? ":" : outputSeparator); Assert.assertEquals(2, fields.length); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/input/MapReduceWithMultipleInputsTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/input/MapReduceWithMultipleInputsTest.java index a28a67b501fe..0f15a323a4b4 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/input/MapReduceWithMultipleInputsTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/input/MapReduceWithMultipleInputsTest.java @@ -24,6 +24,7 @@ import io.cdap.cdap.internal.app.deploy.pipeline.ApplicationWithPrograms; import io.cdap.cdap.internal.app.runtime.BasicArguments; import io.cdap.cdap.internal.app.runtime.batch.MapReduceRunnerTestBase; +import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.List; import org.apache.twill.filesystem.Location; @@ -80,8 +81,11 @@ public void testSimpleJoin() throws Exception { // will only be 1 part file, due to the small amount of data Location outputLocation = outputFileSet.getBaseLocation().append("output").append("part-r-00000"); - List lines = CharStreams.readLines( - CharStreams.newReaderSupplier(Locations.newInputSupplier(outputLocation), Charsets.UTF_8)); + List lines; + try (InputStreamReader reader = new InputStreamReader(Locations.newInputSupplier(outputLocation).getInput(), + Charsets.UTF_8)) { + lines = CharStreams.readLines(reader); + } Assert.assertEquals(ImmutableList.of("1 Bob 75", "2 Samuel 18", "3 Joe 60"), lines); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/output/MapReduceWithMultipleOutputsTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/output/MapReduceWithMultipleOutputsTest.java index 74c9f8983ce7..61460867c34f 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/output/MapReduceWithMultipleOutputsTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/batch/dataset/output/MapReduceWithMultipleOutputsTest.java @@ -25,6 +25,7 @@ import io.cdap.cdap.internal.app.runtime.BasicArguments; import io.cdap.cdap.internal.app.runtime.batch.MapReduceRunnerTestBase; import java.io.IOException; +import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.List; import org.apache.twill.filesystem.Location; @@ -70,7 +71,10 @@ public void testMultipleOutputs() throws Exception { private List readFromOutput(FileSet fileSet, String relativePath) throws IOException { // small amount of data, so expect all data from just 1 file Location location = fileSet.getLocation(relativePath).append("part-m-00000"); - return CharStreams.readLines(CharStreams.newReaderSupplier(Locations.newInputSupplier(location), Charsets.UTF_8)); + try (InputStreamReader reader = new InputStreamReader(Locations.newInputSupplier(location).getInput(), + Charsets.UTF_8)) { + return CharStreams.readLines(reader); + } } @Test diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServiceTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServiceTest.java index 154e54089f85..486c5ab1d03e 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServiceTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/monitor/RuntimeClientServiceTest.java @@ -17,7 +17,6 @@ package io.cdap.cdap.internal.app.runtime.monitor; import com.google.common.reflect.TypeToken; -import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.Service; import com.google.gson.Gson; import com.google.inject.AbstractModule; @@ -486,9 +485,9 @@ public void testRuntimeClientStop() throws Exception { ProgramStateWriter programStateWriter = new MessagingProgramStateWriter( clientProgramStatePublisher); - ListenableFuture stopFuture = runtimeClientService.stop(); + runtimeClientService.stopAsync(); try { - stopFuture.get(2, TimeUnit.SECONDS); + runtimeClientService.awaitTerminated(2, TimeUnit.SECONDS); Assert.fail("Expected runtime client service not stopped"); } catch (TimeoutException e) { // Expected @@ -496,7 +495,7 @@ public void testRuntimeClientStop() throws Exception { // Publish a program completed state, which should unblock the client service stop. programStateWriter.completed(PROGRAM_RUN_ID); - stopFuture.get(); + runtimeClientService.awaitTerminated(); } /** @@ -526,9 +525,9 @@ public void testExternalStop() throws Exception { messagePublisher.publish(NamespaceId.SYSTEM.getNamespace(), topic, "msg1" + topic, "msg2" + topic); - ListenableFuture stopFuture = runtimeClientService.stop(); + runtimeClientService.stopAsync(); try { - stopFuture.get(2, TimeUnit.SECONDS); + runtimeClientService.awaitTerminated(2, TimeUnit.SECONDS); Assert.fail("Expected runtime client service not stopped"); } catch (TimeoutException e) { // Expected @@ -536,7 +535,7 @@ public void testExternalStop() throws Exception { // Publish a program completed state, which should unblock the client service stop. programStateWriter.completed(PROGRAM_RUN_ID); - stopFuture.get(); + runtimeClientService.awaitTerminated(); } private List fetchMessages(MessagingContext messagingContext, diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGeneratorTest.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGeneratorTest.java index 072e38b427ef..3def83c87afb 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGeneratorTest.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/runtime/service/http/HttpHandlerGeneratorTest.java @@ -486,7 +486,9 @@ protected FileHandler createHandler() { String.format("http://%s:%d/content/download/test.txt", bindAddress.getHostName(), bindAddress.getPort())).openConnection(); try { - ByteStreams.copy(urlConn.getInputStream(), Files.newOutputStreamSupplier(downloadFile)); + try (FileOutputStream fos = new FileOutputStream(downloadFile)) { + ByteStreams.copy(urlConn.getInputStream(), fos); + } } finally { urlConn.disconnect(); } @@ -510,8 +512,10 @@ protected FileHandler createHandler() { try { urlConn.setDoOutput(true); urlConn.setRequestMethod("POST"); - Files.copy(file, urlConn.getOutputStream()); - ByteStreams.copy(urlConn.getInputStream(), Files.newOutputStreamSupplier(downloadFile)); + java.nio.file.Files.copy(file.toPath(), urlConn.getOutputStream()); + try (FileOutputStream fos = new FileOutputStream(downloadFile)) { + ByteStreams.copy(urlConn.getInputStream(), fos); + } Assert.assertEquals(200, urlConn.getResponseCode()); Assert.assertTrue(Files.equal(file, downloadFile)); } finally { @@ -563,8 +567,9 @@ protected NoAnnotationHandler createHandler() { bindAddress.getHostName(), bindAddress.getPort())).openConnection(); urlConn.setReadTimeout(2000); urlConn.setDoOutput(true); - ByteStreams.copy(ByteStreams.newInputStreamSupplier("Hello".getBytes(Charsets.UTF_8)), - urlConn.getOutputStream()); + try (java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream("Hello".getBytes(Charsets.UTF_8))) { + ByteStreams.copy(bais, urlConn.getOutputStream()); + } Assert.assertEquals("Hello test", new String(ByteStreams.toByteArray(urlConn.getInputStream()), Charsets.UTF_8)); diff --git a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java index d2329440c4ef..be0731812e86 100644 --- a/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java +++ b/cdap-app-fabric/src/test/java/io/cdap/cdap/internal/app/services/http/AppFabricTestBase.java @@ -20,7 +20,7 @@ import com.google.common.base.Preconditions; import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; -import com.google.common.io.InputSupplier; +import io.cdap.cdap.common.io.InputSupplier; import com.google.common.util.concurrent.Service; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -532,7 +532,7 @@ private HttpResponse addArtifact(Id.Artifact artifactId, InputSupplier 0), return immediately + if (startedCount.get() > 0) { + return; + } delegate.awaitTerminated(); } @Override public void awaitTerminated(long timeout, TimeUnit unit) throws TimeoutException { + // If the delegate was not actually stopped (ref count > 0), return immediately + if (startedCount.get() > 0) { + return; + } delegate.awaitTerminated(timeout, unit); } diff --git a/cdap-common/src/main/java/io/cdap/cdap/common/io/DFSSeekableInputStream.java b/cdap-common/src/main/java/io/cdap/cdap/common/io/DFSSeekableInputStream.java index 2ca22cfc1250..7a81e35c1bfa 100644 --- a/cdap-common/src/main/java/io/cdap/cdap/common/io/DFSSeekableInputStream.java +++ b/cdap-common/src/main/java/io/cdap/cdap/common/io/DFSSeekableInputStream.java @@ -20,7 +20,6 @@ import java.io.IOException; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.Seekable; -import org.apache.twill.filesystem.Location; /** * Implementation of {@link SeekableInputStream} for {@link Location}. diff --git a/cdap-common/src/main/java/io/cdap/cdap/common/io/Locations.java b/cdap-common/src/main/java/io/cdap/cdap/common/io/Locations.java index 0858095afe7a..a558c6a00f57 100644 --- a/cdap-common/src/main/java/io/cdap/cdap/common/io/Locations.java +++ b/cdap-common/src/main/java/io/cdap/cdap/common/io/Locations.java @@ -18,7 +18,6 @@ import com.google.common.base.Preconditions; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; -import com.google.common.base.Throwables; import com.google.common.io.ByteStreams; import io.cdap.cdap.common.lang.FunctionWithException; import io.cdap.cdap.common.lang.jar.BundleJarUtil; diff --git a/cdap-common/src/main/java/io/cdap/cdap/common/service/CommandPortService.java b/cdap-common/src/main/java/io/cdap/cdap/common/service/CommandPortService.java index 8e02a7157b2b..911f5e737ab5 100644 --- a/cdap-common/src/main/java/io/cdap/cdap/common/service/CommandPortService.java +++ b/cdap-common/src/main/java/io/cdap/cdap/common/service/CommandPortService.java @@ -24,7 +24,6 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; -import java.io.Writer; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; diff --git a/cdap-common/src/main/java/io/cdap/cdap/common/service/RetryOnStartFailureService.java b/cdap-common/src/main/java/io/cdap/cdap/common/service/RetryOnStartFailureService.java index 4ac886888e93..aeee80b7fbe4 100644 --- a/cdap-common/src/main/java/io/cdap/cdap/common/service/RetryOnStartFailureService.java +++ b/cdap-common/src/main/java/io/cdap/cdap/common/service/RetryOnStartFailureService.java @@ -18,8 +18,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.AbstractService; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.Service; import com.google.common.util.concurrent.Uninterruptibles; @@ -135,10 +133,17 @@ public void failed(State from, Throwable failure) { return; } - // If there is no started service, stop the current delete, but no need to propagate the stop state + // If there is no started service, stop the current delegate, but no need to propagate the stop state // because if the underlying service is not yet started due to failure, it shouldn't affect the stop state // of this retrying service. if (currentDelegate != null) { + // If the delegate is already in a terminal state (FAILED or TERMINATED), stopAsync() won't + // trigger any listener callbacks, so we need to notify directly. + State delegateState = currentDelegate.state(); + if (delegateState == State.TERMINATED || delegateState == State.FAILED) { + notifyStopped(); + return; + } currentDelegate.addListener(new Service.Listener() { @Override public void starting() {} diff --git a/cdap-common/src/main/java/io/cdap/cdap/common/twill/NoopTwillController.java b/cdap-common/src/main/java/io/cdap/cdap/common/twill/NoopTwillController.java index 78a900ea21c2..38432ef02361 100644 --- a/cdap-common/src/main/java/io/cdap/cdap/common/twill/NoopTwillController.java +++ b/cdap-common/src/main/java/io/cdap/cdap/common/twill/NoopTwillController.java @@ -160,7 +160,37 @@ public Future resetRunnableLogLevels(String runnableName, String... lo return future; } + @Override + public void awaitRunning() { + // no-op + } + @Override + public void awaitRunning(long timeout, TimeUnit unit) throws TimeoutException { + // no-op + } + + @Override + public void awaitTerminated() { + // no-op + } + + @Override + public void awaitTerminated(long timeout, TimeUnit unit) throws TimeoutException { + // no-op + } + + @Override + public Service startAsync() { + start(); + return this; + } + + @Override + public Service stopAsync() { + stop(); + return this; + } @Override protected void startUp() { @@ -182,7 +212,11 @@ public Future sendCommand(String runnableName, Command command) { return CompletableFuture.completedFuture(command); } - + @Nullable + @Override + public Throwable failureCause() { + return null; + } @Override public void kill() { diff --git a/cdap-common/src/main/java/io/cdap/cdap/common/utils/TimeBoundIterator.java b/cdap-common/src/main/java/io/cdap/cdap/common/utils/TimeBoundIterator.java index 2f50466b4b1f..b5fce6fd4d75 100644 --- a/cdap-common/src/main/java/io/cdap/cdap/common/utils/TimeBoundIterator.java +++ b/cdap-common/src/main/java/io/cdap/cdap/common/utils/TimeBoundIterator.java @@ -17,7 +17,6 @@ package io.cdap.cdap.common.utils; -import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Stopwatch; import com.google.common.collect.AbstractIterator; import java.util.Iterator; diff --git a/cdap-common/src/main/java/io/cdap/cdap/internal/app/store/RunRecordDetail.java b/cdap-common/src/main/java/io/cdap/cdap/internal/app/store/RunRecordDetail.java index 51d070f3a2b6..0757b69e28ae 100644 --- a/cdap-common/src/main/java/io/cdap/cdap/internal/app/store/RunRecordDetail.java +++ b/cdap-common/src/main/java/io/cdap/cdap/internal/app/store/RunRecordDetail.java @@ -27,7 +27,6 @@ import io.cdap.cdap.proto.RunRecord; import io.cdap.cdap.proto.id.ProfileId; import io.cdap.cdap.proto.id.ProgramRunId; -import io.cdap.cdap.runtime.spi.provisioner.Cluster; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; diff --git a/cdap-data-fabric-tests/src/test/java/io/cdap/cdap/data2/transaction/distributed/TransactionServiceTest.java b/cdap-data-fabric-tests/src/test/java/io/cdap/cdap/data2/transaction/distributed/TransactionServiceTest.java index c6ca5a0aafbc..808906c59a61 100644 --- a/cdap-data-fabric-tests/src/test/java/io/cdap/cdap/data2/transaction/distributed/TransactionServiceTest.java +++ b/cdap-data-fabric-tests/src/test/java/io/cdap/cdap/data2/transaction/distributed/TransactionServiceTest.java @@ -189,7 +189,7 @@ protected void configure() { Networks.getRandomPort(), hConf, tmpFolder.newFolder()); // NOTE: we don't have to wait for start as client should pick it up anyways - third.start(); + third.startAsync(); // stopping second one second.stopAsync().awaitTerminated(); @@ -197,7 +197,7 @@ protected void configure() { verifyGetAndPut(table, txExecutor, "val3", "val4"); // releasing resources - third.stop(); + third.stopAsync().awaitTerminated(); } finally { try { diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data/dataset/SystemDatasetInstantiator.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data/dataset/SystemDatasetInstantiator.java index 404ea3f70e14..5450bed1f0c8 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data/dataset/SystemDatasetInstantiator.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data/dataset/SystemDatasetInstantiator.java @@ -17,7 +17,6 @@ package io.cdap.cdap.data.dataset; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import io.cdap.cdap.api.data.DatasetInstantiationException; import io.cdap.cdap.api.dataset.Dataset; import io.cdap.cdap.api.dataset.DatasetAdmin; @@ -26,7 +25,6 @@ import io.cdap.cdap.api.service.ServiceUnavailableException; import io.cdap.cdap.data2.datafabric.dataset.type.ConstantClassLoaderProvider; import io.cdap.cdap.data2.datafabric.dataset.type.DatasetClassLoaderProvider; -import io.cdap.cdap.data2.datafabric.dataset.type.DirectoryClassLoaderProvider; import io.cdap.cdap.data2.dataset2.DatasetFramework; import io.cdap.cdap.data2.metadata.lineage.AccessType; import io.cdap.cdap.proto.id.DatasetId; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/audit/DefaultAuditPublisher.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/audit/DefaultAuditPublisher.java index 6c0906dadf75..035c9cbfe7d8 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/audit/DefaultAuditPublisher.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/audit/DefaultAuditPublisher.java @@ -17,7 +17,6 @@ package io.cdap.cdap.data2.audit; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import com.google.gson.Gson; import com.google.inject.Inject; import io.cdap.cdap.api.messaging.TopicNotFoundException; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/DatasetsUtil.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/DatasetsUtil.java index 657080572fa4..79604d2710d4 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/DatasetsUtil.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/DatasetsUtil.java @@ -20,7 +20,6 @@ import io.cdap.cdap.api.data.DatasetContext; import io.cdap.cdap.api.data.DatasetInstantiationException; import io.cdap.cdap.api.dataset.Dataset; -import io.cdap.cdap.api.dataset.DatasetDefinition; import io.cdap.cdap.api.dataset.DatasetManagementException; import io.cdap.cdap.api.dataset.DatasetProperties; import io.cdap.cdap.api.dataset.DatasetSpecification; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/RemoteDatasetFramework.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/RemoteDatasetFramework.java index 41c888a77115..fa1b6cdd44b5 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/RemoteDatasetFramework.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/RemoteDatasetFramework.java @@ -17,7 +17,6 @@ package io.cdap.cdap.data2.datafabric.dataset; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/service/DefaultDatasetTypeService.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/service/DefaultDatasetTypeService.java index ce1cb544c655..555045b983c9 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/service/DefaultDatasetTypeService.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/service/DefaultDatasetTypeService.java @@ -23,7 +23,6 @@ import com.google.common.util.concurrent.AbstractIdleService; import com.google.inject.Inject; import io.cdap.cdap.api.dataset.module.DatasetModule; -import io.cdap.cdap.api.dataset.module.DatasetType; import io.cdap.cdap.common.ConflictException; import io.cdap.cdap.common.DatasetModuleCannotBeDeletedException; import io.cdap.cdap.common.DatasetModuleNotFoundException; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/type/ConstantClassLoaderProvider.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/type/ConstantClassLoaderProvider.java index 85a4f1749a6c..fe82a880a4f7 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/type/ConstantClassLoaderProvider.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/datafabric/dataset/type/ConstantClassLoaderProvider.java @@ -17,7 +17,6 @@ package io.cdap.cdap.data2.datafabric.dataset.type; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import io.cdap.cdap.proto.DatasetModuleMeta; import java.io.IOException; import javax.annotation.Nullable; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/DatasetDefinitionRegistries.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/DatasetDefinitionRegistries.java index abf5367d6046..135da2bf3906 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/DatasetDefinitionRegistries.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/DatasetDefinitionRegistries.java @@ -17,7 +17,6 @@ package io.cdap.cdap.data2.dataset2; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import io.cdap.cdap.api.dataset.module.DatasetDefinitionRegistry; import io.cdap.cdap.api.dataset.module.DatasetModule; import io.cdap.cdap.common.lang.ClassLoaders; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/SingleThreadDatasetCache.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/SingleThreadDatasetCache.java index b6eed34759c8..735c1a16a5de 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/SingleThreadDatasetCache.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/SingleThreadDatasetCache.java @@ -25,7 +25,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import com.google.common.util.concurrent.UncheckedExecutionException; -import io.cdap.cdap.api.data.DatasetContext; import io.cdap.cdap.api.data.DatasetInstantiationException; import io.cdap.cdap.api.dataset.Dataset; import io.cdap.cdap.api.dataset.metrics.MeteredDataset; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/lib/file/FileSetDataset.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/lib/file/FileSetDataset.java index 846ba67e3757..3bb74ff0bd96 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/lib/file/FileSetDataset.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/dataset2/lib/file/FileSetDataset.java @@ -16,7 +16,6 @@ package io.cdap.cdap.data2.dataset2.lib.file; -import com.google.common.base.MoreObjects; import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.base.Preconditions; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/queue/DequeueResult.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/queue/DequeueResult.java index 2dd01718f2e7..4516b2e4c83f 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/queue/DequeueResult.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/queue/DequeueResult.java @@ -16,7 +16,6 @@ package io.cdap.cdap.data2.queue; -import com.google.common.collect.Iterators; import java.util.Collections; import java.util.Iterator; diff --git a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/transaction/DynamicTransactionExecutor.java b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/transaction/DynamicTransactionExecutor.java index 00dbc78fa8e1..061c84eb2496 100644 --- a/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/transaction/DynamicTransactionExecutor.java +++ b/cdap-data-fabric/src/main/java/io/cdap/cdap/data2/transaction/DynamicTransactionExecutor.java @@ -20,7 +20,6 @@ import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; import org.apache.tephra.AbstractTransactionExecutor; -import org.apache.tephra.RetryOnConflictStrategy; import org.apache.tephra.RetryStrategies; import org.apache.tephra.RetryStrategy; import org.apache.tephra.TransactionContext; diff --git a/cdap-data-fabric/src/test/java/io/cdap/cdap/data2/dataset2/lib/cube/AbstractCubeTest.java b/cdap-data-fabric/src/test/java/io/cdap/cdap/data2/dataset2/lib/cube/AbstractCubeTest.java index 633440c77618..820c53aec771 100644 --- a/cdap-data-fabric/src/test/java/io/cdap/cdap/data2/dataset2/lib/cube/AbstractCubeTest.java +++ b/cdap-data-fabric/src/test/java/io/cdap/cdap/data2/dataset2/lib/cube/AbstractCubeTest.java @@ -34,6 +34,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -587,6 +588,8 @@ public void testMetricsAggregationOptionSum() throws Exception { null); result = new ArrayList<>(cube.query(query)); Assert.assertEquals(2, result.size()); + // Sort by first timestamp to ensure deterministic ordering across Guava versions + result.sort(Comparator.comparingLong(ts -> ts.getTimeValues().get(0).getTimestamp())); // agg1 gets increment by 1 for 100 seconds, so sum will be 100/5=20, agg2 gets increment by 3 for 50 seconds, so // sum will be 3*50/5=30 verifySumAggregation(result.get(0), "metric1", 5, 30, 10, 0, 0); diff --git a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogDataOffset.java b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogDataOffset.java index 84a34a711225..61caa5bee524 100644 --- a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogDataOffset.java +++ b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogDataOffset.java @@ -16,6 +16,7 @@ package io.cdap.cdap.gateway.handlers.log; +import com.google.common.base.MoreObjects; import io.cdap.cdap.logging.gateway.handlers.LogData; import io.cdap.cdap.logging.read.LogOffset; diff --git a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogLine.java b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogLine.java index 977b8a403d7c..f3410bb7015a 100644 --- a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogLine.java +++ b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/LogLine.java @@ -16,6 +16,7 @@ package io.cdap.cdap.gateway.handlers.log; +import com.google.common.base.MoreObjects; import io.cdap.cdap.logging.read.LogOffset; /** diff --git a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/OffsetLine.java b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/OffsetLine.java index 54bc8a9388a1..1cf3e0a2bd8f 100644 --- a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/OffsetLine.java +++ b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/handlers/log/OffsetLine.java @@ -16,6 +16,7 @@ package io.cdap.cdap.gateway.handlers.log; +import com.google.common.base.MoreObjects; import io.cdap.cdap.logging.read.LogOffset; /** diff --git a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterPipelineTest.java b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterPipelineTest.java index 422557635380..6a27c99c7dfb 100644 --- a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterPipelineTest.java +++ b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterPipelineTest.java @@ -209,7 +209,7 @@ private void deploy(int num) throws Exception { LocationFactory lf = new LocalLocationFactory(TMP_FOLDER.newFolder()); Location programJar = AppJarHelper.createDeploymentJar(lf, DummyApp.class); - GATEWAY_SERVER.setExpectedJarBytes(ByteStreams.toByteArray(Locations.newInputSupplier(programJar))); + GATEWAY_SERVER.setExpectedJarBytes(ByteStreams.toByteArray(Locations.newInputSupplier(programJar).getInput())); for (int i = 0; i < num; i++) { LOG.info("Deploying {}/{}", i, num); @@ -220,7 +220,7 @@ private void deploy(int num) throws Exception { urlConn.setDoOutput(true); urlConn.setDoInput(true); - ByteStreams.copy(Locations.newInputSupplier(programJar), urlConn.getOutputStream()); + ByteStreams.copy(Locations.newInputSupplier(programJar).getInput(), urlConn.getOutputStream()); Assert.assertEquals(200, urlConn.getResponseCode()); urlConn.getInputStream().close(); urlConn.disconnect(); diff --git a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterTestBase.java b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterTestBase.java index e4dd750928c3..45e3da24539b 100644 --- a/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterTestBase.java +++ b/cdap-gateway/src/test/java/io/cdap/cdap/gateway/router/NettyRouterTestBase.java @@ -21,9 +21,6 @@ import com.google.common.collect.Lists; import com.google.common.io.ByteStreams; import com.google.common.util.concurrent.AbstractIdleService; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.Service; import com.ning.http.client.AsyncCompletionHandler; import com.ning.http.client.AsyncHttpClient; import com.ning.http.client.AsyncHttpClientConfig; @@ -69,7 +66,6 @@ import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CountDownLatch; @@ -148,12 +144,10 @@ private String resolveUri(String path) throws URISyntaxException { @Before public void startUp() throws Exception { routerService = createRouterService(HOSTNAME, discoveryService); - List> futures = new ArrayList<>(); - futures.add(routerService.start()); + routerService.startAsync().awaitRunning(); for (ServerService server : allServers) { - futures.add(server.start()); + server.startAsync().awaitRunning(); } - Futures.allAsList(futures).get(); // Wait for both servers of defaultService to be registered ServiceDiscovered discover = ((DiscoveryServiceClient) discoveryService) @@ -173,12 +167,10 @@ public void onChange(ServiceDiscovered serviceDiscovered) { @After public void tearDown() throws Exception { - List> futures = new ArrayList<>(); for (ServerService server : allServers) { - futures.add(server.stop()); + server.stopAsync().awaitTerminated(); } - futures.add(routerService.stop()); - Futures.successfulAsList(futures).get(); + routerService.stopAsync().awaitTerminated(); } @Test diff --git a/cdap-master/src/test/java/io/cdap/cdap/metrics/jmx/JmxMetricsCollectorTest.java b/cdap-master/src/test/java/io/cdap/cdap/metrics/jmx/JmxMetricsCollectorTest.java index 206a664b3d8d..923ca5c7993f 100644 --- a/cdap-master/src/test/java/io/cdap/cdap/metrics/jmx/JmxMetricsCollectorTest.java +++ b/cdap-master/src/test/java/io/cdap/cdap/metrics/jmx/JmxMetricsCollectorTest.java @@ -109,6 +109,6 @@ public void testNumberOfMetricsEmitted() throws InterruptedException, MalformedU } return true; }, 3, TimeUnit.SECONDS); - jmxMetrics.stop(); + jmxMetrics.stopAsync().awaitTerminated(); } } diff --git a/cdap-spark-core-base/src/test/java/io/cdap/cdap/app/runtime/spark/distributed/SparkExecutionServiceTest.java b/cdap-spark-core-base/src/test/java/io/cdap/cdap/app/runtime/spark/distributed/SparkExecutionServiceTest.java index 2dda65c4006a..f6dd8b8b57e9 100644 --- a/cdap-spark-core-base/src/test/java/io/cdap/cdap/app/runtime/spark/distributed/SparkExecutionServiceTest.java +++ b/cdap-spark-core-base/src/test/java/io/cdap/cdap/app/runtime/spark/distributed/SparkExecutionServiceTest.java @@ -17,8 +17,6 @@ package io.cdap.cdap.app.runtime.spark.distributed; import com.google.common.collect.ImmutableMap; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.Service; import io.cdap.cdap.api.workflow.Value; import io.cdap.cdap.common.app.RunIds; import io.cdap.cdap.common.utils.Tasks; @@ -122,7 +120,7 @@ public void testExplicitStop() throws Exception { } // Stop the program from the service side - ListenableFuture stopFuture = service.stop(); + service.stopAsync(); // Expect some future heartbeats will receive the STOP command Tasks.waitFor(true, new Callable() { @@ -136,8 +134,8 @@ public Boolean call() throws Exception { // Call complete to notify the service it has been stopped client.completed(null); - // The stop future of the service should be completed after the client.completed call. - stopFuture.get(5, TimeUnit.SECONDS); + // The service should be terminated after the client.completed call. + service.awaitTerminated(5, TimeUnit.SECONDS); } finally { service.stopAsync().awaitTerminated(); } diff --git a/cdap-unit-test/src/test/java/io/cdap/cdap/service/FileUploadServiceTestRun.java b/cdap-unit-test/src/test/java/io/cdap/cdap/service/FileUploadServiceTestRun.java index b90b6b995e77..ac723312ef63 100644 --- a/cdap-unit-test/src/test/java/io/cdap/cdap/service/FileUploadServiceTestRun.java +++ b/cdap-unit-test/src/test/java/io/cdap/cdap/service/FileUploadServiceTestRun.java @@ -94,7 +94,7 @@ public void testFileUploadService() throws Exception { // There should be one file under the partition directory List locations = partition.getLocation().list(); Assert.assertEquals(1, locations.size()); - Assert.assertArrayEquals(content, ByteStreams.toByteArray(Locations.newInputSupplier(locations.get(0)))); + Assert.assertArrayEquals(content, ByteStreams.toByteArray(Locations.newInputSupplier(locations.get(0)).getInput())); // Verify the tracking table of chunks sizes KeyValueTable trackingTable = (KeyValueTable) getDataset(FileUploadApp.KV_TABLE_NAME).get(); diff --git a/cdap-unit-test/src/test/scala/io/cdap/cdap/spark/app/ForkSpark.scala b/cdap-unit-test/src/test/scala/io/cdap/cdap/spark/app/ForkSpark.scala index 2b29fc135207..0820d88ef316 100644 --- a/cdap-unit-test/src/test/scala/io/cdap/cdap/spark/app/ForkSpark.scala +++ b/cdap-unit-test/src/test/scala/io/cdap/cdap/spark/app/ForkSpark.scala @@ -47,8 +47,8 @@ class ForkSpark(name: String) extends AbstractSpark with SparkMain { val file = new File(barrierDir, sec.getRunId.getId) require(file.createNewFile()) val branchSize = getBranchSize(sec) - val stopWatch = new Stopwatch().start() - while (barrierDir.list().length < branchSize && stopWatch.elapsedTime(TimeUnit.SECONDS) < 10) { + val stopWatch = Stopwatch.createStarted() + while (barrierDir.list().length < branchSize && stopWatch.elapsed(TimeUnit.SECONDS) < 10) { TimeUnit.MILLISECONDS.sleep(100) } diff --git a/cdap-unit-test/src/test/scala/io/cdap/cdap/test/messaging/MessagingSpark.scala b/cdap-unit-test/src/test/scala/io/cdap/cdap/test/messaging/MessagingSpark.scala index 3822efa84bb2..3778c6a6cdf8 100644 --- a/cdap-unit-test/src/test/scala/io/cdap/cdap/test/messaging/MessagingSpark.scala +++ b/cdap-unit-test/src/test/scala/io/cdap/cdap/test/messaging/MessagingSpark.scala @@ -82,9 +82,9 @@ class MessagingSpark extends AbstractSpark with SparkMain { private def fetchMessage(fetcher: MessageFetcher, namespace: String, topic: String, afterMessageId: Option[String], timeout: Long, unit: TimeUnit): Message = { var iterator = fetcher.fetch(namespace, topic, 1, afterMessageId.orNull) - val stopwatch = new Stopwatch().start + val stopwatch = Stopwatch.createStarted() try { - while (!iterator.hasNext && stopwatch.elapsedTime(unit) < timeout) { + while (!iterator.hasNext && stopwatch.elapsed(unit) < timeout) { TimeUnit.MILLISECONDS.sleep(100) iterator = fetcher.fetch(namespace, topic, 1, afterMessageId.orNull) } diff --git a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/appender/LogMessage.java b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/appender/LogMessage.java index 1adc2715b4f4..42552034c0c3 100644 --- a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/appender/LogMessage.java +++ b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/appender/LogMessage.java @@ -21,7 +21,6 @@ import ch.qos.logback.classic.spi.IThrowableProxy; import ch.qos.logback.classic.spi.LoggerContextVO; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import io.cdap.cdap.common.logging.LoggingContext; import java.util.Map; import org.slf4j.Marker; diff --git a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/gateway/handlers/AbstractChunkedCallback.java b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/gateway/handlers/AbstractChunkedCallback.java index 0dcda5cee822..e3f3796bd6a3 100644 --- a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/gateway/handlers/AbstractChunkedCallback.java +++ b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/gateway/handlers/AbstractChunkedCallback.java @@ -16,7 +16,6 @@ package io.cdap.cdap.logging.gateway.handlers; -import com.google.common.collect.Multimap; import io.cdap.cdap.logging.read.Callback; import io.cdap.cdap.logging.read.LogEvent; import io.cdap.http.ChunkResponder; diff --git a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/logbuffer/LogBufferService.java b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/logbuffer/LogBufferService.java index 6a4e46392031..ae3aa9aa966f 100644 --- a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/logbuffer/LogBufferService.java +++ b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/logbuffer/LogBufferService.java @@ -17,7 +17,6 @@ package io.cdap.cdap.logging.logbuffer; import com.google.common.base.Preconditions; -import com.google.common.collect.Iterables; import com.google.common.util.concurrent.AbstractIdleService; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/pipeline/kafka/KafkaLogProcessorPipeline.java b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/pipeline/kafka/KafkaLogProcessorPipeline.java index 65408bbb3c72..ad2c8ebe4986 100644 --- a/cdap-watchdog/src/main/java/io/cdap/cdap/logging/pipeline/kafka/KafkaLogProcessorPipeline.java +++ b/cdap-watchdog/src/main/java/io/cdap/cdap/logging/pipeline/kafka/KafkaLogProcessorPipeline.java @@ -46,16 +46,12 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; -import kafka.api.OffsetRequest$; import kafka.javaapi.consumer.SimpleConsumer; import kafka.javaapi.message.ByteBufferMessageSet; import kafka.message.MessageAndOffset; import org.apache.kafka.common.KafkaException; import org.apache.kafka.common.errors.LeaderNotAvailableException; -import org.apache.kafka.common.errors.NotLeaderForPartitionException; import org.apache.kafka.common.errors.OffsetOutOfRangeException; -import org.apache.kafka.common.errors.UnknownServerException; -import org.apache.kafka.common.errors.UnknownTopicOrPartitionException; import org.apache.twill.common.Threads; import org.apache.twill.kafka.client.BrokerInfo; import org.apache.twill.kafka.client.BrokerService; diff --git a/cdap-watchdog/src/main/java/io/cdap/cdap/metrics/guice/DistributedMetricsClientModule.java b/cdap-watchdog/src/main/java/io/cdap/cdap/metrics/guice/DistributedMetricsClientModule.java index 030c0c95bd37..929a8ed6b68b 100644 --- a/cdap-watchdog/src/main/java/io/cdap/cdap/metrics/guice/DistributedMetricsClientModule.java +++ b/cdap-watchdog/src/main/java/io/cdap/cdap/metrics/guice/DistributedMetricsClientModule.java @@ -23,11 +23,9 @@ import io.cdap.cdap.api.metrics.MetricValues; import io.cdap.cdap.api.metrics.MetricsCollectionService; import io.cdap.cdap.api.metrics.MetricsSystemClient; -import io.cdap.cdap.common.guice.IOModule; import io.cdap.cdap.common.io.DatumWriter; import io.cdap.cdap.internal.io.DatumWriterFactory; import io.cdap.cdap.internal.io.SchemaGenerator; -import io.cdap.cdap.messaging.spi.MessagingService; import io.cdap.cdap.metrics.collect.MessagingMetricsCollectionService; import io.cdap.cdap.metrics.process.RemoteMetricsSystemClient; diff --git a/pom.xml b/pom.xml index c9fcf23435f6..79db88e6eee8 100644 --- a/pom.xml +++ b/pom.xml @@ -108,7 +108,7 @@ 1.9.40 1.11.4 1.70 - 0.13.1 + 0.15.0-SNAPSHOT 1.4.0 1.2 3.2.2 @@ -155,7 +155,7 @@ 0.15.0-incubating 0.8.4 0.9.3 - 1.4.0 + 1.5.0-SNAPSHOT 2.3.6 3.4.5 1.3.1