iudex-jetty-httpclient 1.3.0-java → 1.4.0-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,10 @@
1
+ === 1.4.0 (2013-10-29)
2
+ * Upgrade to rjack-jetty >= 9.0.0.5, < 9.1. This is a major
3
+ re-implementation throughout, with iudex configuration interface
4
+ changes. Internal redirects are no longer supported.
5
+ * Upgrade to iudex-* ~> 1.4.0 dependencies
6
+ * Upgrade to minitest ~> 4.7.4 (dev)
7
+
1
8
  === 1.3.0 (2012-11-8)
2
9
  * Upgrade to logback ~> 1.5 (dev)
3
10
  * Add Client.setCancelOnExpire and default true. This is a seemingly
@@ -7,4 +7,4 @@ lib/iudex-jetty-httpclient/base.rb
7
7
  lib/iudex-jetty-httpclient.rb
8
8
  test/setup.rb
9
9
  test/test_httpclient.rb
10
- lib/iudex-jetty-httpclient/iudex-jetty-httpclient-1.3.0.jar
10
+ lib/iudex-jetty-httpclient/iudex-jetty-httpclient-1.4.0.jar
@@ -11,7 +11,7 @@ iudex-http interfaces.
11
11
 
12
12
  == License
13
13
 
14
- Copyright (c) 2008-2012 David Kellum
14
+ Copyright (c) 2008-2013 David Kellum
15
15
 
16
16
  Licensed under the Apache License, Version 2.0 (the "License"); you
17
17
  may not use this file except in compliance with the License. You
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2008-2012 David Kellum
2
+ # Copyright (c) 2008-2013 David Kellum
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you
5
5
  # may not use this file except in compliance with the License. You
@@ -31,41 +31,51 @@ module Iudex
31
31
  require "#{LIB_DIR}/iudex-jetty-httpclient-#{VERSION}.jar"
32
32
 
33
33
  import 'iudex.jettyhttpclient.Client'
34
+ import 'org.eclipse.jetty.util.HttpCookieStore'
35
+ import 'org.eclipse.jetty.util.ssl.SslContextFactory'
34
36
 
35
37
  include RJack::Jetty
36
38
 
37
- def self.create_jetty_client( opts = {} )
38
- cfg = { :timeout => 6_000,
39
- :so_timeout => 5_000,
40
- :connect_timeout => 3_000,
41
- :idle_timeout => 6_000,
42
- :max_retries => 1,
43
- :max_redirects => 6,
44
- :max_connections_per_address => 2,
45
- :max_queue_size_per_address => 100,
46
- :connect_blocking => false,
47
- :handle_redirects_internal => false }
48
-
49
- cfg = cfg.merge( opts )
50
- cfg = Hooker.merge( [ :iudex, :jetty_httpclient ], cfg )
39
+ def self.create_jetty_client( cfg = {} )
51
40
 
52
- jclient = HttpClient.new
41
+ ssl_factory = SslContextFactory.new
42
+ ctx_cfg = cfg.delete( :ssl_context )
43
+ ctx_cfg.each do |key,value|
44
+ ssl_factory.__send__( "set_#{key}", value )
45
+ end
53
46
 
54
- redir_listen = cfg.delete( :handle_redirects_internal )
47
+ jclient = HttpClient.new( ssl_factory )
55
48
 
56
49
  cfg.each do |key,value|
57
50
  jclient.__send__( "set_#{key}", value )
58
51
  end
59
52
 
60
- if redir_listen
61
- jclient.register_listener( 'org.eclipse.jetty.client.RedirectListener' )
62
- end
53
+ jclient.cookie_store = HttpCookieStore::Empty.new
63
54
 
64
55
  jclient
65
56
  end
66
57
 
67
58
  def self.create_client( opts = {} )
68
- Client.new( create_jetty_client( opts ) )
59
+ cfg = { :timeout => 6_000,
60
+ :connect_timeout => 3_000,
61
+ :idle_timeout => 6_000,
62
+ :max_connections_per_destination => 2,
63
+ :max_requests_queued_per_destination => 100,
64
+ :dispatch_io => true,
65
+ :follow_redirects => false,
66
+ :max_redirects => 6,
67
+ :ssl_context => { :trust_all => true } }
68
+
69
+ cfg = cfg.merge( opts )
70
+ cfg = Hooker.merge( [ :iudex, :jetty_httpclient ], cfg )
71
+
72
+ timeout = cfg.delete( :timeout )
73
+
74
+ client = Client.new( create_jetty_client( cfg ) )
75
+
76
+ client.timeout = timeout if timeout
77
+
78
+ client
69
79
  end
70
80
 
71
81
  end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2008-2012 David Kellum
2
+ # Copyright (c) 2008-2013 David Kellum
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you
5
5
  # may not use this file except in compliance with the License. You
@@ -16,7 +16,7 @@
16
16
 
17
17
  module Iudex
18
18
  module JettyHTTPClient
19
- VERSION = '1.3.0'
19
+ VERSION = '1.4.0'
20
20
 
21
21
  LIB_DIR = File.dirname( __FILE__ ) # :nodoc:
22
22
  end
data/pom.xml CHANGED
@@ -5,13 +5,13 @@
5
5
  <groupId>iudex</groupId>
6
6
  <artifactId>iudex-jetty-httpclient</artifactId>
7
7
  <packaging>jar</packaging>
8
- <version>1.3.0</version>
8
+ <version>1.4.0</version>
9
9
  <name>Iudex Jetty HTTP Client Adaptor</name>
10
10
 
11
11
  <parent>
12
12
  <groupId>iudex</groupId>
13
13
  <artifactId>iudex-parent</artifactId>
14
- <version>1.3.0</version>
14
+ <version>1.4.0</version>
15
15
  <relativePath>..</relativePath>
16
16
  </parent>
17
17
 
@@ -20,13 +20,13 @@
20
20
  <dependency>
21
21
  <groupId>iudex</groupId>
22
22
  <artifactId>iudex-http</artifactId>
23
- <version>[1.3.0,1.3.999)</version>
23
+ <version>[1.4.0,1.4.999)</version>
24
24
  </dependency>
25
25
 
26
26
  <dependency>
27
27
  <groupId>org.eclipse.jetty</groupId>
28
28
  <artifactId>jetty-client</artifactId>
29
- <version>[7.5.4,7.6.9999)</version>
29
+ <version>[9.0.0.v20130308,9.0.9999)</version>
30
30
  </dependency>
31
31
 
32
32
  </dependencies>
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2008-2012 David Kellum
2
+ # Copyright (c) 2008-2013 David Kellum
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you
5
5
  # may not use this file except in compliance with the License. You
@@ -35,10 +35,10 @@ module TestSetup
35
35
  def puts( *a ); $stdout.puts( *a ); end
36
36
  end
37
37
  MiniTest::Unit.output = TestOut.new
38
- Logback[ 'org.eclipse.jetty.http.ssl.SslContextFactory' ].level =
39
- Logback::WARN
38
+ Logback[ 'org.eclipse.jetty' ].level = :warn
40
39
  else
41
- Logback.root.level = Logback::DEBUG
40
+ Logback[ 'org.eclipse.jetty' ].level = :info
41
+ Logback[ 'iudex.jettyhttpclient' ].level = :debug
42
42
  end
43
43
 
44
44
  ARGV.delete( '--debug' )
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env jruby
2
2
 
3
3
  #--
4
- # Copyright (c) 2008-2012 David Kellum
4
+ # Copyright (c) 2008-2013 David Kellum
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License"); you
7
7
  # may not use this file except in compliance with the License. You
@@ -37,8 +37,9 @@ class TestHTTPClient < MiniTest::Unit::TestCase
37
37
  import 'java.net.UnknownHostException'
38
38
  import 'java.net.URISyntaxException'
39
39
  import 'java.io.IOException'
40
- import 'java.lang.IllegalStateException'
41
40
  import 'java.nio.channels.UnresolvedAddressException'
41
+ import 'org.eclipse.jetty.client.HttpResponseException'
42
+ import 'iudex.jettyhttpclient.Client$SessionAbort'
42
43
 
43
44
  CustomUnit.register
44
45
 
@@ -56,22 +57,18 @@ class TestHTTPClient < MiniTest::Unit::TestCase
56
57
  import 'java.util.concurrent.ThreadPoolExecutor'
57
58
  import 'java.util.concurrent.ArrayBlockingQueue'
58
59
  import 'java.util.concurrent.TimeUnit'
59
- import 'org.eclipse.jetty.util.thread.ExecutorThreadPool'
60
60
 
61
61
  def test_custom_executor
62
- #FIXME: A bit shaky, fails under 3 threads?
63
62
  executor = ThreadPoolExecutor.new( 3, 10,
64
63
  10, TimeUnit::SECONDS,
65
64
  ArrayBlockingQueue.new( 10 ) )
66
- pool = ExecutorThreadPool.new( executor )
67
-
68
- with_new_client( :thread_pool => pool ) do |client|
65
+ with_new_client( :executor => executor ) do |client|
69
66
  with_session_handler( client, "/index" ) do |s,x|
70
67
  assert_equal( 200, s.status_code )
71
68
  end
72
69
  end
73
70
 
74
- pool.stop
71
+ executor.shutdown
75
72
  end
76
73
 
77
74
  def test_200
@@ -109,11 +106,11 @@ class TestHTTPClient < MiniTest::Unit::TestCase
109
106
  req,rsp = nil
110
107
  with_new_client do |client|
111
108
  with_session_handler( client,
112
- "/echo/header/Accept?noop=3",
109
+ "/echo/header/Accept?noop=3%267&o=9",
113
110
  true,
114
111
  { 'Accept' => 'text/plain;moo' } ) do |s,x|
115
112
  assert_equal( 200, s.status_code )
116
- assert_equal( 'GET /echo/header/Accept?noop=3',
113
+ assert_equal( 'GET /echo/header/Accept?noop=3%267&o=9',
117
114
  find_header( s.request_headers, "Request-Line" ) )
118
115
  assert_equal( 'text/plain;moo',
119
116
  find_header( s.request_headers, 'Accept' ) )
@@ -130,7 +127,6 @@ class TestHTTPClient < MiniTest::Unit::TestCase
130
127
  def test_unknown_host
131
128
  with_new_client( :timeout => 12_000,
132
129
  :connect_timeout => 10_000,
133
- :so_timeout => 10_000,
134
130
  :idle_timeout => 10_000 ) do |client|
135
131
  with_session_handler( client,
136
132
  "http://9xa9.a7v6a7lop-9m9q-w12.com" ) do |s,x|
@@ -190,12 +186,20 @@ class TestHTTPClient < MiniTest::Unit::TestCase
190
186
  assert_kind_of( TimeoutException, x )
191
187
  end
192
188
  end
193
- sleep 0.70 # FIXME: Account for test server delay. Should be
194
- # joined instead.
189
+ end
190
+
191
+ def test_slow_timeout
192
+ with_new_client( :short => true ) do |client|
193
+ with_session_handler( client, "/slow" ) do |s,x|
194
+ assert_equal( HTTPSession::TIMEOUT, s.status_code )
195
+ assert_kind_of( TimeoutException, x )
196
+ end
197
+ end
195
198
  end
196
199
 
197
200
  def test_redirect
198
- with_new_client( :handle_redirects_internal => true ) do |client|
201
+ skip "redirect url not accessible"
202
+ with_new_client( :follow_redirects => true ) do |client|
199
203
  with_session_handler( client, "/" ) do |s,x|
200
204
  assert_equal( 200, s.status_code )
201
205
  assert_equal( 'http://localhost:19292/index', s.url )
@@ -204,7 +208,8 @@ class TestHTTPClient < MiniTest::Unit::TestCase
204
208
  end
205
209
 
206
210
  def test_redirect_with_query_string
207
- with_new_client( :handle_redirects_internal => true ) do |client|
211
+ skip "redirect url not accessible"
212
+ with_new_client( :follow_redirects => true ) do |client|
208
213
  with_session_handler( client, "/redirects/multi/2?sleep=0" ) do |s,x|
209
214
  assert_equal( 200, s.status_code )
210
215
  assert_equal( 'http://localhost:19292/redirects/multi/1?sleep=0',
@@ -216,7 +221,8 @@ class TestHTTPClient < MiniTest::Unit::TestCase
216
221
  end
217
222
 
218
223
  def test_redirect_multi_host
219
- with_new_client( :handle_redirects_internal => true ) do |client|
224
+ skip "redirect url not accessible"
225
+ with_new_client( :follow_redirects => true ) do |client|
220
226
  rurl = 'http://127.0.0.1:19292/index'
221
227
  rurl_e = CGI.escape( rurl )
222
228
  with_session_handler( client, "/redirect?loc=#{rurl_e}" ) do |s,x|
@@ -228,7 +234,7 @@ class TestHTTPClient < MiniTest::Unit::TestCase
228
234
 
229
235
  def test_redirect_multi_host_bad
230
236
  skip( "Error: -1 java.lang.NumberFormatException" )
231
- with_new_client( :handle_redirects_internal => true ) do |client|
237
+ with_new_client( :follow_redirects => true ) do |client|
232
238
  rurl = 'http://localhost:19292/index'
233
239
  url = "http://127.0.0.1:19292?redirect?loc=" + CGI.escape( rurl )
234
240
  # Note >?<redirect? above
@@ -242,7 +248,8 @@ class TestHTTPClient < MiniTest::Unit::TestCase
242
248
  end
243
249
 
244
250
  def test_redirect_multi_host_3
245
- with_new_client( :handle_redirects_internal => true ) do |client|
251
+ skip "redirect url not accessible"
252
+ with_new_client( :follow_redirects => true ) do |client|
246
253
  rurl = 'http://localhost:19292/index'
247
254
  url = "http://127.0.0.1:19292/redirect?loc=" + CGI.escape( rurl )
248
255
  url = "/redirect?loc=" + CGI.escape( url )
@@ -255,7 +262,8 @@ class TestHTTPClient < MiniTest::Unit::TestCase
255
262
  end
256
263
 
257
264
  def test_redirect_multi_host_fragment
258
- with_new_client( :handle_redirects_internal => true ) do |client|
265
+ skip "redirect url not accessible"
266
+ with_new_client( :follow_redirects => true ) do |client|
259
267
  rurl = '/index#!foo'
260
268
  url = "/redirect?loc=" + CGI.escape( rurl )
261
269
 
@@ -267,7 +275,8 @@ class TestHTTPClient < MiniTest::Unit::TestCase
267
275
  end
268
276
 
269
277
  def test_redirect_bad_host
270
- with_new_client( :handle_redirects_internal => true ) do |client|
278
+ skip( "FIXME hangs" )
279
+ with_new_client( :follow_redirects => true ) do |client|
271
280
  rurl = CGI.escape( 'http://\bad.com/' )
272
281
  with_session_handler( client, "/redirect?loc=#{ rurl }" ) do |s,x|
273
282
  assert_equal( HTTPSession::INVALID_REDIRECT_URL, s.status_code )
@@ -277,8 +286,8 @@ class TestHTTPClient < MiniTest::Unit::TestCase
277
286
  end
278
287
 
279
288
  def test_multi_redirect
280
- with_new_client( :handle_redirects_internal => true,
281
- :max_redirects => 8 ) do |client|
289
+ skip "redirect url not accessible"
290
+ with_new_client( :follow_redirects => true ) do |client|
282
291
  with_session_handler( client, "/redirects/multi/6" ) do |s,x|
283
292
  assert_equal( 200, s.status_code )
284
293
  assert_nil x
@@ -297,23 +306,21 @@ class TestHTTPClient < MiniTest::Unit::TestCase
297
306
  end
298
307
 
299
308
  def test_too_many_redirects
300
- with_new_client( :handle_redirects_internal => true,
309
+ with_new_client( :follow_redirects => true,
301
310
  :max_redirects => 18 ) do |client|
302
- #FIXME: One redirect off somewhere? 19 fails.
303
311
  with_session_handler( client, "/redirects/multi/20" ) do |s,x|
304
- assert_equal( 302, s.status_code, x )
312
+ assert_equal( HTTPSession::MAX_REDIRECTS_EXCEEDED, s.status_code )
305
313
  end
306
314
  end
307
315
  end
308
316
 
309
317
  def test_redirect_timeout
310
318
  skip( "Unreliable timeout with redirects, timing dependent" )
311
- with_new_client( :handle_redirects_internal => true,
319
+ with_new_client( :follow_redirects => true,
312
320
  :short => true ) do |client|
313
321
  with_session_handler( client, "/redirects/multi/3?sleep=0.40" ) do |s,x|
314
322
  assert_instance_of( TimeoutException, x )
315
323
  end
316
- sleep 0.80
317
324
  end
318
325
  end
319
326
 
@@ -325,10 +332,11 @@ class TestHTTPClient < MiniTest::Unit::TestCase
325
332
  bs.accept { |sock| sock.write "FU Stinky\r\n" }
326
333
  end
327
334
 
328
- #FIXME: IllegalStateException on bad HTTP response line?
329
335
  with_new_client do |client|
330
336
  with_session_handler( client, "http://localhost:19293/" ) do |s,x|
331
- assert_instance_of( IllegalStateException, x )
337
+ assert_match( /(EofException|bad response|ClosedChannelException)/i,
338
+ x.to_string )
339
+ assert_equal( -1, s.status_code )
332
340
  end
333
341
  end
334
342
 
@@ -348,7 +356,7 @@ class TestHTTPClient < MiniTest::Unit::TestCase
348
356
 
349
357
  with_new_client do |client|
350
358
  with_session_handler( client, "http://localhost:19293/" ) do |s,x|
351
- assert_match( /EofException/i, x.class.name )
359
+ assert_match( /EofException|ClosedChannelException/i, x.class.name )
352
360
  end
353
361
  end
354
362
 
@@ -378,7 +386,7 @@ class TestHTTPClient < MiniTest::Unit::TestCase
378
386
 
379
387
  with_new_client do |client|
380
388
  with_session_handler( client, "http://localhost:19293/" ) do |s,x|
381
- assert_match( /EofException/i, x.class.name )
389
+ assert_match( /EofException|ClosedChannelException/i, x.class.name )
382
390
  end
383
391
  end
384
392
 
@@ -409,7 +417,7 @@ class TestHTTPClient < MiniTest::Unit::TestCase
409
417
 
410
418
  with_new_client do |client|
411
419
  with_session_handler( client, "http://localhost:19293/" ) do |s,x|
412
- assert_match( /EofException/i, x.class.name )
420
+ assert_match( /EofException|ClosedChannelException/i, x.class.name )
413
421
  end
414
422
  end
415
423
 
@@ -422,9 +430,8 @@ class TestHTTPClient < MiniTest::Unit::TestCase
422
430
  def test_concurrent
423
431
  with_new_client( :timeout => 18_000,
424
432
  :connect_timeout => 15_000,
425
- :so_timeout => 12_000,
426
433
  :idle_timeout => 12_000,
427
- :max_connections_per_address => 4 ) do |client|
434
+ :max_connections_per_destination => 4 ) do |client|
428
435
 
429
436
  resps = []
430
437
  sessions = (1..19).map do |i|
@@ -443,12 +450,11 @@ class TestHTTPClient < MiniTest::Unit::TestCase
443
450
  end
444
451
  end
445
452
 
446
- def test_maximum_connections_per_address
453
+ def test_maximum_connections_per_destination
447
454
  with_new_client( :timeout => 12_000,
448
455
  :connect_timeout => 10_000,
449
- :so_timeout => 10_000,
450
456
  :idle_timeout => 10_000,
451
- :max_connections_per_address => 2 ) do |client|
457
+ :max_connections_per_destination => 2 ) do |client|
452
458
 
453
459
  resps = []
454
460
  sessions = (1..7).map do |i|
@@ -469,7 +475,7 @@ class TestHTTPClient < MiniTest::Unit::TestCase
469
475
  def test_abort_when_too_large
470
476
  with_new_client do |client|
471
477
  with_session_handler( client, "/giant" ) do |s,x|
472
- assert_nil( x )
478
+ assert_kind_of( SessionAbort, x )
473
479
  assert_equal( HTTPSession::TOO_LARGE, s.status_code )
474
480
  end
475
481
  end
@@ -479,7 +485,7 @@ class TestHTTPClient < MiniTest::Unit::TestCase
479
485
  with_new_client do |client|
480
486
  client.max_content_length = 1
481
487
  with_session_handler( client, "/atom.xml" ) do |s,x|
482
- assert_nil( x )
488
+ assert_kind_of( SessionAbort, x )
483
489
  assert_equal( HTTPSession::TOO_LARGE_LENGTH, s.status_code )
484
490
  end
485
491
  end
@@ -489,7 +495,7 @@ class TestHTTPClient < MiniTest::Unit::TestCase
489
495
  with_new_client do |client|
490
496
  client.accepted_content_types = ContentTypeSet.new( [ "gold/*" ] )
491
497
  with_session_handler( client, "/giant" ) do |s,x|
492
- assert_nil( x )
498
+ assert_kind_of( SessionAbort, x )
493
499
  assert_equal( HTTPSession::NOT_ACCEPTED, s.status_code )
494
500
  end
495
501
  end
@@ -531,18 +537,14 @@ class TestHTTPClient < MiniTest::Unit::TestCase
531
537
  def with_new_client( opts = {} )
532
538
  o = if opts.delete( :short )
533
539
  { :timeout => 400,
534
- :so_timeout => 200,
535
540
  :connect_timeout => 200,
536
541
  :idle_timeout => 200 }
537
542
  else
538
543
  { :timeout => 5000,
539
- :so_timeout => 4000,
540
544
  :connect_timeout => 3000,
541
545
  :idle_timeout => 2000 }
542
546
  end
543
547
 
544
- o = o.merge( { :max_retries => 0,
545
- :connect_blocking => false } )
546
548
  o = o.merge( opts )
547
549
 
548
550
  client = JettyHTTPClient.create_client( o )
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: iudex-jetty-httpclient
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.3.0
5
+ version: 1.4.0
6
6
  platform: java
7
7
  authors:
8
8
  - David Kellum
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-08 00:00:00.000000000 Z
12
+ date: 2013-10-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: iudex-http
@@ -17,13 +17,13 @@ dependencies:
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: 1.3.0
20
+ version: 1.4.0
21
21
  none: false
22
22
  requirement: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 1.3.0
26
+ version: 1.4.0
27
27
  none: false
28
28
  prerelease: false
29
29
  type: :runtime
@@ -33,19 +33,19 @@ dependencies:
33
33
  requirements:
34
34
  - - ! '>='
35
35
  - !ruby/object:Gem::Version
36
- version: 7.5.4
36
+ version: 9.0.0.5
37
37
  - - <
38
38
  - !ruby/object:Gem::Version
39
- version: '7.7'
39
+ version: '9.1'
40
40
  none: false
41
41
  requirement: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 7.5.4
45
+ version: 9.0.0.5
46
46
  - - <
47
47
  - !ruby/object:Gem::Version
48
- version: '7.7'
48
+ version: '9.1'
49
49
  none: false
50
50
  prerelease: false
51
51
  type: :runtime
@@ -71,13 +71,13 @@ dependencies:
71
71
  requirements:
72
72
  - - ~>
73
73
  - !ruby/object:Gem::Version
74
- version: '2.3'
74
+ version: 4.7.4
75
75
  none: false
76
76
  requirement: !ruby/object:Gem::Requirement
77
77
  requirements:
78
78
  - - ~>
79
79
  - !ruby/object:Gem::Version
80
- version: '2.3'
80
+ version: 4.7.4
81
81
  none: false
82
82
  prerelease: false
83
83
  type: :development
@@ -87,13 +87,13 @@ dependencies:
87
87
  requirements:
88
88
  - - ~>
89
89
  - !ruby/object:Gem::Version
90
- version: 1.3.0
90
+ version: 1.4.0
91
91
  none: false
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ~>
95
95
  - !ruby/object:Gem::Version
96
- version: 1.3.0
96
+ version: 1.4.0
97
97
  none: false
98
98
  prerelease: false
99
99
  type: :development
@@ -147,7 +147,7 @@ files:
147
147
  - lib/iudex-jetty-httpclient.rb
148
148
  - test/setup.rb
149
149
  - test/test_httpclient.rb
150
- - lib/iudex-jetty-httpclient/iudex-jetty-httpclient-1.3.0.jar
150
+ - lib/iudex-jetty-httpclient/iudex-jetty-httpclient-1.4.0.jar
151
151
  homepage: http://iudex.gravitext.com
152
152
  licenses: []
153
153
  post_install_message: