Moved most of the remaining classes.
Still have some more to migrate, but is enough to start progress on other steps.
This commit is contained in:
parent
636bda22c7
commit
a7363145f2
46 changed files with 185 additions and 144 deletions
|
|
@ -24,8 +24,8 @@ import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessorFactory;
|
import software.amazon.kinesis.processor.v2.IRecordProcessorFactory;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker;
|
import software.amazon.kinesis.coordinator.Worker;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import java.util.concurrent.SynchronousQueue;
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.amazonaws.services.kinesis.multilang.config.KinesisClientLibConfigurator;
|
import com.amazonaws.services.kinesis.multilang.config.KinesisClientLibConfigurator;
|
||||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.InvalidStateException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.InvalidStateException;
|
||||||
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
||||||
import software.amazon.kinesis.lifecycle.InitializationInput;
|
import software.amazon.kinesis.lifecycle.InitializationInput;
|
||||||
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import java.util.concurrent.Future;
|
||||||
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
import software.amazon.kinesis.processor.v2.IShutdownNotificationAware;
|
import software.amazon.kinesis.processor.v2.IShutdownNotificationAware;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import software.amazon.kinesis.lifecycle.InitializationInput;
|
import software.amazon.kinesis.lifecycle.InitializationInput;
|
||||||
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
||||||
import software.amazon.kinesis.lifecycle.ShutdownInput;
|
import software.amazon.kinesis.lifecycle.ShutdownInput;
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessorFactory;
|
import software.amazon.kinesis.processor.v2.IRecordProcessorFactory;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import com.amazonaws.auth.AWSCredentialsProvider;
|
import com.amazonaws.auth.AWSCredentialsProvider;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ import org.mockito.Mockito;
|
||||||
import com.amazonaws.auth.AWSCredentials;
|
import com.amazonaws.auth.AWSCredentials;
|
||||||
import com.amazonaws.auth.AWSCredentialsProvider;
|
import com.amazonaws.auth.AWSCredentialsProvider;
|
||||||
import com.amazonaws.services.kinesis.multilang.config.KinesisClientLibConfigurator;
|
import com.amazonaws.services.kinesis.multilang.config.KinesisClientLibConfigurator;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
|
|
||||||
public class MultiLangDaemonConfigTest {
|
public class MultiLangDaemonConfigTest {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import org.mockito.Mockito;
|
||||||
|
|
||||||
import com.amazonaws.auth.AWSCredentials;
|
import com.amazonaws.auth.AWSCredentials;
|
||||||
import com.amazonaws.auth.AWSCredentialsProvider;
|
import com.amazonaws.auth.AWSCredentialsProvider;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
|
|
||||||
public class MultiLangDaemonTest {
|
public class MultiLangDaemonTest {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import com.amazonaws.services.kinesis.clientlibrary.exceptions.KinesisClientLibD
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
|
||||||
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
||||||
import software.amazon.kinesis.lifecycle.InitializationInput;
|
import software.amazon.kinesis.lifecycle.InitializationInput;
|
||||||
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.multilang;
|
package com.amazonaws.services.kinesis.multilang;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
|
||||||
import software.amazon.kinesis.processor.IPreparedCheckpointer;
|
import software.amazon.kinesis.processor.IPreparedCheckpointer;
|
||||||
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
||||||
import software.amazon.kinesis.lifecycle.InitializationInput;
|
import software.amazon.kinesis.lifecycle.InitializationInput;
|
||||||
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
import software.amazon.kinesis.lifecycle.ProcessRecordsInput;
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ import org.junit.Test;
|
||||||
import com.amazonaws.auth.AWSCredentials;
|
import com.amazonaws.auth.AWSCredentials;
|
||||||
import com.amazonaws.auth.AWSCredentialsProvider;
|
import com.amazonaws.auth.AWSCredentialsProvider;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import software.amazon.kinesis.metrics.MetricsLevel;
|
import software.amazon.kinesis.metrics.MetricsLevel;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
|
||||||
|
|
||||||
public class NoOpWorkerStateChangeListener implements WorkerStateChangeListener {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Empty constructor for NoOp Worker State Change Listener
|
|
||||||
*/
|
|
||||||
public NoOpWorkerStateChangeListener() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWorkerStateChange(WorkerState newState) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A listener for callbacks on changes worker state
|
|
||||||
*/
|
|
||||||
@FunctionalInterface
|
|
||||||
public interface WorkerStateChangeListener {
|
|
||||||
enum WorkerState {
|
|
||||||
CREATED,
|
|
||||||
INITIALIZING,
|
|
||||||
STARTED,
|
|
||||||
SHUT_DOWN
|
|
||||||
}
|
|
||||||
|
|
||||||
void onWorkerStateChange(WorkerState newState);
|
|
||||||
}
|
|
||||||
|
|
@ -17,7 +17,7 @@ package software.amazon.kinesis.checkpoint;
|
||||||
import com.amazonaws.AmazonServiceException;
|
import com.amazonaws.AmazonServiceException;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.KinesisClientLibDependencyException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.KinesisClientLibDependencyException;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import com.amazonaws.services.kinesis.model.InvalidArgumentException;
|
import com.amazonaws.services.kinesis.model.InvalidArgumentException;
|
||||||
import com.amazonaws.services.kinesis.model.ProvisionedThroughputExceededException;
|
import com.amazonaws.services.kinesis.model.ProvisionedThroughputExceededException;
|
||||||
import com.amazonaws.services.kinesis.model.ShardIteratorType;
|
import com.amazonaws.services.kinesis.model.ShardIteratorType;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
|
@ -12,12 +12,14 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
||||||
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
|
|
||||||
import com.amazonaws.ClientConfiguration;
|
import com.amazonaws.ClientConfiguration;
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Amazon Software License (the "License").
|
||||||
|
* You may not use this file except in compliance with the License.
|
||||||
|
* A copy of the License is located at
|
||||||
|
*
|
||||||
|
* http://aws.amazon.com/asl/
|
||||||
|
*
|
||||||
|
* or in the "license" file accompanying this file. This file is distributed
|
||||||
|
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
* express or implied. See the License for the specific language governing
|
||||||
|
* permissions and limitations under the License.
|
||||||
|
*/
|
||||||
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
|
public class NoOpWorkerStateChangeListener implements WorkerStateChangeListener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Empty constructor for NoOp Worker State Change Listener
|
||||||
|
*/
|
||||||
|
public NoOpWorkerStateChangeListener() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onWorkerStateChange(WorkerState newState) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.InvalidStateException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.InvalidStateException;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.KinesisClientLibDependencyException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.KinesisClientLibDependencyException;
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Amazon Software License (the "License").
|
* Licensed under the Amazon Software License (the "License").
|
||||||
* You may not use this file except in compliance with the License.
|
* You may not use this file except in compliance with the License.
|
||||||
|
|
@ -12,8 +12,9 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import software.amazon.kinesis.retrieval.IKinesisProxy;
|
import software.amazon.kinesis.retrieval.IKinesisProxy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
@ -40,6 +40,7 @@ import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
|
||||||
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
|
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesis;
|
import com.amazonaws.services.kinesis.AmazonKinesis;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
||||||
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import software.amazon.kinesis.leases.KinesisClientLibLeaseCoordinator;
|
import software.amazon.kinesis.leases.KinesisClientLibLeaseCoordinator;
|
||||||
import software.amazon.kinesis.leases.ParentsFirstShardPrioritization;
|
import software.amazon.kinesis.leases.ParentsFirstShardPrioritization;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
|
|
@ -47,6 +48,8 @@ import software.amazon.kinesis.leases.ShardPrioritization;
|
||||||
import software.amazon.kinesis.leases.ShardSyncTask;
|
import software.amazon.kinesis.leases.ShardSyncTask;
|
||||||
import software.amazon.kinesis.leases.ShardSyncTaskManager;
|
import software.amazon.kinesis.leases.ShardSyncTaskManager;
|
||||||
import software.amazon.kinesis.lifecycle.ShardConsumer;
|
import software.amazon.kinesis.lifecycle.ShardConsumer;
|
||||||
|
import software.amazon.kinesis.lifecycle.ShardConsumerShutdownNotification;
|
||||||
|
import software.amazon.kinesis.lifecycle.ShutdownNotification;
|
||||||
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
import software.amazon.kinesis.lifecycle.ShutdownReason;
|
||||||
import software.amazon.kinesis.lifecycle.TaskResult;
|
import software.amazon.kinesis.lifecycle.TaskResult;
|
||||||
import software.amazon.kinesis.metrics.MetricsCollectingTaskDecorator;
|
import software.amazon.kinesis.metrics.MetricsCollectingTaskDecorator;
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Amazon Software License (the "License").
|
||||||
|
* You may not use this file except in compliance with the License.
|
||||||
|
* A copy of the License is located at
|
||||||
|
*
|
||||||
|
* http://aws.amazon.com/asl/
|
||||||
|
*
|
||||||
|
* or in the "license" file accompanying this file. This file is distributed
|
||||||
|
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
* express or implied. See the License for the specific language governing
|
||||||
|
* permissions and limitations under the License.
|
||||||
|
*/
|
||||||
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A listener for callbacks on changes worker state
|
||||||
|
*/
|
||||||
|
@FunctionalInterface
|
||||||
|
public interface WorkerStateChangeListener {
|
||||||
|
enum WorkerState {
|
||||||
|
CREATED,
|
||||||
|
INITIALIZING,
|
||||||
|
STARTED,
|
||||||
|
SHUT_DOWN
|
||||||
|
}
|
||||||
|
|
||||||
|
void onWorkerStateChange(WorkerState newState);
|
||||||
|
}
|
||||||
|
|
@ -26,7 +26,7 @@ import java.util.concurrent.ThreadFactory;
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import software.amazon.kinesis.leases.exceptions.DependencyException;
|
import software.amazon.kinesis.leases.exceptions.DependencyException;
|
||||||
import software.amazon.kinesis.leases.exceptions.InvalidStateException;
|
import software.amazon.kinesis.leases.exceptions.InvalidStateException;
|
||||||
import software.amazon.kinesis.leases.exceptions.LeasingException;
|
import software.amazon.kinesis.leases.exceptions.LeasingException;
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@
|
||||||
*/
|
*/
|
||||||
package software.amazon.kinesis.lifecycle;
|
package software.amazon.kinesis.lifecycle;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.StreamConfig;
|
import software.amazon.kinesis.coordinator.StreamConfig;
|
||||||
import software.amazon.kinesis.processor.ICheckpoint;
|
import software.amazon.kinesis.processor.ICheckpoint;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
import software.amazon.kinesis.checkpoint.Checkpoint;
|
import software.amazon.kinesis.checkpoint.Checkpoint;
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,10 @@ import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
|
|
||||||
import com.amazonaws.services.cloudwatch.model.StandardUnit;
|
import com.amazonaws.services.cloudwatch.model.StandardUnit;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.StreamConfig;
|
import software.amazon.kinesis.coordinator.StreamConfig;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ThrottlingReporter;
|
import software.amazon.kinesis.retrieval.ThrottlingReporter;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
import software.amazon.kinesis.retrieval.GetRecordsCache;
|
import software.amazon.kinesis.retrieval.GetRecordsCache;
|
||||||
import software.amazon.kinesis.retrieval.IKinesisProxy;
|
import software.amazon.kinesis.retrieval.IKinesisProxy;
|
||||||
|
|
|
||||||
|
|
@ -21,13 +21,12 @@ import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.RejectedExecutionException;
|
import java.util.concurrent.RejectedExecutionException;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.exceptions.internal.BlockedOnParentShardException;
|
import com.amazonaws.services.kinesis.clientlibrary.exceptions.internal.BlockedOnParentShardException;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import software.amazon.kinesis.checkpoint.Checkpoint;
|
import software.amazon.kinesis.checkpoint.Checkpoint;
|
||||||
import software.amazon.kinesis.metrics.MetricsCollectingTaskDecorator;
|
import software.amazon.kinesis.metrics.MetricsCollectingTaskDecorator;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownNotification;
|
import software.amazon.kinesis.coordinator.StreamConfig;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.StreamConfig;
|
|
||||||
import software.amazon.kinesis.processor.ICheckpoint;
|
import software.amazon.kinesis.processor.ICheckpoint;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
import software.amazon.kinesis.leases.KinesisClientLease;
|
import software.amazon.kinesis.leases.KinesisClientLease;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.lifecycle;
|
||||||
|
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
|
|
@ -24,7 +24,7 @@ import software.amazon.kinesis.leases.LeaseCoordinator;
|
||||||
* Contains callbacks for completion of stages in a requested record processor shutdown.
|
* Contains callbacks for completion of stages in a requested record processor shutdown.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class ShardConsumerShutdownNotification implements ShutdownNotification {
|
public class ShardConsumerShutdownNotification implements ShutdownNotification {
|
||||||
|
|
||||||
private final LeaseCoordinator<KinesisClientLease> leaseCoordinator;
|
private final LeaseCoordinator<KinesisClientLease> leaseCoordinator;
|
||||||
private final KinesisClientLease lease;
|
private final KinesisClientLease lease;
|
||||||
|
|
@ -48,7 +48,7 @@ class ShardConsumerShutdownNotification implements ShutdownNotification {
|
||||||
* @param shutdownCompleteLatch
|
* @param shutdownCompleteLatch
|
||||||
* used to inform the caller once the record processor is fully shutdown
|
* used to inform the caller once the record processor is fully shutdown
|
||||||
*/
|
*/
|
||||||
ShardConsumerShutdownNotification(LeaseCoordinator<KinesisClientLease> leaseCoordinator, KinesisClientLease lease,
|
public ShardConsumerShutdownNotification(LeaseCoordinator<KinesisClientLease> leaseCoordinator, KinesisClientLease lease,
|
||||||
CountDownLatch notificationCompleteLatch, CountDownLatch shutdownCompleteLatch) {
|
CountDownLatch notificationCompleteLatch, CountDownLatch shutdownCompleteLatch) {
|
||||||
this.leaseCoordinator = leaseCoordinator;
|
this.leaseCoordinator = leaseCoordinator;
|
||||||
this.lease = lease;
|
this.lease = lease;
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.lifecycle;
|
||||||
|
|
||||||
import software.amazon.kinesis.lifecycle.ShutdownInput;
|
import software.amazon.kinesis.lifecycle.ShutdownInput;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
|
|
@ -15,7 +15,6 @@
|
||||||
package software.amazon.kinesis.lifecycle;
|
package software.amazon.kinesis.lifecycle;
|
||||||
|
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownNotification;
|
|
||||||
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
import software.amazon.kinesis.processor.v2.IShutdownNotificationAware;
|
import software.amazon.kinesis.processor.v2.IShutdownNotificationAware;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
package software.amazon.kinesis.lifecycle;
|
package software.amazon.kinesis.lifecycle;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import software.amazon.kinesis.leases.ShardSyncer;
|
import software.amazon.kinesis.leases.ShardSyncer;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ import org.apache.commons.lang.StringUtils;
|
||||||
import com.amazonaws.auth.AWSCredentialsProvider;
|
import com.amazonaws.auth.AWSCredentialsProvider;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesis;
|
import com.amazonaws.services.kinesis.AmazonKinesis;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.amazonaws.services.kinesis.model.DescribeStreamRequest;
|
import com.amazonaws.services.kinesis.model.DescribeStreamRequest;
|
||||||
import com.amazonaws.services.kinesis.model.DescribeStreamResult;
|
import com.amazonaws.services.kinesis.model.DescribeStreamResult;
|
||||||
import com.amazonaws.services.kinesis.model.ExpiredIteratorException;
|
import com.amazonaws.services.kinesis.model.ExpiredIteratorException;
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import com.amazonaws.ClientConfiguration;
|
||||||
import com.amazonaws.auth.AWSCredentialsProvider;
|
import com.amazonaws.auth.AWSCredentialsProvider;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesis;
|
import com.amazonaws.services.kinesis.AmazonKinesis;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory used for instantiating KinesisProxy objects (to fetch data from Kinesis).
|
* Factory used for instantiating KinesisProxy objects (to fetch data from Kinesis).
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.retrieval;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
|
@ -42,7 +42,7 @@ import java.util.stream.Collectors;
|
||||||
import com.amazonaws.services.dynamodbv2.streamsadapter.AmazonDynamoDBStreamsAdapterClient;
|
import com.amazonaws.services.dynamodbv2.streamsadapter.AmazonDynamoDBStreamsAdapterClient;
|
||||||
import com.amazonaws.services.dynamodbv2.streamsadapter.AmazonDynamoDBStreamsAdapterClientChild;
|
import com.amazonaws.services.dynamodbv2.streamsadapter.AmazonDynamoDBStreamsAdapterClientChild;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesis;
|
import com.amazonaws.services.kinesis.AmazonKinesis;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.amazonaws.services.kinesis.model.ListShardsRequest;
|
import com.amazonaws.services.kinesis.model.ListShardsRequest;
|
||||||
import com.amazonaws.services.kinesis.model.ListShardsResult;
|
import com.amazonaws.services.kinesis.model.ListShardsResult;
|
||||||
import com.amazonaws.services.kinesis.model.ResourceInUseException;
|
import com.amazonaws.services.kinesis.model.ResourceInUseException;
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import software.amazon.kinesis.metrics.IMetricsScope;
|
import software.amazon.kinesis.metrics.IMetricsScope;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
|
@ -87,7 +87,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#checkpoint()}.
|
* {@link RecordProcessorCheckpointer#checkpoint()}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testCheckpoint() throws Exception {
|
public final void testCheckpoint() throws Exception {
|
||||||
|
|
@ -108,7 +108,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#checkpoint(Record record)}.
|
* {@link RecordProcessorCheckpointer#checkpoint(Record record)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testCheckpointRecord() throws Exception {
|
public final void testCheckpointRecord() throws Exception {
|
||||||
|
|
@ -124,7 +124,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#checkpoint(Record record)}.
|
* {@link RecordProcessorCheckpointer#checkpoint(Record record)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testCheckpointSubRecord() throws Exception {
|
public final void testCheckpointSubRecord() throws Exception {
|
||||||
|
|
@ -141,7 +141,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#checkpoint(String sequenceNumber)}.
|
* {@link RecordProcessorCheckpointer#checkpoint(String sequenceNumber)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testCheckpointSequenceNumber() throws Exception {
|
public final void testCheckpointSequenceNumber() throws Exception {
|
||||||
|
|
@ -156,7 +156,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#checkpoint(String sequenceNumber, long subSequenceNumber)}.
|
* {@link RecordProcessorCheckpointer#checkpoint(String sequenceNumber, long subSequenceNumber)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testCheckpointExtendedSequenceNumber() throws Exception {
|
public final void testCheckpointExtendedSequenceNumber() throws Exception {
|
||||||
|
|
@ -186,7 +186,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#prepareCheckpoint()}.
|
* {@link RecordProcessorCheckpointer#prepareCheckpoint()}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testPrepareCheckpoint() throws Exception {
|
public final void testPrepareCheckpoint() throws Exception {
|
||||||
|
|
@ -218,7 +218,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#prepareCheckpoint(Record record)}.
|
* {@link RecordProcessorCheckpointer#prepareCheckpoint(Record record)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testPrepareCheckpointRecord() throws Exception {
|
public final void testPrepareCheckpointRecord() throws Exception {
|
||||||
|
|
@ -243,7 +243,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#prepareCheckpoint(Record record)}.
|
* {@link RecordProcessorCheckpointer#prepareCheckpoint(Record record)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testPrepareCheckpointSubRecord() throws Exception {
|
public final void testPrepareCheckpointSubRecord() throws Exception {
|
||||||
|
|
@ -269,7 +269,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#checkpoint(String sequenceNumber)}.
|
* {@link RecordProcessorCheckpointer#checkpoint(String sequenceNumber)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testPrepareCheckpointSequenceNumber() throws Exception {
|
public final void testPrepareCheckpointSequenceNumber() throws Exception {
|
||||||
|
|
@ -293,7 +293,7 @@ public class RecordProcessorCheckpointerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method for
|
* Test method for
|
||||||
* {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer#checkpoint(String sequenceNumber, long subSequenceNumber)}.
|
* {@link RecordProcessorCheckpointer#checkpoint(String sequenceNumber, long subSequenceNumber)}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testPrepareCheckpointExtendedSequenceNumber() throws Exception {
|
public final void testPrepareCheckpointExtendedSequenceNumber() throws Exception {
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.equalTo;
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
import static org.hamcrest.CoreMatchers.not;
|
import static org.hamcrest.CoreMatchers.not;
|
||||||
|
|
@ -36,6 +36,9 @@ import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.runners.MockitoJUnitRunner;
|
import org.mockito.runners.MockitoJUnitRunner;
|
||||||
import org.mockito.verification.VerificationMode;
|
import org.mockito.verification.VerificationMode;
|
||||||
|
import software.amazon.kinesis.coordinator.GracefulShutdownContext;
|
||||||
|
import software.amazon.kinesis.coordinator.GracefulShutdownCoordinator;
|
||||||
|
import software.amazon.kinesis.coordinator.Worker;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import software.amazon.kinesis.lifecycle.ShardConsumer;
|
import software.amazon.kinesis.lifecycle.ShardConsumer;
|
||||||
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
|
|
@ -22,6 +22,7 @@ import static org.junit.Assert.fail;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
|
|
@ -32,6 +33,8 @@ import com.amazonaws.regions.RegionUtils;
|
||||||
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClient;
|
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClient;
|
||||||
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
|
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
|
||||||
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
import com.amazonaws.services.kinesis.AmazonKinesisClient;
|
||||||
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
|
import software.amazon.kinesis.coordinator.Worker;
|
||||||
import software.amazon.kinesis.processor.IRecordProcessorFactory;
|
import software.amazon.kinesis.processor.IRecordProcessorFactory;
|
||||||
import software.amazon.kinesis.metrics.MetricsLevel;
|
import software.amazon.kinesis.metrics.MetricsLevel;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.coordinator;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.both;
|
import static org.hamcrest.CoreMatchers.both;
|
||||||
import static org.hamcrest.CoreMatchers.equalTo;
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
|
|
@ -64,6 +64,8 @@ import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
||||||
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import org.hamcrest.Condition;
|
import org.hamcrest.Condition;
|
||||||
import org.hamcrest.Description;
|
import org.hamcrest.Description;
|
||||||
import org.hamcrest.Matcher;
|
import org.hamcrest.Matcher;
|
||||||
|
|
@ -104,9 +106,9 @@ import software.amazon.kinesis.processor.IRecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.processor.V1ToV2RecordProcessorFactoryAdapter;
|
import software.amazon.kinesis.processor.V1ToV2RecordProcessorFactoryAdapter;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
import software.amazon.kinesis.processor.v2.IRecordProcessor;
|
||||||
import software.amazon.kinesis.processor.v2.IRecordProcessorFactory;
|
import software.amazon.kinesis.processor.v2.IRecordProcessorFactory;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.WorkerCWMetricsFactory;
|
import software.amazon.kinesis.coordinator.Worker.WorkerCWMetricsFactory;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.WorkerThreadPoolExecutor;
|
import software.amazon.kinesis.coordinator.Worker.WorkerThreadPoolExecutor;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.WorkerStateChangeListener.WorkerState;
|
import software.amazon.kinesis.coordinator.WorkerStateChangeListener.WorkerState;
|
||||||
import software.amazon.kinesis.retrieval.GetRecordsCache;
|
import software.amazon.kinesis.retrieval.GetRecordsCache;
|
||||||
import software.amazon.kinesis.retrieval.GetRecordsRetrievalStrategy;
|
import software.amazon.kinesis.retrieval.GetRecordsRetrievalStrategy;
|
||||||
import software.amazon.kinesis.retrieval.IKinesisProxy;
|
import software.amazon.kinesis.retrieval.IKinesisProxy;
|
||||||
|
|
@ -136,6 +138,8 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import software.amazon.kinesis.utils.TestStreamlet;
|
||||||
|
import software.amazon.kinesis.utils.TestStreamletFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit tests of Worker.
|
* Unit tests of Worker.
|
||||||
|
|
@ -469,7 +473,7 @@ public class WorkerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs worker with threadPoolSize == numShards
|
* Runs worker with threadPoolSize == numShards
|
||||||
* Test method for {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker#run()}.
|
* Test method for {@link Worker#run()}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testRunWithThreadPoolSizeEqualToNumShards() throws Exception {
|
public final void testRunWithThreadPoolSizeEqualToNumShards() throws Exception {
|
||||||
|
|
@ -480,7 +484,7 @@ public class WorkerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs worker with threadPoolSize < numShards
|
* Runs worker with threadPoolSize < numShards
|
||||||
* Test method for {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker#run()}.
|
* Test method for {@link Worker#run()}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testRunWithThreadPoolSizeLessThanNumShards() throws Exception {
|
public final void testRunWithThreadPoolSizeLessThanNumShards() throws Exception {
|
||||||
|
|
@ -491,7 +495,7 @@ public class WorkerTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs worker with threadPoolSize > numShards
|
* Runs worker with threadPoolSize > numShards
|
||||||
* Test method for {@link com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker#run()}.
|
* Test method for {@link Worker#run()}.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public final void testRunWithThreadPoolSizeMoreThanNumShards() throws Exception {
|
public final void testRunWithThreadPoolSizeMoreThanNumShards() throws Exception {
|
||||||
|
|
@ -29,11 +29,10 @@ import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownNotification;
|
import software.amazon.kinesis.coordinator.StreamConfig;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.StreamConfig;
|
|
||||||
import org.hamcrest.Condition;
|
import org.hamcrest.Condition;
|
||||||
import org.hamcrest.Description;
|
import org.hamcrest.Description;
|
||||||
import org.hamcrest.Matcher;
|
import org.hamcrest.Matcher;
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,11 @@ import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.StreamConfig;
|
import software.amazon.kinesis.coordinator.StreamConfig;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ThrottlingReporter;
|
import software.amazon.kinesis.retrieval.ThrottlingReporter;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
|
|
|
||||||
|
|
@ -52,12 +52,11 @@ import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
import software.amazon.kinesis.coordinator.KinesisClientLibConfiguration;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownNotification;
|
import software.amazon.kinesis.coordinator.StreamConfig;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.StreamConfig;
|
import software.amazon.kinesis.utils.TestStreamlet;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.TestStreamlet;
|
|
||||||
import org.hamcrest.Description;
|
import org.hamcrest.Description;
|
||||||
import org.hamcrest.Matcher;
|
import org.hamcrest.Matcher;
|
||||||
import org.hamcrest.TypeSafeMatcher;
|
import org.hamcrest.TypeSafeMatcher;
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ import java.util.Set;
|
||||||
|
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStreamExtended;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer;
|
import software.amazon.kinesis.coordinator.RecordProcessorCheckpointer;
|
||||||
import software.amazon.kinesis.leases.ShardInfo;
|
import software.amazon.kinesis.leases.ShardInfo;
|
||||||
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.TestStreamlet;
|
import software.amazon.kinesis.utils.TestStreamlet;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.retrieval;
|
||||||
|
|
||||||
import static org.mockito.Matchers.anyString;
|
import static org.mockito.Matchers.anyString;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
|
|
@ -24,6 +24,7 @@ import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.runners.MockitoJUnitRunner;
|
import org.mockito.runners.MockitoJUnitRunner;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
import software.amazon.kinesis.retrieval.ThrottlingReporter;
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
public class ThrottlingReporterTest {
|
public class ThrottlingReporterTest {
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Amazon Software License (the "License").
|
* Licensed under the Amazon Software License (the "License").
|
||||||
* You may not use this file except in compliance with the License.
|
* You may not use this file except in compliance with the License.
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.utils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
@ -138,7 +138,7 @@ public class TestStreamlet implements IRecordProcessor, IShutdownNotificationAwa
|
||||||
/**
|
/**
|
||||||
* @return the shardId
|
* @return the shardId
|
||||||
*/
|
*/
|
||||||
String getShardId() {
|
public String getShardId() {
|
||||||
return shardId;
|
return shardId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -152,7 +152,7 @@ public class TestStreamlet implements IRecordProcessor, IShutdownNotificationAwa
|
||||||
/**
|
/**
|
||||||
* @return the numProcessRecordsCallsWithEmptyRecordList
|
* @return the numProcessRecordsCallsWithEmptyRecordList
|
||||||
*/
|
*/
|
||||||
long getNumProcessRecordsCallsWithEmptyRecordList() {
|
public long getNumProcessRecordsCallsWithEmptyRecordList() {
|
||||||
return numProcessRecordsCallsWithEmptyRecordList;
|
return numProcessRecordsCallsWithEmptyRecordList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Amazon Software License (the "License").
|
* Licensed under the Amazon Software License (the "License").
|
||||||
* You may not use this file except in compliance with the License.
|
* You may not use this file except in compliance with the License.
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
* express or implied. See the License for the specific language governing
|
* express or implied. See the License for the specific language governing
|
||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.amazonaws.services.kinesis.clientlibrary.lib.worker;
|
package software.amazon.kinesis.utils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -25,7 +25,7 @@ import software.amazon.kinesis.processor.v2.IRecordProcessorFactory;
|
||||||
/**
|
/**
|
||||||
* Factory for TestStreamlet record processors.
|
* Factory for TestStreamlet record processors.
|
||||||
*/
|
*/
|
||||||
class TestStreamletFactory implements IRecordProcessorFactory {
|
public class TestStreamletFactory implements IRecordProcessorFactory {
|
||||||
|
|
||||||
// Will be passed to the TestStreamlet. Can be used to check if all records have been processed.
|
// Will be passed to the TestStreamlet. Can be used to check if all records have been processed.
|
||||||
private Semaphore semaphore;
|
private Semaphore semaphore;
|
||||||
|
|
@ -35,7 +35,7 @@ class TestStreamletFactory implements IRecordProcessorFactory {
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*/
|
*/
|
||||||
TestStreamletFactory(Semaphore semaphore, ShardSequenceVerifier shardSequenceVerifier) {
|
public TestStreamletFactory(Semaphore semaphore, ShardSequenceVerifier shardSequenceVerifier) {
|
||||||
this.semaphore = semaphore;
|
this.semaphore = semaphore;
|
||||||
this.shardSequenceVerifier = shardSequenceVerifier;
|
this.shardSequenceVerifier = shardSequenceVerifier;
|
||||||
}
|
}
|
||||||
|
|
@ -51,14 +51,14 @@ class TestStreamletFactory implements IRecordProcessorFactory {
|
||||||
return semaphore;
|
return semaphore;
|
||||||
}
|
}
|
||||||
|
|
||||||
ShardSequenceVerifier getShardSequenceVerifier() {
|
public ShardSequenceVerifier getShardSequenceVerifier() {
|
||||||
return shardSequenceVerifier;
|
return shardSequenceVerifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the testStreamlets
|
* @return the testStreamlets
|
||||||
*/
|
*/
|
||||||
List<TestStreamlet> getTestStreamlets() {
|
public List<TestStreamlet> getTestStreamlets() {
|
||||||
return testStreamlets;
|
return testStreamlets;
|
||||||
}
|
}
|
||||||
|
|
||||||
Loading…
Reference in a new issue