Adding default region as us-east-1 for client creation if region and endpoint are not set.
This commit is contained in:
parent
5f7cbdc02f
commit
1e7e0179f9
2 changed files with 24 additions and 9 deletions
|
|
@ -32,6 +32,7 @@ import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
|
import com.amazonaws.regions.Regions;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
@ -1163,6 +1164,7 @@ public class Worker implements Runnable {
|
||||||
private ShardPrioritization shardPrioritization;
|
private ShardPrioritization shardPrioritization;
|
||||||
@Setter @Accessors(fluent = true)
|
@Setter @Accessors(fluent = true)
|
||||||
private IKinesisProxy kinesisProxy;
|
private IKinesisProxy kinesisProxy;
|
||||||
|
@Setter @Accessors(fluent = true)
|
||||||
private WorkerStateChangeListener workerStateChangeListener;
|
private WorkerStateChangeListener workerStateChangeListener;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
|
@ -1331,6 +1333,9 @@ public class Worker implements Runnable {
|
||||||
} else if (StringUtils.isNotEmpty(region)) {
|
} else if (StringUtils.isNotEmpty(region)) {
|
||||||
LOG.debug("The region for the client has been set to " + region);
|
LOG.debug("The region for the client has been set to " + region);
|
||||||
builder.withRegion(region);
|
builder.withRegion(region);
|
||||||
|
} else {
|
||||||
|
LOG.debug("Endpoint URL and region are not set, setting region to us-east-1");
|
||||||
|
builder.withRegion(Regions.US_EAST_1);
|
||||||
}
|
}
|
||||||
return (AmazonWebServiceClient) builder.build();
|
return (AmazonWebServiceClient) builder.build();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
import static org.hamcrest.CoreMatchers.isA;
|
import static org.hamcrest.CoreMatchers.isA;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
@ -67,8 +66,6 @@ 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.ClientConfiguration;
|
|
||||||
import com.amazonaws.client.builder.AwsClientBuilder;
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.hamcrest.Condition;
|
import org.hamcrest.Condition;
|
||||||
|
|
@ -80,13 +77,17 @@ import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.ArgumentCaptor;
|
||||||
import org.mockito.Matchers;
|
import org.mockito.Matchers;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.invocation.InvocationOnMock;
|
import org.mockito.invocation.InvocationOnMock;
|
||||||
import org.mockito.runners.MockitoJUnitRunner;
|
import org.mockito.runners.MockitoJUnitRunner;
|
||||||
import org.mockito.stubbing.Answer;
|
import org.mockito.stubbing.Answer;
|
||||||
|
|
||||||
|
import com.amazonaws.ClientConfiguration;
|
||||||
|
import com.amazonaws.client.builder.AwsClientBuilder;
|
||||||
import com.amazonaws.regions.RegionUtils;
|
import com.amazonaws.regions.RegionUtils;
|
||||||
|
import com.amazonaws.regions.Regions;
|
||||||
import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
|
import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
|
||||||
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
|
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
|
||||||
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
|
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
|
||||||
|
|
@ -1646,7 +1647,7 @@ public class WorkerTest {
|
||||||
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
||||||
final String endpoint = "TestEndpoint";
|
final String endpoint = "TestEndpoint";
|
||||||
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
||||||
.withRegionName("us-west-2")
|
.withRegionName(Regions.US_WEST_2.getName())
|
||||||
.withKinesisEndpoint(endpoint)
|
.withKinesisEndpoint(endpoint)
|
||||||
.withDynamoDBEndpoint(endpoint);
|
.withDynamoDBEndpoint(endpoint);
|
||||||
|
|
||||||
|
|
@ -1672,7 +1673,7 @@ public class WorkerTest {
|
||||||
@Test
|
@Test
|
||||||
public void testBuilderSetRegionToClient() {
|
public void testBuilderSetRegionToClient() {
|
||||||
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
||||||
String region = "us-west-2";
|
String region = Regions.US_WEST_2.getName();
|
||||||
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
||||||
.withRegionName(region);
|
.withRegionName(region);
|
||||||
|
|
||||||
|
|
@ -1702,6 +1703,7 @@ public class WorkerTest {
|
||||||
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
||||||
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null);
|
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null);
|
||||||
Worker.Builder builder = spy(new Worker.Builder().recordProcessorFactory(recordProcessorFactory).config(config));
|
Worker.Builder builder = spy(new Worker.Builder().recordProcessorFactory(recordProcessorFactory).config(config));
|
||||||
|
ArgumentCaptor<AwsClientBuilder> builderCaptor = ArgumentCaptor.forClass(AwsClientBuilder.class);
|
||||||
|
|
||||||
assertNull(builder.getKinesisClient());
|
assertNull(builder.getKinesisClient());
|
||||||
assertNull(builder.getDynamoDBClient());
|
assertNull(builder.getDynamoDBClient());
|
||||||
|
|
@ -1714,28 +1716,36 @@ public class WorkerTest {
|
||||||
assertTrue(builder.getCloudWatchClient() instanceof AmazonCloudWatch);
|
assertTrue(builder.getCloudWatchClient() instanceof AmazonCloudWatch);
|
||||||
|
|
||||||
verify(builder, times(3)).createClient(
|
verify(builder, times(3)).createClient(
|
||||||
any(AwsClientBuilder.class), eq(null), any(ClientConfiguration.class), eq(null), eq(null));
|
builderCaptor.capture(), eq(null), any(ClientConfiguration.class), eq(null), eq(null));
|
||||||
|
|
||||||
|
builderCaptor.getAllValues().forEach(clientBuilder -> {
|
||||||
|
assertTrue(clientBuilder.getRegion().equals(Regions.US_EAST_1.getName()));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBuilderGenerateClientsWithRegion() {
|
public void testBuilderGenerateClientsWithRegion() {
|
||||||
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
||||||
String region = "us-west-2";
|
String region = Regions.US_WEST_2.getName();
|
||||||
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
||||||
.withRegionName(region);
|
.withRegionName(region);
|
||||||
|
ArgumentCaptor<AwsClientBuilder> builderCaptor = ArgumentCaptor.forClass(AwsClientBuilder.class);
|
||||||
|
|
||||||
Worker.Builder builder = spy(new Worker.Builder());
|
Worker.Builder builder = spy(new Worker.Builder());
|
||||||
|
|
||||||
builder.recordProcessorFactory(recordProcessorFactory).config(config).build();
|
builder.recordProcessorFactory(recordProcessorFactory).config(config).build();
|
||||||
|
|
||||||
verify(builder, times(3)).createClient(
|
verify(builder, times(3)).createClient(
|
||||||
any(AwsClientBuilder.class), eq(null), any(ClientConfiguration.class), eq(null), eq(region));
|
builderCaptor.capture(), eq(null), any(ClientConfiguration.class), eq(null), eq(region));
|
||||||
|
builderCaptor.getAllValues().forEach(clientBuilder -> {
|
||||||
|
assertTrue(clientBuilder.getRegion().equals(region));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBuilderGenerateClientsWithEndpoint() {
|
public void testBuilderGenerateClientsWithEndpoint() {
|
||||||
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
IRecordProcessorFactory recordProcessorFactory = mock(IRecordProcessorFactory.class);
|
||||||
String region = "us-west-2";
|
String region = Regions.US_WEST_2.getName();
|
||||||
String endpointUrl = "TestEndpoint";
|
String endpointUrl = "TestEndpoint";
|
||||||
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
KinesisClientLibConfiguration config = new KinesisClientLibConfiguration("TestApp", null, null, null)
|
||||||
.withRegionName(region).withKinesisEndpoint(endpointUrl).withDynamoDBEndpoint(endpointUrl);
|
.withRegionName(region).withKinesisEndpoint(endpointUrl).withDynamoDBEndpoint(endpointUrl);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue