norikra-udf-redis 0.0.1-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: 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: []