mwmitchell-rsolr 0.8.9 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +4 -0
- data/lib/rsolr/adapter/direct.rb +17 -16
- data/rsolr.gemspec +2 -2
- data/test/connection/direct_test.rb +15 -3
- metadata +2 -2
data/CHANGES.txt
CHANGED
data/lib/rsolr/adapter/direct.rb
CHANGED
@@ -9,8 +9,11 @@ class RSolr::Adapter::Direct
|
|
9
9
|
|
10
10
|
include RSolr::HTTPClient::Util
|
11
11
|
|
12
|
-
attr_accessor :opts
|
12
|
+
attr_accessor :opts
|
13
13
|
|
14
|
+
# opts can be an instance of org.apache.solr.servlet.DirectSolrConnection
|
15
|
+
# if opts is NOT an instance of org.apache.solr.servlet.DirectSolrConnection
|
16
|
+
# then...
|
14
17
|
# required: opts[:home_dir] is absolute path to solr home (the directory with "data", "config" etc.)
|
15
18
|
# opts must also contain either
|
16
19
|
# :dist_dir => 'absolute path to solr distribution root
|
@@ -20,22 +23,24 @@ class RSolr::Adapter::Direct
|
|
20
23
|
# :select_path => 'the/select/handler'
|
21
24
|
# :update_path => 'the/update/handler'
|
22
25
|
def initialize(opts, &block)
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
if defined?(Java::OrgApacheSolrServlet::DirectSolrConnection) and opts.is_a?(Java::OrgApacheSolrServlet::DirectSolrConnection)
|
27
|
+
@connection = opts
|
28
|
+
else
|
29
|
+
opts[:data_dir] ||= File.join(opts[:home_dir].to_s, 'data')
|
30
|
+
if opts[:dist_dir] and ! opts[:jar_paths]
|
31
|
+
# add the standard lib and dist directories to the :jar_paths
|
32
|
+
opts[:jar_paths] = [File.join(opts[:dist_dir], 'lib'), File.join(opts[:dist_dir], 'dist')]
|
33
|
+
end
|
34
|
+
@opts = opts
|
28
35
|
end
|
29
|
-
@opts = opts
|
30
36
|
end
|
31
37
|
|
32
38
|
# loads/imports the java dependencies
|
33
|
-
# sets the @connection instance variable
|
39
|
+
# sets the @connection instance variable if it has not yet been set
|
34
40
|
def connection
|
35
41
|
@connection ||= (
|
36
42
|
require_jars(@opts[:jar_paths]) if @opts[:jar_paths]
|
37
|
-
|
38
|
-
DirectSolrConnection.new(@home_dir, @opts[:data_dir], nil)
|
43
|
+
org.apache.solr.servlet.DirectSolrConnection.new(opts[:home_dir], @opts[:data_dir], nil)
|
39
44
|
)
|
40
45
|
end
|
41
46
|
|
@@ -67,17 +72,13 @@ class RSolr::Adapter::Direct
|
|
67
72
|
|
68
73
|
protected
|
69
74
|
|
70
|
-
# do the java import thingy
|
71
|
-
def import_dependencies
|
72
|
-
import org.apache.solr.servlet.DirectSolrConnection
|
73
|
-
end
|
74
|
-
|
75
75
|
# require the jar files
|
76
76
|
def require_jars(paths)
|
77
77
|
paths = [paths] unless paths.is_a?(Array)
|
78
78
|
paths.each do |path|
|
79
|
+
raise "Invalid jar path: #{path}" unless File.exists?(path)
|
79
80
|
jar_pattern = File.join(path,"**", "*.jar")
|
80
|
-
Dir[jar_pattern].each {|jar_file| require jar_file}
|
81
|
+
Dir[jar_pattern].each {|jar_file| require jar_file }
|
81
82
|
end
|
82
83
|
end
|
83
84
|
|
data/rsolr.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "rsolr"
|
3
|
-
s.version = "0.
|
4
|
-
s.date = "2009-
|
3
|
+
s.version = "0.9.0"
|
4
|
+
s.date = "2009-07-17"
|
5
5
|
s.summary = "A Ruby client for Apache Solr"
|
6
6
|
s.email = "goodieboy@gmail.com"
|
7
7
|
s.homepage = "http://github.com/mwmitchell/rsolr"
|
@@ -7,11 +7,14 @@ if defined?(JRUBY_VERSION)
|
|
7
7
|
|
8
8
|
include ConnectionTestMethods
|
9
9
|
|
10
|
+
attr :dist
|
11
|
+
attr :home
|
12
|
+
|
10
13
|
def setup
|
11
14
|
base = File.expand_path( File.dirname(__FILE__) )
|
12
|
-
dist = File.join(base, '..', '..', 'apache-solr')
|
13
|
-
home = File.join(dist, 'example', 'solr')
|
14
|
-
@solr = RSolr.connect(:adapter=>:direct, :home_dir
|
15
|
+
@dist = File.join(base, '..', '..', 'apache-solr')
|
16
|
+
@home = File.join(dist, 'example', 'solr')
|
17
|
+
@solr = RSolr.connect(:adapter=>:direct, :home_dir=>@home, :dist_dir=>@dist)
|
15
18
|
@solr.delete_by_query('*:*')
|
16
19
|
@solr.commit
|
17
20
|
end
|
@@ -20,6 +23,15 @@ if defined?(JRUBY_VERSION)
|
|
20
23
|
@solr.adapter.close
|
21
24
|
end
|
22
25
|
|
26
|
+
def test_new_connection_with_existing_core
|
27
|
+
Dir["#{@dist}/dist/*.jar"].each { |p| require p }
|
28
|
+
dc = org.apache.solr.servlet.DirectSolrConnection.new(@home, "#{@home}/data", nil)
|
29
|
+
adapter = RSolr::Adapter::Direct.new dc
|
30
|
+
s = RSolr::Connection.new(adapter)
|
31
|
+
assert_equal Hash, s.request('/admin/ping').class
|
32
|
+
adapter.close
|
33
|
+
end
|
34
|
+
|
23
35
|
end
|
24
36
|
|
25
37
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mwmitchell-rsolr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Mitchell
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-07-17 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|