solr_like_rack_server 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.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +11 -0
  7. data/Rakefile +2 -0
  8. data/lib/jars/commons-cli-1.2.jar +0 -0
  9. data/lib/jars/commons-codec-1.7.jar +0 -0
  10. data/lib/jars/commons-fileupload-1.2.1.jar +0 -0
  11. data/lib/jars/commons-io-2.1.jar +0 -0
  12. data/lib/jars/commons-lang-2.6.jar +0 -0
  13. data/lib/jars/guava-13.0.1.jar +0 -0
  14. data/lib/jars/httpclient-4.2.3.jar +0 -0
  15. data/lib/jars/httpcore-4.2.2.jar +0 -0
  16. data/lib/jars/httpmime-4.2.3.jar +0 -0
  17. data/lib/jars/lucene-analyzers-common-4.3.0.jar +0 -0
  18. data/lib/jars/lucene-analyzers-kuromoji-4.3.0.jar +0 -0
  19. data/lib/jars/lucene-analyzers-phonetic-4.3.0.jar +0 -0
  20. data/lib/jars/lucene-codecs-4.3.0.jar +0 -0
  21. data/lib/jars/lucene-core-4.3.0.jar +0 -0
  22. data/lib/jars/lucene-grouping-4.3.0.jar +0 -0
  23. data/lib/jars/lucene-highlighter-4.3.0.jar +0 -0
  24. data/lib/jars/lucene-memory-4.3.0.jar +0 -0
  25. data/lib/jars/lucene-misc-4.3.0.jar +0 -0
  26. data/lib/jars/lucene-queries-4.3.0.jar +0 -0
  27. data/lib/jars/lucene-queryparser-4.3.0.jar +0 -0
  28. data/lib/jars/lucene-spatial-4.3.0.jar +0 -0
  29. data/lib/jars/lucene-suggest-4.3.0.jar +0 -0
  30. data/lib/jars/noggit-0.5.jar +0 -0
  31. data/lib/jars/org.restlet-2.1.1.jar +0 -0
  32. data/lib/jars/org.restlet.ext.servlet-2.1.1.jar +0 -0
  33. data/lib/jars/slf4j-api-1.6.1.jar +0 -0
  34. data/lib/jars/slf4j-nop-1.7.3.jar +0 -0
  35. data/lib/jars/solr-core-4.3.0.jar +0 -0
  36. data/lib/jars/solr-solrj-4.3.0.jar +0 -0
  37. data/lib/jars/spatial4j-0.3.jar +0 -0
  38. data/lib/jars/wstx-asl-3.2.7.jar +0 -0
  39. data/lib/jars/zookeeper-3.4.5.jar +0 -0
  40. data/lib/solr_like_rack_server/response_writer_wrapper.rb +61 -0
  41. data/lib/solr_like_rack_server/version.rb +3 -0
  42. data/lib/solr_like_rack_server.rb +54 -0
  43. data/solr_like_rack_server.gemspec +25 -0
  44. data/test/data.yml +3 -0
  45. data/test/run.sh +4 -0
  46. metadata +118 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f7ea88e9fe3267f7bcf156c55607e61ce7877992
4
+ data.tar.gz: a95c44a09162f6b3fc197f31233c24a51a5e90dc
5
+ SHA512:
6
+ metadata.gz: 0cbdc884667ebbb45b96ff73fab63075fea928ec84ae49e9766e39efc9ccaecda33483bdff67221fea8e4be415231430140062a03e26085b1f6d4c89a381f9c2
7
+ data.tar.gz: e2301488966848ce01b4d2a39eb0e5f408105219912264b26f59e760010a6d75377d433474db426129a8f1a23a932a3cff5609bc8ea64ee3ad1eaf529b68d7d6
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ jruby-1.7.19
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in solr_like_rack_server.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Koji NAKAMURA
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # SolrLikeRackServer
2
+
3
+ JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー
4
+
5
+ ## Usage
6
+
7
+ ```ruby
8
+ SolrLikeRackServer.start({"/search/map_mini/select"=>YAML.load_file("data.yml")}) {
9
+ # ここでjavabin形式でAPIリクエストする処理のテストを記述する
10
+ }
11
+ ```
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,61 @@
1
+ java_import Java::java.io.ByteArrayOutputStream
2
+ java_import Java::java.io.OutputStreamWriter
3
+ java_import Java::java.util.HashMap
4
+ java_import Java::org.apache.solr.common.SolrDocument
5
+ java_import Java::org.apache.solr.common.SolrDocumentList
6
+ java_import Java::org.apache.solr.common.params.SolrParams
7
+ java_import Java::org.apache.solr.common.util.NamedList
8
+ java_import Java::org.apache.solr.request.SolrQueryRequestBase
9
+ java_import Java::org.apache.solr.response.SolrQueryResponse
10
+ java_import Java::org.apache.solr.response.XMLResponseWriter
11
+ java_import Java::org.apache.solr.response.BinaryResponseWriter
12
+
13
+ module SolrLikeRackServer
14
+ # Abstractなクラスを継承
15
+ class MySolrQueryRequest < SolrQueryRequestBase; end
16
+ class MySolrParams < SolrParams
17
+ def get param
18
+ nil
19
+ end
20
+ def getParams param
21
+ []
22
+ end
23
+ def getParameterNamesIterator
24
+ HashMap.new.keySet.iterator
25
+ end
26
+ end
27
+
28
+ class ResponseWriterWrapper
29
+ # SolrQueryRequest
30
+ def request
31
+ MySolrQueryRequest.new nil, MySolrParams.new
32
+ end
33
+
34
+ # SolrQueryResponse
35
+ def response data
36
+ docList = SolrDocumentList.new
37
+ data.each {|d|
38
+ doc = SolrDocument.new
39
+ d.each {|k,v| doc.setField k, v }
40
+ docList.add doc
41
+ }
42
+ docList.setNumFound data.size
43
+ docList.setStart 0
44
+ docList.setMaxScore 1.0
45
+ res = SolrQueryResponse.new
46
+ res.add "response", docList
47
+ res
48
+ end
49
+
50
+ def responseWriter
51
+ BinaryResponseWriter.new
52
+ end
53
+
54
+ def write data
55
+ outputStream = ByteArrayOutputStream.new
56
+ responseWriter.write outputStream, request, response(data)
57
+ byteArray = outputStream.toByteArray
58
+ String.from_java_bytes byteArray
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,3 @@
1
+ module SolrLikeRackServer
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,54 @@
1
+ Dir.glob("#{__FILE__}/jars/*.jar".sub("/solr_like_rack_server.rb", "")).each {|jar| $CLASSPATH << jar }
2
+
3
+ require "webrick"
4
+ require "yaml"
5
+ require "solr_like_rack_server/version"
6
+ require "solr_like_rack_server/response_writer_wrapper"
7
+
8
+ module SolrLikeRackServer
9
+ class << self
10
+ def start mount_procs
11
+ wakeupProc = nil
12
+ server = WEBrick::HTTPServer.new(
13
+ Port: 12345,
14
+ Logger: WEBrick::Log.new('/dev/null'),
15
+ AccessLog: [],
16
+ StartCallback: Proc.new {
17
+ wakeupProc.call unless wakeupProc.nil?
18
+ }
19
+ )
20
+ mount_procs.each {|path, proc|
21
+ server.mount_proc(path) {|req, res|
22
+ res["Content-Type"] = "application/octet-stream"
23
+ data = if Array === proc
24
+ proc
25
+ elsif Hash === proc
26
+ [proc]
27
+ elsif proc.arity == 0
28
+ proc.call
29
+ else
30
+ proc.call(req.query)
31
+ end
32
+ res.body = SolrLikeRackServer::ResponseWriterWrapper.new.write data
33
+ }
34
+ }
35
+ if block_given?
36
+ wakeupProc = Proc.new { Thread.main.wakeup }
37
+ server_thread = Thread.new do
38
+ Thread.current[:server] = server
39
+ server.start
40
+ end
41
+ Thread.stop
42
+ begin
43
+ yield
44
+ ensure
45
+ server_thread[:server].shutdown
46
+ end
47
+ else
48
+ server
49
+ end
50
+ end
51
+
52
+ alias_method :server, :start
53
+ end
54
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'solr_like_rack_server/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "solr_like_rack_server"
8
+ spec.version = SolrLikeRackServer::VERSION
9
+ spec.authors = ["Koji NAKAMURA"]
10
+ spec.email = ["kozy4324@mapion.co.jp"]
11
+ spec.summary = %q{JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー}
12
+ spec.description = %q{JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.platform = "java"
17
+
18
+ spec.files = `git ls-files -z`.split("\x0")
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.7"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ end
data/test/data.yml ADDED
@@ -0,0 +1,3 @@
1
+ - poi_code: G0123456789
2
+ category1_code:
3
+ - M01
data/test/run.sh ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ cd ${0/run.sh}
4
+ ruby -I ../lib -rsolr_like_rack_server -e 'SolrLikeRackServer.server({"/search/map_mini/select"=>YAML.load_file("data.yml")}).start'
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solr_like_rack_server
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: java
6
+ authors:
7
+ - Koji NAKAMURA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-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: '10.0'
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: '10.0'
39
+ prerelease: false
40
+ type: :development
41
+ description: JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー
42
+ email:
43
+ - kozy4324@mapion.co.jp
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - .ruby-version
50
+ - Gemfile
51
+ - LICENSE.txt
52
+ - README.md
53
+ - Rakefile
54
+ - lib/jars/commons-cli-1.2.jar
55
+ - lib/jars/commons-codec-1.7.jar
56
+ - lib/jars/commons-fileupload-1.2.1.jar
57
+ - lib/jars/commons-io-2.1.jar
58
+ - lib/jars/commons-lang-2.6.jar
59
+ - lib/jars/guava-13.0.1.jar
60
+ - lib/jars/httpclient-4.2.3.jar
61
+ - lib/jars/httpcore-4.2.2.jar
62
+ - lib/jars/httpmime-4.2.3.jar
63
+ - lib/jars/lucene-analyzers-common-4.3.0.jar
64
+ - lib/jars/lucene-analyzers-kuromoji-4.3.0.jar
65
+ - lib/jars/lucene-analyzers-phonetic-4.3.0.jar
66
+ - lib/jars/lucene-codecs-4.3.0.jar
67
+ - lib/jars/lucene-core-4.3.0.jar
68
+ - lib/jars/lucene-grouping-4.3.0.jar
69
+ - lib/jars/lucene-highlighter-4.3.0.jar
70
+ - lib/jars/lucene-memory-4.3.0.jar
71
+ - lib/jars/lucene-misc-4.3.0.jar
72
+ - lib/jars/lucene-queries-4.3.0.jar
73
+ - lib/jars/lucene-queryparser-4.3.0.jar
74
+ - lib/jars/lucene-spatial-4.3.0.jar
75
+ - lib/jars/lucene-suggest-4.3.0.jar
76
+ - lib/jars/noggit-0.5.jar
77
+ - lib/jars/org.restlet-2.1.1.jar
78
+ - lib/jars/org.restlet.ext.servlet-2.1.1.jar
79
+ - lib/jars/slf4j-api-1.6.1.jar
80
+ - lib/jars/slf4j-nop-1.7.3.jar
81
+ - lib/jars/solr-core-4.3.0.jar
82
+ - lib/jars/solr-solrj-4.3.0.jar
83
+ - lib/jars/spatial4j-0.3.jar
84
+ - lib/jars/wstx-asl-3.2.7.jar
85
+ - lib/jars/zookeeper-3.4.5.jar
86
+ - lib/solr_like_rack_server.rb
87
+ - lib/solr_like_rack_server/response_writer_wrapper.rb
88
+ - lib/solr_like_rack_server/version.rb
89
+ - solr_like_rack_server.gemspec
90
+ - test/data.yml
91
+ - test/run.sh
92
+ homepage: ''
93
+ licenses:
94
+ - MIT
95
+ metadata: {}
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubyforge_project:
112
+ rubygems_version: 2.4.5
113
+ signing_key:
114
+ specification_version: 4
115
+ summary: JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー
116
+ test_files:
117
+ - test/data.yml
118
+ - test/run.sh