Commit graph

64 commits

Author SHA1 Message Date
Justin Pfifer
030ae1cb15 Disable doclint When Building With Java 8 (#141)
Disable the JavaDoc doclint when building with Java 8.  Java 8 became
much more pedantic on bad practices, and the documentation hasn't been
cleaned up.
2017-02-17 10:32:21 -08:00
Justin Pfifer
2967f2a18c Reduce Throttling Error Reports (#140)
* Reduce Throttling Error Reports

Only report a throttling error if their are 6 consecutive throttles.
Moved the logging of throttling messages to the throttling
reporter.
2017-02-17 09:52:47 -08:00
Justin Pfifer
31615a5d18 Handle No Lease, and Lease Loss in requestShutdown. (#139)
* Handle No Lease, and Lease Loss in requestShutdown.

Ensure that the Worker is shutdown if there are no leases.  Handle the
case where a lease is lost during the notification process.

* Add some more comments around possible race conditions.
2017-02-17 09:32:26 -08:00
Justin Pfifer
bf7152475a Use the Current Version of the AWS Java SDK (#138)
Updated to the 1.11.91 version of the AWS Java SDK.
2017-02-17 09:19:31 -08:00
Pfifer, Justin
037e886a76 Advance Version to 1.7.4-SNAPSHOT
Advance the version to 1.7.4-SNAPSHOT in preparation of the next release.
2017-02-17 09:09:02 -08:00
Justin Pfifer
3d18e484cf Release 1.7.3 of the Amazon Kinesis Client (#131)
* Upgrade to the newest AWS Java SDK.
  * Issue awslabs/amazon-kinesis-client-python#27
  * PR #126
  * PR #125
* Added a direct dependency on commons-logging.
  * Issue #123
  * PR #124
* Make ShardInfo public to allow for custom ShardPrioritization strategies.
  * Issue #120
  * PR #127
2017-01-20 09:05:54 -08:00
Jim Slattery
d8276e60cd Update README: fix 'MultiLangDaemon' typo (#130) 2017-01-20 08:47:09 -08:00
Justin Pfifer
a7b16b49d9 Make ShardInfo Public, and Update Documentation (#127)
Made the ShardInfo class public, and updated the documentation for a
number of the properties.

This will allow users to implement custom shard prioritization
strategies.

Fixes:
Issue #120
2017-01-09 08:11:01 -08:00
Justin Pfifer
b607df3823 Update to newest AWS Java SDK (#126)
Updated to the newest version of the AWS Java SDK.

Fixes:
Amazon Kinesis Client for Python Issue awslabs/amazon-kinesis-client-python#27

Related:
PR #125
2017-01-09 08:10:38 -08:00
Justin Pfifer
7acd0fb6d2 Add Direct Dependency on Commons Log (#124)
* Add Direct Dependency on Commons Log

Commons log was a transient dependency, but should have been a direct
dependency.  Now take a direct dependency on it.

* Move to Next Release Version Snapshot

Changed version to 1.7.3-SNAPSHOT for next release.
2017-01-03 14:50:29 -08:00
Pfifer, Justin
0954ed8b26 Release 1.7.2 of the Amazon Kinesis Client Library
MultiLangDaemon Feature Updates

The MultiLangDaemon has been upgraded to use the v2 interfaces, which allows access to enhanced checkpointing, and more information during record processor initialization. The MultiLangDaemon clients must be updated before they can take advantage of these new features.
2016-11-07 11:50:06 -08:00
Justin Pfifer
5d045521ce Update MultiLangDaemon to Support New Features (#118)
Updated the MultiLangDaemon to use the v2 record processor interfaces, and added features to messages passed to MultiLangDaemon clients.

These changes will require updates to the various MultiLangDaemon clients. The changes for the Python version are complete, and other versions will be updated later.
2016-11-07 11:38:04 -08:00
Pfifer, Justin
ed7d069e50 Move Version to 1.7.2-SNAPSHOT for Development
Move to the next expected release version for upcoming development.
2016-11-04 08:42:33 -07:00
Justin Pfifer
929abea107 Release 1.7.1 of the Amazon Kinesis Client Library (#116)
* General
  * Allow disabling shard synchronization at startup.
    * Applications can disable shard synchronization at startup.  Disabling shard synchronization can application startup times for very large streams.
    * [PR #102](https://github.com/awslabs/amazon-kinesis-client/pull/102)
  * Applications can now request a graceful shutdown, and record processors that implement the IShutdownNotificationAware will be given a chance to checkpoint before being shutdown.
    * This adds a [new interface](https://github.com/awslabs/amazon-kinesis-client/blob/master/src/main/java/com/amazonaws/services/kinesis/clientlibrary/interfaces/v2/IShutdownNotificationAware.java), and a [new method on Worker](https://github.com/awslabs/amazon-kinesis-client/blob/master/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java#L539).
    * [PR #109](https://github.com/awslabs/amazon-kinesis-client/pull/109)
    * Solves [Issue #79](https://github.com/awslabs/amazon-kinesis-client/issues/79)
* MultiLangDaemon
  * Applications can now use credential provides that accept string parameters.
    * [PR #99](https://github.com/awslabs/amazon-kinesis-client/pull/99)
  * Applications can now use different credentials for each service.
    * [PR #111](https://github.com/awslabs/amazon-kinesis-client/pull/111)
2016-11-03 09:46:11 -07:00
Justin Pfifer
26e67a33b1 Allow for a Graceful Shutdown of the Worker (#109)
Add a new method to the worker requestShutdown that allows the worker to
gracefully shutdown all record processors.  The graceful shutdown gives
the record processors a last chance to checkpoint before they're
terminated.

To use these new features the record processor must implement
IShutdownnotificationaware.
2016-10-26 12:57:50 -07:00
Josh
db314b970b Allow for credential providers with basic arg types (#99)
* Add support for configuring DynamoDB endpoint

Adding a new field named `dynamoDBEndpoint` to the .properties file
that gets passed into the KCL multi-lang daemon. We need this ability
to point the KCL worker at a local instance of DynamoDB rather than in
AWS.

* Added the ability to use AWSCredentialsProvider's that require non-empty contructor args e.g. ProfileCredentialsProvider where you provide the profile name to use from your ~/.aws/credentials file

* Created a constructor without the dynamoDBEndpoint argument i.e. same arguments before the dynamo change, for backwards compatibility
2016-10-14 10:05:44 -07:00
Justin Pfifer
56c59f685a Allow Disabling Shard Sync at Startup (#102)
Allow disabling the shard sync at startup if the lease table already
contains leases.  This will reduce the startup load for larger streams
when restarted the Kinesis application.
2016-10-14 08:11:32 -07:00
Randy Findley
5c497d87a9 Feature/multiple cred providers (#111)
* Add ability to specify different credential providers for Kinesis, DynamoDB, and CloudWatch.  This is needed when accessing a cross-account Kineses stream using an assumed role.

* Fix copy/paste mistake.

* Update tests.

Thanks to rgfindl@
2016-10-14 08:10:38 -07:00
Pfifer, Justin
51663f96c7 Move Version to Next Development Version
Adjusted the version to 1.7.1-SNAPSHOT for current development.
2016-09-01 07:36:20 -07:00
Pfifer, Justin
8a32e89fe9 Version 1.7.0 of the Amazon Kinesis Client Library
* Add support for time based iterators ([See GetShardIterator Documentation](http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html))
  * [PR #94](https://github.com/awslabs/amazon-kinesis-client/pull/94)
  The `KinesisClientLibConfiguration` now supports providing an initial time stamp position.
  * This position is only used if there is no current checkpoint for the shard.
  * This setting cannot be used with DynamoDB Streams
  Resolves [Issue #88](https://github.com/awslabs/amazon-kinesis-client/issues/88)
* Allow Prioritization of Parent Shards for Task Assignment
  * [PR #95](https://github.com/awslabs/amazon-kinesis-client/pull/95)
  The `KinesisClientLibconfiguration` now supports providing a `ShardPrioritization` strategy.  This strategy controls how the `Worker` determines which `ShardConsumer` to call next.  This can improve processing for streams that split often, such as DynamoDB Streams.
* Remove direct dependency on `aws-java-sdk-core`, to allow independent versioning.
  * [PR #92](https://github.com/awslabs/amazon-kinesis-client/pull/92)
  **You may need to add a direct dependency on aws-java-sdk-core if other dependencies include an older version.**
2016-08-22 12:55:19 -07:00
Justin Pfifer
1d0ce08667 Merge pull request #98 from pfifer/tbsi-logging-issue
Prevent Spurious Info Message on getIterator
2016-08-22 08:42:45 -07:00
Pfifer, Justin
4cbb6d851e Prevent Spurious Info Message on getIterator
Clean up check for ShardIteratorType to prevent emitting a spurious message for every call to GetIterator
Add missing KinesisProxyTest, and add 3 new tests for getIterator.
2016-08-22 08:26:22 -07:00
Justin Pfifer
a02022fb0f Merge pull request #97 from pfifer/shard-info-equals
Don't Use Checkpoint for Equality in ShardInfo
2016-08-17 14:59:43 -07:00
Pfifer, Justin
6ea3c0f8dd Don't Use Checkpoint for Equality in ShardInfo
Don't include checkpoint in hashCode/equality for ShardInfo, since it
changes. Checkpointing would cause the Worker to recreate the
ShardConsumer.  Add unit tests that verify the equality constraints.

Remove the equality test for checkpoint from ShardInfoTests.  Nothing
appears to rely on the checkpoint being part of ShardInfo.

Fix WorkerTest broken in overzealous simplification.
2016-08-17 14:46:51 -07:00
Justin Pfifer
17aa07c071 Merge pull request #95 from pfifer/shard-prioritization
Allow Prioritization of Parent Shard Tasks
2016-08-17 08:17:04 -07:00
Pfifer, Justin
85b6b9f151 Allow Prioritization of Parent Shard Tasks
Added a new interface that allows the worker to prioritize which lease
assignment it will work on next.  When using the
ParentsFirstshardprioritization the worker will select parents for
processing before selecting children.  This will prevent ShardConsumers
from spending time sleeping in the WAITING_ON_PARENT_SHARDS state.
2016-08-17 07:45:33 -07:00
Justin Pfifer
e28ca002de Merge pull request #92 from shorea/master
Removing explicit dependency on core
2016-08-11 12:47:16 -07:00
Justin Pfifer
33e37ef10a Merge pull request #94 from pfifer/time-based-iterators
Added Support for Time based iterators
2016-08-11 12:46:19 -07:00
Justin Pfifer
18fc581ceb Merge pull request #93 from pfifer/master
Move to Snapshot Version Number for Next Release
2016-08-11 12:46:10 -07:00
Justin Pfifer
bdab058394 Merge pull request #44 from raphaelfeng/master
Fix a typo in the comment of KinesisClientLibConfiguration
2016-08-11 09:54:14 -07:00
Pfifer, Justin
aa47fce30b Added Time Based Iterator Support
Added support for time based iterators.  Time based iterators are only
used if there is no current checkpoint for that shard, otherwise the
sequence number of the checkpoint is used.
2016-08-11 09:20:25 -07:00
Pfifer, Justin
38e2adb389 Move to snapshot for next release which will be 1.7.0 2016-08-11 08:41:39 -07:00
Andrew Shore
9fbc9a34d0 Removing explicit dependency on core 2016-08-08 13:12:32 -07:00
Pfifer, Justin
41832de928 Version 1.6.5 of the Amazon Kinesis Client Library 2016-07-25 12:38:54 -07:00
Pfifer, Justin
53754ae567 Add Continuous Integration Badge
Added badge from Travis CI for the automatic builds.
2016-07-21 13:52:18 -07:00
Pfifer, Justin
8fc5dd5862 Check if Table Exists Before Creation
Attempt to see if the lease table exists before attempting to create it.

Related/Fixes
PR#67 - https://github.com/awslabs/amazon-kinesis-client/pull/67
2016-07-21 13:42:01 -07:00
Justin Pfifer
2104f358c6 Merge pull request #86 from zdjohn/master
expose approximateArrivalTimestamp from JsonFriendlyRecord
2016-07-21 09:58:58 -07:00
Justin Pfifer
d695c0ab80 Merge pull request #84 from rankinc/lease-renewal-threads
Always shutdown leaseRenewalThreadpool on exit.
2016-07-21 09:58:26 -07:00
Justin Pfifer
c936b63808 Merge pull request #82 from rankinc/shutdown-cloudwatch-metrics
Join metrics publishing thread when shutting factory down.
2016-07-21 09:57:57 -07:00
Pfifer, Justin
586e97405e Fix Race Condition on Worker Test
The test 'testWorkerForcefulShutdown' was using Thread.sleep() to create
the conditions for an interrupted state.  It was possible for the test
to take enough time for the sleep to actually exit before the interrupt
was sent.  This would cause the test to fail.  Changing to a pair of
sempahores ensures that the test record processor will remain blocked
for the expected amount of time.
2016-07-21 08:14:20 -07:00
Pfifer, Justin
2bf45eafda Merge Changes for PR#61
Merge, and slight adjustment, of
https://github.com/awslabs/amazon-kinesis-client/pull/61.

This allows configuration to explicitly set the name of the lease
table.  The table name defaults to the application name which is the
current behavior.
2016-07-21 07:08:13 -07:00
Pfifer, Justin
92faba1832 Copy sqlite Native Libraries, and Use for Testing
Copies all the native library version for sqlite during the test compile
phase.  The sqlite native libraries are only needed to run the unit tests.
2016-07-20 15:00:05 -07:00
Pfifer, Justin
a6931dfb15 Enable Travis CI Builds
Added the Travis CI configuration to enable continous integration
testing for common JDK version > 1.7.

Move gpg signing to its own profile to avoid causing issues with the
test, and integration-test phases.
2016-07-20 13:14:25 -07:00
Pfifer, Justin
33cec94530 Added Unit, and Integration Tests
Added unit tests for many of the classes in the client.  Added new
dependencies for the unit tests to the POM file.  Unit tests can be
executed the `surefire:test` goal, and are executed during the test phase.

Added integration tests for the client.  The tests require access to
credentials that can interact with Kinesis, and DynamoDB.  The
integration tests can be run by executing the
`failsafe:integration-test` goal, or are run as part of the
integration-test phase

**Resources in the integration tests are not currently released on
completion of the integration tests.**
2016-07-20 12:58:43 -07:00
Pfifer, Justin
dd14bac4e3 'Version 1.6.4 of the Amazon Kinesis Client Library' 2016-07-07 13:28:18 -07:00
zdjohn
504f865a86 expose approximateArrivalTimestamp from JsonFriendlyRecord 2016-07-01 23:32:13 +10:00
Chris Rankin
6647b4b642 Always shutdown leaseRenewalThreadpool on exit. 2016-06-29 10:52:54 +01:00
Chris Rankin
f4849baa42 Join metrics publishing thread when shutting factory down. 2016-06-27 22:47:48 +01:00
Gosalia, Manan
6d3ffff870 Version 1.6.3 of the Amazon Kinesis Client Library 2016-05-12 12:37:13 -07:00
Gosalia, Manan
74c259ca11 Version 1.6.2 of the Amazon Kinesis Client Library 2016-03-23 12:23:40 -07:00