active-fedora 11.1.1 → 11.1.2

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 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