ruby-kafka 0.5.2.beta1 → 0.5.2.beta2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9d3ed93d12793328cee689f4b0ace7da8e8ba951
4
- data.tar.gz: cdf38141d80608ad6c16fa5866be66204b599c7a
3
+ metadata.gz: eed57dde0ac66ebd2434a84f198ae88654b0a792
4
+ data.tar.gz: 6da001e90557c6633c930db1e8c8c27eda062556
5
5
  SHA512:
6
- metadata.gz: 23e15780a1c7c9089cc27bac07a077d026ce0e0d4f3132061ecd6da91d42ebea75eb8d8a379c896d2637900c3d355cbedbc306945be08cf9d01a3500289e8722
7
- data.tar.gz: 3f336771af6ce3c84175717668e7cd2a7e7405521be2a618e57124592999d153d5fdbb75750081b7013fbb5eacd054ab954ae8255dccc49989aef851a5cebdd8
6
+ metadata.gz: 7dc72dec0637c11e5f18f4fb4b90b2384c6ac0150069fb7c2c03e56a43b27e023d07e6bd7f01141131dabe83735a8d3788de765bab3dc59d6db263f23e39859f
7
+ data.tar.gz: 96895ff990a1dfa40a0487811b8abee3ff00a560b3a1beadd6e3835ba6343b2a7c70305df74da002476f2d0dad775304e75ddd6587121ea1cfd90f53a82fb412
data/.circleci/config.yml CHANGED
@@ -1,6 +1,17 @@
1
1
  version: 2
2
2
  jobs:
3
- build:
3
+ unit:
4
+ docker:
5
+ - image: circleci/ruby:2.4.1-node
6
+ environment:
7
+ LOG_LEVEL: DEBUG
8
+ steps:
9
+ - checkout
10
+ - run: bundle install --path vendor/bundle
11
+ - run: bundle exec rspec
12
+ - run: bundle exec rubocop
13
+
14
+ kafka-0.10:
4
15
  docker:
5
16
  - image: circleci/ruby:2.4.1-node
6
17
  environment:
@@ -24,10 +35,74 @@ jobs:
24
35
  KAFKA_ADVERTISED_PORT: 9094
25
36
  KAFKA_PORT: 9094
26
37
  KAFKA_ZOOKEEPER_CONNECT: localhost:2181
38
+ steps:
39
+ - checkout
40
+ - run: bundle install --path vendor/bundle
41
+ - run: bundle exec rspec --profile --tag functional spec/functional
42
+
43
+ kafka-0.11:
44
+ docker:
45
+ - image: circleci/ruby:2.4.1-node
46
+ environment:
47
+ LOG_LEVEL: DEBUG
48
+ - image: wurstmeister/zookeeper
49
+ - image: wurstmeister/kafka:0.11.0.1
50
+ environment:
51
+ KAFKA_ADVERTISED_HOST_NAME: localhost
52
+ KAFKA_ADVERTISED_PORT: 9092
53
+ KAFKA_PORT: 9092
54
+ KAFKA_ZOOKEEPER_CONNECT: localhost:2181
55
+ - image: wurstmeister/kafka:0.11.0.1
56
+ environment:
57
+ KAFKA_ADVERTISED_HOST_NAME: localhost
58
+ KAFKA_ADVERTISED_PORT: 9093
59
+ KAFKA_PORT: 9093
60
+ KAFKA_ZOOKEEPER_CONNECT: localhost:2181
61
+ - image: wurstmeister/kafka:0.11.0.1
62
+ environment:
63
+ KAFKA_ADVERTISED_HOST_NAME: localhost
64
+ KAFKA_ADVERTISED_PORT: 9094
65
+ KAFKA_PORT: 9094
66
+ KAFKA_ZOOKEEPER_CONNECT: localhost:2181
67
+ steps:
68
+ - checkout
69
+ - run: bundle install --path vendor/bundle
70
+ - run: bundle exec rspec --profile --tag functional spec/functional
27
71
 
72
+ kafka-1.0:
73
+ docker:
74
+ - image: circleci/ruby:2.4.1-node
75
+ environment:
76
+ LOG_LEVEL: DEBUG
77
+ - image: wurstmeister/zookeeper
78
+ - image: wurstmeister/kafka:1.0.0
79
+ environment:
80
+ KAFKA_ADVERTISED_HOST_NAME: localhost
81
+ KAFKA_ADVERTISED_PORT: 9092
82
+ KAFKA_PORT: 9092
83
+ KAFKA_ZOOKEEPER_CONNECT: localhost:2181
84
+ - image: wurstmeister/kafka:1.0.0
85
+ environment:
86
+ KAFKA_ADVERTISED_HOST_NAME: localhost
87
+ KAFKA_ADVERTISED_PORT: 9093
88
+ KAFKA_PORT: 9093
89
+ KAFKA_ZOOKEEPER_CONNECT: localhost:2181
90
+ - image: wurstmeister/kafka:1.0.0
91
+ environment:
92
+ KAFKA_ADVERTISED_HOST_NAME: localhost
93
+ KAFKA_ADVERTISED_PORT: 9094
94
+ KAFKA_PORT: 9094
95
+ KAFKA_ZOOKEEPER_CONNECT: localhost:2181
28
96
  steps:
29
97
  - checkout
30
98
  - run: bundle install --path vendor/bundle
31
- - run: bundle exec rspec
32
99
  - run: bundle exec rspec --profile --tag functional spec/functional
33
- - run: bundle exec rubocop
100
+
101
+ workflows:
102
+ version: 2
103
+ test:
104
+ jobs:
105
+ - unit
106
+ - kafka-0.10
107
+ - kafka-0.11
108
+ - kafka-1.0
data/CHANGELOG.md CHANGED
@@ -10,6 +10,7 @@ Changes and additions to the library will be listed here.
10
10
  - Add support for LZ4 compression (#499).
11
11
  - Refactor compression codec lookup (#509).
12
12
  - Fix compressed message set offset bug (#506).
13
+ - Test against multiple versions of Kafka.
13
14
 
14
15
  ## v0.5.1
15
16
 
@@ -21,9 +21,13 @@ module Kafka
21
21
  end
22
22
 
23
23
  def self.find_codec(name)
24
- CODECS.fetch(name) do
24
+ codec = CODECS.fetch(name) do
25
25
  raise "Unknown compression codec #{name}"
26
26
  end
27
+
28
+ codec.load
29
+
30
+ codec
27
31
  end
28
32
 
29
33
  def self.find_codec_by_id(codec_id)
@@ -1,13 +1,13 @@
1
1
  module Kafka
2
2
  class GzipCodec
3
- def initialize
4
- require "zlib"
5
- end
6
-
7
3
  def codec_id
8
4
  1
9
5
  end
10
6
 
7
+ def load
8
+ require "zlib"
9
+ end
10
+
11
11
  def compress(data)
12
12
  buffer = StringIO.new
13
13
  buffer.set_encoding(Encoding::BINARY)
@@ -1,15 +1,15 @@
1
1
  module Kafka
2
2
  class LZ4Codec
3
- def initialize
3
+ def codec_id
4
+ 3
5
+ end
6
+
7
+ def load
4
8
  require "extlz4"
5
9
  rescue LoadError
6
10
  raise LoadError, "using lz4 compression requires adding a dependency on the `extlz4` gem to your Gemfile."
7
11
  end
8
12
 
9
- def codec_id
10
- 3
11
- end
12
-
13
13
  def compress(data)
14
14
  LZ4.encode(data)
15
15
  end
@@ -58,7 +58,7 @@ module Kafka
58
58
  message_set_decoder = Decoder.from_string(data)
59
59
  message_set = MessageSet.decode(message_set_decoder)
60
60
 
61
- correct_offsets(message_set)
61
+ correct_offsets(message_set.messages)
62
62
  end
63
63
 
64
64
  def self.decode(decoder)
@@ -111,15 +111,16 @@ module Kafka
111
111
  # All other cases, compressed inner messages should have relative offset, with below attributes:
112
112
  # - The container message should have the 'real' offset
113
113
  # - The container message's offset should be the 'real' offset of the last message in the compressed batch
114
- def correct_offsets(message_set)
115
- max_relative_offset = message_set.messages.last.offset
114
+ def correct_offsets(messages)
115
+ max_relative_offset = messages.last.offset
116
116
 
117
117
  # The offsets are already correct, do nothing.
118
- return message_set if max_relative_offset == offset
118
+ return messages if max_relative_offset == offset
119
119
 
120
120
  # The contained messages have relative offsets, and needs to be corrected.
121
121
  base_offset = offset - max_relative_offset
122
- messages = message_set.messages.map do |message|
122
+
123
+ messages.map do |message|
123
124
  Message.new(
124
125
  offset: message.offset + base_offset,
125
126
  value: message.value,
@@ -128,8 +129,6 @@ module Kafka
128
129
  codec_id: message.codec_id
129
130
  )
130
131
  end
131
-
132
- MessageSet.new(messages: messages)
133
132
  end
134
133
 
135
134
  def encode_with_crc
@@ -31,8 +31,7 @@ module Kafka
31
31
  message = Message.decode(decoder)
32
32
 
33
33
  if message.compressed?
34
- wrapped_message_set = message.decompress
35
- fetched_messages.concat(wrapped_message_set.messages)
34
+ fetched_messages.concat(message.decompress)
36
35
  else
37
36
  fetched_messages << message
38
37
  end
@@ -1,16 +1,16 @@
1
1
  module Kafka
2
2
  class SnappyCodec
3
- def initialize
3
+ def codec_id
4
+ 2
5
+ end
6
+
7
+ def load
4
8
  require "snappy"
5
9
  rescue LoadError
6
10
  raise LoadError,
7
11
  "Using snappy compression requires adding a dependency on the `snappy` gem to your Gemfile."
8
12
  end
9
13
 
10
- def codec_id
11
- 2
12
- end
13
-
14
14
  def compress(data)
15
15
  Snappy.deflate(data)
16
16
  end
data/lib/kafka/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kafka
2
- VERSION = "0.5.2.beta1"
2
+ VERSION = "0.5.2.beta2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-kafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2.beta1
4
+ version: 0.5.2.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Schierbeck
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-12-20 00:00:00.000000000 Z
11
+ date: 2017-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler