hermann 0.19.0-java → 0.20.0-java

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: a6ae048936233d039e0422d5fcf03deff436b95a
4
- data.tar.gz: c9d8807df3dd9d8e9efd089a325471b24a27bb3f
3
+ metadata.gz: 34aa174c3645cce1f7bc1df218e72a00063b5264
4
+ data.tar.gz: e05f7192889002138624e8c3b8826f8ae0031660
5
5
  SHA512:
6
- metadata.gz: c38aeb5099c6cf1f33b262b3a9f2b552ab964fc35d3c19a48280005580cf8d6b74401e15352ad93f73bea60d9d460af773f28ddf81058870a278eb37addce371
7
- data.tar.gz: f8dddc93793e276ba0efe55875b1054ab5ba37c46f4e0bceba09dee39a91fcc05ddb17642db1a8ff854317cb8536374b72a0965a95b4bcbf498a7209a6587031
6
+ metadata.gz: bb665839477beea15207e8f5030708f3771c754f75a5f09f8e907f33043d9226f47aa09ac2be9b3ea701bb1b9dbae2ce4390147787f19d9c2c25af4a20e07f59
7
+ data.tar.gz: 74dd000daab4034ba6ce79d73c99bb57fbda367bcfe49cc78dcb26e30cf4e52314049632794b515208a33092ccfd1bf52a7463770d3f1847f60e2d4ca91e12b5
data/Rakefile CHANGED
@@ -11,21 +11,25 @@ Rake::ExtensionTask.new do |t|
11
11
  t.gem_spec = Gem::Specification.load('hermann.gemspec')
12
12
  end
13
13
 
14
- RSpec::Core::RakeTask.new(:spec) do |r|
15
- options = ['--tag ~type:integration']
16
-
14
+ def add_rspec_options(options)
17
15
  if RUBY_PLATFORM == 'java'
18
16
  options << '--tag ~platform:mri'
19
17
  else
20
18
  options << '--tag ~platform:java'
21
19
  end
20
+ return options
21
+ end
22
+
23
+ RSpec::Core::RakeTask.new(:spec) do |r|
24
+ options = add_rspec_options(['--tag ~type:integration'])
22
25
 
23
26
  r.rspec_opts = options.join(' ')
24
27
  end
25
28
 
26
29
  namespace :spec do
27
30
  RSpec::Core::RakeTask.new(:integration) do |r|
28
- r.rspec_opts = '--tag type:integration'
31
+ options = add_rspec_options(['--tag type:integration'])
32
+ r.rspec_opts = options.join(' ')
29
33
  end
30
34
  end
31
35
 
@@ -24,8 +24,7 @@ module Hermann
24
24
  # tickTime (as set in the server configuration) and a maximum
25
25
  # of 20 times the tickTime2 times the tick time set on server"
26
26
  #
27
- # @return [String] comma separated list of brokers
28
- #
27
+ # @return [Array] List of brokers from ZK
29
28
  # @raises [NoBrokersError] if could not discover brokers thru zookeeper
30
29
  def get_brokers(timeout=0)
31
30
  brokers = []
@@ -35,7 +34,7 @@ module Hermann
35
34
  if brokers.empty?
36
35
  raise Hermann::Errors::NoBrokersError
37
36
  end
38
- brokers.join(',')
37
+ return brokers
39
38
  end
40
39
 
41
40
  private
@@ -82,4 +81,4 @@ module Hermann
82
81
  end
83
82
  end
84
83
  end
85
- end
84
+ end
@@ -1,8 +1,7 @@
1
1
 
2
2
  module Hermann
3
3
  module Errors
4
- # Error for connectivity problems with the Kafka brokers
5
- class ConnectivityError < StandardError
4
+ class GeneralError < StandardError
6
5
  attr_reader :java_exception
7
6
 
8
7
  # Initialize a connectivity error
@@ -11,17 +10,20 @@ module Hermann
11
10
  # @param [Hash[ options
12
11
  # @option options [Java::Lang::RuntimeException] :java_exception An
13
12
  # underlying Java exception
14
- def initialize(message, options={})
13
+ def initialize(message='', options={})
15
14
  super(message)
16
15
  @java_exception = options[:java_exception]
17
16
  end
18
17
  end
19
18
 
19
+ # Error for connectivity problems with the Kafka brokers
20
+ class ConnectivityError < GeneralError; end
21
+
20
22
  # For passing incorrect config and options to kafka
21
- class ConfigurationError < StandardError; end
23
+ class ConfigurationError < GeneralError; end
22
24
 
23
25
  # cannot discover brokers from zookeeper
24
- class NoBrokersError < StandardError; end
26
+ class NoBrokersError < GeneralError; end
25
27
  end
26
28
  end
27
29
 
@@ -21,7 +21,7 @@ module Hermann
21
21
  @topic = topic
22
22
  @brokers = ThreadSafe::Array.new(brokers)
23
23
  if Hermann.jruby?
24
- @internal = Hermann::Provider::JavaProducer.new(brokers, opts)
24
+ @internal = Hermann::Provider::JavaProducer.new(brokers.join(','), opts)
25
25
  else
26
26
  @internal = Hermann::Lib::Producer.new(brokers.join(','))
27
27
  end
@@ -13,7 +13,6 @@ module Hermann
13
13
 
14
14
  #default kafka Producer options
15
15
  DEFAULTS = {
16
- 'serializer.class' => 'kafka.serializer.StringEncoder',
17
16
  'partitioner.class' => 'kafka.producer.DefaultPartitioner',
18
17
  'request.required.acks' => '1',
19
18
  'message.send.max.retries' => '0'
@@ -46,12 +45,15 @@ module Hermann
46
45
  # will be set
47
46
  def push_single(msg, topic, unused)
48
47
  Concurrent::Promise.execute {
49
- data = ProducerUtil::KeyedMessage.new(topic, msg)
48
+ data = ProducerUtil::KeyedMessage.new(topic, msg.to_java_bytes)
50
49
  begin
51
50
  @producer.send(data)
52
51
  rescue Java::KafkaCommon::FailedToSendMessageException => jexc
53
52
  raise Hermann::Errors::ConnectivityError.new(jexc.message,
54
53
  :java_exception => jexc)
54
+ rescue => e
55
+ raise Hermann::Errors::GeneralError.new(e.message,
56
+ :java_exception => e)
55
57
  end
56
58
  }
57
59
  end
@@ -60,7 +60,8 @@ module Hermann
60
60
  stream = get_stream(topic)
61
61
  it = stream.iterator
62
62
  while it.hasNext do
63
- yield it.next.message.to_s
63
+ message = it.next.message
64
+ yield String.from_java_bytes(message)
64
65
  end
65
66
  rescue Exception => e
66
67
  puts "#{self.class.name}#consume exception: #{e.class.name}"
@@ -1,3 +1,3 @@
1
1
  module Hermann
2
- VERSION = '0.19.0'
2
+ VERSION = '0.20.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hermann
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0
4
+ version: 0.20.0
5
5
  platform: java
6
6
  authors:
7
7
  - R. Tyler Croy
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-29 00:00:00.000000000 Z
12
+ date: 2014-10-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  requirement: !ruby/object:Gem::Requirement