binlog-server 1.0.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8068ff5855601d667a1549e0290db5f1c37e32a2
4
+ data.tar.gz: 44658257e1ad786807bac2464fccbe4a82c039aa
5
+ SHA512:
6
+ metadata.gz: ea37aa377a1855d7285ea7b47e1ea4780eb47f9551998bb6e16532140fc0ef080547020d2de3bb0b8d24eb1b7bd12180465a40a1b3852ae9679e740f1fc9bb18
7
+ data.tar.gz: 37b411efcf9c71ee4e3946ff784c47d32685640268ba80adac6c8981157e0dc8a47022be73e082d03d1a9efa9d5f01175217ea80f0fb636f41396f09ec529d39
data/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # Binlog
2
+
3
+ A gem that allows you to parse mysql binlog row events so you can manipulate the stream of
4
+ changes. We are using this to build a real time reporting database.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'binlog-server'
12
+ ```
13
+
14
+ And then execute:
15
+
16
+ $ bundle
17
+
18
+ Or install it yourself as:
19
+
20
+ $ gem install binlog-server
21
+
22
+ ## Building
23
+
24
+ $ mvn package
25
+ $ rake build
26
+
27
+ ## Usage
28
+
29
+ ```ruby
30
+ require 'rubygems'
31
+ require 'bundler/setup'
32
+
33
+ class MyPositionCheckpointer
34
+ include Binlog::PositionCheckpointer
35
+
36
+ # implement the interface here
37
+ end
38
+
39
+ class MyRowEventListener
40
+ include Binlog::RowEventListener
41
+
42
+ # implement the interface here
43
+ end
44
+
45
+ server = Binlog::RowServer.new
46
+ server.user = 'replicate'
47
+ server.password = 'test1234'
48
+ server.host = 'localhost'
49
+ server.port = 3306
50
+ server.serverId = 10
51
+ server.checkpointer = MyPositionCheckpointer.new('mysql-bin.000007', 6957)
52
+ server.listener = MyRowEventListener.new
53
+ server.start
54
+ ```
55
+
56
+ ## Contributing
57
+
58
+ 1. Fork it ( https://github.com/greenbits/binlog-server/fork )
59
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
60
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
61
+ 4. Push to the branch (`git push origin my-new-feature`)
62
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'binlog/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "binlog-server"
8
+ spec.version = Binlog::VERSION
9
+ spec.authors = ["Ben Curren"]
10
+ spec.email = ["ben@greenbits.com"]
11
+ spec.summary = %q{MySQL row based replication binlog server based on open replication.}
12
+ spec.description = %q{MySQL row based replication binlog server based on open replication.}
13
+ spec.homepage = "http://github.com/greenbits/binlog-server"
14
+ spec.license = "MIT"
15
+ spec.platform = 'java'
16
+
17
+ spec.files = `git ls-files -z *.rb`.split("\x0") +
18
+ Dir['target/binlog-server*.jar'] +
19
+ `git ls-files -z *.gemspec`.split("\x0") +
20
+ `git ls-files -z Rakefile`.split("\x0") +
21
+ `git ls-files -z *.md`.split("\x0")
22
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
24
+ spec.require_paths = ["target", "lib"]
25
+
26
+ spec.add_development_dependency "bundler", "~> 1.6"
27
+ spec.add_development_dependency "rake", "~> 10.0"
28
+ end
data/example/server.rb ADDED
@@ -0,0 +1,60 @@
1
+ require 'rubygems'
2
+ require 'binlog-server'
3
+
4
+ class MyPositionCheckpointer
5
+ attr_reader :file_name, :position
6
+ include Binlog::PositionCheckpointer
7
+
8
+ def initialize(file_name, position)
9
+ rotate(file_name, position)
10
+ end
11
+
12
+ def rotate(file_name, position)
13
+ @file_name = file_name
14
+ @position = position
15
+ puts "rotate: #{@file_name}, #{@position}"
16
+ end
17
+
18
+ def checkpoint(position)
19
+ @position = position
20
+ puts "checkpoint: #{@position}"
21
+ end
22
+ end
23
+
24
+ class MyRowEventListener
25
+ include Binlog::RowEventListener
26
+
27
+ def startup(version)
28
+ puts "Startup"
29
+ end
30
+
31
+ def begin_transaction
32
+ puts "Begin transaction"
33
+ end
34
+
35
+ def update(event)
36
+ puts "Update"
37
+ end
38
+
39
+ def write(event)
40
+ puts "Write"
41
+ end
42
+
43
+ def delete(event)
44
+ puts "Delete"
45
+ end
46
+
47
+ def commit_transaction
48
+ puts "Commit Transaction"
49
+ end
50
+ end
51
+
52
+ server = Binlog::RowServer.new
53
+ server.user = 'replicate'
54
+ server.password = 'test1234'
55
+ server.host = 'localhost'
56
+ server.port = 3306
57
+ server.serverId = 10
58
+ server.checkpointer = MyPositionCheckpointer.new('mysql-bin.000007', 6957)
59
+ server.listener = MyRowEventListener.new
60
+ server.start
@@ -0,0 +1,3 @@
1
+ module Binlog
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,8 @@
1
+ require "binlog/version"
2
+ require "binlog-server-#{Binlog::VERSION}.jar"
3
+
4
+ module Binlog
5
+ include_package "com.greenbits.binlog"
6
+ include_package "com.google.code.or.common.glossary"
7
+ include_package "com.google.code.or.common.glossary.column"
8
+ end
Binary file
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: binlog-server
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: java
6
+ authors:
7
+ - Ben Curren
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ~>
17
+ - !ruby/object:Gem::Version
18
+ version: '1.6'
19
+ name: bundler
20
+ prerelease: false
21
+ type: :development
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '10.0'
33
+ name: rake
34
+ prerelease: false
35
+ type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: MySQL row based replication binlog server based on open replication.
42
+ email:
43
+ - ben@greenbits.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - example/server.rb
49
+ - lib/binlog-server.rb
50
+ - lib/binlog/version.rb
51
+ - target/binlog-server-1.0.0.jar
52
+ - binlog-server.gemspec
53
+ - Rakefile
54
+ - README.md
55
+ homepage: http://github.com/greenbits/binlog-server
56
+ licenses:
57
+ - MIT
58
+ metadata: {}
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - target
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ requirements: []
75
+ rubyforge_project:
76
+ rubygems_version: 2.1.9
77
+ signing_key:
78
+ specification_version: 4
79
+ summary: MySQL row based replication binlog server based on open replication.
80
+ test_files: []