ecco 0.4.1-java → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4f65da7939ae05944c82091f94c505672daa728
4
- data.tar.gz: cb7797b754c53e368c72186ab6e87e2a10a4a3ed
3
+ metadata.gz: 84fe8c1083c6c56837721f68472ed1c251b44da3
4
+ data.tar.gz: 0b2c7d8450fa67482bf3762cef869f211ec40b6b
5
5
  SHA512:
6
- metadata.gz: 5ae4213115d36e0b6724de3c57f9708c875f47cf7521981b7bfcc2f6b7ff8eec08386ed20ef57dd3e6b3f120ac4e7d947d8b201d1bcc96a0261803ad00b79d82
7
- data.tar.gz: 445de18016ac14be9f88de40396b5fa258ed1667ad2e707c0e14dc15237e343a8b2943d6e9ff9cf39c5767def8936caa27626d73cb5ef3c2fb3fe822bc3a7061
6
+ metadata.gz: d413840d24fad29536c09f05e2667f5838b37f291db7fbe34e3b4417e872fd48f8cb6af7f8013a8a8c8f6e91f4a6e440d439a23114e71bc3e4a032b382d78359
7
+ data.tar.gz: 8d398553a7d376e60883565d3a81df6c171e96cb618f9afcd0d68923710187f7acacbdcf259a547935b7584dc6198be71378e93b222b9777b90b2e321d31b1cb
data/README.md CHANGED
@@ -50,6 +50,10 @@ client.on_save_position do |filename, position|
50
50
  puts "Save event: #{filename} #{position}"
51
51
  end
52
52
 
53
+ client.on_communication_failure do |client, error|
54
+ puts error.message
55
+ end
56
+
53
57
  # Optionally set a starting position
54
58
  client.set_binlog_filename("mysql-bin.000009")
55
59
  client.set_binlog_position(276753)
@@ -1,6 +1,7 @@
1
1
  require "ext/mysql-binlog-connector-java-#{Ecco::MYSQL_BINLOG_CONNECTOR_VERSION}.jar"
2
2
  require "ecco/row_event_listener"
3
3
  require "ecco/save_event_listener"
4
+ require "ecco/lifecycle_failure_listener"
4
5
  require "ecco/error"
5
6
 
6
7
  module Ecco
@@ -9,6 +10,9 @@ module Ecco
9
10
 
10
11
  extend Forwardable
11
12
  def_delegators :@client, :set_server_id, :get_server_id
13
+ def_delegators :@client, :set_keep_alive, :is_keep_alive
14
+ def_delegators :@client, :set_keep_alive_interval, :get_keep_alive_interval
15
+ def_delegators :@client, :set_keep_alive_connect_timeout, :get_keep_alive_connect_timeout
12
16
  def_delegators :@client, :set_binlog_filename, :get_binlog_filename
13
17
  def_delegators :@client, :set_binlog_position, :get_binlog_position
14
18
 
@@ -23,6 +27,9 @@ module Ecco
23
27
 
24
28
  @save_event_listener = SaveEventListener.new(self)
25
29
  @client.register_event_listener(@save_event_listener)
30
+
31
+ @lifecycle_failure_listener = LifecycleFailureListener.new
32
+ @client.register_lifecycle_listener(@lifecycle_failure_listener)
26
33
  end
27
34
 
28
35
  def on_save_position(&block)
@@ -33,6 +40,10 @@ module Ecco
33
40
  @row_event_listener.callback = block
34
41
  end
35
42
 
43
+ def on_communication_failure(&block)
44
+ @lifecycle_failure_listener.callback = block
45
+ end
46
+
36
47
  def start
37
48
  @client.connect
38
49
  rescue IOException => e
@@ -2,5 +2,8 @@ module Ecco
2
2
  module Error
3
3
  class ConnectionError < StandardError
4
4
  end
5
+
6
+ class CommunicationError < StandardError
7
+ end
5
8
  end
6
9
  end
@@ -0,0 +1,14 @@
1
+ module Ecco
2
+ class LifecycleFailureListener < com.github.shyiko.mysql.binlog.BinaryLogClient::AbstractLifecycleListener
3
+ attr_writer :callback
4
+
5
+ def initialize
6
+ @callback = Proc.new {}
7
+ end
8
+
9
+ def onCommunicationFailure(client, exception)
10
+ error = Ecco::Error::CommunicationError.new(exception.get_message)
11
+ @callback.call(client, error)
12
+ end
13
+ end
14
+ end
@@ -1,4 +1,4 @@
1
1
  module Ecco
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  MYSQL_BINLOG_CONNECTOR_VERSION = "0.2.4"
4
4
  end
metadata CHANGED
@@ -1,85 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecco
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: java
6
6
  authors:
7
7
  - Twingly AB
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-19 00:00:00.000000000 Z
11
+ date: 2015-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.10'
20
14
  requirement: !ruby/object:Gem::Requirement
21
15
  requirements:
22
16
  - - "~>"
23
17
  - !ruby/object:Gem::Version
24
18
  version: '1.10'
19
+ name: bundler
25
20
  prerelease: false
26
21
  type: :development
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
22
  version_requirements: !ruby/object:Gem::Requirement
30
23
  requirements:
31
24
  - - "~>"
32
25
  - !ruby/object:Gem::Version
33
- version: '10.0'
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
34
28
  requirement: !ruby/object:Gem::Requirement
35
29
  requirements:
36
30
  - - "~>"
37
31
  - !ruby/object:Gem::Version
38
32
  version: '10.0'
33
+ name: rake
39
34
  prerelease: false
40
35
  type: :development
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
36
  version_requirements: !ruby/object:Gem::Requirement
44
37
  requirements:
45
- - - ">="
38
+ - - "~>"
46
39
  - !ruby/object:Gem::Version
47
- version: '0'
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
48
42
  requirement: !ruby/object:Gem::Requirement
49
43
  requirements:
50
44
  - - ">="
51
45
  - !ruby/object:Gem::Version
52
46
  version: '0'
47
+ name: rspec
53
48
  prerelease: false
54
49
  type: :development
55
- - !ruby/object:Gem::Dependency
56
- name: sequel
57
50
  version_requirements: !ruby/object:Gem::Requirement
58
51
  requirements:
59
52
  - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
62
56
  requirement: !ruby/object:Gem::Requirement
63
57
  requirements:
64
58
  - - ">="
65
59
  - !ruby/object:Gem::Version
66
60
  version: '0'
61
+ name: sequel
67
62
  prerelease: false
68
63
  type: :development
69
- - !ruby/object:Gem::Dependency
70
- name: jdbc-mysql
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
65
  requirements:
73
66
  - - ">="
74
67
  - !ruby/object:Gem::Version
75
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
76
70
  requirement: !ruby/object:Gem::Requirement
77
71
  requirements:
78
72
  - - ">="
79
73
  - !ruby/object:Gem::Version
80
74
  version: '0'
75
+ name: jdbc-mysql
81
76
  prerelease: false
82
77
  type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
83
  description: MySQL replication binlog parser using mysql-binlog-connector-java.
84
84
  email:
85
85
  - support@twingly.com
@@ -103,6 +103,7 @@ files:
103
103
  - lib/ecco/client.rb
104
104
  - lib/ecco/error.rb
105
105
  - lib/ecco/event_listener.rb
106
+ - lib/ecco/lifecycle_failure_listener.rb
106
107
  - lib/ecco/row_event.rb
107
108
  - lib/ecco/row_event_listener.rb
108
109
  - lib/ecco/save_event_listener.rb