diff --git a/CHANGELOG.md b/CHANGELOG.md
index 47a2b308..2efb26cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,33 @@
# Changelog
+### Release 2.0.1 (August 21, 2018)
+* Mark certain internal components with `@KinesisClientInternalApi` attribute.
+ Components marked as internal may be deprecated at a faster rate than public components.
+ * [PR #358](https://github.com/awslabs/amazon-kinesis-client/pull/358)
+* Fixed an issue where `ResourceNotFoundException` on subscription to a shard was not triggering end of shard handling.
+ If a lease table contains a shard that is no longer present in the stream attempt to subscribe to that shard will trigger a `ResourceNotFoundException`. These exception are treated the same as reaching the end of a shard.
+ * [PR #359](https://github.com/awslabs/amazon-kinesis-client/pull/359)
+* Fixed an issue where the KCL would not Use the configured DynamoDB IOPs when creating the lease table.
+ * [PR #360](https://github.com/awslabs/amazon-kinesis-client/pull/360)
+* Make the maximum number of Scheduler initialization attempts configurable.
+ The maximum number of `Scheduler` initialization attempts can be configured via `LifecycleConfig#maxInitializationAttempts`.
+ * [PR #363](https://github.com/awslabs/amazon-kinesis-client/pull/363)
+* Fixed an issue where it was possible to get a duplicate record when resubscribing to a shard.
+ Subscribe to shard requires periodic resubscribing, and uses a new concept of a continuation sequence number. If the continuation sequence number was equal to the last record that record would be processed a second time. Resubscribing now uses `AFTER_SEQUENCE_NUMBER` to ensure that only later records are returned.
+ * [PR #371](https://github.com/awslabs/amazon-kinesis-client/pull/371)
+* Upgraded to AWS SDK 2.0.1
+ * [PR #372](https://github.com/awslabs/amazon-kinesis-client/pull/372)
+* Fixed an issue where time based restart of the subscription wasn't resetting the `lastRequestTime`.
+ If a subscription hasn't delivered any data for more than 30 seconds it will be canceled and restarted. This detection is based of the `lastRequestTime` which wasn't getting reset after the restart was triggered.
+ * [PR #373](https://github.com/awslabs/amazon-kinesis-client/pull/373)
+* Fixed an issue where requesting on the subscription from the `FanOutRecordsPublisher` could trigger an unexpected failure.
+ Due to a race condition the underlying flow in the subscription could be set to something else. The method is now synchronized, and verifies that the subscriber it was created with is still the subscriber in affect.
+ This issue generally would only appear when multiple errors were occurring while connecting to Kinesis.
+ * [PR #374](https://github.com/awslabs/amazon-kinesis-client/pull/374)
+* Fixed an issue where the number of requested items could exceed the capacity of the RxJava queue.
+ There was an off by one issue when determining whether to make a request to the SDK subscription. This changes the calculation to represent the capacity as a queue.
+ * [PR #375](https://github.com/awslabs/amazon-kinesis-client/pull/375)
+
### Release 2.0.0 (August 02, 2018)
* The Maven `groupId`, along with the `version`, for the Amazon Kinesis Client has changed from `com.amazonaws` to `software.amazon.kinesis`.
To add a dependency on the new version of the Amazon Kinesis Client:
diff --git a/README.md b/README.md
index db7fde8b..c9f64ee0 100644
--- a/README.md
+++ b/README.md
@@ -30,61 +30,33 @@ To make it easier for developers to write record processors in other languages,
## Release Notes
-### Latest Release (2.0.0)
-* The Maven `groupId`, along with the `version`, for the Amazon Kinesis Client has changed from `com.amazonaws` to `software.amazon.kinesis`.
- To add a dependency on the new version of the Amazon Kinesis Client:
- ``` xml
-
- software.amazon.kinesis
- amazon-kinesis-client
- 2.0.0
-
- ```
-* Added support for Enhanced Fan Out.
- Enhanced Fan Out provides for lower end to end latency, and increased number of consumers per stream.
- * Records are now delivered via streaming, reducing end-to-end latency.
- * The Amazon Kinesis Client will automatically register a new consumer if required.
- When registering a new consumer, the Kinesis Client will default to the application name unless configured otherwise.
- * `SubscribeToShard` maintains long lived connections with Kinesis, which in the AWS Java SDK 2.0 is limited by default.
- The `KinesisClientUtil` has been added to assist configuring the `maxConcurrency` of the `KinesisAsyncClient`.
- __WARNING: The Amazon Kinesis Client may see significantly increased latency, unless the `KinesisAsyncClient` is configured to have a `maxConcurrency` high enough to allow all leases plus additional usages of the `KinesisAsyncClient`.__
- * The Amazon Kinesis Client now uses additional Kinesis API's:
- __WARNING: If using a restrictive Kinesis IAM policy you may need to add the following API methods to the policy.__
- * [`SubscribeToShard`](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html)
- * [`DescribeStreamSummary`](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamSummary.html)
- * [`DescribeStreamConsumer`](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamConsumer.html)
- * [`RegisterStreamConsumer`](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_RegisterStreamConsumer.html)
- * New configuration options are available to configure Enhanced Fan Out.
-
- | Name | Default | Description |
- |-----------------|---------|---------------------------------------------------------------------------------------------------------------------|
- | consumerArn | Unset | The ARN for an already created consumer. If this is set, the Kinesis Client will not attempt to create a consumer. |
- | streamName | Unset | The name of the stream that a consumer should be create for if necessary |
- | consumerName | Unset | The name of the consumer to create. If this is not set the applicationName will be used instead. |
- | applicationName | Unset | The name of the application. This is used as the name of the consumer unless consumerName is set. |
-
-* Modular Configuration of the Kinesis Client
- The Kinesis Client has migrated to a modular configuration system, and the `KinesisClientLibConfiguration` class has been removed.
- Configuration has been split into 7 classes. Default versions of the configuration can be created from the `ConfigsBuilder`.
- Please [see the migration guide for more information][migration-guide].
- * `CheckpointConfig`
- * `CoordinatorConfig`
- * `LeaseManagementConfig`
- * `LifecycleConfig`
- * `MetricsConfig`
- * `ProcessorConfig`
- * `RetrievalConfig`
-
-* Upgraded to AWS Java SDK 2.0
- The Kinesis Client now uses the AWS Java SDK 2.0. The dependency on AWS Java SDK 1.11 has been removed.
- All configurations will only accept 2.0 clients.
- * When configuring the `KinesisAsyncClient` the `KinesisClientUtil#createKinesisAsyncClient` can be used to configure the Kinesis Client
- * __If you need support for AWS Java SDK 1.11 you will need to add a direct dependency.__
- __When adding a dependency you must ensure that the 1.11 versions of Jackson dependencies are excluded__
- [Please see the migration guide for more information][migration-guide]
-
-* MultiLangDaemon is now a separate module
- The MultiLangDaemon has been separated to its own Maven module and is no longer available in `amazon-kinesis-client`. To include the MultiLangDaemon, add a dependency on `amazon-kinesis-client-multilang`.
+### Latest Release (2.0.1)
+* Mark certain internal components with `@KinesisClientInternalApi` attribute.
+ Components marked as internal may be deprecated at a faster rate than public components.
+ * [PR #358](https://github.com/awslabs/amazon-kinesis-client/pull/358)
+* Fixed an issue where `ResourceNotFoundException` on subscription to a shard was not triggering end of shard handling.
+ If a lease table contains a shard that is no longer present in the stream attempt to subscribe to that shard will trigger a `ResourceNotFoundException`. These exception are treated the same as reaching the end of a shard.
+ * [PR #359](https://github.com/awslabs/amazon-kinesis-client/pull/359)
+* Fixed an issue where the KCL would not Use the configured DynamoDB IOPs when creating the lease table.
+ * [PR #360](https://github.com/awslabs/amazon-kinesis-client/pull/360)
+* Make the maximum number of Scheduler initialization attempts configurable.
+ The maximum number of `Scheduler` initialization attempts can be configured via `LifecycleConfig#maxInitializationAttempts`.
+ * [PR #363](https://github.com/awslabs/amazon-kinesis-client/pull/363)
+* Fixed an issue where it was possible to get a duplicate record when resubscribing to a shard.
+ Subscribe to shard requires periodic resubscribing, and uses a new concept of a continuation sequence number. If the continuation sequence number was equal to the last record that record would be processed a second time. Resubscribing now uses `AFTER_SEQUENCE_NUMBER` to ensure that only later records are returned.
+ * [PR #371](https://github.com/awslabs/amazon-kinesis-client/pull/371)
+* Upgraded to AWS SDK 2.0.1
+ * [PR #372](https://github.com/awslabs/amazon-kinesis-client/pull/372)
+* Fixed an issue where time based restart of the subscription wasn't resetting the `lastRequestTime`.
+ If a subscription hasn't delivered any data for more than 30 seconds it will be canceled and restarted. This detection is based of the `lastRequestTime` which wasn't getting reset after the restart was triggered.
+ * [PR #373](https://github.com/awslabs/amazon-kinesis-client/pull/373)
+* Fixed an issue where requesting on the subscription from the `FanOutRecordsPublisher` could trigger an unexpected failure.
+ Due to a race condition the underlying flow in the subscription could be set to something else. The method is now synchronized, and verifies that the subscriber it was created with is still the subscriber in affect.
+ This issue generally would only appear when multiple errors were occurring while connecting to Kinesis.
+ * [PR #374](https://github.com/awslabs/amazon-kinesis-client/pull/374)
+* Fixed an issue where the number of requested items could exceed the capacity of the RxJava queue.
+ There was an off by one issue when determining whether to make a request to the SDK subscription. This changes the calculation to represent the capacity as a queue.
+ * [PR #375](https://github.com/awslabs/amazon-kinesis-client/pull/375)
### For remaining release notes check **[CHANGELOG.md][changelog-md]**.
diff --git a/amazon-kinesis-client-multilang/pom.xml b/amazon-kinesis-client-multilang/pom.xml
index 7f60226a..03f4b89f 100644
--- a/amazon-kinesis-client-multilang/pom.xml
+++ b/amazon-kinesis-client-multilang/pom.xml
@@ -19,7 +19,7 @@
amazon-kinesis-client-pom
software.amazon.kinesis
- 2.0.1-SNAPSHOT
+ 2.0.1
4.0.0
diff --git a/amazon-kinesis-client/pom.xml b/amazon-kinesis-client/pom.xml
index 43bff294..c4f20ffd 100644
--- a/amazon-kinesis-client/pom.xml
+++ b/amazon-kinesis-client/pom.xml
@@ -20,7 +20,7 @@
software.amazon.kinesis
amazon-kinesis-client-pom
- 2.0.1-SNAPSHOT
+ 2.0.1
amazon-kinesis-client
diff --git a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/retrieval/RetrievalConfig.java b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/retrieval/RetrievalConfig.java
index b97e798c..3252afc3 100644
--- a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/retrieval/RetrievalConfig.java
+++ b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/retrieval/RetrievalConfig.java
@@ -34,7 +34,7 @@ public class RetrievalConfig {
*/
public static final String KINESIS_CLIENT_LIB_USER_AGENT = "amazon-kinesis-client-library-java";
- public static final String KINESIS_CLIENT_LIB_USER_AGENT_VERSION = "2.0.0";
+ public static final String KINESIS_CLIENT_LIB_USER_AGENT_VERSION = "2.0.1";
/**
* Client used to make calls to Kinesis for records retrieval
diff --git a/pom.xml b/pom.xml
index 42b2dba3..cbdf809a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
amazon-kinesis-client-pom
pom
Amazon Kinesis Client Library
- 2.0.1-SNAPSHOT
+ 2.0.1
The Amazon Kinesis Client Library for Java enables Java developers to easily consume and process data
from Amazon Kinesis.