ecco 0.4.1-java → 0.5.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: 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