manticore 0.3.3-java → 0.3.4-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d1a619a796954b17b56a23381741f57e603d174
4
- data.tar.gz: bf682e7d96bcb816abf0dacdaa6bb0e6760777d6
3
+ metadata.gz: 353676ba5c5c9ff2a01a4df74c63e059abc55b37
4
+ data.tar.gz: f8ffecdb2d6f8bce9c03a2f8ebeb518329a579a8
5
5
  SHA512:
6
- metadata.gz: 2fb94165a8770dddf5dc1c4c7972433ea12934402a83284fa3890fbf058924dc67205c6d3bed3844cd7a2437c2c2825c90a6bb339935249c9531c272bf7e79f2
7
- data.tar.gz: 300152b1d96c32d4edbb7df6dcff295c780ebc2d568dbc7562e863cf8da6840fd6ab33e8080a01f0711fb3798d9955b75e25fa8159da846b51edf5cf05233c7b
6
+ metadata.gz: 2a0ae79dee6fc7f0420b1ad3a614c91aea0e0abd12d9a0a32c4833432e2ee0fe7ac4f2bc9e3386a9f7ca9f54f110c75fa61cddc2ca6926e7ca710cd5e341bc21
7
+ data.tar.gz: 2eef5cf9942d6fb7d0070bef2db25de3d24a9184d6a6e36fd5b073f5a6decff662ab37b9e83a5144f0dca4601d397d698d24cf44b5674bd0c8f4841903c9ddd2
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,5 +1,13 @@
1
1
  ## v0.3
2
- ### v0.3.4 (pending)
2
+ ### v0.3.5 (pending)
3
+
4
+ ### v0.3.4
5
+
6
+ * Fixed an issue that caused the presence of request-specific options (ie, max_redirects) to cause the request to use a
7
+ default settings config, rather than respecting the client options. (thanks @zanker)
8
+ * Turn off connection state tracking by default; this enables connections to be shared across threads, and shouldn't be an
9
+ issue for most installs. If you need it on, pass :ssl => {:track_state => true} when instantiating a client. (thanks @zanker)
10
+
3
11
  ### v0.3.3
4
12
 
5
13
  * Update to HttpCommons 4.3.6
@@ -138,9 +138,12 @@ module Manticore
138
138
  # @option options [String] ssl[:keystore] (nil) Path to a custom key store to use for client certificate authentication
139
139
  # @option options [String] ssl[:keystore_password] (nil) Password used for decrypting the client auth key store
140
140
  # @option options [String] ssl[:keystore_type] (nil) Format of the key store, ie "JKS" or "PKCS12". If left nil, the type will be inferred from the keystore filename.
141
+ # @option options [boolean] ssl[:track_state] (false) Turn on or off connection state tracking. This helps prevent SSL information from leaking across threads, but means that connections
142
+ # can't be shared across those threads. This should generally be left off unless you know what you're doing.
141
143
  def initialize(options = {})
142
144
  builder = client_builder
143
145
  builder.set_user_agent options.fetch(:user_agent, "Manticore #{VERSION}")
146
+ @options = options
144
147
  @use_cookies = options.fetch(:cookies, false)
145
148
  builder.disable_cookie_management unless @use_cookies
146
149
  builder.disable_content_compression if options.fetch(:compression, true) == false
@@ -160,9 +163,11 @@ module Manticore
160
163
  end
161
164
  end
162
165
 
163
- # This should make it easier to reuse connections
164
- # TODO: Determine what this actually does!
165
- # builder.disable_connection_state
166
+ # http://hc.apache.org/httpcomponents-client-ga/tutorial/html/advanced.html#stateful_conn
167
+ # By default this is used to prevent different contexts from accessing SSL data
168
+ # Since we're running this for JRuby which does not have context separation within the JVM
169
+ # We can disable this for connection reuse.
170
+ builder.disable_connection_state unless options.fetch(:ssl, {}).fetch(:track_state, false)
166
171
 
167
172
  keepalive = options.fetch(:keepalive, true)
168
173
  if keepalive == false
@@ -420,12 +425,14 @@ module Manticore
420
425
 
421
426
  if options.key?(:proxy) || options.key?(:connect_timeout) || options.key?(:socket_timeout) || options.key?(:max_redirects) || options.key?(:follow_redirects)
422
427
  config = RequestConfig.custom()
423
- config.set_proxy get_proxy_host(options[:proxy]) if options[:proxy]
424
- config.set_connect_timeout options[:connect_timeout] if options[:connect_timeout]
425
- config.set_socket_timeout options[:socket_timeout] if options[:socket_timeout]
426
- config.set_max_redirects options[:max_redirects] if options[:max_redirects]
427
- config.set_redirects_enabled !!options[:follow_redirects] if options.fetch(:follow_redirects, nil) != nil
428
- config.set_connection_request_timeout options[:request_timeout] if options[:request_timeout]
428
+ req_options = @options.merge(options)
429
+
430
+ config.set_proxy get_proxy_host(req_options[:proxy]) if req_options[:proxy]
431
+ config.set_max_redirects req_options[:max_redirects] if req_options[:max_redirects]
432
+ config.set_redirects_enabled !!req_options[:follow_redirects] if req_options.fetch(:follow_redirects, nil) != nil
433
+ config.set_connect_timeout req_options[:connect_timeout] * 1000 if req_options[:connect_timeout]
434
+ config.set_socket_timeout req_options[:socket_timeout] * 1000 if req_options[:socket_timeout]
435
+ config.set_connection_request_timeout req_options[:request_timeout] * 1000 if req_options[:request_timeout]
429
436
  req.set_config config.build
430
437
  end
431
438
 
File without changes
@@ -1,3 +1,3 @@
1
1
  module Manticore
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -42,6 +42,16 @@ describe Manticore::Client do
42
42
  j["uri"]["port"].should == 55441
43
43
  end
44
44
 
45
+ describe "with a custom user agent" do
46
+ let(:client) { Manticore::Client.new user_agent: "test-agent/1.0" }
47
+
48
+ it "should use the specified UA" do
49
+ response = client.get(local_server("/"))
50
+ json = JSON.load(response.body)
51
+ expect(json["headers"]["User-Agent"]).to eq "test-agent/1.0"
52
+ end
53
+ end
54
+
45
55
  describe "ignore_ssl_validation (deprecated option)" do
46
56
  context "when on" do
47
57
  let(:client) { Manticore::Client.new ssl: {verify: false} }
@@ -559,6 +569,18 @@ describe Manticore::Client do
559
569
  end
560
570
  end
561
571
 
572
+ describe "with connection timeouts" do
573
+ let(:client) { Manticore::Client.new request_timeout: 1, connect_timeout: 1, socket_timeout: 1 }
574
+
575
+ it "should time out" do
576
+ expect { client.get(local_server "/?sleep=2").body }.to raise_exception(Manticore::Timeout)
577
+ end
578
+
579
+ it "should time out when custom request options are passed" do
580
+ expect { client.get(local_server("/?sleep=2"), max_redirects: 5).body }.to raise_exception(Manticore::Timeout)
581
+ end
582
+ end
583
+
562
584
  def get_connection(client, uri, &block)
563
585
  java_import "java.util.concurrent.TimeUnit"
564
586
  host = URI.parse(uri).host
@@ -1,33 +1,31 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- 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
- 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
- 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
- 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
- BAgMAk1EMRIwEAYDVQQHDAlCYWx0aW1vcmUxEDAOBgNVBAMMB1Rlc3QgQ0ExHzAd
7
- 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
- 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
- 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
- 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
- yyBVLZCvHMh4/Oel0mdIUjpPtL9ah6S3QyfW53A46Eqjpjc1rFfvMzctgXdEEXC9
12
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- BAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHfYBKBoxvxoj7OzPwPAStDcIX7Kbo4b
22
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
32
- wuhTyH5RfnYu
2
+ MIIFPjCCAyYCCQCQsu6LeOWnuzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJV
3
+ UzELMAkGA1UECAwCTUQxEjAQBgNVBAcMCUJhbHRpbW9yZTEQMA4GA1UEAwwHVGVz
4
+ dCBDQTEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbTAeFw0xNTAxMDcx
5
+ NzM3MDdaFw0yODA5MTUxNzM3MDdaMGExCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJN
6
+ RDESMBAGA1UEBwwJQmFsdGltb3JlMRAwDgYDVQQDDAdUZXN0IENBMR8wHQYJKoZI
7
+ hvcNAQkBFhB0ZXN0QGV4YW1wbGUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
8
+ MIICCgKCAgEAuTlMyzLeLF6ts6lqVsSFbNC2R0KXvRzXEztbzsV/yVYTkaX2Pnul
9
+ EevfU/qEhza94032tCVqvVXu1X11PJEQRWmZ7s5ovEW119h5N9cMlHBaAOJbls3S
10
+ igDC2SsJGCnfrYZpuBdbMsTtqE50OEXHCK1jHkmM8821XvEwhsPSRgSplcsgVS2Q
11
+ rxzIePznpdJnSFI6T7S/Woekt0Mn1udwOOhKo6Y3NaxX7zM3LYF3RBFwvY2wpzV/
12
+ Mu8/Be19a8QLN3ZStyAwAyS1nbH1/a70Ie8yFiEZs76QVJYqkfedQkt24wz5fGBo
13
+ VCY/wlkGy36U0Bijuatoh4dr3ivxNERz6yq7O97vlrsq4zFBG8VRQbATh/APTFBQ
14
+ 7tWJDlQImqEfVnWCv8bEy4kkTBz260iT0/WmEC5zYT7NW3nKfGGdo8pERqWn1x9g
15
+ TLpsPuIo8b3vUUJjlqpSfSoiiabC6WP0bQ8h8swvAWEK2Q2e5KqbmSmlfVrCQUyn
16
+ CxsS9WwX9Zm/AUS/hxbs6gCnmKcIVVcesWrnpXzkC2tevAYrIIm94Enwy/YyKBId
17
+ N/pK3DcWIb3NG/6AfBywSnW9mpbyXvnScDMS5FXZhb6eVp/3zTKYox4OQenb6qX0
18
+ JFRHuX2cVK84WJtJEKAFvO2nsY2kg2C3h3I3LCZTthdnZ06Nq1AV9wsCAwEAATAN
19
+ BgkqhkiG9w0BAQUFAAOCAgEAVQw+V+dP73ZMUeSd2WqL7flPfUM7T0T52Amtw2zD
20
+ 2nynQ3xwHwyHrKNm2S0CIdu3Eq4R0EFznk6DhjeLM0kAJX4RuWraT16TCcLq/YxC
21
+ K4qXAX6eyq3oauv47PTUMbSeIwyqspY/LY/cGxzgeFMNWHc2llUPTyN3qszubMUn
22
+ T/3Mbec1WCIgGh4TqFloCPqLy/EqkANXXW4V10olhjzGkwjZ5KoJVmXTQlTzz2PJ
23
+ mVeIQXlceawj25inhjdvjFWMaO1csm5ZNqIBvLgN45gKxcnDjUbUyglRRa0Dxvut
24
+ T94HbFONYHWMTDWO5ElGgjjjdwCAiyKuAk/Lv5ZJ8dw8ByPLzsjM76lbzlXGDGsx
25
+ /ay4PuBCOMKOul4yyb8WMFcsIzk/f/mUhU68gTesMYX0mNYqjDvifA8Ws7So+yD+
26
+ oMAwMabkn11p5UwPLpszr7cqfmYTsxcHQUKFYPM3jySxaqOU1mwL4d/FshrcR1s2
27
+ doen2Dq2VzJFxJqsQVK7uvEz847Av3JRUDCbjx7rYc9DfuY6anZ1/tv7YqPGxiXd
28
+ LznEPNy9/9p5gGtlj6bqo8l4Kf+puvpkX3qICelO3P9Unzky+tNrkY7i2rgK9Vyh
29
+ X6EOcJ8K53Y9AHOvKElq/UszMOjkZbpGo/qhZkYPGqaD8yM35MNrQXBonk/zH6cA
30
+ xA4=
33
31
  -----END CERTIFICATE-----
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manticore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: java
6
6
  authors:
7
7
  - Chris Heald
@@ -30,50 +30,50 @@ cert_chain:
30
30
  E7PWS50D9moUJ6xWcemf0qKYC87qBFh0ng73awjG9uf+13lMslqJRMtek8C92cvh
31
31
  +R9zgQlbeNjy9O1i
32
32
  -----END CERTIFICATE-----
33
- date: 2014-12-14 00:00:00.000000000 Z
33
+ date: 2015-01-08 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
- name: addressable
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ~>
40
- - !ruby/object:Gem::Version
41
- version: '2.3'
42
36
  requirement: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - ~>
45
39
  - !ruby/object:Gem::Version
46
40
  version: '2.3'
41
+ name: addressable
47
42
  prerelease: false
48
43
  type: :runtime
49
- - !ruby/object:Gem::Dependency
50
- name: bundler
51
44
  version_requirements: !ruby/object:Gem::Requirement
52
45
  requirements:
53
46
  - - ~>
54
47
  - !ruby/object:Gem::Version
55
- version: '1.3'
48
+ version: '2.3'
49
+ - !ruby/object:Gem::Dependency
56
50
  requirement: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - ~>
59
53
  - !ruby/object:Gem::Version
60
54
  version: '1.3'
55
+ name: bundler
61
56
  prerelease: false
62
57
  type: :development
63
- - !ruby/object:Gem::Dependency
64
- name: rake
65
58
  version_requirements: !ruby/object:Gem::Requirement
66
59
  requirements:
67
- - - '>='
60
+ - - ~>
68
61
  - !ruby/object:Gem::Version
69
- version: '0'
62
+ version: '1.3'
63
+ - !ruby/object:Gem::Dependency
70
64
  requirement: !ruby/object:Gem::Requirement
71
65
  requirements:
72
66
  - - '>='
73
67
  - !ruby/object:Gem::Version
74
68
  version: '0'
69
+ name: rake
75
70
  prerelease: false
76
71
  type: :development
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
77
  description: Manticore is an HTTP client built on the Apache HttpCore components
78
78
  email:
79
79
  - cheald@mashable.com
metadata.gz.sig CHANGED
Binary file