hbase-jruby 0.7.0-java → 0.7.1-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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +17 -15
- data/hbase-jruby.gemspec +1 -0
- data/lib/hbase-jruby/table.rb +1 -1
- data/lib/hbase-jruby/table/mutation.rb +11 -3
- data/lib/hbase-jruby/version.rb +1 -1
- data/test/helper.rb +2 -3
- data/test/test_hbase.rb +0 -11
- data/test/test_table.rb +17 -1
- metadata +26 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a11f20dabc1a006d84c0d657e878a706f3c04e11
|
4
|
+
data.tar.gz: 80d648377fbc94157cf5c8addcfcabc15a06c30d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b586cf5138693aac0b2e34025d413a65d91d22053e7d3b3ae3d6cc2a2121df1080e445b72f11ad6d3b2ad23e6c4642e1dbaefeb31f0e749e9251b599aa6e5aa
|
7
|
+
data.tar.gz: 70476d6fcda145a3d5b703748cabc72da20ebe82fe49149858e32c7513affa8621733f9eb5d723ec686935565d9bafadf6a45f2a7489cedfc634113dbf085aec
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -53,7 +53,7 @@ hbase = HBase.new 'localhost'
|
|
53
53
|
# Table object
|
54
54
|
table = hbase[:test_table]
|
55
55
|
table.drop! if table.exists?
|
56
|
-
table.create! :cf1, :cf2
|
56
|
+
table.create! :cf1 => {}, :cf2 => {}
|
57
57
|
|
58
58
|
# PUT
|
59
59
|
table.put 'rowkey1' => { 'cf1:a' => 100, 'cf2:b' => 'Hello' },
|
@@ -326,16 +326,25 @@ table.put 'rowkey1', title: "Hello World", year: 2013
|
|
326
326
|
|
327
327
|
# Putting multiple rows
|
328
328
|
table.put 'rowkey1' => { title: 'foo', year: 2013 },
|
329
|
-
'rowkey2' => { title:
|
329
|
+
'rowkey2' => { title: 'bar', year: 2014 },
|
330
330
|
'rowkey3' => { title: 'foobar', year: 2015 }
|
331
331
|
|
332
332
|
# Putting values with timestamps
|
333
333
|
table.put 'rowkey1',
|
334
334
|
title: {
|
335
|
-
1353143856665 =>
|
336
|
-
1352978648642 =>
|
335
|
+
1353143856665 => 'Hello world',
|
336
|
+
1352978648642 => 'Goodbye world'
|
337
337
|
},
|
338
338
|
year: 2013
|
339
|
+
|
340
|
+
# Putting values with the same timestamp
|
341
|
+
table.put('rowkey1',
|
342
|
+
{
|
343
|
+
title: 'foo',
|
344
|
+
year: 2016
|
345
|
+
},
|
346
|
+
1463678960135
|
347
|
+
)
|
339
348
|
```
|
340
349
|
|
341
350
|
### GET
|
@@ -1254,17 +1263,10 @@ ba.java # Returns the native Java byte array (byte[])
|
|
1254
1263
|
## Test
|
1255
1264
|
|
1256
1265
|
```bash
|
1257
|
-
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
export HBASE_JRUBY_TEST_DIST='0.94'
|
1262
|
-
|
1263
|
-
# Test both for 1.8 and 1.9
|
1264
|
-
for v in --1.8 --1.9; do
|
1265
|
-
export JRUBY_OPTS=$v
|
1266
|
-
rake test
|
1267
|
-
done
|
1266
|
+
export CLASSPATH=hbase-client-dep-1.2.jar
|
1267
|
+
export HBASE_JRUBY_TEST_ZK=localhost
|
1268
|
+
export JRUBY_OPTS=--debug
|
1269
|
+
jrake test TESTOPTS=-v
|
1268
1270
|
```
|
1269
1271
|
|
1270
1272
|
## Contributing
|
data/hbase-jruby.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
20
20
|
gem.require_paths = ["lib"]
|
21
21
|
|
22
|
+
gem.add_development_dependency 'minitest'
|
22
23
|
gem.add_development_dependency 'yard'
|
23
24
|
gem.add_development_dependency 'simplecov'
|
24
25
|
end
|
data/lib/hbase-jruby/table.rb
CHANGED
@@ -8,7 +8,7 @@ class Mutation
|
|
8
8
|
@table = table
|
9
9
|
end
|
10
10
|
|
11
|
-
def put rowkey, props
|
11
|
+
def put rowkey, props, timestamp = nil
|
12
12
|
Put.new(Util.to_bytes rowkey).tap { |put|
|
13
13
|
props.each do |col, val|
|
14
14
|
next if val.nil?
|
@@ -28,9 +28,17 @@ class Mutation
|
|
28
28
|
end unless v.nil?
|
29
29
|
end
|
30
30
|
when String
|
31
|
-
|
31
|
+
if timestamp
|
32
|
+
put.add cf, cq, time_to_long(timestamp), val.to_java_bytes
|
33
|
+
else
|
34
|
+
put.add cf, cq, val.to_java_bytes
|
35
|
+
end
|
32
36
|
else
|
33
|
-
|
37
|
+
if timestamp
|
38
|
+
put.add cf, cq, time_to_long(timestamp), Util.to_typed_bytes(type, val)
|
39
|
+
else
|
40
|
+
put.add cf, cq, Util.to_typed_bytes(type, val)
|
41
|
+
end
|
34
42
|
end
|
35
43
|
end
|
36
44
|
raise ArgumentError, "no column to put" if put.empty?
|
data/lib/hbase-jruby/version.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
$VERBOSE = true
|
2
2
|
|
3
|
-
require 'minitest/autorun'
|
4
3
|
require 'simplecov'
|
5
4
|
SimpleCov.start
|
6
|
-
|
5
|
+
require 'minitest/autorun'
|
7
6
|
RECREATE = false
|
8
7
|
|
9
8
|
unless defined? Enumerator
|
@@ -21,7 +20,7 @@ HBase.log4j = { 'log4j.threshold' => 'ERROR' }
|
|
21
20
|
|
22
21
|
class TestHBaseJRubyBase < Minitest::Test
|
23
22
|
TABLE = 'test_hbase_jruby'
|
24
|
-
ZK = ENV.fetch
|
23
|
+
ZK = ENV.fetch('HBASE_JRUBY_TEST_ZK', 'localhost')
|
25
24
|
|
26
25
|
# Initialize
|
27
26
|
hbase = HBase.new 'hbase.zookeeper.quorum' => ZK
|
data/test/test_hbase.rb
CHANGED
@@ -4,17 +4,6 @@ $LOAD_PATH.unshift File.expand_path('..', __FILE__)
|
|
4
4
|
require 'helper'
|
5
5
|
|
6
6
|
class TestHBase < TestHBaseJRubyBase
|
7
|
-
def test_log4j
|
8
|
-
HBase.log4j = File.expand_path('../log4j/log4j.properties', __FILE__)
|
9
|
-
HBase.log4j = File.expand_path('../log4j/log4j.xml', __FILE__)
|
10
|
-
|
11
|
-
begin
|
12
|
-
HBase.log4j = File.expand_path('../log4j/log4j_invalid.xml', __FILE__)
|
13
|
-
assert false, "Exception must be thrown when invalid XML is given"
|
14
|
-
rescue Exception
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
7
|
def test_tables
|
19
8
|
assert @hbase.table_names.include?(TABLE)
|
20
9
|
assert @hbase.list.include?(TABLE)
|
data/test/test_table.rb
CHANGED
@@ -147,8 +147,9 @@ class TestTable < TestHBaseJRubyBase
|
|
147
147
|
assert_equal 'A1', @table.get(rowkey).string('cf1:pdp')
|
148
148
|
end
|
149
149
|
|
150
|
-
def
|
150
|
+
def test_put_timestamp_per_column
|
151
151
|
rowkey = next_rowkey
|
152
|
+
|
152
153
|
@table.put rowkey => {
|
153
154
|
'cf1:b' => 'B1',
|
154
155
|
'cf1:a' => {
|
@@ -164,6 +165,21 @@ class TestTable < TestHBaseJRubyBase
|
|
164
165
|
assert_equal ['B1'], @table.versions(:all).get(rowkey).strings('cf1:b').values
|
165
166
|
end
|
166
167
|
|
168
|
+
def test_put_timestamp_for_all_columns
|
169
|
+
rowkey = next_rowkey
|
170
|
+
|
171
|
+
# Fixnum timestamp support.
|
172
|
+
@table.put(rowkey, { 'cf1:a' => 'A4' }, 1280000000000)
|
173
|
+
|
174
|
+
assert_equal 'A4', @table.versions(:all).get(rowkey).strings('cf1:a')[1280000000000]
|
175
|
+
|
176
|
+
# Ruby Time timestamp support.
|
177
|
+
@table.put(rowkey, { 'cf1:a' => 'A5', 'cf1:b' => 777 }, Time.at(1290000000))
|
178
|
+
|
179
|
+
assert_equal 'A5', @table.versions(:all).get(rowkey).strings('cf1:a')[1290000000000]
|
180
|
+
assert_equal 777, @table.versions(:all).get(rowkey).fixnums('cf1:b')[1290000000000]
|
181
|
+
end
|
182
|
+
|
167
183
|
def test_increment
|
168
184
|
row1 = next_rowkey.to_s
|
169
185
|
row2 = next_rowkey.to_s
|
metadata
CHANGED
@@ -1,43 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hbase-jruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Junegunn Choi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
15
22
|
version_requirements: !ruby/object:Gem::Requirement
|
16
23
|
requirements:
|
17
24
|
- - ">="
|
18
25
|
- !ruby/object:Gem::Version
|
19
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yard
|
20
29
|
requirement: !ruby/object:Gem::Requirement
|
21
30
|
requirements:
|
22
31
|
- - ">="
|
23
32
|
- !ruby/object:Gem::Version
|
24
33
|
version: '0'
|
25
|
-
prerelease: false
|
26
34
|
type: :development
|
27
|
-
|
28
|
-
name: simplecov
|
35
|
+
prerelease: false
|
29
36
|
version_requirements: !ruby/object:Gem::Requirement
|
30
37
|
requirements:
|
31
38
|
- - ">="
|
32
39
|
- !ruby/object:Gem::Version
|
33
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: simplecov
|
34
43
|
requirement: !ruby/object:Gem::Requirement
|
35
44
|
requirements:
|
36
45
|
- - ">="
|
37
46
|
- !ruby/object:Gem::Version
|
38
47
|
version: '0'
|
39
|
-
prerelease: false
|
40
48
|
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
description: A JRuby binding for HBase
|
42
56
|
email:
|
43
57
|
- junegunn.c@gmail.com
|
@@ -86,7 +100,7 @@ homepage: https://github.com/junegunn/hbase-jruby
|
|
86
100
|
licenses:
|
87
101
|
- MIT
|
88
102
|
metadata: {}
|
89
|
-
post_install_message:
|
103
|
+
post_install_message:
|
90
104
|
rdoc_options: []
|
91
105
|
require_paths:
|
92
106
|
- lib
|
@@ -101,9 +115,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
115
|
- !ruby/object:Gem::Version
|
102
116
|
version: '0'
|
103
117
|
requirements: []
|
104
|
-
rubyforge_project:
|
105
|
-
rubygems_version: 2.4.
|
106
|
-
signing_key:
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 2.4.5.1
|
120
|
+
signing_key:
|
107
121
|
specification_version: 4
|
108
122
|
summary: A JRuby binding for HBase
|
109
123
|
test_files:
|
@@ -117,4 +131,3 @@ test_files:
|
|
117
131
|
- test/test_table.rb
|
118
132
|
- test/test_table_admin.rb
|
119
133
|
- test/test_util.rb
|
120
|
-
has_rdoc:
|