valkyrie 2.1.2 → 2.2.0

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
  SHA256:
3
- metadata.gz: 2d82ceafa985dc327a594ad39da9f4feb343579e6330ae7f30a6fd7894471083
4
- data.tar.gz: 56f54340890de9a799588b47eb4fb3ee6f400d598db03c7bf97d4163d128d831
3
+ metadata.gz: a9562026fbee014b2e1f3076826af96c850373e9ff94eeb1921facbad11edcec
4
+ data.tar.gz: '0119066f0cf241db23c9a29d7f9501803c669df197bda350f0706d2b2db6120d'
5
5
  SHA512:
6
- metadata.gz: 2676a955ae6333f4c9b82a4f2a0e131bb235e4cdef8b05951bdfb787ac1218a9e2da410a476928482824b909a12ade0f2d6e2074915c3738922ca4f3a8004337
7
- data.tar.gz: 67a8b919a2ce033240db9d8b507140f84a8c49edfbf7283f205a41a7a09d2ba99940e5c465f0959cc27ce707e52d68b5e2d04a0f67376f482ae560c4713608ee
6
+ metadata.gz: 63279c6ea99e08f10dcb8b6aa6cd6fada5d60937852dde46ad08b2923e3d129eb03442be0d4a11640affefeda7367fdabc9d93bb6c90f53b25c71fc12dea7cc4
7
+ data.tar.gz: cd471fa3caa33b644cca4c5897104225dbdc3fafe0d10a889d102a03e6e5ba74aa9284cd5fc27933ded7c842e2d09f0326d66119290df557f7ca1c29e2c7f2e2
data/.circleci/config.yml CHANGED
@@ -28,11 +28,16 @@ jobs:
28
28
  environment:
29
29
  CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
30
30
  JAVA_OPTIONS: "-Djetty.http.port=8998 -Dfcrepo.dynamic.jms.port=61618 -Dfcrepo.dynamic.stomp.port=61614"
31
+ - image: fcrepo/fcrepo:6.0.0-beta-1
32
+ environment:
33
+ CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
34
+ JAVA_OPTS: "-Djetty.http.port=8978 -Dfcrepo.dynamic.jms.port=61619 -Dfcrepo.dynamic.stomp.port=61615 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
31
35
  - image: solr:7.7-alpine
32
36
  command: bin/solr -cloud -noprompt -f -p 8994
33
37
  environment:
34
38
  BUNDLE_GEMFILE: << parameters.gemfile >>
35
39
  POSTGRES_PORT: 5432
40
+ FEDORA_6_PORT: 8080
36
41
  steps:
37
42
  - checkout
38
43
  - run:
data/.lando.yml CHANGED
@@ -38,3 +38,21 @@ services:
38
38
  ports:
39
39
  - 8998:8080
40
40
  portforward: true
41
+ valkyrie_fedora_6:
42
+ type: compose
43
+ app_mount: false
44
+ volumes:
45
+ fedora6:
46
+ services:
47
+ image: fcrepo/fcrepo:6.0.0-beta-1
48
+ command:
49
+ - "catalina.sh"
50
+ - "run"
51
+ volumes:
52
+ - fedora6:/data
53
+ ports:
54
+ - 8978:8080
55
+ environment:
56
+ CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
57
+ JAVA_OPTS: "-Dfcrepo.dynamic.jms.port=61619 -Dfcrepo.dynamic.stomp.port=61615 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
58
+ portforward: true
data/CHANGELOG.md CHANGED
@@ -1,4 +1,17 @@
1
- # v2.1.2 2020-03-12
1
+ # v2.2.0 2021-05-06
2
+
3
+ ## Changes since last release
4
+
5
+ * Add support for Fedora 6.
6
+ [tpendragon](https://github.com/tpendragon)
7
+ * Deprecate pcdmuse:PreservationMasterFile in favor of pcdmuse:PreservationFile
8
+ [escowles](https://github.com/escowles)
9
+ * Improve spec docs for resource.rb
10
+ [dchandekstark](https://github.com/dchandekstark)
11
+ * Memoize resource in Solr queries to reduce Solr calls.
12
+ [dchandekstark](https://github.com/dchandekstark)
13
+
14
+ # v2.1.2 2021-04-19
2
15
 
3
16
  ## Changes since last release
4
17
 
data/Rakefile CHANGED
@@ -32,6 +32,11 @@ namespace :db do
32
32
  task configure_connection: :configuration do
33
33
  DatabaseConnection.connect!(DATABASE_ENV)
34
34
  ActiveRecord::Base.logger = Logger.new STDOUT if @config['logger']
35
+ @config = if ::ActiveRecord::Base.configurations.respond_to?(:configs_for)
36
+ ::ActiveRecord::Base.configurations.configs_for(env_name: DATABASE_ENV.to_s)[0]
37
+ else
38
+ ::ActiveRecord::Base.configurations[DATABASE_ENV.to_s]
39
+ end
35
40
  end
36
41
 
37
42
  desc 'Create the database from db/config.yml for the current DATABASE_ENV'
@@ -58,7 +58,7 @@ module Valkyrie::Persistence::Fedora
58
58
  # @param [RDF::URI] id the Valkyrie ID
59
59
  # @return [RDF::URI]
60
60
  def id_to_uri(id)
61
- prefix = fedora_version == 5 ? "" : "#{pair_path(id)}/"
61
+ prefix = [5, 6].include?(fedora_version) ? "" : "#{pair_path(id)}/"
62
62
  RDF::URI("#{connection_prefix}/#{prefix}#{CGI.escape(id.to_s)}")
63
63
  end
64
64
 
@@ -71,6 +71,10 @@ module Valkyrie::Persistence::Fedora
71
71
  id.to_s.split(/[-\/]/).first.split("").each_slice(2).map(&:join).join("/")
72
72
  end
73
73
 
74
+ def url_prefix
75
+ connection.http.url_prefix
76
+ end
77
+
74
78
  # Generate the prefix used in HTTP requests to the Fedora RESTful endpoint
75
79
  # @return [String]
76
80
  def connection_prefix
@@ -52,7 +52,7 @@ module Valkyrie::Persistence::Fedora
52
52
  # @return [Array<RDF::URI>]
53
53
  def include_uris
54
54
  [
55
- adapter.fedora_version == 5 ? "http://fedora.info/definitions/fcrepo#PreferInboundReferences" : ::RDF::Vocab::Fcrepo4.InboundReferences
55
+ [5, 6].include?(adapter.fedora_version) ? "http://fedora.info/definitions/fcrepo#PreferInboundReferences" : ::RDF::Vocab::Fcrepo4.InboundReferences
56
56
  ]
57
57
  end
58
58
 
@@ -32,7 +32,7 @@ module Valkyrie::Persistence::Solr::Queries
32
32
  # @note the field used here is alternate_ids_ssim and the value is prefixed by "id-"
33
33
  # @return [Hash]
34
34
  def resource
35
- connection.get("select", params: { q: "alternate_ids_ssim:\"id-#{alternate_identifier}\"", fl: "*", rows: 1 })["response"]["docs"].first
35
+ @resource ||= connection.get("select", params: { q: "alternate_ids_ssim:\"id-#{alternate_identifier}\"", fl: "*", rows: 1 })["response"]["docs"].first
36
36
  end
37
37
  end
38
38
  end
@@ -31,7 +31,7 @@ module Valkyrie::Persistence::Solr::Queries
31
31
  # Query Solr for for the first document with the ID in a field
32
32
  # @return [Hash]
33
33
  def resource
34
- connection.get("select", params: { q: "id:\"#{id}\"", fl: "*", rows: 1 })["response"]["docs"].first
34
+ @resource ||= connection.get("select", params: { q: "id:\"#{id}\"", fl: "*", rows: 1 })["response"]["docs"].first
35
35
  end
36
36
  end
37
37
  end
@@ -31,7 +31,7 @@ RSpec.shared_examples 'a Valkyrie::Resource' do
31
31
  end
32
32
  end
33
33
 
34
- describe "#fields" do
34
+ describe ".fields" do
35
35
  it "returns a set of fields" do
36
36
  expect(meta_klass).to respond_to(:fields).with(0).arguments
37
37
  expect(meta_klass.fields).to include(:id)
@@ -37,7 +37,7 @@ module Valkyrie::Storage
37
37
  def upload(file:, original_filename:, resource:, content_type: "application/octet-stream", # rubocop:disable Metrics/ParameterLists
38
38
  resource_uri_transformer: default_resource_uri_transformer, **_extra_arguments)
39
39
  identifier = resource_uri_transformer.call(resource, base_url) + '/original'
40
- sha1 = fedora_version == 5 ? "sha" : "sha1"
40
+ sha1 = [5, 6].include?(fedora_version) ? "sha" : "sha1"
41
41
  connection.http.put do |request|
42
42
  request.url identifier
43
43
  request.headers['Content-Type'] = content_type
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Valkyrie
3
- VERSION = "2.1.2"
3
+ VERSION = "2.2.0"
4
4
  end
@@ -39,10 +39,22 @@ module Valkyrie::Vocab
39
39
  "rdf:subClassOf": %(http://pcdm.org/resources#File),
40
40
  "rdfs:isDefinedBy": %(pcdmuse:),
41
41
  type: "rdfs:Class"
42
+ term :PreservationFile,
43
+ comment: %(Best quality representation of the Object appropriate for long-term
44
+ preservation.),
45
+ label: "preservation file",
46
+ "dct:replaces": %(http://pcdm.org/use#PreservationMasterFile),
47
+ "rdf:subClassOf": %(http://pcdm.org/resources#File),
48
+ "rdfs:isDefinedBy": %(pcdmuse:),
49
+ type: "rdfs:Class"
50
+ warn "[DEPRECATION] PCDM is deprecating '#{self.class}#PreservationMasterFile'. Use #{self.class}#PreservationFile instead."
51
+ # @deprecated
42
52
  term :PreservationMasterFile,
43
53
  comment: %(Best quality representation of the Object appropriate for long-term
44
54
  preservation.),
45
55
  label: "preservation master file",
56
+ "dct:isReplacedBy": %(http://pcdm.org/use#PreservationFile),
57
+ "owl:deprecated": true,
46
58
  "rdf:subClassOf": %(http://pcdm.org/resources#File),
47
59
  "rdfs:isDefinedBy": %(pcdmuse:),
48
60
  type: "rdfs:Class"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valkyrie
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trey Pendragon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-19 00:00:00.000000000 Z
11
+ date: 2021-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-struct