norikra-udf-redis 0.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d7ad7fe93b7883cee02628ace8506f4eb95e9030
4
+ data.tar.gz: 365304f6ca07e2acd219d8ce7312a0a05e44fc09
5
+ SHA512:
6
+ metadata.gz: 48c778beb845eb2423df835b2b9ad87dcbd75cf33deca49bfafcd83c9f56f8cbe9009c29ea6cda39aa21a964ac14f191c0ff7ba03ff9ee0535fff5400dc3f233
7
+ data.tar.gz: 9a294c4be771c640009ff86e66b148e836a037dc5de634bf625dfa26437f1d386319fea2156516687defa6e23c57f69bf55dd320957a455eca5dc74368a8d0d3
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - jruby-19mode
4
+ jdk:
5
+ - oraclejdk8
6
+ - oraclejdk7
7
+ - openjdk7
8
+ services:
9
+ - redis
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in norikra-udf-redis.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # Norikra::Udf::Redis
2
+
3
+ [Norikra](http://norikra.github.io/) UDF to execute operations on Redis.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'norikra-udf-redis'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install norikra-udf-redis
20
+
21
+ ## Usage
22
+
23
+ The following functions are provided.
24
+
25
+ | Function | Result |
26
+ |--------------------|----------------------------------------------------------------------------------------|
27
+ | incr(key) | Increments the number stored at key by one. Returns incremented value. |
28
+ | incrby(key, value) | Increments the number stored at key by the specified value. Returns incremented value. |
29
+ | rset(key, value) | Set key to hold the string value. Returns "OK" if properly set. |
30
+ | rget(key) | Get the value of key. Returns the value |
31
+ | rdel(key) | Removes the specified key. Returns the number of removed keys. (maybe 1) |
32
+
33
+ ## Copyright
34
+
35
+ * Copyright (c) 2015- OGIBAYASHI Hironori
36
+ * License
37
+ * GPL v2
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec) do |t|
5
+ t.rspec_opts = ["-Ijar", "-Ilib", "-c", "-f progress"] # '--format specdoc'
6
+ t.pattern = 'spec/**/*_spec.rb'
7
+ end
8
+
9
+ task :compile do
10
+ require 'rubygems'
11
+
12
+ jarname = FileList['norikra-udf-*.gemspec'].first.gsub(/\.gemspec$/, '.jar')
13
+
14
+ jarfiles = FileList['jar/**/*.jar'].select{|f| not f.end_with?('/' + jarname)}
15
+ jarfiles << Gem.find_latest_files('esper-*.jar').first
16
+
17
+ java_classpath = "-classpath src:java:#{jarfiles.join(':')}"
18
+ FileList['src/**/*.java'].each do |fn|
19
+ sh "env LC_ALL=C javac -J-Duser.language=en #{java_classpath} -d java #{fn}"
20
+ end
21
+
22
+ jruby_classpath = "--classpath java:#{jarfiles.join(':')}"
23
+ FileList['lib/esper_plugin/**/*.rb'].each do |fn|
24
+ sh "env LC_ALL=C jrubyc --javac --target java #{jruby_classpath} #{fn}"
25
+ end
26
+
27
+ sh "env LC_ALL=C jar -J-Duser.language=en -cf jar/#{jarname} -C java ."
28
+ end
29
+
30
+ task :clean do
31
+ sh "rm -rf java/*"
32
+ end
33
+
34
+ task :test => [:compile, :spec]
35
+ task :default => :test
36
+
37
+ task :all => [:clean, :compile, :spec, :build]
Binary file
Binary file
Binary file
data/java/.touched ADDED
File without changes
@@ -0,0 +1,66 @@
1
+ require 'java'
2
+ require 'jedis-2.7.3.jar'
3
+ require 'commons-pool2-2.4.2.jar'
4
+
5
+ java_package 'jp.gr.java_conf.ogibayashi.norikra.udf'
6
+
7
+ class Redis # FQDN: org.example.yourcompany.norikra.udf.MyUDF1
8
+
9
+ def self.connect
10
+ begin
11
+ Java::redis.clients.jedis.JedisPool.new(Java::redis.clients.jedis.JedisPoolConfig.new, "localhost")
12
+ rescue
13
+ warn $! if @logger
14
+ end
15
+ end
16
+
17
+ def self.pool
18
+ @@pool || self.connect
19
+ end
20
+
21
+ @@pool = self.connect
22
+
23
+ java_signature 'public long incr(String)'
24
+ def self.incr(key)
25
+ jedis = pool.getResource()
26
+ ret = jedis.incr(key)
27
+ jedis.close()
28
+ ret
29
+ end
30
+
31
+ java_signature 'public long incrby(String, long)'
32
+ def self.incrby(key, value)
33
+ jedis = pool.getResource()
34
+ ret = jedis.incrBy(key, value)
35
+ jedis.close()
36
+ ret
37
+ end
38
+
39
+ # set, get, del are prefixed 'r' to avoid reserved words.
40
+
41
+ java_signature 'public String rset(String, String)'
42
+ def self.rset(key, value)
43
+ jedis = pool.getResource()
44
+ ret = jedis.set(key, value)
45
+ jedis.close()
46
+ ret
47
+ end
48
+
49
+ java_signature 'public String rget(String)'
50
+ def self.rget(key)
51
+ jedis = pool.getResource()
52
+ ret = jedis.get(key)
53
+ jedis.close()
54
+ ret
55
+ end
56
+
57
+ java_signature 'public long rdel(String)'
58
+ def self.rdel(key)
59
+ jedis = pool.getResource()
60
+ ret = jedis.del(key)
61
+ jedis.close()
62
+ ret
63
+ end
64
+
65
+
66
+ end
@@ -0,0 +1,63 @@
1
+ require 'java'
2
+ require 'norikra/udf'
3
+
4
+ module Norikra
5
+ module UDF
6
+
7
+ class Incr < Norikra::UDF::SingleRow
8
+ def self.init
9
+ require 'norikra-udf-redis.jar'
10
+ end
11
+
12
+ def definition
13
+ # function_name, Java Class Name (fqdn), static function name
14
+ ["incr", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "incr"]
15
+ end
16
+ end
17
+
18
+ class Incrby < Norikra::UDF::SingleRow
19
+ def self.init
20
+ require 'norikra-udf-redis.jar'
21
+ end
22
+
23
+ def definition
24
+ # function_name, Java Class Name (fqdn), static function name
25
+ ["incrby", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "incrby"]
26
+ end
27
+ end
28
+
29
+ class RSet < Norikra::UDF::SingleRow
30
+ def self.init
31
+ require 'norikra-udf-redis.jar'
32
+ end
33
+
34
+ def definition
35
+ # function_name, Java Class Name (fqdn), static function name
36
+ ["rset", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "rset"]
37
+ end
38
+ end
39
+
40
+ class RGet < Norikra::UDF::SingleRow
41
+ def self.init
42
+ require 'norikra-udf-redis.jar'
43
+ end
44
+
45
+ def definition
46
+ # function_name, Java Class Name (fqdn), static function name
47
+ ["rget", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "rget"]
48
+ end
49
+ end
50
+
51
+ class RDel < Norikra::UDF::SingleRow
52
+ def self.init
53
+ require 'norikra-udf-redis.jar'
54
+ end
55
+
56
+ def definition
57
+ # function_name, Java Class Name (fqdn), static function name
58
+ ["rdel", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "rdel"]
59
+ end
60
+ end
61
+
62
+ end
63
+ end
@@ -0,0 +1,7 @@
1
+ module Norikra
2
+ module Udf
3
+ module Redis
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'norikra/udf/redis/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "norikra-udf-redis"
8
+ spec.version = Norikra::Udf::Redis::VERSION
9
+ spec.authors = ["Hironori Ogibayashi"]
10
+ spec.email = ["ogibayashi@gmail.com.com"]
11
+
12
+ spec.summary = %q{Norikra UDF to execute operations on Redis. }
13
+ spec.description = %q{Norikra UDF to execute operations on Redis, like incr, incrby, set, get etc.}
14
+ spec.homepage = "https://github.com/ogibayashi/norikra-udf-redis"
15
+ spec.license = "GPLv2"
16
+ spec.platform = "java"
17
+
18
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
19
+ # delete this section to allow pushing this gem to any host.
20
+ if spec.respond_to?(:metadata)
21
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
22
+ else
23
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
24
+ end
25
+
26
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
+ spec.bindir = "exe"
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib","jar"]
30
+
31
+ spec.add_development_dependency "bundler", "~> 1.7"
32
+ spec.add_development_dependency "rake"
33
+ spec.add_development_dependency "minitest"
34
+ spec.add_development_dependency "rspec"
35
+ spec.add_runtime_dependency "norikra", "~>1.0"
36
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: norikra-udf-redis
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: java
6
+ authors:
7
+ - Hironori Ogibayashi
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-09-02 00:00:00.000000000 Z
12
+ dependencies:
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.7'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: '1.7'
25
+ prerelease: false
26
+ type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ prerelease: false
54
+ type: :development
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ prerelease: false
68
+ type: :development
69
+ - !ruby/object:Gem::Dependency
70
+ name: norikra
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ~>
79
+ - !ruby/object:Gem::Version
80
+ version: '1.0'
81
+ prerelease: false
82
+ type: :runtime
83
+ description: Norikra UDF to execute operations on Redis, like incr, incrby, set, get etc.
84
+ email:
85
+ - ogibayashi@gmail.com.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - .gitignore
91
+ - .travis.yml
92
+ - Gemfile
93
+ - README.md
94
+ - Rakefile
95
+ - jar/commons-pool2-2.4.2.jar
96
+ - jar/jedis-2.7.3.jar
97
+ - jar/norikra-udf-redis.jar
98
+ - java/.touched
99
+ - lib/esper_plugin/redis.rb
100
+ - lib/norikra/udf/redis.rb
101
+ - lib/norikra/udf/redis/version.rb
102
+ - norikra-udf-redis.gemspec
103
+ homepage: https://github.com/ogibayashi/norikra-udf-redis
104
+ licenses:
105
+ - GPLv2
106
+ metadata:
107
+ allowed_push_host: https://rubygems.org
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ - jar
113
+ required_ruby_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ requirements: []
124
+ rubyforge_project:
125
+ rubygems_version: 2.4.5
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: Norikra UDF to execute operations on Redis.
129
+ test_files: []