diff --git a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfigurator.java b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfigurator.java index 33c51a91..d4194a10 100644 --- a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfigurator.java +++ b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfigurator.java @@ -74,15 +74,15 @@ public class KinesisClientLibConfigurator { }); Validate.notBlank(configuration.getApplicationName(), "Application name is required"); + try { + Validate.notBlank(configuration.getStreamName(), ""); + }catch (Exception e) { + Validate.notBlank(configuration.getStreamArn(), "Stream name or Stream Arn is required. (Stream Name takes precedence if both are passed in)"); Arn streamArnObj = Arn.fromString(configuration.getStreamArn()); String streamNameFromArn = streamArnObj.getResource().getResource(); - Validate.notBlank(streamNameFromArn, ""); - - //Stream Arn takes precedence. Override existing configuration with the stream name found in the Arn configuration.setStreamName(streamNameFromArn); - }catch (Exception e) { - Validate.notBlank(configuration.getStreamName(), "Stream name or Stream Arn is required. (Stream Arn takes precedence if both are passed in)"); + } Validate.isTrue(configuration.getKinesisCredentialsProvider().isDirty(), "A basic set of AWS credentials must be provided"); return configuration; diff --git a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/MultiLangDaemonConfigTest.java b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/MultiLangDaemonConfigTest.java index d73a808c..c4662fa8 100644 --- a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/MultiLangDaemonConfigTest.java +++ b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/MultiLangDaemonConfigTest.java @@ -143,12 +143,12 @@ public class MultiLangDaemonConfigTest { } @Test - public void testConstructorUsingStreamArnOverStreamName() throws IOException { + public void testConstructorUsingStreamNameOverStreamArn() throws IOException { setup(TestStreamName, TestStreamArn); MultiLangDaemonConfig deamonConfig = new MultiLangDaemonConfig(FILENAME, classLoader, configurator); - AssertConfigurationsMatch(deamonConfig, TestExe, TestApplicationName, TestStreamNameInArn); + AssertConfigurationsMatch(deamonConfig, TestExe, TestApplicationName, TestStreamName); } /** diff --git a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfiguratorTest.java b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfiguratorTest.java index 5a484bfc..59e9ee64 100644 --- a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfiguratorTest.java +++ b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/KinesisClientLibConfiguratorTest.java @@ -308,7 +308,7 @@ public class KinesisClientLibConfiguratorTest { @Test public void testWithMissingStreamNameAndMissingStreamArn() { thrown.expect(NullPointerException.class); - thrown.expectMessage("Stream name or Stream Arn is required. (Stream Arn takes precedence if both are passed in)"); + thrown.expectMessage("Stream name or Stream Arn is required. (Stream Name takes precedence if both are passed in)"); String test = StringUtils.join(new String[] { "applicationName = b", @@ -323,7 +323,7 @@ public class KinesisClientLibConfiguratorTest { @Test public void testWithEmptyStreamNameAndMissingStreamArn() { thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("Stream name or Stream Arn is required. (Stream Arn takes precedence if both are passed in)"); + thrown.expectMessage("Stream name or Stream Arn is required. (Stream Name takes precedence if both are passed in)"); String test = StringUtils.join(new String[] { "applicationName = b",