active-fedora 11.1.1 → 11.1.2

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: 9323b783c7ef9187a43d0231994ad3ce39d8c2ca
4
- data.tar.gz: 7acee3df7da38562ff9133fdfacbc0e29d055c7c
3
+ metadata.gz: b27e9aa8b8f46d2a0e3207ba20da3aa25d553bac
4
+ data.tar.gz: 8aac94771d8015432aa789bf807e514c6211be15
5
5
  SHA512:
6
- metadata.gz: eb08a929267e83e8258c572f9928a0da09fe847059e1423ac6236d6ae83ce7dee222f618ff73a225951d5d9644ee144917d925a184c64c1ce142d58989100474
7
- data.tar.gz: 6e7f1404c76486f90c76b2d6993df02b11e6147cc4864c891f9f9c3982efe0b7a188926774f719262523b860c65be27a3ccaa7529b49d8862ce1487beb9e51e1
6
+ metadata.gz: 7bc2ac85b840d7a5c8085a3d80d6407a6e3f315bf51fe7bd804b29818e375a939c9baf71560e6c1459f149d6cc6835af14e71128229d3255d87edaf818d3851e
7
+ data.tar.gz: d0c5f0849a3de8577174e28feda066fa61c53f5a8d30b6d27b6ffc1c2f4eb45c4c353a8ff6a188afb36eec98ebcac5f3111da7cbe0c51c9bd875b719b55420e7
@@ -9,5 +9,7 @@ matrix:
9
9
  - env: "RSOLR_VERSION=2.0.0.pre1"
10
10
  global_env:
11
11
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
12
+ before_install:
13
+ - gem update --system
12
14
  before_script:
13
15
  - jdk_switcher use oraclejdk8
@@ -1,3 +1,14 @@
1
+ v11.1.2
2
+ 2017-01-25: Eager load all the code in eager_load blocks [Justin Coyne]
3
+
4
+ 2017-01-25: Eager load ActiveFedora [Justin Coyne]
5
+
6
+ 2017-01-24: Ensuring up to date system gems [Jeremy Friesen]
7
+
8
+ 2017-01-18: Warn if you don't pass :rows to SolrService.query [Justin Coyne]
9
+
10
+ 2017-01-13: Ensuring NullLogger responds to logging questions [Jeremy Friesen]
11
+
1
12
  v11.1.1
2
13
  2017-01-13: Don't modify passed in attributes [Justin Coyne]
3
14
 
@@ -72,7 +72,6 @@ module ActiveFedora #:nodoc:
72
72
  autoload :FilePersistence
73
73
  autoload :FileRelation
74
74
  autoload :FilesHash
75
- autoload :Filter
76
75
  autoload :FixityService
77
76
  autoload :Identifiable
78
77
  autoload :Indexers
@@ -263,6 +262,22 @@ module ActiveFedora #:nodoc:
263
262
  true
264
263
  end
265
264
  end
265
+
266
+ # ActiveSupport::Autoload automatically defines
267
+ # an eager_load! method. In this case, we are
268
+ # extending the method to also eager load the
269
+ # components inside ActiveFedora.
270
+ def eager_load!
271
+ super
272
+ ActiveFedora::Scoping.eager_load!
273
+ ActiveFedora::Aggregation.eager_load!
274
+ ActiveFedora::Associations.eager_load!
275
+ ActiveFedora::Attributes.eager_load!
276
+ ActiveFedora::AttributeMethods.eager_load!
277
+ ActiveFedora::Indexers.eager_load!
278
+ ActiveFedora::Indexing.eager_load!
279
+ ActiveFedora::Orders.eager_load!
280
+ end
266
281
  end
267
282
 
268
283
  self.configurator ||= ActiveFedora::FileConfigurator.new
@@ -8,7 +8,9 @@ module ActiveFedora::Aggregation
8
8
 
9
9
  def ordered_by_ids
10
10
  if id.present?
11
- ActiveFedora::SolrService.query("{!join from=proxy_in_ssi to=id}ordered_targets_ssim:#{id}").map { |x| x["id"] }
11
+ query = "{!join from=proxy_in_ssi to=id}ordered_targets_ssim:#{id}"
12
+ rows = ActiveFedora::SolrService::MAX_ROWS
13
+ ActiveFedora::SolrService.query(query, rows: rows).map { |x| x["id"] }
12
14
  else
13
15
  []
14
16
  end
@@ -301,7 +301,7 @@ module ActiveFedora
301
301
  def find_target
302
302
  # TODO: don't reify, just store the solr results and lazily reify.
303
303
  # For now, we set a hard limit of 1000 results.
304
- records = ActiveFedora::QueryResultBuilder.reify_solr_results(load_from_solr(rows: 1000))
304
+ records = ActiveFedora::QueryResultBuilder.reify_solr_results(load_from_solr(rows: SolrService::MAX_ROWS))
305
305
  records.each { |record| set_inverse_instance(record) }
306
306
  records
307
307
  rescue ObjectNotFoundError, Ldp::Gone => e
@@ -42,7 +42,8 @@ module ActiveFedora::Associations
42
42
  query = ActiveFedora::SolrQueryBuilder.construct_query_for_rel(
43
43
  [[:has_model, proxy_class.to_rdf_representation], [:proxyFor, record.id]]
44
44
  )
45
- ActiveFedora::SolrService.query(query, fl: 'id').map(&:rdf_uri)
45
+ rows = ActiveFedora::SolrService::MAX_ROWS
46
+ ActiveFedora::SolrService.query(query, fl: 'id', rows: rows).map(&:rdf_uri)
46
47
  end
47
48
  end
48
49
  end
@@ -61,7 +61,7 @@ module ActiveFedora
61
61
  def filter_by_class(candidate_uris)
62
62
  return [] if candidate_uris.empty?
63
63
  ids = candidate_uris.map { |uri| ActiveFedora::Base.uri_to_id(uri) }
64
- results = ActiveFedora::SolrService.query(ActiveFedora::SolrQueryBuilder.construct_query_for_ids(ids), rows: 10_000)
64
+ results = ActiveFedora::SolrService.query(ActiveFedora::SolrQueryBuilder.construct_query_for_ids(ids), rows: SolrService::MAX_ROWS)
65
65
 
66
66
  results.select { |result| result.model? reflection.klass }.map(&:rdf_uri)
67
67
  end
@@ -6,5 +6,10 @@ module ActiveFedora
6
6
  # allows all the usual logger method calls (warn, info, error, etc.)
7
7
  def add(*)
8
8
  end
9
+
10
+ # In the NullLogger there are no levels, so none of these should be true.
11
+ [:debug?, :info?, :warn?, :error?, :fatal?].each do |method_name|
12
+ define_method(method_name) { false }
13
+ end
9
14
  end
10
15
  end
@@ -2,6 +2,7 @@ module ActiveFedora
2
2
  class Railtie < Rails::Railtie
3
3
  config.app_middleware.insert_after ::ActionDispatch::Callbacks,
4
4
  ActiveFedora::LdpCache
5
+ config.eager_load_namespaces << ActiveFedora
5
6
 
6
7
  initializer 'active_fedora.autoload', before: :set_autoload_paths do |app|
7
8
  app.config.autoload_paths << 'app/models/datastreams'
@@ -4,6 +4,8 @@ module ActiveFedora
4
4
  class SolrService
5
5
  attr_writer :conn
6
6
 
7
+ MAX_ROWS = 10_000
8
+
7
9
  def initialize(options = {})
8
10
  @options = { read_timeout: 120, open_timeout: 120, url: 'http://localhost:8080/solr' }.merge(options)
9
11
  end
@@ -42,6 +44,7 @@ module ActiveFedora
42
44
  end
43
45
 
44
46
  def query(query, args = {})
47
+ Base.logger.warn "Calling ActiveFedora::SolrService.get without passing an explicit value for ':rows' is not recommended. You will end up with Solr's default (usually set to 10)\nCalled by #{caller[0]}" unless args.key?(:rows)
45
48
  result = get(query, args)
46
49
  result['response']['docs'].map do |doc|
47
50
  ActiveFedora::SolrHit.new(doc)
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "11.1.1".freeze
2
+ VERSION = "11.1.2".freeze
3
3
  end
@@ -83,7 +83,7 @@ describe ActiveFedora::Base do
83
83
  before { gf.update(permissions_attributes: [{ id: p1.id, _destroy: 'true' }]) }
84
84
 
85
85
  it "saves to solr correctly" do
86
- result = ActiveFedora::SolrService.query("id:#{gf.id}").first['permissions_ssim']
86
+ result = ActiveFedora::SolrService.query("id:#{gf.id}", rows: 10).first['permissions_ssim']
87
87
  expect(result).to eq [p2.id]
88
88
  end
89
89
  end
@@ -19,7 +19,7 @@ describe ActiveFedora::QueryResultBuilder do
19
19
 
20
20
  it "returns an array of objects that are of the class stored in active_fedora_model_s" do
21
21
  query = ActiveFedora::SolrQueryBuilder.construct_query_for_ids([test_object.id, foo_object.id])
22
- solr_result = ActiveFedora::SolrService.query(query)
22
+ solr_result = ActiveFedora::SolrService.query(query, rows: 10)
23
23
  result = described_class.reify_solr_results(solr_result)
24
24
  expect(result.length).to eq 2
25
25
  result.each do |r|
@@ -29,7 +29,7 @@ describe ActiveFedora::QueryResultBuilder do
29
29
 
30
30
  it '#reifies a lightweight object as a new instance' do
31
31
  query = ActiveFedora::SolrQueryBuilder.construct_query_for_ids([foo_object.id])
32
- solr_result = ActiveFedora::SolrService.query(query)
32
+ solr_result = ActiveFedora::SolrService.query(query, rows: 10)
33
33
  result = described_class.reify_solr_results(solr_result, load_from_solr: true)
34
34
  expect(result.first).to be_instance_of FooObject
35
35
  end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe ActiveFedora::NullLogger do
4
+ [:debug?, :info?, :warn?, :error?, :fatal?].each do |method_name|
5
+ describe "##{method_name}" do
6
+ subject { described_class.new.public_send(method_name) }
7
+ it { is_expected.to be_falsey }
8
+ end
9
+ end
10
+ end
@@ -62,15 +62,23 @@ describe ActiveFedora::SolrService do
62
62
  describe "#query" do
63
63
  let(:doc) { { 'id' => 'x' } }
64
64
  let(:docs) { [doc] }
65
+ let(:stub_result) { { 'response' => { 'docs' => docs } } }
66
+ before do
67
+ allow(described_class).to receive(:instance).and_return(double("instance", conn: mock_conn))
68
+ end
65
69
 
66
70
  it "wraps the solr response documents in Solr hits" do
67
- stub_result = { 'response' => { 'docs' => docs } }
68
- expect(mock_conn).to receive(:get).with('select', params: { q: 'querytext', qt: 'standard' }).and_return(stub_result)
69
- allow(described_class).to receive(:instance).and_return(double("instance", conn: mock_conn))
70
- result = described_class.query('querytext')
71
+ expect(mock_conn).to receive(:get).with('select', params: { rows: 2, q: 'querytext', qt: 'standard' }).and_return(stub_result)
72
+ result = described_class.query('querytext', rows: 2)
71
73
  expect(result.size).to eq 1
72
74
  expect(result.first.id).to eq 'x'
73
75
  end
76
+
77
+ it "warns about not passing rows" do
78
+ allow(mock_conn).to receive(:get).and_return(stub_result)
79
+ expect(ActiveFedora::Base.logger).to receive(:warn).with(/^Calling ActiveFedora::SolrService\.get without passing an explicit value for ':rows' is not recommended/)
80
+ described_class.query('querytext')
81
+ end
74
82
  end
75
83
 
76
84
  describe ".count" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.1.1
4
+ version: 11.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-01-14 00:00:00.000000000 Z
13
+ date: 2017-01-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rsolr
@@ -582,6 +582,7 @@ files:
582
582
  - spec/integration/solr_hit_spec.rb
583
583
  - spec/integration/versionable_spec.rb
584
584
  - spec/integration/with_metadata_spec.rb
585
+ - spec/lib/active_fedora/null_logger_spec.rb
585
586
  - spec/rcov.opts
586
587
  - spec/spec.opts
587
588
  - spec/spec_helper.rb