telekinesis 3.1.1-java → 3.2.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/ext/pom.xml +1 -1
- data/ext/src/main/java/com/kickstarter/jruby/Telekinesis.java +5 -1
- data/lib/telekinesis/aws/java_client_adapter.rb +2 -0
- data/lib/telekinesis/consumer/kcl.rb +6 -2
- data/lib/telekinesis/{telekinesis-3.1.1.jar → telekinesis-3.2.0.jar} +0 -0
- data/lib/telekinesis/version.rb +1 -1
- data/test/aws/test_java_client_adapter.rb +13 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45d793277dd64f3a39dfdabc1039c889a5422368
|
4
|
+
data.tar.gz: afc2b0e0c5946fdb9f8ccc4fe941835de015232c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16c2df47e454d4336f3a937ede624f84ebbb7ab321b579296edd945f79b6b3ac44eae44bd05299f398714e052db406fd4be86f1f354c648da717d4d6607c6b58
|
7
|
+
data.tar.gz: 5c63bd67215e8f6ce2a4f75d3db36e3d945ac0ddb598918c0b1e341691d385595169e9d4315ca12f8fa17140e30e69e42bdd6e5055788a008ba060f9251c97bb
|
data/README.md
CHANGED
@@ -66,7 +66,7 @@ require 'telekinesis'
|
|
66
66
|
producer = Telekinesis::Producer::SyncProducer.create(
|
67
67
|
stream: 'my stream',
|
68
68
|
credentials: {
|
69
|
-
|
69
|
+
access_key_id: 'foo',
|
70
70
|
secret_access_key: 'bar'
|
71
71
|
}
|
72
72
|
)
|
@@ -160,7 +160,7 @@ producer = Telekinesis::Producer::AsyncProducer.create(
|
|
160
160
|
failure_handler: MyFailureHandler.new,
|
161
161
|
send_every_ms: 1500,
|
162
162
|
credentials: {
|
163
|
-
|
163
|
+
access_key_id: 'foo',
|
164
164
|
secret_access_key: 'bar'
|
165
165
|
}
|
166
166
|
)
|
data/ext/pom.xml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
package com.kickstarter.jruby;
|
2
2
|
|
3
|
+
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
|
3
4
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
|
4
5
|
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker;
|
5
6
|
import com.amazonaws.services.kinesis.clientlibrary.types.InitializationInput;
|
@@ -33,10 +34,12 @@ import java.util.concurrent.ExecutorService;
|
|
33
34
|
public class Telekinesis {
|
34
35
|
/**
|
35
36
|
* Create a new KCL {@link Worker} that processes records using the given
|
36
|
-
* {@link ExecutorService}
|
37
|
+
* {@link ExecutorService}, {@link IRecordProcessorFactory}, and
|
38
|
+
* {@link AmazonDynamoDB}.
|
37
39
|
*/
|
38
40
|
public static Worker newWorker(final KinesisClientLibConfiguration config,
|
39
41
|
final ExecutorService executor,
|
42
|
+
final AmazonDynamoDB dynamoClient,
|
40
43
|
final IRecordProcessorFactory factory) {
|
41
44
|
com.amazonaws.services.kinesis.clientlibrary.interfaces.v2.IRecordProcessorFactory v2Factory = new com.amazonaws.services.kinesis.clientlibrary.interfaces.v2.IRecordProcessorFactory() {
|
42
45
|
@Override
|
@@ -49,6 +52,7 @@ public class Telekinesis {
|
|
49
52
|
.recordProcessorFactory(v2Factory)
|
50
53
|
.config(config)
|
51
54
|
.execService(executor) // NOTE: .execService(null) is a no-op
|
55
|
+
.dynamoDBClient(dynamoClient)
|
52
56
|
.build();
|
53
57
|
}
|
54
58
|
|
@@ -2,7 +2,9 @@ module Telekinesis
|
|
2
2
|
module Aws
|
3
3
|
java_import java.nio.ByteBuffer
|
4
4
|
java_import com.amazonaws.AmazonClientException
|
5
|
+
java_import com.amazonaws.auth.BasicAWSCredentials
|
5
6
|
java_import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
|
7
|
+
java_import com.amazonaws.internal.StaticCredentialsProvider
|
6
8
|
java_import com.amazonaws.services.kinesis.AmazonKinesisClient
|
7
9
|
java_import com.amazonaws.services.kinesis.model.PutRecordRequest
|
8
10
|
java_import com.amazonaws.services.kinesis.model.PutRecordsRequest
|
@@ -23,6 +23,10 @@ module Telekinesis
|
|
23
23
|
# client in the same `:app` on the same host, make sure you set this to
|
24
24
|
# something unique!).
|
25
25
|
#
|
26
|
+
# Clients interested in configuring their own AmazonDynamoDB client may
|
27
|
+
# pass an instance as the second argument. If not configured, the client
|
28
|
+
# will use a default AWS configuration.
|
29
|
+
#
|
26
30
|
# Any other valid KCL Worker `:options` may be passed as a nested hash.
|
27
31
|
#
|
28
32
|
# For example, to configure a `tail` app on `some-stream` and use the
|
@@ -64,10 +68,10 @@ module Telekinesis
|
|
64
68
|
#
|
65
69
|
# kcl_worker.run
|
66
70
|
#
|
67
|
-
def initialize(config, &block)
|
71
|
+
def initialize(config, dynamo_client = nil, &block)
|
68
72
|
raise ArgumentError, "No block given!" unless block_given?
|
69
73
|
kcl_config = self.class.build_config(config)
|
70
|
-
@under = com.kickstarter.jruby.Telekinesis.new_worker(kcl_config, config[:executor], &block)
|
74
|
+
@under = com.kickstarter.jruby.Telekinesis.new_worker(kcl_config, config[:executor], dynamo_client, &block)
|
71
75
|
end
|
72
76
|
|
73
77
|
# Return the underlying KCL worker. It's a java.lang.Runnable.
|
Binary file
|
data/lib/telekinesis/version.rb
CHANGED
@@ -68,5 +68,18 @@ class JavaClientAdapterTest < Minitest::Test
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
71
|
+
|
72
|
+
context ".build_credentials_provider" do
|
73
|
+
should "return a provider that provides the specified credentials" do
|
74
|
+
credentials = {
|
75
|
+
access_key_id: '0000000000',
|
76
|
+
secret_access_key: '0000000000',
|
77
|
+
}
|
78
|
+
provider = Telekinesis::Aws::JavaClientAdapter.build_credentials_provider(credentials)
|
79
|
+
|
80
|
+
assert_equal(credentials[:access_key_id], provider.credentials.aws_access_key_id)
|
81
|
+
assert_equal(credentials[:secret_access_key], provider.credentials.aws_secret_key)
|
82
|
+
end
|
83
|
+
end
|
71
84
|
end
|
72
85
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telekinesis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Ben Linsay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,7 +106,7 @@ files:
|
|
106
106
|
- test/producer/test_helper.rb
|
107
107
|
- test/producer/test_sync_producer.rb
|
108
108
|
- test/test_helper.rb
|
109
|
-
- lib/telekinesis/telekinesis-3.
|
109
|
+
- lib/telekinesis/telekinesis-3.2.0.jar
|
110
110
|
homepage: https://github.com/kickstarter/telekinesis
|
111
111
|
licenses: []
|
112
112
|
metadata: {}
|