jettywrapper 1.8.3 → 2.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 670aa3d9748338dff690d45e951d95d32a5f7fbe
4
- data.tar.gz: eec8044aff83ec8da33c08e08716677ded189dd1
3
+ metadata.gz: 90d0380f37306e0ca328c5a86d1dd304c7141e65
4
+ data.tar.gz: 8ee2ed933249ff1a268575048a1d920040566e0e
5
5
  SHA512:
6
- metadata.gz: 77753335132f0abb583bf0b8df9abf3891e8ce572f9761c535ba8e3867bac2953fcab8a08b7ee63343947bce8d17057e31216bdc6b4da948d43cd2b327174f83
7
- data.tar.gz: d85059f5bafa7fa8f1d8bf296edbcb91a5a57bbbbee52b414d2007e45615f348ce1644dbe28375734a31ab0a24fd70f9c3bbfe25a2fbba58b07d76af74ecb7af
6
+ metadata.gz: a6c80ca97aa9f89f0c76882557f957596735b2f48dd923960a8e5afc68ed47ecf1b1072385a2a56a1e4038d3f1437dbe37262301b352d3470fc5dcbcf944393a
7
+ data.tar.gz: 8d82e591a1cd4d1a70ad37f449e88ad55dcd79744815b23f457b2d525da5e246b56af77ddc517b450a7f63a1901420c6ae1fe0756ee4a5f76f12bbafd731b71f
@@ -1,5 +1,9 @@
1
+ 2.0.0
2
+ Jettywrapper.start should trigger unzip [Chris Beer (@cbeer)]
3
+ Jettywrapper should support Fedora 4 by using hydra-jetty 8.1.1 [Mike Giarlo (@mjgiarlo)]
4
+
1
5
  1.8.0
2
- 2014-07-16: Removed mediashelf-loggable dependency [Justin Coyne]
6
+ Removed mediashelf-loggable dependency [Justin Coyne]
3
7
 
4
8
  1.4.0
5
9
  Download jetty from a zip file
@@ -12,14 +12,12 @@ require 'logger'
12
12
 
13
13
  Dir[File.expand_path(File.join(File.dirname(__FILE__),"tasks/*.rake"))].each { |ext| load ext } if defined?(Rake)
14
14
 
15
-
16
15
  # Jettywrapper is a Singleton class, so you can only create one jetty instance at a time.
17
16
  class Jettywrapper
18
17
 
19
18
  include Singleton
20
19
  include ActiveSupport::Benchmarkable
21
20
 
22
-
23
21
  attr_accessor :jetty_home # Jetty's home directory
24
22
  attr_accessor :port # Jetty's port. Default is 8888. Note that attribute is named port, but params passed in expect :jetty_port
25
23
  attr_accessor :startup_wait # How many seconds to wait for jetty to spin up. Default is 5.
@@ -34,7 +32,6 @@ class Jettywrapper
34
32
  self.base_path = self.class.app_root
35
33
  end
36
34
 
37
-
38
35
  # Methods inside of the class << self block can be called directly on Jettywrapper, as class methods.
39
36
  # Methods outside the class << self block must be called on Jettywrapper.instance, as instance methods.
40
37
  class << self
@@ -42,7 +39,7 @@ class Jettywrapper
42
39
  attr_writer :hydra_jetty_version, :url, :tmp_dir, :jetty_dir, :env
43
40
 
44
41
  def hydra_jetty_version
45
- @hydra_jetty_version ||= 'v7.0.0'
42
+ @hydra_jetty_version ||= 'v8.1.1'
46
43
  end
47
44
 
48
45
  def url
@@ -63,6 +60,7 @@ class Jettywrapper
63
60
  end
64
61
 
65
62
  def download(url = nil)
63
+ return if File.exists? zip_file
66
64
  self.url = url if url
67
65
  logger.info "Downloading jetty at #{self.url} ..."
68
66
  FileUtils.mkdir tmp_dir unless File.exists? tmp_dir
@@ -161,7 +159,6 @@ class Jettywrapper
161
159
  config[config_name] || config['default'.freeze]
162
160
  end
163
161
 
164
-
165
162
  # Set the jetty parameters. It accepts a Hash of symbols.
166
163
  # @param [Hash<Symbol>] params
167
164
  # :jetty_home Required. Jetty's home direcotry
@@ -185,7 +182,6 @@ class Jettywrapper
185
182
  return jetty_server
186
183
  end
187
184
 
188
-
189
185
  # Wrap the tests. Startup jetty, yield to the test task, capture any errors, shutdown
190
186
  # jetty, and return the error.
191
187
  # @example Using this method in a rake task
@@ -230,9 +226,10 @@ class Jettywrapper
230
226
  # @example
231
227
  # Jettywrapper.start(:jetty_home => '/path/to/jetty', :jetty_port => '8983')
232
228
  def start(params)
233
- Jettywrapper.configure(params)
234
- Jettywrapper.instance.start
235
- return Jettywrapper.instance
229
+ unzip unless File.exists? jetty_dir
230
+ Jettywrapper.configure(params)
231
+ Jettywrapper.instance.start
232
+ return Jettywrapper.instance
236
233
  end
237
234
 
238
235
  # Convenience method for configuring and starting jetty with one command. Note
@@ -428,7 +425,6 @@ class Jettywrapper
428
425
  end
429
426
  end
430
427
 
431
-
432
428
  # The fully qualified path to the pid_file
433
429
  def pid_path
434
430
  #need to memoize this, becasuse the base path could be relative and the cwd can change in the yield block of wrap
@@ -1,3 +1,3 @@
1
1
  class Jettywrapper
2
- VERSION = "1.8.3"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -1,9 +1,10 @@
1
1
  require 'spec_helper'
2
2
  require 'rubygems'
3
+ require 'fileutils'
3
4
 
4
5
  describe Jettywrapper do
5
-
6
- # JETTY1 =
6
+
7
+ # JETTY1 =
7
8
  before(:all) do
8
9
  @jetty_params = {
9
10
  :quiet => false,
@@ -12,7 +13,7 @@ require 'rubygems'
12
13
  :solr_home => "/path/to/solr",
13
14
  :startup_wait => 0,
14
15
  :java_opts => ["-Xmx256m"],
15
- :jetty_opts => ["/path/to/jetty_xml", "/path/to/other_jetty_xml"]
16
+ :jetty_opts => ["/path/to/jetty_xml", "/path/to/other_jetty_xml"]
16
17
  }
17
18
 
18
19
  Jettywrapper.logger.level=3
@@ -25,7 +26,8 @@ require 'rubygems'
25
26
  context "downloading" do
26
27
  context "with default file" do
27
28
  it "should download the zip file" do
28
- Jettywrapper.should_receive(:system).with('curl -L https://github.com/projecthydra/hydra-jetty/archive/v7.0.0.zip -o tmp/v7.0.0.zip').and_return(system ('true'))
29
+ FileUtils.rm "tmp/v8.1.1.zip", force: true
30
+ Jettywrapper.should_receive(:system).with('curl -L https://github.com/projecthydra/hydra-jetty/archive/v8.1.1.zip -o tmp/v8.1.1.zip').and_return(system ('true'))
29
31
  Jettywrapper.download
30
32
  end
31
33
  end
@@ -53,10 +55,10 @@ require 'rubygems'
53
55
  context "with default file" do
54
56
  it "should download the zip file" do
55
57
  File.should_receive(:exists?).and_return(true)
56
- Jettywrapper.should_receive(:expanded_zip_dir).and_return('tmp/jetty_generator/hydra-jetty-v7.0.0')
57
- Jettywrapper.should_receive(:system).with('unzip -d tmp/jetty_generator -qo tmp/v7.0.0.zip').and_return(system ('true'))
58
+ Jettywrapper.should_receive(:expanded_zip_dir).and_return('tmp/jetty_generator/hydra-jetty-v8.1.1')
59
+ Jettywrapper.should_receive(:system).with('unzip -d tmp/jetty_generator -qo tmp/v8.1.1.zip').and_return(system ('true'))
58
60
  Jettywrapper.should_receive(:system).with('rm -r jetty').and_return(system ('true'))
59
- Jettywrapper.should_receive(:system).with('mv tmp/jetty_generator/hydra-jetty-v7.0.0 jetty').and_return(system ('true'))
61
+ Jettywrapper.should_receive(:system).with('mv tmp/jetty_generator/hydra-jetty-v8.1.1 jetty').and_return(system ('true'))
60
62
  Jettywrapper.unzip
61
63
  end
62
64
  end
@@ -97,7 +99,7 @@ require 'rubygems'
97
99
  its(:url) {should == 'http://example.com/bar.zip'}
98
100
  end
99
101
  context "when url is not set" do
100
- its(:url) {should == 'https://github.com/projecthydra/hydra-jetty/archive/v7.0.0.zip'}
102
+ its(:url) {should == 'https://github.com/projecthydra/hydra-jetty/archive/v8.1.1.zip'}
101
103
  end
102
104
  end
103
105
 
@@ -162,46 +164,46 @@ require 'rubygems'
162
164
  its(:app_root) {should == '.'}
163
165
  end
164
166
  end
165
-
167
+
166
168
  describe "env" do
167
169
  before do
168
170
  ENV.delete('JETTYWRAPPER_ENV')
169
171
  ENV.delete('RAILS_ENV')
170
172
  ENV.delete('environment')
171
173
  end
172
-
174
+
173
175
  it "should have a setter" do
174
176
  Jettywrapper.env = "abc"
175
- expect(Jettywrapper.env).to eq "abc"
177
+ expect(Jettywrapper.env).to eq "abc"
176
178
  end
177
-
179
+
178
180
  it "should load the ENV['JETTYWRAPPER_ENV']" do
179
181
  ENV['JETTYWRAPPER_ENV'] = 'test'
180
182
  ENV['RAILS_ENV'] = 'test2'
181
183
  ENV['environment'] = 'test3'
182
184
  expect(Jettywrapper.env).to eq "test"
183
185
  end
184
-
186
+
185
187
  it "should be the Rails environment" do
186
188
  Rails = double(env: 'test')
187
189
  expect(Jettywrapper.env).to eq "test"
188
190
  end
189
-
191
+
190
192
  it "should use the ENV['RAILS_ENV']" do
191
193
  ENV['RAILS_ENV'] = 'test2'
192
194
  ENV['environment'] = 'test3'
193
195
  expect(Jettywrapper.env).to eq "test2"
194
196
  end
195
-
197
+
196
198
  it "should load the ENV['environment']" do
197
199
  ENV['environment'] = 'test3'
198
200
  expect(Jettywrapper.env).to eq "test3"
199
201
  end
200
-
202
+
201
203
  it "should default to 'development'" do
202
204
  expect(Jettywrapper.env).to eq "development"
203
205
  end
204
-
206
+
205
207
  end
206
208
 
207
209
  context "config" do
@@ -245,7 +247,7 @@ require 'rubygems'
245
247
  config[:a].should == 1
246
248
  end
247
249
  end
248
-
250
+
249
251
  context "instantiation" do
250
252
  it "can be instantiated" do
251
253
  ts = Jettywrapper.instance
@@ -253,7 +255,7 @@ require 'rubygems'
253
255
  end
254
256
 
255
257
  it "can be configured with a params hash" do
256
- ts = Jettywrapper.configure(@jetty_params)
258
+ ts = Jettywrapper.configure(@jetty_params)
257
259
  ts.quiet.should == false
258
260
  ts.jetty_home.should == "/path/to/jetty"
259
261
  ts.port.should == @jetty_params[:jetty_port]
@@ -272,7 +274,7 @@ require 'rubygems'
272
274
  :jetty_opts => nil
273
275
  }
274
276
 
275
- ts = Jettywrapper.configure(jetty_params)
277
+ ts = Jettywrapper.configure(jetty_params)
276
278
  ts.quiet.should == true
277
279
  ts.jetty_home.should == "/path/to/jetty"
278
280
  ts.port.should == 8888
@@ -280,9 +282,9 @@ require 'rubygems'
280
282
  ts.startup_wait.should == 5
281
283
  ts.jetty_opts.should == []
282
284
  end
283
-
285
+
284
286
  it "passes all the expected values to jetty during startup" do
285
- ts = Jettywrapper.configure(@jetty_params)
287
+ ts = Jettywrapper.configure(@jetty_params)
286
288
  command = ts.jetty_command
287
289
  command.should include("-Dsolr.solr.home=#{@jetty_params[:solr_home]}")
288
290
  command.should include("-Djetty.port=#{@jetty_params[:jetty_port]}")
@@ -296,24 +298,24 @@ require 'rubygems'
296
298
  command = ts.jetty_command
297
299
  command.should include("-Dsolr.solr.home=/path\\ with\\ spaces/to/solr")
298
300
  end
299
-
301
+
300
302
  it "has a pid if it has been started" do
301
303
  jetty_params = {
302
304
  :jetty_home => '/tmp'
303
305
  }
304
- ts = Jettywrapper.configure(jetty_params)
306
+ ts = Jettywrapper.configure(jetty_params)
305
307
  Jettywrapper.any_instance.stub(:process).and_return(double('proc', :start => nil, :pid=>5454))
306
308
  ts.stop
307
309
  ts.start
308
310
  ts.pid.should eql(5454)
309
311
  ts.stop
310
312
  end
311
-
313
+
312
314
  it "can pass params to a start method" do
313
315
  jetty_params = {
314
316
  :jetty_home => '/tmp', :jetty_port => 8777
315
317
  }
316
- ts = Jettywrapper.configure(jetty_params)
318
+ ts = Jettywrapper.configure(jetty_params)
317
319
  ts.stop
318
320
  Jettywrapper.any_instance.stub(:process).and_return(double('proc', :start => nil, :pid=>2323))
319
321
  swp = Jettywrapper.start(jetty_params)
@@ -321,11 +323,11 @@ require 'rubygems'
321
323
  swp.pid_file.should eql("_tmp_test.pid")
322
324
  swp.stop
323
325
  end
324
-
326
+
325
327
  it "can get the status for a given jetty instance" do
326
328
  # Don't actually start jetty, just fake it
327
329
  Jettywrapper.any_instance.stub(:process).and_return(double('proc', :start => nil, :pid=>12345))
328
-
330
+
329
331
  jetty_params = {
330
332
  :jetty_home => File.expand_path("#{File.dirname(__FILE__)}/../../jetty")
331
333
  }
@@ -335,7 +337,7 @@ require 'rubygems'
335
337
  Jettywrapper.is_jetty_running?(jetty_params).should eql(true)
336
338
  Jettywrapper.stop(jetty_params)
337
339
  end
338
-
340
+
339
341
  it "can get the pid for a given jetty instance" do
340
342
  # Don't actually start jetty, just fake it
341
343
  Jettywrapper.any_instance.stub(:process).and_return(double('proc', :start => nil, :pid=>54321))
@@ -348,7 +350,7 @@ require 'rubygems'
348
350
  Jettywrapper.pid(jetty_params).should eql(54321)
349
351
  Jettywrapper.stop(jetty_params)
350
352
  end
351
-
353
+
352
354
  it "can pass params to a stop method" do
353
355
  jetty_params = {
354
356
  :jetty_home => '/tmp', :jetty_port => 8777
@@ -356,11 +358,11 @@ require 'rubygems'
356
358
  Jettywrapper.any_instance.stub(:process).and_return(double('proc', :start => nil, :pid=>2323))
357
359
  swp = Jettywrapper.start(jetty_params)
358
360
  (File.file? swp.pid_path).should eql(true)
359
-
361
+
360
362
  swp = Jettywrapper.stop(jetty_params)
361
363
  (File.file? swp.pid_path).should eql(false)
362
364
  end
363
-
365
+
364
366
  describe "creates a pid file" do
365
367
  let(:ts) { Jettywrapper.configure(@jetty_params) }
366
368
  describe "when the environment isn't set" do
@@ -376,17 +378,17 @@ require 'rubygems'
376
378
  end
377
379
  end
378
380
  end
379
-
381
+
380
382
  it "knows where its pid file should be written" do
381
- ts = Jettywrapper.configure(@jetty_params)
383
+ ts = Jettywrapper.configure(@jetty_params)
382
384
  ts.pid_dir.should eql(File.expand_path("#{ts.base_path}/tmp/pids"))
383
385
  end
384
-
386
+
385
387
  it "writes a pid to a file when it is started" do
386
388
  jetty_params = {
387
389
  :jetty_home => '/tmp'
388
390
  }
389
- ts = Jettywrapper.configure(jetty_params)
391
+ ts = Jettywrapper.configure(jetty_params)
390
392
  Jettywrapper.any_instance.stub(:process).and_return(double('proc', :start => nil, :pid=>2222))
391
393
  ts.stop
392
394
  ts.pid_file?.should eql(false)
@@ -396,49 +398,49 @@ require 'rubygems'
396
398
  pid_from_file = File.open( ts.pid_path ) { |f| f.gets.to_i }
397
399
  pid_from_file.should eql(2222)
398
400
  end
399
-
401
+
400
402
  end # end of instantiation context
401
-
403
+
402
404
  context "logging" do
403
405
  it "has a logger" do
404
- ts = Jettywrapper.configure(@jetty_params)
406
+ ts = Jettywrapper.configure(@jetty_params)
405
407
  ts.logger.should be_kind_of(Logger)
406
408
  end
407
-
408
- end # end of logging context
409
-
409
+
410
+ end # end of logging context
411
+
410
412
  context "wrapping a task" do
411
413
  it "wraps another method" do
412
414
  Jettywrapper.any_instance.stub(:start).and_return(true)
413
415
  Jettywrapper.any_instance.stub(:stop).and_return(true)
414
- error = Jettywrapper.wrap(@jetty_params) do
416
+ error = Jettywrapper.wrap(@jetty_params) do
415
417
  end
416
418
  error.should eql(false)
417
419
  end
418
-
420
+
419
421
  it "configures itself correctly when invoked via the wrap method" do
420
422
  Jettywrapper.any_instance.stub(:start).and_return(true)
421
423
  Jettywrapper.any_instance.stub(:stop).and_return(true)
422
- error = Jettywrapper.wrap(@jetty_params) do
423
- ts = Jettywrapper.instance
424
+ error = Jettywrapper.wrap(@jetty_params) do
425
+ ts = Jettywrapper.instance
424
426
  ts.quiet.should == @jetty_params[:quiet]
425
427
  ts.jetty_home.should == "/path/to/jetty"
426
428
  ts.port.should == @jetty_params[:jetty_port]
427
429
  ts.solr_home.should == "/path/to/solr"
428
- ts.startup_wait.should == 0
430
+ ts.startup_wait.should == 0
429
431
  end
430
432
  error.should eql(false)
431
433
  end
432
-
434
+
433
435
  it "captures any errors produced" do
434
436
  Jettywrapper.any_instance.stub(:start).and_return(true)
435
437
  Jettywrapper.any_instance.stub(:stop).and_return(true)
436
438
  Jettywrapper.instance.logger.should_receive(:error).with("*** Error starting jetty: this is an expected error message")
437
- expect { error = Jettywrapper.wrap(@jetty_params) do
439
+ expect { error = Jettywrapper.wrap(@jetty_params) do
438
440
  raise "this is an expected error message"
439
441
  end }.to raise_error "this is an expected error message"
440
442
  end
441
-
443
+
442
444
  end # end of wrapping context
443
445
 
444
446
  context "quiet mode", :quiet => true do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jettywrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.3
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-10-29 00:00:00.000000000 Z
13
+ date: 2015-01-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: logger
@@ -174,9 +174,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  version: 1.3.6
175
175
  requirements: []
176
176
  rubyforge_project:
177
- rubygems_version: 2.2.2
177
+ rubygems_version: 2.4.3
178
178
  signing_key:
179
179
  specification_version: 4
180
180
  summary: Convenience tasks for working with jetty from within a ruby project.
181
181
  test_files: []
182
- has_rdoc: