logstash-output-scalyr 0.1.21.beta → 0.1.22.beta

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +2 -2
  4. data/README.md +1 -1
  5. data/lib/logstash/outputs/scalyr.rb +15 -2
  6. data/lib/scalyr/constants.rb +1 -1
  7. data/logstash-output-scalyr.gemspec +1 -1
  8. data/spec/logstash/outputs/scalyr_integration_spec.rb +8 -2
  9. data/spec/logstash/outputs/scalyr_spec.rb +8 -2
  10. data/vendor/bundle/jruby/2.5.0/bin/htmldiff +1 -1
  11. data/vendor/bundle/jruby/2.5.0/bin/ldiff +1 -1
  12. data/vendor/bundle/jruby/2.5.0/cache/manticore-0.7.1-java.gem +0 -0
  13. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/APACHE-LICENSE-2.0.txt +0 -0
  14. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/CHANGELOG.md +12 -3
  15. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/Gemfile +2 -1
  16. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/LICENSE.txt +0 -0
  17. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/README.md +17 -4
  18. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/Rakefile +0 -0
  19. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/ext/manticore/org/manticore/HttpDeleteWithEntity.java +0 -0
  20. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/ext/manticore/org/manticore/HttpGetWithEntity.java +0 -0
  21. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/ext/manticore/org/manticore/Manticore.java +0 -0
  22. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/gem-public_cert.pem +0 -0
  23. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/commons-codec/commons-codec/1.10/commons-codec-1.10.jar +0 -0
  24. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/commons-logging/commons-logging/1.2/commons-logging-1.2.jar +0 -0
  25. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/faraday/adapter/manticore.rb +1 -6
  26. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/client/proxies.rb +0 -0
  27. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/client.rb +24 -16
  28. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/cookie.rb +0 -0
  29. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/facade.rb +0 -0
  30. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/java_extensions.rb +0 -0
  31. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/response.rb +12 -12
  32. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/stubbed_response.rb +0 -0
  33. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore/version.rb +1 -1
  34. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore.rb +26 -2
  35. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/manticore_jars.rb +0 -0
  36. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar +0 -0
  37. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4.jar +0 -0
  38. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/org/apache/httpcomponents/httpmime/4.5.2/httpmime-4.5.2.jar +0 -0
  39. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/lib/org/manticore/manticore-ext.jar +0 -0
  40. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/manticore.gemspec +4 -2
  41. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/spec/manticore/client_proxy_spec.rb +0 -0
  42. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/spec/manticore/client_spec.rb +15 -3
  43. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/spec/manticore/cookie_spec.rb +0 -0
  44. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/spec/manticore/facade_spec.rb +0 -0
  45. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/spec/manticore/response_spec.rb +1 -1
  46. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/spec/manticore/stubbed_response_spec.rb +0 -0
  47. data/vendor/bundle/jruby/2.5.0/gems/{manticore-0.6.4-java → manticore-0.7.1-java}/spec/spec_helper.rb +0 -0
  48. data/vendor/bundle/jruby/2.5.0/specifications/{manticore-0.6.4-java.gemspec → manticore-0.7.1-java.gemspec} +10 -9
  49. metadata +39 -39
  50. data/vendor/bundle/jruby/2.5.0/cache/manticore-0.6.4-java.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7dd0297a3ddf2f2acfdad08c410822b8a4ee808800e3cfeffc5df4ec8a991348
4
- data.tar.gz: 855b7e3a655656442cf3de76e15ad3d0f90ca460421d4a4f86df46056a4b05a9
3
+ metadata.gz: 8ea703e55bc28d2bb00445c2a3e2d822bfe978bbe889292caafa6265dff1de2b
4
+ data.tar.gz: 3dc35cf36a356e5651d69e1a7d4623f296e5818a4b1c0fc8965b1a55b94a20ab
5
5
  SHA512:
6
- metadata.gz: 8c3024576c03a088008c5b1acc54d02be67be701921392d91f5991ac4482f85f62ea3b07255e38a972735182feccb1520d558f5cb065538dabe35cc86e1ad719
7
- data.tar.gz: c807baca5797bbf47cf69c8816a40300a515162617d4a714e719673572f1fe29fe3fa9ab73fd51a711af3953e212bd3dfe998e73c2c6de574a64ba6121446989
6
+ metadata.gz: 9306c619ce51c8a9cf83cb545229d4c73ac496a133e07e7e55b434301e1efc2f668187c3aa1584997ab1252ce3c7510ac9c4d719ba363933160bf2f874d0a137
7
+ data.tar.gz: 621b8f9b4095f16e51b88b8aec2844d795de75cba980ba27e0510a04f57ee9e4b34eb42513455d7509acaa8af8e085febb92cd248401e642129e09d70987a476
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Beta
2
2
 
3
+ ## 0.1.22.beta
4
+ - Add new plugin metric for tracking the duration of ``build_multi_event_request_array`` method.
5
+ - Update internal dependencies (``manticore``) to latest stable version.
6
+
3
7
  ## 0.1.21.beta
4
8
  - Fix issue with iterative flattening function when dealing with empty collections.
5
9
 
data/Gemfile CHANGED
@@ -16,5 +16,5 @@ end
16
16
 
17
17
  gem 'pry'
18
18
  gem 'pry-nav'
19
- gem 'quantile'
20
- gem 'manticore', platform: :jruby
19
+ gem 'quantile', '~> 0.2.1'
20
+ gem 'manticore', '~> 0.7.1', platform: :jruby
data/README.md CHANGED
@@ -10,7 +10,7 @@ You can view documentation for this plugin [on the Scalyr website](https://app.s
10
10
  # Quick start
11
11
 
12
12
  1. Build the gem, run `gem build logstash-output-scalyr.gemspec`
13
- 2. Install the gem into a Logstash installation, run `/usr/share/logstash/bin/logstash-plugin install logstash-output-scalyr-0.1.21.beta.gem` or follow the latest official instructions on working with plugins from Logstash.
13
+ 2. Install the gem into a Logstash installation, run `/usr/share/logstash/bin/logstash-plugin install logstash-output-scalyr-0.1.22.beta.gem` or follow the latest official instructions on working with plugins from Logstash.
14
14
  3. Configure the output plugin (e.g. add it to a pipeline .conf)
15
15
  4. Restart Logstash
16
16
 
@@ -289,6 +289,7 @@ class LogStash::Outputs::Scalyr < LogStash::Outputs::Base
289
289
  # Convenience method to create a fresh quantile estimator
290
290
  def get_new_metrics
291
291
  return {
292
+ :build_multi_duration_secs => Quantile::Estimator.new,
292
293
  :multi_receive_duration_secs => Quantile::Estimator.new,
293
294
  :multi_receive_event_count => Quantile::Estimator.new,
294
295
  :event_attributes_count => Quantile::Estimator.new,
@@ -313,17 +314,25 @@ class LogStash::Outputs::Scalyr < LogStash::Outputs::Base
313
314
  return events if @noop_mode
314
315
 
315
316
  begin
317
+ records_count = events.to_a.length
318
+
319
+ # We also time the duration of the build_multi_event_request_array method
316
320
  start_time = Time.now.to_f
317
321
 
318
322
  multi_event_request_array = build_multi_event_request_array(events)
319
- # Loop over all array of multi-event requests, sending each multi-event to Scalyr
320
323
 
324
+ if records_count > 0
325
+ @stats_lock.synchronize do
326
+ @plugin_metrics[:build_multi_duration_secs].observe(Time.now.to_f - start_time)
327
+ end
328
+ end
329
+
330
+ # Loop over all array of multi-event requests, sending each multi-event to Scalyr
321
331
  sleep_interval = @retry_initial_interval
322
332
  batch_num = 1
323
333
  total_batches = multi_event_request_array.length unless multi_event_request_array.nil?
324
334
 
325
335
  result = []
326
- records_count = events.to_a.length
327
336
 
328
337
  while !multi_event_request_array.to_a.empty?
329
338
  multi_event_request = multi_event_request_array.pop
@@ -816,6 +825,10 @@ class LogStash::Outputs::Scalyr < LogStash::Outputs::Base
816
825
  @stats_lock.synchronize do
817
826
  current_stats = @multi_receive_statistics.clone
818
827
 
828
+ current_stats[:build_multi_duration_secs_p50] = @plugin_metrics[:build_multi_duration_secs].query(0.5)
829
+ current_stats[:build_multi_duration_secs_p90] = @plugin_metrics[:build_multi_duration_secs].query(0.9)
830
+ current_stats[:build_multi_duration_secs_p99] = @plugin_metrics[:build_multi_duration_secs].query(0.99)
831
+
819
832
  current_stats[:multi_receive_duration_p50] = @plugin_metrics[:multi_receive_duration_secs].query(0.5)
820
833
  current_stats[:multi_receive_duration_p90] = @plugin_metrics[:multi_receive_duration_secs].query(0.9)
821
834
  current_stats[:multi_receive_duration_p99] = @plugin_metrics[:multi_receive_duration_secs].query(0.99)
@@ -1,2 +1,2 @@
1
1
  # encoding: utf-8
2
- PLUGIN_VERSION = "v0.1.21.beta"
2
+ PLUGIN_VERSION = "v0.1.22.beta"
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-scalyr'
3
- s.version = '0.1.21.beta'
3
+ s.version = '0.1.22.beta'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = "Scalyr output plugin for Logstash"
6
6
  s.description = "Sends log data collected by Logstash to Scalyr (https://www.scalyr.com)"
@@ -7,6 +7,12 @@ require "json"
7
7
  require 'webmock/rspec'
8
8
  WebMock.allow_net_connect!
9
9
 
10
+ RSpec.configure do |rspec|
11
+ rspec.expect_with :rspec do |c|
12
+ c.max_formatted_output_length = nil
13
+ end
14
+ end
15
+
10
16
  describe LogStash::Outputs::Scalyr do
11
17
  let(:sample_events) {
12
18
  events = []
@@ -58,7 +64,7 @@ describe LogStash::Outputs::Scalyr do
58
64
  {
59
65
  :error_class=>"Manticore::UnknownException",
60
66
  :batch_num=>1,
61
- :message=>"Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty",
67
+ :message=>"java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty",
62
68
  :payload_size=>781,
63
69
  :record_count=>3,
64
70
  :total_batches=>1,
@@ -84,7 +90,7 @@ describe LogStash::Outputs::Scalyr do
84
90
  {
85
91
  :error_class=>"Manticore::UnknownException",
86
92
  :batch_num=>1,
87
- :message=>"Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty",
93
+ :message=>"java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty",
88
94
  :payload_size=>781,
89
95
  :record_count=>3,
90
96
  :total_batches=>1,
@@ -80,6 +80,7 @@ describe LogStash::Outputs::Scalyr do
80
80
  plugin1.instance_variable_set(:@client_session, mock_client_session)
81
81
  plugin1.instance_variable_set(:@session_id, "some_session_id")
82
82
  plugin1.instance_variable_set(:@plugin_metrics, {
83
+ :build_multi_duration_secs => Quantile::Estimator.new,
83
84
  :multi_receive_duration_secs => Quantile::Estimator.new,
84
85
  :multi_receive_event_count => Quantile::Estimator.new,
85
86
  :event_attributes_count => Quantile::Estimator.new,
@@ -87,10 +88,11 @@ describe LogStash::Outputs::Scalyr do
87
88
  :batches_per_multi_receive => Quantile::Estimator.new
88
89
  })
89
90
  plugin1.instance_variable_get(:@plugin_metrics)[:multi_receive_duration_secs].observe(1)
91
+ plugin1.instance_variable_get(:@plugin_metrics)[:build_multi_duration_secs].observe(1)
90
92
  plugin1.instance_variable_set(:@multi_receive_statistics, {:total_multi_receive_secs => 0})
91
93
 
92
94
  status_event = plugin1.send_status
93
- expect(status_event[:attrs]["message"]).to eq("plugin_status: total_requests_sent=20 total_requests_failed=10 total_request_bytes_sent=100 total_compressed_request_bytes_sent=50 total_response_bytes_received=100 total_request_latency_secs=100 total_serialization_duration_secs=100.5000 total_compression_duration_secs=10.2000 compression_type=deflate compression_level=9 total_multi_receive_secs=0 multi_receive_duration_p50=1 multi_receive_duration_p90=1 multi_receive_duration_p99=1 multi_receive_event_count_p50=0 multi_receive_event_count_p90=0 multi_receive_event_count_p99=0 event_attributes_count_p50=0 event_attributes_count_p90=0 event_attributes_count_p99=0 batches_per_multi_receive_p50=0 batches_per_multi_receive_p90=0 batches_per_multi_receive_p99=0")
95
+ expect(status_event[:attrs]["message"]).to eq("plugin_status: total_requests_sent=20 total_requests_failed=10 total_request_bytes_sent=100 total_compressed_request_bytes_sent=50 total_response_bytes_received=100 total_request_latency_secs=100 total_serialization_duration_secs=100.5000 total_compression_duration_secs=10.2000 compression_type=deflate compression_level=9 total_multi_receive_secs=0 build_multi_duration_secs_p50=1 build_multi_duration_secs_p90=1 build_multi_duration_secs_p99=1 multi_receive_duration_p50=1 multi_receive_duration_p90=1 multi_receive_duration_p99=1 multi_receive_event_count_p50=0 multi_receive_event_count_p90=0 multi_receive_event_count_p99=0 event_attributes_count_p50=0 event_attributes_count_p90=0 event_attributes_count_p99=0 batches_per_multi_receive_p50=0 batches_per_multi_receive_p90=0 batches_per_multi_receive_p99=0")
94
96
  end
95
97
 
96
98
  it "returns and sends correct status event on send_stats on initial and subsequent send" do
@@ -106,6 +108,7 @@ describe LogStash::Outputs::Scalyr do
106
108
  plugin.instance_variable_set(:@client_session, mock_client_session)
107
109
  # Setup one quantile calculation to make sure at least one of them calculates as expected
108
110
  plugin.instance_variable_set(:@plugin_metrics, {
111
+ :build_multi_duration_secs => Quantile::Estimator.new,
109
112
  :multi_receive_duration_secs => Quantile::Estimator.new,
110
113
  :multi_receive_event_count => Quantile::Estimator.new,
111
114
  :event_attributes_count => Quantile::Estimator.new,
@@ -119,12 +122,13 @@ describe LogStash::Outputs::Scalyr do
119
122
 
120
123
  plugin.instance_variable_set(:@multi_receive_statistics, {:total_multi_receive_secs => 0})
121
124
  status_event = plugin.send_status
122
- expect(status_event[:attrs]["message"]).to eq("plugin_status: total_requests_sent=20 total_requests_failed=10 total_request_bytes_sent=100 total_compressed_request_bytes_sent=50 total_response_bytes_received=100 total_request_latency_secs=100 total_serialization_duration_secs=100.5000 total_compression_duration_secs=10.2000 compression_type=deflate compression_level=9 total_multi_receive_secs=0 multi_receive_duration_p50=10 multi_receive_duration_p90=18 multi_receive_duration_p99=19 multi_receive_event_count_p50=0 multi_receive_event_count_p90=0 multi_receive_event_count_p99=0 event_attributes_count_p50=0 event_attributes_count_p90=0 event_attributes_count_p99=0 batches_per_multi_receive_p50=0 batches_per_multi_receive_p90=0 batches_per_multi_receive_p99=0 flatten_values_duration_secs_p50=0 flatten_values_duration_secs_p90=0 flatten_values_duration_secs_p99=0")
125
+ expect(status_event[:attrs]["message"]).to eq("plugin_status: total_requests_sent=20 total_requests_failed=10 total_request_bytes_sent=100 total_compressed_request_bytes_sent=50 total_response_bytes_received=100 total_request_latency_secs=100 total_serialization_duration_secs=100.5000 total_compression_duration_secs=10.2000 compression_type=deflate compression_level=9 total_multi_receive_secs=0 build_multi_duration_secs_p50=0 build_multi_duration_secs_p90=0 build_multi_duration_secs_p99=0 multi_receive_duration_p50=10 multi_receive_duration_p90=18 multi_receive_duration_p99=19 multi_receive_event_count_p50=0 multi_receive_event_count_p90=0 multi_receive_event_count_p99=0 event_attributes_count_p50=0 event_attributes_count_p90=0 event_attributes_count_p99=0 batches_per_multi_receive_p50=0 batches_per_multi_receive_p90=0 batches_per_multi_receive_p99=0 flatten_values_duration_secs_p50=0 flatten_values_duration_secs_p90=0 flatten_values_duration_secs_p99=0")
123
126
  end
124
127
 
125
128
  it "send_stats is called when events list is empty, but otherwise is noop" do
126
129
  quantile_estimator = Quantile::Estimator.new
127
130
  plugin.instance_variable_set(:@plugin_metrics, {
131
+ :build_multi_duration_secs => Quantile::Estimator.new,
128
132
  :multi_receive_duration_secs => Quantile::Estimator.new,
129
133
  :multi_receive_event_count => Quantile::Estimator.new,
130
134
  :event_attributes_count => Quantile::Estimator.new,
@@ -149,6 +153,7 @@ describe LogStash::Outputs::Scalyr do
149
153
  mock_client_session = MockClientSession.new
150
154
  quantile_estimator = Quantile::Estimator.new
151
155
  plugin2.instance_variable_set(:@plugin_metrics, {
156
+ :build_multi_duration_secs => Quantile::Estimator.new,
152
157
  :multi_receive_duration_secs => Quantile::Estimator.new,
153
158
  :multi_receive_event_count => Quantile::Estimator.new,
154
159
  :event_attributes_count => Quantile::Estimator.new,
@@ -174,6 +179,7 @@ describe LogStash::Outputs::Scalyr do
174
179
  plugin.instance_variable_set(:@last_status_transmit_time, 100)
175
180
  plugin.instance_variable_set(:@client_session, mock_client_session)
176
181
  plugin.instance_variable_set(:@plugin_metrics, {
182
+ :build_multi_duration_secs => Quantile::Estimator.new,
177
183
  :multi_receive_duration_secs => Quantile::Estimator.new,
178
184
  :multi_receive_event_count => Quantile::Estimator.new,
179
185
  :event_attributes_count => Quantile::Estimator.new,
@@ -1,6 +1,6 @@
1
1
  #!/bin/sh
2
2
  'exec' "jruby" '-x' "$0" "$@"
3
- #!/Users/yans/.rvm/rubies/jruby-9.2.9.0/bin/jruby
3
+ #!/Users/tomaz/.rvm/rubies/jruby-9.2.9.0/bin/jruby
4
4
  #
5
5
  # This file was generated by RubyGems.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  #!/bin/sh
2
2
  'exec' "jruby" '-x' "$0" "$@"
3
- #!/Users/yans/.rvm/rubies/jruby-9.2.9.0/bin/jruby
3
+ #!/Users/tomaz/.rvm/rubies/jruby-9.2.9.0/bin/jruby
4
4
  #
5
5
  # This file was generated by RubyGems.
6
6
  #
@@ -1,8 +1,17 @@
1
- ## v0.6
1
+ ## v0.7
2
+
3
+ ### v0.7.1
4
+
5
+ * Don't override certificates with same Subject (#93)
6
+ * Set Java cause for ManticoreException types (#96)
7
+ * Fix SSL handshake hang indefinitely (#98)
2
8
 
3
- ### v0.6.5
9
+ ### v0.7.0
4
10
 
5
- (unreleased)
11
+ * Drop support for JRuby 1.7. It probably still works, but we don't test against it anymore
12
+ * Fix a thread safety issue with regards to adding requests to the parallel execution queue while the client is already processing a queue (#80)
13
+
14
+ ## v0.6
6
15
 
7
16
  ### v0.6.4
8
17
 
@@ -8,8 +8,9 @@ group :development, :test do
8
8
  gem "rspec", "~> 3.0"
9
9
  gem "rspec-its"
10
10
  gem "httpclient", "~> 2.3"
11
- gem "rack", "~> 1.5"
11
+ gem "rack", ">= 2.1.4"
12
12
  gem "rake-compiler"
13
13
  gem "gserver"
14
14
  gem "simplecov"
15
+ gem "json"
15
16
  end
@@ -90,7 +90,11 @@ For detailed documentation, see the [full Manticore::Client documentation](http:
90
90
  Rather than using the Facade, you can create your own standalone Client instances. When you create a `Client`, you will pass various parameters that it will use to set up the pool.
91
91
 
92
92
  ```ruby
93
- client = Manticore::Client.new(request_timeout: 5, connect_timeout: 5, socket_timeout: 5, pool_max: 10, pool_max_per_route: 2)
93
+ client = Manticore::Client.new(request_timeout: 5,
94
+ connect_timeout: 5,
95
+ socket_timeout: 5,
96
+ pool_max: 10,
97
+ pool_max_per_route: 2)
94
98
  ```
95
99
 
96
100
  Then, you can make requests from the client. Pooling and route maximum constraints are automatically managed:
@@ -122,11 +126,20 @@ per-route concurrency limits, and other neat things. In general, you should crea
122
126
  To set this up, you might create 2 pools, each configured for the task:
123
127
 
124
128
  ```ruby
125
- general_http_client = Manticore::Client.new connect_timeout: 10, socket_timeout: 10, request_timeout: 10, follow_redirects: true, max_per_route: 2
129
+ general_http_client = Manticore::Client.new(connect_timeout: 10,
130
+ socket_timeout: 10,
131
+ request_timeout: 10,
132
+ follow_redirects: true,
133
+ max_per_route: 2)
126
134
  # With an OpenSSL CA store
127
- proxied_backend_client = Manticore::Client.new proxy: "https://backend.internal:4242", ssl: {ca_file: "my_certs.pem"}
135
+ proxied_backend_client = Manticore::Client.new(proxy: "https://backend.internal:4242",
136
+ ssl: { ca_file: "my_certs.pem" })
128
137
  # Or with a .jks truststore
129
- # proxied_backend_client = Manticore::Client.new proxy: "https://backend.internal:4242", ssl: {truststore: "./truststore.jks", truststore_password: "s3cr3t"}
138
+ proxied_backend_client = Manticore::Client.new(proxy: "https://backend.internal:4242",
139
+ ssl: {
140
+ truststore: "./truststore.jks",
141
+ truststore_password: "s3cr3t"
142
+ })
130
143
  ```
131
144
 
132
145
  This would create 2 separate request pools; the first would be configured with generous timeouts and redirect following, and would use the system
@@ -20,17 +20,12 @@ module Faraday
20
20
  ParallelManager.new
21
21
  end
22
22
 
23
- def initialize(app, connection_options = {})
24
- @connection_options = connection_options
25
- super(app)
26
- end
27
-
28
23
  def client(env)
29
24
  @client ||= begin
30
25
  opts = {}
31
26
  if ssl = env[:ssl].to_hash
32
27
  opts[:ssl] = {}
33
- opts[:ssl][:verify] = :disable if ssl[:verify] == false
28
+ opts[:ssl][:verify] = ssl[:verify] unless ssl[:verify].nil?
34
29
  opts[:ssl][:ca_file] = ssl[:ca_file]
35
30
  opts[:ssl][:client_cert] = ssl[:client_cert]
36
31
  opts[:ssl][:client_key] = ssl[:client_key]
@@ -69,10 +69,8 @@ module Manticore
69
69
  include_package "org.apache.http.client.config"
70
70
  include_package "org.apache.http.config"
71
71
  include_package "org.apache.http.conn.socket"
72
- include_package "org.apache.http.impl"
73
72
  include_package "org.apache.http.impl.client"
74
73
  include_package "org.apache.http.impl.conn"
75
- include_package "org.apache.http.impl.auth"
76
74
  include_package "org.apache.http.entity"
77
75
  include_package "org.apache.http.message"
78
76
  include_package "org.apache.http.params"
@@ -80,16 +78,20 @@ module Manticore
80
78
  include_package "org.apache.http.auth"
81
79
  include_package "java.util.concurrent"
82
80
  include_package "org.apache.http.client.protocol"
83
- include_package "org.apache.http.conn.ssl"
84
81
  include_package "java.security.cert"
85
82
  include_package "java.security.spec"
86
83
  include_package "java.security"
87
- include_package "org.apache.http.client.utils"
88
84
  java_import "org.apache.http.HttpHost"
89
85
  java_import "javax.net.ssl.SSLContext"
90
86
  java_import "org.manticore.HttpGetWithEntity"
91
87
  java_import "org.manticore.HttpDeleteWithEntity"
92
88
  java_import "org.apache.http.auth.UsernamePasswordCredentials"
89
+ java_import "org.apache.http.conn.ssl.SSLConnectionSocketFactory"
90
+ java_import "org.apache.http.conn.ssl.SSLContextBuilder"
91
+ java_import "org.apache.http.conn.ssl.TrustSelfSignedStrategy"
92
+ java_import "org.apache.http.client.utils.URIBuilder"
93
+ java_import "org.apache.http.impl.DefaultConnectionReuseStrategy"
94
+ java_import "org.apache.http.impl.auth.BasicScheme"
93
95
 
94
96
  # This is a class rather than a proc because the proc holds a closure around
95
97
  # the instance of the Client that creates it.
@@ -201,11 +203,7 @@ module Manticore
201
203
  builder.set_connection_reuse_strategy DefaultConnectionReuseStrategy.new
202
204
  end
203
205
 
204
- socket_config_builder = SocketConfig.custom
205
- socket_config_builder.set_so_timeout(options.fetch(:socket_timeout, DEFAULT_SOCKET_TIMEOUT) * 1000)
206
- socket_config_builder.set_tcp_no_delay(options.fetch(:tcp_no_delay, true))
207
- builder.set_default_socket_config socket_config_builder.build
208
-
206
+ builder.set_default_socket_config socket_config_from_options(options)
209
207
  builder.set_connection_manager pool(options)
210
208
 
211
209
  request_config = RequestConfig.custom
@@ -223,7 +221,7 @@ module Manticore
223
221
  @client = builder.build
224
222
  finalize @client, :close
225
223
  @options = options
226
- @async_requests = []
224
+ @async_requests = Queue.new
227
225
  @stubs = {}
228
226
  end
229
227
 
@@ -334,8 +332,9 @@ module Manticore
334
332
  # @return [Array] An array of the responses from the requests executed.
335
333
  def execute!
336
334
  method = executor.java_method(:submit, [java.util.concurrent.Callable.java_class])
337
- result = @async_requests.map { |r| method.call r }
338
- @async_requests.clear
335
+
336
+ result = []
337
+ result << method.call(@async_requests.pop) until @async_requests.empty?
339
338
  result.map do |future|
340
339
  begin
341
340
  future.get
@@ -406,10 +405,19 @@ module Manticore
406
405
  cm.set_validate_after_inactivity options.fetch(:check_connection_timeout, 2_000)
407
406
  cm.set_default_max_per_route options.fetch(:pool_max_per_route, @max_pool_size)
408
407
  cm.set_max_total @max_pool_size
408
+ cm.set_default_socket_config socket_config_from_options(options)
409
+
409
410
  finalize cm, :shutdown
410
411
  end
411
412
  end
412
413
  end
414
+
415
+ def socket_config_from_options(options)
416
+ socket_config_builder = SocketConfig.custom
417
+ socket_config_builder.set_so_timeout(options.fetch(:socket_timeout, DEFAULT_SOCKET_TIMEOUT) * 1000)
418
+ socket_config_builder.set_tcp_no_delay(options.fetch(:tcp_no_delay, true))
419
+ socket_config_builder.build
420
+ end
413
421
 
414
422
  def create_executor_if_needed
415
423
  return @executor if @executor
@@ -509,7 +517,7 @@ module Manticore
509
517
 
510
518
  if @use_cookies == :per_request
511
519
  store = BasicCookieStore.new
512
- context.setAttribute(ClientContext.COOKIE_STORE, store)
520
+ context.setAttribute(ClientContext::COOKIE_STORE, store)
513
521
  end
514
522
 
515
523
  return req, context
@@ -617,7 +625,7 @@ module Manticore
617
625
  raise "Invalid value for :verify. Valid values are (:all, :browser, :default)"
618
626
  end
619
627
 
620
- context = SSLContexts.custom
628
+ context = SSLContextBuilder.new
621
629
  setup_trust_store ssl_options, context, trust_strategy
622
630
  setup_key_store ssl_options, context
623
631
 
@@ -632,8 +640,8 @@ module Manticore
632
640
  trust_store ||= blank_keystore
633
641
  open(ssl_options[:ca_file]) do |fp|
634
642
  cert_collection = CertificateFactory.get_instance("X509").generate_certificates(fp.to_inputstream).to_a
635
- cert_collection.each do |cert|
636
- trust_store.set_certificate_entry(cert.getSubjectX500Principal.name, cert)
643
+ cert_collection.each_with_index do |cert, i|
644
+ trust_store.set_certificate_entry("#{i}#" + cert.getSubjectX500Principal.name, cert)
637
645
  end
638
646
  end
639
647
  end
@@ -11,14 +11,13 @@ module Manticore
11
11
  # @!attribute [r] callback_result
12
12
  # @return Value returned from any given on_success/response block
13
13
  class Response
14
- include_package "org.apache.http.client"
15
- include_package "org.apache.http.util"
16
- include_package "org.apache.http.protocol"
14
+
15
+ java_import "org.apache.http.client.ResponseHandler"
17
16
  java_import "org.apache.http.client.protocol.HttpClientContext"
18
- java_import "java.util.concurrent.Callable"
17
+ java_import "org.apache.http.protocol.ExecutionContext"
19
18
 
20
- include ResponseHandler
21
- include Callable
19
+ include org.apache.http.client.ResponseHandler
20
+ include java.util.concurrent.Callable
22
21
 
23
22
  attr_accessor :background
24
23
  attr_reader :context, :request, :callback_result, :called, :future
@@ -54,15 +53,16 @@ module Manticore
54
53
  ex = Manticore::ConnectTimeout
55
54
  rescue Java::JavaNet::SocketException => e
56
55
  ex = Manticore::SocketException
57
- rescue Java::OrgApacheHttpClient::ClientProtocolException, Java::JavaxNetSsl::SSLHandshakeException, Java::OrgApacheHttpConn::HttpHostConnectException,
58
- Java::OrgApacheHttp::NoHttpResponseException, Java::OrgApacheHttp::ConnectionClosedException => e
56
+ rescue Java::OrgApacheHttpClient::ClientProtocolException, Java::JavaxNetSsl::SSLHandshakeException,
57
+ Java::OrgApacheHttpConn::HttpHostConnectException, Java::OrgApacheHttp::NoHttpResponseException,
58
+ Java::OrgApacheHttp::ConnectionClosedException => e
59
59
  ex = Manticore::ClientProtocolException
60
60
  rescue Java::JavaNet::UnknownHostException => e
61
61
  ex = Manticore::ResolutionFailure
62
62
  rescue Java::JavaLang::IllegalArgumentException => e
63
63
  ex = Manticore::InvalidArgumentException
64
64
  rescue Java::JavaLang::IllegalStateException => e
65
- if e.message.match(/Connection pool shut down/)
65
+ if (e.message || '').index('Connection pool shut down')
66
66
  ex = Manticore::ClientStoppedException
67
67
  else
68
68
  @exception = e
@@ -75,7 +75,7 @@ module Manticore
75
75
 
76
76
  # TODO: If calling async, execute_complete may fail and then silently swallow exceptions. How do we fix that?
77
77
  if ex || @exception
78
- @exception ||= ex.new(e.cause || e.message)
78
+ @exception ||= ex.new(e)
79
79
  @handlers[:failure].call @exception
80
80
  execute_complete
81
81
  nil
@@ -90,8 +90,8 @@ module Manticore
90
90
  # @return [String]
91
91
  def final_url
92
92
  call_once
93
- last_request = context.get_attribute ExecutionContext.HTTP_REQUEST
94
- last_host = context.get_attribute ExecutionContext.HTTP_TARGET_HOST
93
+ last_request = context.get_attribute ExecutionContext::HTTP_REQUEST
94
+ last_host = context.get_attribute ExecutionContext::HTTP_TARGET_HOST
95
95
  host = last_host.to_uri
96
96
  url = last_request.get_uri
97
97
  URI.join(host, url.to_s)
@@ -1,3 +1,3 @@
1
1
  module Manticore
2
- VERSION = "0.6.4"
2
+ VERSION = "0.7.1"
3
3
  end
@@ -5,7 +5,11 @@ require "cgi"
5
5
  require_relative "./manticore_jars.rb"
6
6
  require_relative "./org/manticore/manticore-ext"
7
7
 
8
- org.manticore.Manticore.new.load(JRuby.runtime, false)
8
+ if defined? JRuby::Util.load_ext
9
+ JRuby::Util.load_ext 'org.manticore.Manticore'
10
+ else
11
+ org.manticore.Manticore.new.load(JRuby.runtime, false)
12
+ end
9
13
 
10
14
  require_relative "./manticore/version"
11
15
 
@@ -13,7 +17,27 @@ require_relative "./manticore/version"
13
17
  # with the beauty of Ruby.
14
18
  module Manticore
15
19
  # General base class for all Manticore exceptions
16
- class ManticoreException < StandardError; end
20
+ class ManticoreException < StandardError
21
+ def initialize(arg = nil)
22
+ case arg
23
+ when nil
24
+ @_cause = nil
25
+ super()
26
+ when java.lang.Throwable
27
+ @_cause = arg
28
+ super(arg.message)
29
+ else
30
+ @_cause = nil
31
+ super(arg)
32
+ end
33
+ end
34
+
35
+ # @return cause which is likely to be a Java exception
36
+ # @overload Exception#cause
37
+ def cause
38
+ @_cause || super
39
+ end
40
+ end
17
41
 
18
42
  # Exception thrown if you attempt to read from a closed Response stream
19
43
  class StreamClosedException < ManticoreException; end
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.required_ruby_version = '>= 2.3' # JRuby >= 9.1
23
+
22
24
  private_key = File.expand_path("~/.gemcert/gem-private_key.pem")
23
25
  if File.exists? private_key
24
26
  spec.signing_key = private_key
@@ -27,9 +29,9 @@ Gem::Specification.new do |spec|
27
29
 
28
30
  spec.add_dependency "openssl_pkcs8_pure"
29
31
 
30
- spec.add_development_dependency "bundler", "~> 1.3"
32
+ spec.add_development_dependency "bundler"
31
33
  spec.add_development_dependency "rake"
32
- spec.add_development_dependency "jar-dependencies"
34
+ spec.add_development_dependency "jar-dependencies", "~> 0.4.1"
33
35
 
34
36
  spec.requirements << "jar org.apache.httpcomponents:httpclient, '~> 4.5.0'"
35
37
  spec.requirements << "jar org.apache.httpcomponents:httpmime, '~> 4.5.0'"
@@ -130,7 +130,13 @@ describe Manticore::Client do
130
130
  let(:client) { Manticore::Client.new :ssl => {:verify => :strict} }
131
131
 
132
132
  it "breaks on SSL validation errors" do
133
- expect { client.get("https://localhost:55444/").call }.to raise_exception(Manticore::ClientProtocolException)
133
+ begin
134
+ client.get("https://localhost:55445/").body
135
+ rescue Manticore::ClientProtocolException => e
136
+ expect( e.cause ).to be_a javax.net.ssl.SSLHandshakeException
137
+ else
138
+ fail "exception not raised"
139
+ end
134
140
  end
135
141
  end
136
142
 
@@ -563,7 +569,7 @@ describe Manticore::Client do
563
569
  describe "#head" do
564
570
  it "works" do
565
571
  response = client.head(local_server)
566
- expect(JSON.load(response.body)).to be_nil
572
+ expect(response.body).to be_nil
567
573
  end
568
574
  end
569
575
 
@@ -830,7 +836,13 @@ describe Manticore::Client do
830
836
  let(:client) { Manticore::Client.new request_timeout: 1, connect_timeout: 1, socket_timeout: 1 }
831
837
 
832
838
  it "times out" do
833
- expect { client.get(local_server "/?sleep=2").body }.to raise_exception(Manticore::SocketTimeout)
839
+ begin
840
+ client.get(local_server "/?sleep=2").body
841
+ rescue Manticore::SocketTimeout => e
842
+ expect( e.cause ).to be_a java.net.SocketTimeoutException
843
+ else
844
+ fail "exception not raised"
845
+ end
834
846
  end
835
847
 
836
848
  it "times out when custom request options are passed" do
@@ -6,7 +6,7 @@ describe Manticore::Response do
6
6
 
7
7
  its(:headers) { is_expected.to be_a Hash }
8
8
  its(:body) { is_expected.to be_a String }
9
- its(:length) { is_expected.to be_a Fixnum }
9
+ its(:length) { is_expected.to be_a Integer }
10
10
 
11
11
  it "provides response header lookup via #[]" do
12
12
  expect(subject["Content-Type"]).to eq "application/json"
@@ -1,19 +1,20 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: manticore 0.6.4 java lib
2
+ # stub: manticore 0.7.1 java lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "manticore".freeze
6
- s.version = "0.6.4"
6
+ s.version = "0.7.1"
7
7
  s.platform = "java".freeze
8
8
 
9
9
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
10
10
  s.require_paths = ["lib".freeze]
11
11
  s.authors = ["Chris Heald".freeze]
12
- s.date = "2018-06-28"
12
+ s.date = "2021-08-18"
13
13
  s.description = "Manticore is an HTTP client built on the Apache HttpCore components".freeze
14
14
  s.email = ["cheald@mashable.com".freeze]
15
15
  s.homepage = "https://github.com/cheald/manticore".freeze
16
16
  s.licenses = ["MIT".freeze]
17
+ s.required_ruby_version = Gem::Requirement.new(">= 2.3".freeze)
17
18
  s.requirements = ["jar org.apache.httpcomponents:httpclient, '~> 4.5.0'".freeze, "jar org.apache.httpcomponents:httpmime, '~> 4.5.0'".freeze, "jar commons-logging:commons-logging, '~> 1.2'".freeze, "jar commons-codec:commons-codec, '~> 1.9'".freeze, "jar org.apache.httpcomponents:httpcore, '~> 4.4.4'".freeze]
18
19
  s.rubygems_version = "2.7.10".freeze
19
20
  s.summary = "Manticore is an HTTP client built on the Apache HttpCore components".freeze
@@ -25,19 +26,19 @@ Gem::Specification.new do |s|
25
26
 
26
27
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
27
28
  s.add_runtime_dependency(%q<openssl_pkcs8_pure>.freeze, [">= 0"])
28
- s.add_development_dependency(%q<bundler>.freeze, ["~> 1.3"])
29
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
29
30
  s.add_development_dependency(%q<rake>.freeze, [">= 0"])
30
- s.add_development_dependency(%q<jar-dependencies>.freeze, [">= 0"])
31
+ s.add_development_dependency(%q<jar-dependencies>.freeze, ["~> 0.4.1"])
31
32
  else
32
33
  s.add_dependency(%q<openssl_pkcs8_pure>.freeze, [">= 0"])
33
- s.add_dependency(%q<bundler>.freeze, ["~> 1.3"])
34
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
34
35
  s.add_dependency(%q<rake>.freeze, [">= 0"])
35
- s.add_dependency(%q<jar-dependencies>.freeze, [">= 0"])
36
+ s.add_dependency(%q<jar-dependencies>.freeze, ["~> 0.4.1"])
36
37
  end
37
38
  else
38
39
  s.add_dependency(%q<openssl_pkcs8_pure>.freeze, [">= 0"])
39
- s.add_dependency(%q<bundler>.freeze, ["~> 1.3"])
40
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
40
41
  s.add_dependency(%q<rake>.freeze, [">= 0"])
41
- s.add_dependency(%q<jar-dependencies>.freeze, [">= 0"])
42
+ s.add_dependency(%q<jar-dependencies>.freeze, ["~> 0.4.1"])
42
43
  end
43
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-scalyr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.21.beta
4
+ version: 0.1.22.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edward Chee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-16 00:00:00.000000000 Z
11
+ date: 2021-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +179,7 @@ files:
179
179
  - vendor/bundle/jruby/2.5.0/cache/logstash-core-5.6.4-java.gem
180
180
  - vendor/bundle/jruby/2.5.0/cache/logstash-core-plugin-api-2.1.28-java.gem
181
181
  - vendor/bundle/jruby/2.5.0/cache/logstash-devutils-1.3.6-java.gem
182
- - vendor/bundle/jruby/2.5.0/cache/manticore-0.6.4-java.gem
182
+ - vendor/bundle/jruby/2.5.0/cache/manticore-0.7.1-java.gem
183
183
  - vendor/bundle/jruby/2.5.0/cache/method_source-0.8.2.gem
184
184
  - vendor/bundle/jruby/2.5.0/cache/minitar-0.5.4.gem
185
185
  - vendor/bundle/jruby/2.5.0/cache/multi_json-1.13.1.gem
@@ -2202,41 +2202,41 @@ files:
2202
2202
  - vendor/bundle/jruby/2.5.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/shared_examples.rb
2203
2203
  - vendor/bundle/jruby/2.5.0/gems/logstash-devutils-1.3.6-java/lib/logstash/devutils/rspec/spec_helper.rb
2204
2204
  - vendor/bundle/jruby/2.5.0/gems/logstash-devutils-1.3.6-java/logstash-devutils.gemspec
2205
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/APACHE-LICENSE-2.0.txt
2206
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/CHANGELOG.md
2207
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/Gemfile
2208
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/LICENSE.txt
2209
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/README.md
2210
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/Rakefile
2211
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/ext/manticore/org/manticore/HttpDeleteWithEntity.java
2212
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/ext/manticore/org/manticore/HttpGetWithEntity.java
2213
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/ext/manticore/org/manticore/Manticore.java
2214
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/gem-public_cert.pem
2215
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
2216
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
2217
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/faraday/adapter/manticore.rb
2218
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore.rb
2219
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/client.rb
2220
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/client/proxies.rb
2221
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/cookie.rb
2222
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/facade.rb
2223
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/java_extensions.rb
2224
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/response.rb
2225
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/stubbed_response.rb
2226
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/version.rb
2227
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore_jars.rb
2228
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar
2229
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4.jar
2230
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/org/apache/httpcomponents/httpmime/4.5.2/httpmime-4.5.2.jar
2231
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/org/manticore/manticore-ext.jar
2232
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/manticore.gemspec
2233
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/spec/manticore/client_proxy_spec.rb
2234
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/spec/manticore/client_spec.rb
2235
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/spec/manticore/cookie_spec.rb
2236
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/spec/manticore/facade_spec.rb
2237
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/spec/manticore/response_spec.rb
2238
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/spec/manticore/stubbed_response_spec.rb
2239
- - vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/spec/spec_helper.rb
2205
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/APACHE-LICENSE-2.0.txt
2206
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/CHANGELOG.md
2207
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/Gemfile
2208
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/LICENSE.txt
2209
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/README.md
2210
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/Rakefile
2211
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/ext/manticore/org/manticore/HttpDeleteWithEntity.java
2212
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/ext/manticore/org/manticore/HttpGetWithEntity.java
2213
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/ext/manticore/org/manticore/Manticore.java
2214
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/gem-public_cert.pem
2215
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
2216
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
2217
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/faraday/adapter/manticore.rb
2218
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore.rb
2219
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/client.rb
2220
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/client/proxies.rb
2221
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/cookie.rb
2222
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/facade.rb
2223
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/java_extensions.rb
2224
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/response.rb
2225
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/stubbed_response.rb
2226
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore/version.rb
2227
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/manticore_jars.rb
2228
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar
2229
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4.jar
2230
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/org/apache/httpcomponents/httpmime/4.5.2/httpmime-4.5.2.jar
2231
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/lib/org/manticore/manticore-ext.jar
2232
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/manticore.gemspec
2233
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/spec/manticore/client_proxy_spec.rb
2234
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/spec/manticore/client_spec.rb
2235
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/spec/manticore/cookie_spec.rb
2236
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/spec/manticore/facade_spec.rb
2237
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/spec/manticore/response_spec.rb
2238
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/spec/manticore/stubbed_response_spec.rb
2239
+ - vendor/bundle/jruby/2.5.0/gems/manticore-0.7.1-java/spec/spec_helper.rb
2240
2240
  - vendor/bundle/jruby/2.5.0/gems/method_source-0.8.2/Gemfile
2241
2241
  - vendor/bundle/jruby/2.5.0/gems/method_source-0.8.2/LICENSE
2242
2242
  - vendor/bundle/jruby/2.5.0/gems/method_source-0.8.2/README.markdown
@@ -4000,7 +4000,7 @@ files:
4000
4000
  - vendor/bundle/jruby/2.5.0/specifications/logstash-core-5.6.4-java.gemspec
4001
4001
  - vendor/bundle/jruby/2.5.0/specifications/logstash-core-plugin-api-2.1.28-java.gemspec
4002
4002
  - vendor/bundle/jruby/2.5.0/specifications/logstash-devutils-1.3.6-java.gemspec
4003
- - vendor/bundle/jruby/2.5.0/specifications/manticore-0.6.4-java.gemspec
4003
+ - vendor/bundle/jruby/2.5.0/specifications/manticore-0.7.1-java.gemspec
4004
4004
  - vendor/bundle/jruby/2.5.0/specifications/method_source-0.8.2.gemspec
4005
4005
  - vendor/bundle/jruby/2.5.0/specifications/minitar-0.5.4.gemspec
4006
4006
  - vendor/bundle/jruby/2.5.0/specifications/multi_json-1.13.1.gemspec