manticore 0.5.4-java → 0.5.5-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.
- checksums.yaml +4 -4
- data/.travis.yml +8 -1
- data/CHANGELOG.md +15 -1
- data/Gemfile +9 -7
- data/lib/manticore/client.rb +16 -2
- data/lib/manticore/version.rb +1 -1
- data/lib/manticore_jars.rb +1 -1
- data/manticore.gemspec +1 -0
- data/spec/manticore/client_proxy_spec.rb +6 -15
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 111c250ba25bbaa0452c9bee6bd1ad09b589a007
|
4
|
+
data.tar.gz: a6dac53321a576076f418e47729a90bdfd85504e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e20565e5b7a754d475c894eca5a4d718fcea9848e47dea4bb836747fd12cf166486faf4d0604a9eb72addf319833f0c8a54bec45e5c099315b361e5cda251695
|
7
|
+
data.tar.gz: 7ef91033ae1aff1dffea2ba44816e0665d76c951267a4832f5175cb25b732fece0a656a39c13dc09ac5c847fe3e7a6b129dd35d2370d6365981d060f42c4fe6f
|
data/.travis.yml
CHANGED
@@ -1,12 +1,19 @@
|
|
1
1
|
language: ruby
|
2
2
|
sudo: false
|
3
|
+
cache:
|
4
|
+
- bundler
|
5
|
+
- directories:
|
6
|
+
- $HOME/.m2
|
3
7
|
rvm:
|
4
8
|
- jruby-1.7
|
5
|
-
- jruby-9.0.
|
9
|
+
- jruby-9.0.5.0
|
6
10
|
jdk:
|
7
11
|
- oraclejdk8
|
8
12
|
- oraclejdk7
|
9
13
|
- openjdk7
|
14
|
+
before_install:
|
15
|
+
- gem install ruby-maven
|
16
|
+
- bundle install
|
10
17
|
matrix:
|
11
18
|
include:
|
12
19
|
- rvm: jruby-head
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
## v0.5
|
2
2
|
|
3
|
-
### v0.5.
|
3
|
+
### v0.5.6 (pending)
|
4
|
+
|
5
|
+
### v0.5.5
|
6
|
+
|
7
|
+
* Marked Executor threads as daemon threads, so they won't impede host process shutdown
|
8
|
+
|
9
|
+
### v0.5.4
|
10
|
+
|
11
|
+
* Fixed a memory leak caused by at_exit hooks, which would cause allocated HttpClient resources to remain in scope even if a Client instance was collected
|
12
|
+
|
13
|
+
### v0.5.3
|
14
|
+
|
15
|
+
* Reduce the stale connection check default time to 2000ms for consistency with the HttpClient defaults
|
16
|
+
|
17
|
+
### v0.5.2
|
4
18
|
|
5
19
|
* Added Client#close to shut down the connection pool.
|
6
20
|
|
data/Gemfile
CHANGED
@@ -3,10 +3,12 @@ source 'https://rubygems.org'
|
|
3
3
|
# Specify your gem's dependencies in manticore.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
|
7
|
-
gem "
|
8
|
-
gem "rspec
|
9
|
-
gem "
|
10
|
-
gem "
|
11
|
-
gem "
|
12
|
-
gem "
|
6
|
+
group :development, :test do
|
7
|
+
gem "net-http-server", "~> 0.2"
|
8
|
+
gem "rspec", "~> 3.0"
|
9
|
+
gem "rspec-its"
|
10
|
+
gem "httpclient", "~> 2.3"
|
11
|
+
gem "rack", "~> 1.5"
|
12
|
+
gem "rake-compiler"
|
13
|
+
gem "gserver"
|
14
|
+
end
|
data/lib/manticore/client.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'thread'
|
2
2
|
require 'base64'
|
3
|
+
require 'weakref'
|
3
4
|
|
4
5
|
module Manticore
|
5
6
|
# @!macro [new] http_method_shared
|
@@ -89,6 +90,18 @@ module Manticore
|
|
89
90
|
java_import "org.manticore.HttpDeleteWithEntity"
|
90
91
|
java_import "org.apache.http.auth.UsernamePasswordCredentials"
|
91
92
|
|
93
|
+
# This is a class rather than a proc because the proc holds a closure around
|
94
|
+
# the instance of the Client that creates it.
|
95
|
+
class ExecutorThreadFactory
|
96
|
+
include ::Java::JavaUtilConcurrent::ThreadFactory
|
97
|
+
|
98
|
+
def newThread(runnable)
|
99
|
+
thread = Executors.defaultThreadFactory.newThread(runnable)
|
100
|
+
thread.daemon = true
|
101
|
+
return thread
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
92
105
|
include ProxiesInterface
|
93
106
|
|
94
107
|
# The default maximum pool size for requests
|
@@ -207,6 +220,7 @@ module Manticore
|
|
207
220
|
|
208
221
|
builder.set_default_request_config request_config.build
|
209
222
|
@client = builder.build
|
223
|
+
finalize @client, :close
|
210
224
|
@options = options
|
211
225
|
@async_requests = []
|
212
226
|
@stubs = {}
|
@@ -353,7 +367,7 @@ module Manticore
|
|
353
367
|
# a proc to avoid creating a closure that would maintain a reference to this client, which
|
354
368
|
# would prevent the client from being cleaned up.
|
355
369
|
def finalize(object, args)
|
356
|
-
@finalizers << [object, Array(args)]
|
370
|
+
@finalizers << [WeakRef.new(object), Array(args)]
|
357
371
|
end
|
358
372
|
|
359
373
|
def url_as_regex(url)
|
@@ -396,7 +410,7 @@ module Manticore
|
|
396
410
|
|
397
411
|
def create_executor_if_needed
|
398
412
|
return @executor if @executor
|
399
|
-
@executor = Executors.new_cached_thread_pool
|
413
|
+
@executor = Executors.new_cached_thread_pool(ExecutorThreadFactory.new)
|
400
414
|
finalize @executor, :shutdown
|
401
415
|
end
|
402
416
|
|
data/lib/manticore/version.rb
CHANGED
data/lib/manticore_jars.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# this is a generated file, to avoid over-writing it just delete this comment
|
2
2
|
require 'jar_dependencies'
|
3
3
|
|
4
|
-
require_jar( 'org.apache.httpcomponents', 'httpclient', '4.5' )
|
5
4
|
require_jar( 'org.apache.httpcomponents', 'httpcore', '4.4.1' )
|
6
5
|
require_jar( 'commons-codec', 'commons-codec', '1.9' )
|
7
6
|
require_jar( 'commons-logging', 'commons-logging', '1.2' )
|
8
7
|
require_jar( 'org.apache.httpcomponents', 'httpmime', '4.5' )
|
8
|
+
require_jar( 'org.apache.httpcomponents', 'httpclient', '4.5' )
|
data/manticore.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
|
28
28
|
spec.add_development_dependency "bundler", "~> 1.3"
|
29
29
|
spec.add_development_dependency "rake"
|
30
|
+
spec.add_development_dependency 'ruby-maven', '~> 3.3'
|
30
31
|
|
31
32
|
spec.add_runtime_dependency "jar-dependencies"
|
32
33
|
spec.requirements << "jar org.apache.httpcomponents:httpclient, 4.5"
|
@@ -13,32 +13,23 @@ describe Manticore::Client do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
context "for synchronous requests" do
|
16
|
-
it "
|
16
|
+
it "stubs the request" do
|
17
17
|
stub = client.respond_with(body: "body", code: 200)
|
18
18
|
|
19
19
|
stub.get(local_server) do |response|
|
20
20
|
expect(response).to be_a Manticore::StubbedResponse
|
21
21
|
end
|
22
|
-
|
23
|
-
stub.get(local_server) do |response|
|
24
|
-
expect(response).to be_a Manticore::Response
|
25
|
-
end
|
26
22
|
end
|
27
23
|
end
|
28
24
|
|
29
|
-
context "for
|
30
|
-
it "
|
25
|
+
context "for asynchronous requests" do
|
26
|
+
it "stubs all response made through the proxy" do
|
31
27
|
stub = client.respond_with(body: "body", code: 200)
|
32
28
|
|
33
|
-
stub.async.get(local_server)
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
stub.async.get(local_server).on_success do |response|
|
38
|
-
expect(response).to be_a Manticore::Response
|
39
|
-
end
|
29
|
+
stub.async.get(local_server)
|
30
|
+
stub.async.get(local_server)
|
40
31
|
|
41
|
-
client.execute
|
32
|
+
expect( client.execute!.map(&:class) ).to eq [Manticore::StubbedResponse, Manticore::StubbedResponse]
|
42
33
|
end
|
43
34
|
end
|
44
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: manticore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Chris Heald
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.3'
|
47
|
+
name: ruby-maven
|
48
|
+
prerelease: false
|
49
|
+
type: :development
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.3'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
requirement: !ruby/object:Gem::Requirement
|
43
57
|
requirements:
|