ecco 0.7.0-java → 0.8.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
- SHA1:
3
- metadata.gz: 0ab7f8a563e384b8c17e08072610eccfe3c52d7f
4
- data.tar.gz: d3e8ac4b8ae63cc0adbcd0c2673f87268aa3b6c3
2
+ SHA256:
3
+ metadata.gz: aa0f1adf6e5a97d969a6acf43b3ec6d083e7975e3e60f4684e46b672453dd7e1
4
+ data.tar.gz: de78c5aba80a3ff667d63408721723737e5ae731124c55f413b2c5f0fdb15f4c
5
5
  SHA512:
6
- metadata.gz: 7f4db2c00bffd2fa65fea63d2485979b3c6c3c52d413a42d2f172696be12f3aba0efa18e78ba27cde5fd98d21d20cfbd8f96a383badc21f3e94a8c3eb5719de5
7
- data.tar.gz: 2bc753ab284ab855130bc9eea73afa21e5167e2c3c1b1bbb167a698990b4240993704a0c49d9d1798e03faea9cd98587abd12725e0736411b23c4a4a8d73bfa9
6
+ metadata.gz: 1ee74c54f9ab18d42046b00e7e6e48b7de8c761482a1a5840945ff77bdd3c618ed81721987a6873f76d99dc99835a373c872e8eeba68ed480995a898b6c250e8
7
+ data.tar.gz: 56a14190b670b5a8e02cd1d200f9aab042c3a471287c07a0f80372230a068d90de7c5e80c108f062fe918f8ccf4d383cc48a00edc3d0da474d924424c5d0d0dc
data/.gitignore CHANGED
@@ -8,5 +8,3 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  .env
11
- .vagrant
12
- *.retry
@@ -1,46 +1,34 @@
1
- sudo: true
1
+ dist: bionic
2
+ language: ruby
3
+ services:
4
+ - docker
2
5
 
3
- dist: trusty
4
6
  addons:
5
7
  apt:
6
8
  packages:
7
- - mysql-server-5.6
8
- - mysql-client-core-5.6
9
- - mysql-client-5.6
10
9
  - haveged # Extra entropy
11
10
 
12
- language: ruby
13
-
14
- rvm:
15
- - jruby-9.0.5.0
16
-
17
- services:
18
- - mysql
19
-
20
11
  before_install:
21
- - sudo service haveged start # Extra entropy too ensure quick start time for JRuby
22
- - printf "[mysqld]\nlog-bin=mysql-bin\nserver-id=1\nbinlog-format=ROW\n" | sudo tee /etc/mysql/conf.d/binlog.cnf
23
- - sudo service mysql restart
24
- - mysql -u root -e 'create database ecco_test;'
25
- - gem install bundler
12
+ - sudo service haveged start # Extra entropy to ensure quick start time for JRuby
13
+ - rvm get master
14
+ - rvm install jruby-9.2.13.0
15
+ - rvm use jruby-9.2.13.0
16
+ - gem install bundler -v '< 2'
17
+ - docker-compose -f docker-compose-mysql-base.yml -f docker-compose-mysql-$MYSQL_VERSION.yml up -d
26
18
 
27
19
  env:
28
20
  global:
29
- - DATABASE_USER=root
30
- - DATABASE_PASS=""
31
- - DATABASE_URL=jdbc:mysql://localhost:3306/ecco_test
32
- - JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcext.enabled=false -J-Xss2m -Xcompile.invokedynamic=false'
21
+ - JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-Xss2m -Xcompile.invokedynamic=false'
22
+ jobs:
23
+ - MYSQL_VERSION="5-6"
24
+ - MYSQL_VERSION="5-7"
25
+ - MYSQL_VERSION="8-0"
26
+
27
+ jobs:
28
+ allow_failures:
29
+ - env: MYSQL_VERSION="8-0"
33
30
 
34
31
  script: bin/all_specs
35
32
 
36
33
  notifications:
37
34
  email: false
38
- hipchat:
39
- on_success: never
40
- on_failure: change
41
- template:
42
- - '%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}
43
- (<a href="%{build_url}">Details</a>/<a href="%{compare_url}">Change view</a>)'
44
- format: html
45
- rooms:
46
- secure: J7yYVGr6NQ0rOA6WdOVxiB4XxPJJDcQG7R0fgAXxtAzQNun+QHLBH9Yu7NN7kaJrVU69oIMrAw2e7EGSh9mnQ3fmGyA/z9Xu5+3GYjGuN3QDLGA8kbnDggIeo8vZrTZYL9aITVHMUH/6oKwAtg4Q5Tx4ftguj4zvMMWiZTFHuv05V0FgyoQkSggKLE3w8ZndEjZfaBbtgUeN/eGeAl2oeP8w53eM4ebh2+VNYNVGr+5zr1VGkkXz1SoRT3YEJtSjH0DvinZDrsU3VZZY9hIcUKu3dzhPuwZFMIDGshDxVqf/0XADOFUqgYFeHmg64O+ikIye4MiuBKw/miqSvx6lZSdjlsYyHruYFCbjcZue/WIKAw5nWZNQ+YZmzxMWZV4czImO8q2ljMOXUluVgW78mZMYsqzsoE5tX6PVO4I7aVL4L9mnb01nPDAPgJAXCGfudOkHfUi6jaVTkvLqSJvifbCzhsRvaPCA2VAQGUTssv9pm2YkCP5rOOeasU+XgJtLJif8Uv1g/zNjNajNU19A1PLCSNgdvX381Dgd3NS/DjMtNtgTXxGjSpHwQM54aL/lp6a2XhCpSpBZBcBz01KQJGsgLUgDDQJSzO1e8OdiP6YQHIGEA0OM4Wfoq2I3TLWMSlGSzJBvUBHJwstPMjTbH+1HM2AOY80orVHQWzttZlc=
@@ -1,5 +1,17 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.7.0](https://github.com/twingly/ecco/tree/v0.7.0) (2016-10-07)
4
+ [Full Changelog](https://github.com/twingly/ecco/compare/v0.6.1...v0.7.0)
5
+
6
+ **Implemented enhancements:**
7
+
8
+ - Extend on\_save\_position with information about the event [\#23](https://github.com/twingly/ecco/issues/23)
9
+
10
+ **Merged pull requests:**
11
+
12
+ - Expose event information in on\_save\_position [\#24](https://github.com/twingly/ecco/pull/24) ([dentarg](https://github.com/dentarg))
13
+ - Add changelog [\#21](https://github.com/twingly/ecco/pull/21) ([dentarg](https://github.com/dentarg))
14
+
3
15
  ## [v0.6.1](https://github.com/twingly/ecco/tree/v0.6.1) (2016-07-18)
4
16
  [Full Changelog](https://github.com/twingly/ecco/compare/v0.6.0...v0.6.1)
5
17
 
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/twingly/ecco.svg?branch=master)](https://travis-ci.org/twingly/ecco)
4
4
 
5
- MySQL (version 5.5 and 5.6) replication binlog parser using [mysql-binlog-connector-java].
5
+ MySQL (5.6 and 5.7) replication binlog parser using [mysql-binlog-connector-java].
6
6
 
7
7
  ## Installation
8
8
 
@@ -46,8 +46,8 @@ client.on_row_event do |row_event|
46
46
  puts "Row event: #{database} #{table} #{type} #{second_column}"
47
47
  end
48
48
 
49
- client.on_save_position do |filename, position|
50
- puts "Save event: #{filename} #{position}"
49
+ client.on_save_position do |filename, position, event_type_name|
50
+ puts "Saved #{event_type_name} event: #{filename} #{position}"
51
51
  end
52
52
 
53
53
  client.on_communication_failure do |client, error|
@@ -91,13 +91,22 @@ The integration tests don't run by default. To run all the tests, including inte
91
91
 
92
92
  The tests needs a MySQL server with replication enabled.
93
93
 
94
- Ecco includes a Vagrant machine, that can be used for this. Note that your Vagrant host need to have [Ansible] installed as it is used for provisioning.
94
+ Ecco includes multiple Docker Compose definitions that can be used for this, one per supported MySQL version.
95
95
 
96
- Just start it before running the tests
96
+ Start the desired version before running the tests:
97
97
 
98
- vagrant up
98
+ ```shell
99
+ # MySQL 5.6
100
+ docker-compose -f docker-compose-mysql-base.yml -f docker-compose-mysql-5-6.yml up
99
101
 
100
- *Note: Stop any local mysql servers first as it forwards mysql to localhost:3306.*
102
+ # MySQL 5.7
103
+ docker-compose -f docker-compose-mysql-base.yml -f docker-compose-mysql-5-7.yml up
104
+
105
+ # MySQL 8.0
106
+ docker-compose -f docker-compose-mysql-base.yml -f docker-compose-mysql-8-0.yml up
107
+ ```
108
+
109
+ *Note: Stop any local MySQL server first, otherwise there will be port collisions*
101
110
 
102
111
  ## Release
103
112
 
@@ -123,5 +132,4 @@ Make a commit with the changelog changes and push.
123
132
  The gem is available as open source under the terms of the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
124
133
 
125
134
  [mysql-binlog-connector-java]: https://github.com/shyiko/mysql-binlog-connector-java
126
- [Ansible]: http://www.ansible.com/
127
135
  [GitHub Changelog Generator]: https://github.com/skywinder/github-changelog-generator/
@@ -0,0 +1,5 @@
1
+ version: "3.7"
2
+
3
+ services:
4
+ db:
5
+ image: mysql:5.6
@@ -0,0 +1,5 @@
1
+ version: "3.7"
2
+
3
+ services:
4
+ db:
5
+ image: mysql:5.7
@@ -0,0 +1,5 @@
1
+ version: "3.7"
2
+
3
+ services:
4
+ db:
5
+ image: mysql:8.0
@@ -0,0 +1,13 @@
1
+ # https://docs.docker.com/compose/extends/#adding-and-overriding-configuration
2
+
3
+ version: "3.7"
4
+
5
+ services:
6
+ db:
7
+ volumes:
8
+ - ./docker/ecco-my.cnf:/etc/mysql/conf.d/ecco-my.cnf
9
+ ports:
10
+ - 3306:3306
11
+ environment:
12
+ MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
13
+ MYSQL_DATABASE: ecco_test
@@ -2,4 +2,3 @@
2
2
  log-bin=mysql-bin
3
3
  server-id=1
4
4
  binlog-format=ROW
5
- bind-address=0.0.0.0
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 1.10"
23
- spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "rake", "~> 12"
24
24
  spec.add_development_dependency "rspec"
25
25
  spec.add_development_dependency "sequel"
26
26
  spec.add_development_dependency "jdbc-mysql"
@@ -12,10 +12,25 @@ module Ecco
12
12
  def_delegators :@client, :set_server_id, :get_server_id
13
13
  def_delegators :@client, :set_keep_alive, :is_keep_alive
14
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
15
+ def_delegators :@client, :set_heartbeat_interval, :get_heartbeat_interval
16
+ def_delegators :@client, :set_connect_timeout, :get_connect_timeout
16
17
  def_delegators :@client, :set_binlog_filename, :get_binlog_filename
17
18
  def_delegators :@client, :set_binlog_position, :get_binlog_position
18
19
 
20
+ def get_keep_alive_connect_timeout
21
+ warn "[DEPRECATION] `#{__method__}` is deprecated. "\
22
+ "Please use `get_connect_timeout` instead."
23
+
24
+ get_connect_timeout
25
+ end
26
+
27
+ def set_keep_alive_connect_timeout(timeout)
28
+ warn "[DEPRECATION] `#{__method__}` is deprecated. "\
29
+ "Please use `set_connect_timeout` instead."
30
+
31
+ set_connect_timeout(timeout)
32
+ end
33
+
19
34
  java_import com.github.shyiko.mysql.binlog.BinaryLogClient
20
35
  java_import java.io.IOException
21
36
 
@@ -1,4 +1,4 @@
1
1
  module Ecco
2
- VERSION = "0.7.0"
3
- MYSQL_BINLOG_CONNECTOR_VERSION = "0.2.4"
2
+ VERSION = "0.8.0"
3
+ MYSQL_BINLOG_CONNECTOR_VERSION = "0.21.0"
4
4
  end
data/pom.xml CHANGED
@@ -14,7 +14,7 @@
14
14
  <dependency>
15
15
  <groupId>com.github.shyiko</groupId>
16
16
  <artifactId>mysql-binlog-connector-java</artifactId>
17
- <version>0.2.4</version>
17
+ <version>0.21.0</version>
18
18
  </dependency>
19
19
  </dependencies>
20
20
  </project>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecco
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.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: 2016-10-07 00:00:00.000000000 Z
11
+ date: 2020-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: '1.10'
19
19
  name: bundler
20
- prerelease: false
21
20
  type: :development
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
@@ -29,15 +29,15 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '10.0'
32
+ version: '12'
33
33
  name: rake
34
- prerelease: false
35
34
  type: :development
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '12'
41
41
  - !ruby/object:Gem::Dependency
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
@@ -45,8 +45,8 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  name: rspec
48
- prerelease: false
49
48
  type: :development
49
+ prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
@@ -59,8 +59,8 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  name: sequel
62
- prerelease: false
63
62
  type: :development
63
+ prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
@@ -73,8 +73,8 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  name: jdbc-mysql
76
- prerelease: false
77
76
  type: :development
77
+ prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
@@ -95,10 +95,14 @@ files:
95
95
  - Gemfile
96
96
  - README.md
97
97
  - Rakefile
98
- - Vagrantfile
99
98
  - bin/all_specs
100
99
  - bin/console
101
100
  - bin/specs
101
+ - docker-compose-mysql-5-6.yml
102
+ - docker-compose-mysql-5-7.yml
103
+ - docker-compose-mysql-8-0.yml
104
+ - docker-compose-mysql-base.yml
105
+ - docker/ecco-my.cnf
102
106
  - ecco.gemspec
103
107
  - lib/ecco.rb
104
108
  - lib/ecco/client.rb
@@ -109,10 +113,8 @@ files:
109
113
  - lib/ecco/row_event_listener.rb
110
114
  - lib/ecco/save_event_listener.rb
111
115
  - lib/ecco/version.rb
112
- - lib/ext/mysql-binlog-connector-java-0.2.4.jar
116
+ - lib/ext/mysql-binlog-connector-java-0.21.0.jar
113
117
  - pom.xml
114
- - vagrant/files/ecco-my.cnf
115
- - vagrant/playbook.yml
116
118
  homepage: https://github.com/twingly/ecco
117
119
  licenses:
118
120
  - Apache-2.0
@@ -132,8 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
134
  - !ruby/object:Gem::Version
133
135
  version: '0'
134
136
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 2.6.7
137
+ rubygems_version: 3.0.6
137
138
  signing_key:
138
139
  specification_version: 4
139
140
  summary: MySQL replication binlog parser.
@@ -1,14 +0,0 @@
1
- Vagrant.configure("2") do |config|
2
- config.vm.define "ecco-test" do |ubuntu|
3
- ubuntu.vm.hostname = "ecco-test"
4
- ubuntu.vm.box = "ubuntu/trusty64"
5
- ubuntu.vm.provision :ansible do |ansible|
6
- ansible.playbook = "vagrant/playbook.yml"
7
- end
8
-
9
- ubuntu.vm.network :forwarded_port, host: 3306, guest: 3306
10
- ubuntu.vm.provider "virtualbox" do |vbox|
11
- vbox.memory = 1024
12
- end
13
- end
14
- end
@@ -1,27 +0,0 @@
1
- ---
2
- - hosts: all
3
- become: yes
4
- tasks:
5
-
6
- - name: Update package cache
7
- apt: update_cache=yes
8
-
9
- - name: Install ansible dependencies
10
- apt: name={{ item }}
11
- with_items:
12
- - python-mysqldb
13
-
14
- - name: Install mysql server
15
- apt: name=mysql-server-5.6 state=present
16
-
17
- - name: Copy mysql config file
18
- copy: src=files/ecco-my.cnf dest=/etc/mysql/conf.d/
19
-
20
- - name: Allow mysql root connection from remote hosts
21
- mysql_user: name=root password="" host=% priv=*.*:ALL state=present
22
-
23
- - name: Restart mysql
24
- service: name=mysql state=restarted
25
-
26
- - name: Create database
27
- mysql_db: name=ecco_test