valkyrie 2.1.2 → 2.2.0

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