diff --git a/WORKSPACE b/WORKSPACE index f91be752b7..581169e3af 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -27,7 +27,7 @@ http_archive( # 2.12 is a default version, other versions can be use by passing them explicitly: # scala_config(scala_version = "2.11.12") load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config") -scala_config(scala_version = "2.12.13") +scala_config(scala_version = "2.13.5") # register default and our custom scala toolchain load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains") diff --git a/test_data/metadataE2EV2/metadata-flat.jsonld b/test_data/metadataE2EV2/metadata-flat.jsonld index a3c33f00e2..f6da3fac1f 100644 --- a/test_data/metadataE2EV2/metadata-flat.jsonld +++ b/test_data/metadataE2EV2/metadata-flat.jsonld @@ -1,5 +1,23 @@ { "@graph": [ + { + "http://ns.dasch.swiss/repository#hasAddress": { + "https://schema.org/postalCode": "40000", + "https://schema.org/streetAddress": "University of Toronto Street", + "@type": "https://schema.org/PostalAddress", + "https://schema.org/addressLocality": "Toronto" + }, + "http://ns.dasch.swiss/repository#hasName": "University of Toronto", + "http://ns.dasch.swiss/repository#hasEmail": { + "@id": "http://ns.dasch.swiss/info@universityoftoronto.ca" + }, + "@type": "http://ns.dasch.swiss/repository#Organization", + "http://ns.dasch.swiss/repository#hasURL": { + "@type": "https://schema.org/URL", + "https://schema.org/url": "http://www.utoronto.ca/" + }, + "@id": "http://ns.dasch.swiss/test-funder" + }, { "http://ns.dasch.swiss/repository#hasName": "Prof. test test, Prof. test Harbtestrecht", "http://ns.dasch.swiss/repository#hasNumber": "0123456789", @@ -14,77 +32,73 @@ "@id": "http://ns.dasch.swiss/test-grant" }, { - "http://ns.dasch.swiss/repository#hasDocumentation": "Work in progress", - "http://ns.dasch.swiss/repository#hasAlternativeTitle": "test", + "http://ns.dasch.swiss/repository#hasFamilyName": "Berry", + "http://ns.dasch.swiss/repository#hasGivenName": "Lauren", + "http://ns.dasch.swiss/repository#hasAddress": { + "https://schema.org/postalCode": "4000", + "https://schema.org/streetAddress": "Teststrasse", + "@type": "https://schema.org/PostalAddress", + "https://schema.org/addressLocality": "Basel" + }, + "http://ns.dasch.swiss/repository#hasJobTitle": "Dr.", + "http://ns.dasch.swiss/repository#hasRole": "Contributor", + "http://ns.dasch.swiss/repository#hasEmail": { + "@id": "http://ns.dasch.swiss/lauren.berry@unibas.ch" + }, + "@type": "http://ns.dasch.swiss/repository#Person", + "http://ns.dasch.swiss/repository#isMemberOf": { + "@id": "http://ns.dasch.swiss/test-dasch" + }, + "@id": "http://ns.dasch.swiss/test-berry" + }, + { "http://ns.dasch.swiss/repository#hasAbstract": "Dies ist ein Testprojekt.", "http://ns.dasch.swiss/repository#hasLanguage": [ - "EN", "DE", + "EN", "FR" ], "http://ns.dasch.swiss/repository#hasDateModified": { "@value": "2020-04-26", "@type": "http://www.w3.org/2001/XMLSchema#date" }, - "http://ns.dasch.swiss/repository#hasConditionsOfAccess": "Open Access", - "http://ns.dasch.swiss/repository#hasTypeOfData": [ - "image", - "text" - ], - "http://ns.dasch.swiss/repository#hasTitle": "Testprojekt", - "http://ns.dasch.swiss/repository#isPartOf": { - "@id": "http://ns.dasch.swiss/test-project" - }, - "http://ns.dasch.swiss/repository#hasHowToCite": "Testprojekt (test), 2002, https://test.dasch.swiss", - "http://ns.dasch.swiss/repository#hasLicense": { - "@type": "https://schema.org/URL", - "https://schema.org/url": "https://creativecommons.org/licenses/by/3.0" - }, "http://ns.dasch.swiss/repository#hasQualifiedAttribution": [ { + "@type": "http://www.w3.org/ns/prov#Attribution", "http://www.w3.org/ns/prov#agent": { - "@id": "http://ns.dasch.swiss/test-berry" + "@id": "http://ns.dasch.swiss/test-jones" }, - "http://ns.dasch.swiss/repository#hasRole": "contributor", - "@type": "http://www.w3.org/ns/prov#Attribution" + "http://ns.dasch.swiss/repository#hasRole": "editor" }, { + "@type": "http://www.w3.org/ns/prov#Attribution", "http://www.w3.org/ns/prov#agent": { - "@id": "http://ns.dasch.swiss/test-hart" + "@id": "http://ns.dasch.swiss/test-abraham" }, - "http://ns.dasch.swiss/repository#hasRole": "contributor", - "@type": "http://www.w3.org/ns/prov#Attribution" + "http://ns.dasch.swiss/repository#hasRole": "editor" }, { + "@type": "http://www.w3.org/ns/prov#Attribution", "http://www.w3.org/ns/prov#agent": { - "@id": "http://ns.dasch.swiss/test-abraham" + "@id": "http://ns.dasch.swiss/test-berry" }, - "http://ns.dasch.swiss/repository#hasRole": "editor", - "@type": "http://www.w3.org/ns/prov#Attribution" + "http://ns.dasch.swiss/repository#hasRole": "contributor" }, { + "@type": "http://www.w3.org/ns/prov#Attribution", "http://www.w3.org/ns/prov#agent": { "@id": "http://ns.dasch.swiss/test-coleman" }, - "http://ns.dasch.swiss/repository#hasRole": "editor", - "@type": "http://www.w3.org/ns/prov#Attribution" + "http://ns.dasch.swiss/repository#hasRole": "editor" }, { + "@type": "http://www.w3.org/ns/prov#Attribution", "http://www.w3.org/ns/prov#agent": { - "@id": "http://ns.dasch.swiss/test-jones" + "@id": "http://ns.dasch.swiss/test-hart" }, - "http://ns.dasch.swiss/repository#hasRole": "editor", - "@type": "http://www.w3.org/ns/prov#Attribution" + "http://ns.dasch.swiss/repository#hasRole": "contributor" } ], - "http://ns.dasch.swiss/repository#sameAs": { - "@type": "https://schema.org/URL", - "https://schema.org/url": "https://test.dasch.swiss/" - }, - "http://ns.dasch.swiss/repository#hasDistribution": { - "@type": "https://schema.org/DataDownload", - "https://schema.org/url": "https://test.dasch.swiss" - }, "http://ns.dasch.swiss/repository#hasStatus": "ongoing", "@type": "http://ns.dasch.swiss/repository#Dataset", "http://ns.dasch.swiss/repository#hasDatePublished": { @@ -95,15 +109,39 @@ "@value": "2001-09-26", "@type": "http://www.w3.org/2001/XMLSchema#date" }, - "@id": "http://ns.dasch.swiss/test-dataset" + "@id": "http://ns.dasch.swiss/test-dataset", + "http://ns.dasch.swiss/repository#hasDocumentation": "Work in progress", + "http://ns.dasch.swiss/repository#hasAlternativeTitle": "test", + "http://ns.dasch.swiss/repository#hasConditionsOfAccess": "Open Access", + "http://ns.dasch.swiss/repository#hasTypeOfData": [ + "image", + "text" + ], + "http://ns.dasch.swiss/repository#hasTitle": "Testprojekt", + "http://ns.dasch.swiss/repository#isPartOf": { + "@id": "http://ns.dasch.swiss/test-project" + }, + "http://ns.dasch.swiss/repository#hasHowToCite": "Testprojekt (test), 2002, https://test.dasch.swiss", + "http://ns.dasch.swiss/repository#hasLicense": { + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://creativecommons.org/licenses/by/3.0" + }, + "http://ns.dasch.swiss/repository#sameAs": { + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://test.dasch.swiss/" + }, + "http://ns.dasch.swiss/repository#hasDistribution": { + "@type": "https://schema.org/DataDownload", + "https://schema.org/url": "https://test.dasch.swiss" + } }, { "http://ns.dasch.swiss/repository#hasFamilyName": "Jones", "http://ns.dasch.swiss/repository#hasGivenName": "Benjamin", "http://ns.dasch.swiss/repository#hasAddress": { "https://schema.org/postalCode": "4000", - "@type": "https://schema.org/PostalAddress", "https://schema.org/streetAddress": "Teststrasse", + "@type": "https://schema.org/PostalAddress", "https://schema.org/addressLocality": "Basel" }, "http://ns.dasch.swiss/repository#hasJobTitle": "Dr. des.", @@ -122,8 +160,8 @@ "http://ns.dasch.swiss/repository#hasGivenName": "James", "http://ns.dasch.swiss/repository#hasAddress": { "https://schema.org/postalCode": "4000", - "@type": "https://schema.org/PostalAddress", "https://schema.org/streetAddress": "Teststrasse", + "@type": "https://schema.org/PostalAddress", "https://schema.org/addressLocality": "Basel" }, "http://ns.dasch.swiss/repository#hasJobTitle": "Dr. des.", @@ -138,91 +176,64 @@ "@id": "http://ns.dasch.swiss/test-coleman" }, { - "@id": "http://ns.dasch.swiss/test-plan", - "@type": "http://ns.dasch.swiss/repository#DataManagementPlan", - "http://ns.dasch.swiss/repository#isAvailable": false, - "http://ns.dasch.swiss/repository#hasURL": { - "@type": "https://schema.org/URL", - "https://schema.org/url": "https://snf.ch" - } - }, - { - "http://ns.dasch.swiss/repository#hasFamilyName": "Berry", - "http://ns.dasch.swiss/repository#hasGivenName": "Lauren", "http://ns.dasch.swiss/repository#hasAddress": { "https://schema.org/postalCode": "4000", - "@type": "https://schema.org/PostalAddress", "https://schema.org/streetAddress": "Teststrasse", - "https://schema.org/addressLocality": "Basel" - }, - "http://ns.dasch.swiss/repository#hasJobTitle": "Dr.", - "http://ns.dasch.swiss/repository#hasRole": "Contributor", - "http://ns.dasch.swiss/repository#hasEmail": { - "@id": "http://ns.dasch.swiss/lauren.berry@unibas.ch" - }, - "@type": "http://ns.dasch.swiss/repository#Person", - "http://ns.dasch.swiss/repository#isMemberOf": { - "@id": "http://ns.dasch.swiss/test-dasch" - }, - "@id": "http://ns.dasch.swiss/test-berry" - }, - { - "http://ns.dasch.swiss/repository#hasAddress": { - "https://schema.org/postalCode": "40000", "@type": "https://schema.org/PostalAddress", - "https://schema.org/streetAddress": "University of Toronto Street", - "https://schema.org/addressLocality": "Toronto" + "https://schema.org/addressLocality": "Basel" }, - "http://ns.dasch.swiss/repository#hasName": "University of Toronto", + "http://ns.dasch.swiss/repository#hasName": "TEST", "http://ns.dasch.swiss/repository#hasEmail": { - "@id": "http://ns.dasch.swiss/info@universityoftoronto.ca" + "@id": "http://ns.dasch.swiss/info@dasch.swiss" }, "@type": "http://ns.dasch.swiss/repository#Organization", "http://ns.dasch.swiss/repository#hasURL": { "@type": "https://schema.org/URL", - "https://schema.org/url": "http://www.utoronto.ca/" + "https://schema.org/url": "https://test.swiss" }, - "@id": "http://ns.dasch.swiss/test-funder" + "@id": "http://ns.dasch.swiss/test-dasch" }, { - "http://ns.dasch.swiss/repository#hasFamilyName": "Hart", - "http://ns.dasch.swiss/repository#hasGivenName": "Leonhard", - "http://ns.dasch.swiss/repository#hasAddress": { - "https://schema.org/postalCode": "4000", - "@type": "https://schema.org/PostalAddress", - "https://schema.org/streetAddress": "Teststrasse", - "https://schema.org/addressLocality": "Basel" + "http://ns.dasch.swiss/repository#hasPublication": "testpublication", + "http://ns.dasch.swiss/repository#hasFunder": { + "@id": "http://ns.dasch.swiss/test-funder" }, - "http://ns.dasch.swiss/repository#hasJobTitle": "Prof.", - "http://ns.dasch.swiss/repository#hasRole": "Editor", - "http://ns.dasch.swiss/repository#hasEmail": { - "@id": "http://ns.dasch.swiss/leonhard.hart@test.ch" + "http://ns.dasch.swiss/repository#hasDiscipline": { + "https://schema.org/propertyID": { + "https://schema.org/propertyID": "SKOS UNESCO Nomenclature", + "@type": "https://schema.org/PropertyValue" + }, + "@type": "https://schema.org/URL", + "https://schema.org/url": "http://skos.um.es/unesco6/11" }, - "@type": "http://ns.dasch.swiss/repository#Person", - "http://ns.dasch.swiss/repository#isMemberOf": { - "@id": "http://ns.dasch.swiss/test-dasch" + "http://ns.dasch.swiss/repository#hasGrant": { + "@id": "http://ns.dasch.swiss/test-grant" }, - "@id": "http://ns.dasch.swiss/test-hart" - }, - { - "http://ns.dasch.swiss/repository#hasAddress": { - "https://schema.org/postalCode": "4000", - "@type": "https://schema.org/PostalAddress", - "https://schema.org/streetAddress": "Teststrasse", - "https://schema.org/addressLocality": "Basel" + "http://ns.dasch.swiss/repository#hasTemporalCoverage": { + "https://schema.org/propertyID": { + "https://schema.org/propertyID": "Chronontology Dainst", + "@type": "https://schema.org/PropertyValue" + }, + "@type": "https://schema.org/URL", + "https://schema.org/url": "http://chronontology.dainst.org/period/Ef9SyESSafJ1" }, - "http://ns.dasch.swiss/repository#hasName": "TEST", - "http://ns.dasch.swiss/repository#hasEmail": { - "@id": "http://ns.dasch.swiss/info@dasch.swiss" + "http://ns.dasch.swiss/repository#hasDataManagementPlan": { + "http://ns.dasch.swiss/repository#isAvailable": true, + "http://ns.dasch.swiss/repository#hasURL": { + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://snf.ch" + }, + "@type": "http://ns.dasch.swiss/repository#DataManagementPlan" + }, + "http://ns.dasch.swiss/repository#hasStartDate": { + "@value": "2000-07-26", + "@type": "http://www.w3.org/2001/XMLSchema#date" }, - "@type": "http://ns.dasch.swiss/repository#Organization", "http://ns.dasch.swiss/repository#hasURL": { "@type": "https://schema.org/URL", - "https://schema.org/url": "https://test.swiss" + "https://schema.org/url": "https://test.dasch.swiss/" }, - "@id": "http://ns.dasch.swiss/test-dasch" - }, - { + "@id": "http://ns.dasch.swiss/test-project", "http://ns.dasch.swiss/repository#hasContactPoint": { "@id": "http://ns.dasch.swiss/test-abraham" }, @@ -232,158 +243,147 @@ { "@type": "https://schema.org/Place", "https://schema.org/url": { - "@type": "https://schema.org/URL", "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Geonames" + "https://schema.org/propertyID": "Geonames", + "@type": "https://schema.org/PropertyValue" }, - "https://schema.org/url": "https://www.geonames.org/2017370/russian-federation.html" + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://www.geonames.org/3175395/italian-republic.html" } }, { "@type": "https://schema.org/Place", "https://schema.org/url": { - "@type": "https://schema.org/URL", "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Geonames" + "https://schema.org/propertyID": "Geonames", + "@type": "https://schema.org/PropertyValue" }, - "https://schema.org/url": "https://www.geonames.org/2658434/switzerland.html" + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://www.geonames.org/6255148/europe.html" } }, { "@type": "https://schema.org/Place", "https://schema.org/url": { - "@type": "https://schema.org/URL", "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Geonames" + "https://schema.org/propertyID": "Geonames", + "@type": "https://schema.org/PropertyValue" }, - "https://schema.org/url": "https://www.geonames.org/3175395/italian-republic.html" + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://www.geonames.org/2921044/federal-republic-of-germany.html" } }, { "@type": "https://schema.org/Place", "https://schema.org/url": { - "@type": "https://schema.org/URL", "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Geonames" + "https://schema.org/propertyID": "Geonames", + "@type": "https://schema.org/PropertyValue" }, - "https://schema.org/url": "https://www.geonames.org/2921044/federal-republic-of-germany.html" + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://www.geonames.org/6269131/england.html" } }, { "@type": "https://schema.org/Place", "https://schema.org/url": { - "@type": "https://schema.org/URL", "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Geonames" + "https://schema.org/propertyID": "Geonames", + "@type": "https://schema.org/PropertyValue" }, - "https://schema.org/url": "https://www.geonames.org/3017382/republic-of-france.html" + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://www.geonames.org/2658434/switzerland.html" } }, { "@type": "https://schema.org/Place", "https://schema.org/url": { - "@type": "https://schema.org/URL", "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Geonames" + "https://schema.org/propertyID": "Geonames", + "@type": "https://schema.org/PropertyValue" }, - "https://schema.org/url": "https://www.geonames.org/6269131/england.html" + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://www.geonames.org/3017382/republic-of-france.html" } }, { "@type": "https://schema.org/Place", "https://schema.org/url": { - "@type": "https://schema.org/URL", "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Geonames" + "https://schema.org/propertyID": "Geonames", + "@type": "https://schema.org/PropertyValue" }, - "https://schema.org/url": "https://www.geonames.org/6255148/europe.html" + "@type": "https://schema.org/URL", + "https://schema.org/url": "https://www.geonames.org/2017370/russian-federation.html" } } ], - "http://ns.dasch.swiss/repository#hasPublication": "testpublication", - "http://ns.dasch.swiss/repository#hasFunder": { - "@id": "http://ns.dasch.swiss/test-funder" - }, - "http://ns.dasch.swiss/repository#hasDiscipline": { - "@type": "https://schema.org/URL", - "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "SKOS UNESCO Nomenclature" - }, - "https://schema.org/url": "http://skos.um.es/unesco6/11" - }, "http://ns.dasch.swiss/repository#hasKeywords": [ - "science", - "mathematics", + "history of mathematics", "history of science", - "history of mathematics" + "mathematics", + "science" ], "http://ns.dasch.swiss/repository#hasEndDate": { "@value": "2001-01-26", "@type": "http://www.w3.org/2001/XMLSchema#date" }, - "http://ns.dasch.swiss/repository#hasGrant": { - "@id": "http://ns.dasch.swiss/test-grant" - }, - "http://ns.dasch.swiss/repository#hasTemporalCoverage": { - "@type": "https://schema.org/URL", - "https://schema.org/propertyID": { - "@type": "https://schema.org/PropertyValue", - "https://schema.org/propertyID": "Chronontology Dainst" - }, - "https://schema.org/url": "http://chronontology.dainst.org/period/Ef9SyESSafJ1" - }, "http://ns.dasch.swiss/repository#hasDescription": "Dies ist ein Testprojekt...alle Properties wurden verwendet, um diese zu testen", "@type": "http://ns.dasch.swiss/repository#Project", - "http://ns.dasch.swiss/repository#hasAlternateName": "test", - "http://ns.dasch.swiss/repository#hasDataManagementPlan": { - "@type": "http://ns.dasch.swiss/repository#DataManagementPlan", - "http://ns.dasch.swiss/repository#isAvailable": true, - "http://ns.dasch.swiss/repository#hasURL": { - "@type": "https://schema.org/URL", - "https://schema.org/url": "https://snf.ch" - } + "http://ns.dasch.swiss/repository#hasAlternateName": "test" + }, + { + "http://ns.dasch.swiss/repository#hasFamilyName": "Hart", + "http://ns.dasch.swiss/repository#hasGivenName": "Leonhard", + "http://ns.dasch.swiss/repository#hasAddress": { + "https://schema.org/postalCode": "4000", + "https://schema.org/streetAddress": "Teststrasse", + "@type": "https://schema.org/PostalAddress", + "https://schema.org/addressLocality": "Basel" }, - "http://ns.dasch.swiss/repository#hasStartDate": { - "@value": "2000-07-26", - "@type": "http://www.w3.org/2001/XMLSchema#date" + "http://ns.dasch.swiss/repository#hasJobTitle": "Prof.", + "http://ns.dasch.swiss/repository#hasRole": "Editor", + "http://ns.dasch.swiss/repository#hasEmail": { + "@id": "http://ns.dasch.swiss/leonhard.hart@test.ch" }, + "@type": "http://ns.dasch.swiss/repository#Person", + "http://ns.dasch.swiss/repository#isMemberOf": { + "@id": "http://ns.dasch.swiss/test-dasch" + }, + "@id": "http://ns.dasch.swiss/test-hart" + }, + { + "@id": "http://ns.dasch.swiss/test-plan", + "http://ns.dasch.swiss/repository#isAvailable": false, "http://ns.dasch.swiss/repository#hasURL": { "@type": "https://schema.org/URL", - "https://schema.org/url": "https://test.dasch.swiss/" + "https://schema.org/url": "https://snf.ch" }, - "@id": "http://ns.dasch.swiss/test-project" + "@type": "http://ns.dasch.swiss/repository#DataManagementPlan" }, { "http://ns.dasch.swiss/repository#hasFamilyName": "Abraham", "http://ns.dasch.swiss/repository#hasGivenName": "Stewart", "http://ns.dasch.swiss/repository#hasAddress": { "https://schema.org/postalCode": "4000", - "@type": "https://schema.org/PostalAddress", "https://schema.org/streetAddress": "Teststrasse", + "@type": "https://schema.org/PostalAddress", "https://schema.org/addressLocality": "Basel" }, "http://ns.dasch.swiss/repository#hasJobTitle": "Dr.", "http://ns.dasch.swiss/repository#hasRole": "Editor", + "@type": "http://ns.dasch.swiss/repository#Person", + "http://ns.dasch.swiss/repository#isMemberOf": { + "@id": "http://ns.dasch.swiss/test-dasch" + }, + "@id": "http://ns.dasch.swiss/test-abraham", "http://ns.dasch.swiss/repository#hasEmail": { "@id": "http://ns.dasch.swiss/stewart.abraham@test.ch" }, "http://ns.dasch.swiss/repository#sameAs": { "@type": "https://schema.org/URL", "https://schema.org/url": "https://orcid.org/0000-0002-1825-0097" - }, - "@type": "http://ns.dasch.swiss/repository#Person", - "http://ns.dasch.swiss/repository#isMemberOf": { - "@id": "http://ns.dasch.swiss/test-dasch" - }, - "@id": "http://ns.dasch.swiss/test-abraham" + } } ] } diff --git a/third_party/dependencies.bzl b/third_party/dependencies.bzl index 532ec06a1e..ac7c54b61f 100644 --- a/third_party/dependencies.bzl +++ b/third_party/dependencies.bzl @@ -7,7 +7,7 @@ load("//third_party:versions.bzl", "AKKA_VERSION", "AKKA_HTTP_VERSION", "JENA_VE def dependencies(): # - # e.g., to reference use: @maven//com_typesafe_akka_akka_actor_2_12 + # e.g., to reference use: @maven//com_typesafe_akka_akka_actor_2_13 # # ATTENTION: Transitive dependencies need to be explicitly added # to query: bazel query @maven//:all --output=build @@ -16,19 +16,19 @@ def dependencies(): maven_install( artifacts = [ # akka - "com.typesafe.akka:akka-actor_2.12:%s" % (AKKA_VERSION), - "com.typesafe.akka:akka-stream_2.12:%s" % (AKKA_VERSION), - "com.typesafe.akka:akka-slf4j_2.12:%s" % (AKKA_VERSION), + "com.typesafe.akka:akka-actor_2.13:%s" % (AKKA_VERSION), + "com.typesafe.akka:akka-stream_2.13:%s" % (AKKA_VERSION), + "com.typesafe.akka:akka-slf4j_2.13:%s" % (AKKA_VERSION), # akka http - "com.typesafe.akka:akka-http_2.12:%s" % (AKKA_HTTP_VERSION), - "com.typesafe.akka:akka-http-xml_2.12:%s" % (AKKA_HTTP_VERSION), - "com.typesafe.akka:akka-http-spray-json_2.12:%s" % (AKKA_HTTP_VERSION), - "com.typesafe.akka:akka-http-jackson_2.12:%s" % (AKKA_HTTP_VERSION), + "com.typesafe.akka:akka-http_2.13:%s" % (AKKA_HTTP_VERSION), + "com.typesafe.akka:akka-http-xml_2.13:%s" % (AKKA_HTTP_VERSION), + "com.typesafe.akka:akka-http-spray-json_2.13:%s" % (AKKA_HTTP_VERSION), + "com.typesafe.akka:akka-http-jackson_2.13:%s" % (AKKA_HTTP_VERSION), "com.typesafe:config:1.3.3", # CORS support - "ch.megard:akka-http-cors_2.12:1.0.0", + "ch.megard:akka-http-cors_2.13:1.0.0", # Jena "org.apache.jena:apache-jena-libs:%s" % (JENA_VERSION), @@ -42,7 +42,7 @@ def dependencies(): ), # Logging - "com.typesafe.scala-logging:scala-logging_2.12:3.8.0", + "com.typesafe.scala-logging:scala-logging_2.13:3.9.3", "ch.qos.logback:logback-classic:1.2.3", "ch.qos.logback:logback-core:1.2.3", "org.slf4j:log4j-over-slf4j:1.7.29", @@ -50,27 +50,27 @@ def dependencies(): "org.slf4j:slf4j-api:1.7.29", # metrics - "io.kamon:kamon-core_2.12:2.0.0-RC1", - "io.kamon:kamon-scala-future_2.12:2.0.0-RC1", - "io.kamon:kamon-akka-http_2.12:2.0.0-RC1", - "io.kamon:kamon-prometheus_2.12:2.0.0-RC1", - "io.kamon:kamon-logback_2.12:2.0.0-RC1", + "io.kamon:kamon-core_2.13:2.1.5", + "io.kamon:kamon-scala-future_2.13:2.1.5", + "io.kamon:kamon-akka-http_2.13:2.1.5", + "io.kamon:kamon-prometheus_2.13:2.1.5", + "io.kamon:kamon-logback_2.13:2.1.5", "org.aspectj:aspectjweaver:1.9.4", # input validation "commons-validator:commons-validator:1.6", # authentication - "org.bouncycastle:bcprov-jdk15on:1.59", + "org.bouncycastle:bcprov-jdk15on:1.64", "org.springframework.security:spring-security-core:5.1.5.RELEASE", - "com.pauldijou:jwt-spray-json_2.12:0.19.0", + "com.pauldijou:jwt-spray-json_2.13:5.0.0", # caching "net.sf.ehcache:ehcache:2.10.3", "redis.clients:jedis:3.1.0-m4", # serialization (used in caching) - "com.twitter:chill_2.12:0.9.3", + "com.twitter:chill_2.13:0.9.5", # other # "javax.transaction" % "transaction-api" % "1.1-rev-1", @@ -87,24 +87,23 @@ def dependencies(): "org.eclipse.rdf4j:rdf4j-runtime:3.4.4", "org.eclipse.rdf4j:rdf4j-client:3.4.4", "org.eclipse.rdf4j:rdf4j-shacl:3.4.4", - "org.rogach:scallop_2.12:3.2.0", + "org.rogach:scallop_2.13:3.5.1", "com.google.gwt:gwt-servlet:2.8.0", "net.sf.saxon:Saxon-HE:9.9.0-2", - "org.scala-lang.modules:scala-xml_2.12:1.1.1", - "com.jsuereth:scala-arm_2.12:2.0", - "org.scala-lang.modules:scala-java8-compat_2.12:0.8.0", + "org.scala-lang.modules:scala-xml_2.13:1.1.1", + "org.scala-lang.modules:scala-java8-compat_2.13:0.9.1", # provides akka jackson (json) support - "de.heikoseeberger:akka-http-circe_2.12:1.21.0", - "com.fasterxml.jackson.module:jackson-module-scala_2.12:2.9.4", + "de.heikoseeberger:akka-http-circe_2.13:1.36.0", + "com.fasterxml.jackson.module:jackson-module-scala_2.13:2.12.3", "com.apicatalog:titanium-json-ld:0.8.5", "javax.json:javax.json-api:1.1.4", "org.glassfish:jakarta.json:1.1.6", # swagger (api documentation) - "com.github.swagger-akka-http:swagger-akka-http_2.12:1.2.0", + "com.github.swagger-akka-http:swagger-akka-http_2.13:1.2.0", # Java EE modules which are deprecated in Java SE 9, 10 and will be removed in Java SE 11 "javax.xml.bind:jaxb-api:2.2.12", @@ -114,20 +113,20 @@ def dependencies(): "org.apache.httpcomponents:httpclient:4.5.6", # Twirl templates - "com.typesafe.play:twirl-api_2.12:1.3.13", + "com.typesafe.play:twirl-api_2.13:1.5.1", # scala stuff - "org.scala-lang.modules:scala-xml_2.12:1.2.0", + "org.scala-lang.modules:scala-xml_2.13:1.2.0", # testing - "com.typesafe.akka:akka-testkit_2.12:%s" % (AKKA_VERSION), - "com.typesafe.akka:akka-stream-testkit_2.12:%s" % (AKKA_VERSION), - "com.typesafe.akka:akka-http-testkit_2.12:%s" % (AKKA_HTTP_VERSION), - "org.scalatest:scalatest_2.12:3.2.2", - "org.scalatest:scalatest-core_2.12:3.2.2", - "org.scalatest:scalatest-wordspec_2.12:3.2.2", - "org.scalatest:scalatest-matchers-core_2.12:3.2.2", - "org.scalatest:scalatest-shouldmatchers_2.12:3.2.2", + "com.typesafe.akka:akka-testkit_2.13:%s" % (AKKA_VERSION), + "com.typesafe.akka:akka-stream-testkit_2.13:%s" % (AKKA_VERSION), + "com.typesafe.akka:akka-http-testkit_2.13:%s" % (AKKA_HTTP_VERSION), + "org.scalatest:scalatest_2.13:3.2.2", + "org.scalatest:scalatest-core_2.13:3.2.2", + "org.scalatest:scalatest-wordspec_2.13:3.2.2", + "org.scalatest:scalatest-matchers-core_2.13:3.2.2", + "org.scalatest:scalatest-shouldmatchers_2.13:3.2.2", "org.scalatest:scalatest-compatible:3.2.2", "org.testcontainers:testcontainers:1.15.3", "junit:junit:4.13", @@ -139,7 +138,7 @@ def dependencies(): "org.seleniumhq.selenium:selenium-support:3.141.59", # Graph for Scala - "org.scala-graph:graph-core_2.12:1.13.1", + "org.scala-graph:graph-core_2.13:1.13.1", ], repositories = [ "https://repo.maven.apache.org/maven2", @@ -174,33 +173,33 @@ ALL_WEBAPI_MAIN_DEPENDENCIES = [ ] BASE_TEST_DEPENDENCIES = [ - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:org_slf4j_slf4j_api", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_testkit_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_testkit_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_testkit_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_testkit_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", "@maven//:com_typesafe_config", - "@maven//:org_scalatest_scalatest_2_12", - "@maven//:org_scalatest_scalatest_core_2_12", - "@maven//:org_scalatest_scalatest_wordspec_2_12", - "@maven//:org_scalatest_scalatest_matchers_core_2_12", - "@maven//:org_scalatest_scalatest_shouldmatchers_2_12", + "@maven//:org_scalatest_scalatest_2_13", + "@maven//:org_scalatest_scalatest_core_2_13", + "@maven//:org_scalatest_scalatest_wordspec_2_13", + "@maven//:org_scalatest_scalatest_matchers_core_2_13", + "@maven//:org_scalatest_scalatest_shouldmatchers_2_13", "@maven//:org_scalatest_scalatest_compatible", - "@maven//:org_scalactic_scalactic_2_12", - "@maven//:org_scala_graph_graph_core_2_12", + "@maven//:org_scalactic_scalactic_2_13", + "@maven//:org_scala_graph_graph_core_2_13", ] BASE_TEST_DEPENDENCIES_WITH_JSON = BASE_TEST_DEPENDENCIES + [ - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_http_xml_2_12", - "@maven//:io_spray_spray_json_2_12", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_http_xml_2_13", + "@maven//:io_spray_spray_json_2_13", ] BASE_TEST_DEPENDENCIES_WITH_JSON_LD = BASE_TEST_DEPENDENCIES + [ - "@maven//:io_spray_spray_json_2_12", + "@maven//:io_spray_spray_json_2_13", "@maven//:com_apicatalog_titanium_json_ld", "@maven//:javax_json_javax_json_api", "@maven//:org_glassfish_jakarta_json" diff --git a/third_party/versions.bzl b/third_party/versions.bzl index d51558b146..e24e892104 100644 --- a/third_party/versions.bzl +++ b/third_party/versions.bzl @@ -1,8 +1,8 @@ """Primary location for setting Knora-API project wide versions""" -SCALA_VERSION = "2.12.11" +SCALA_VERSION = "2.13.5" AKKA_VERSION = "2.6.5" -AKKA_HTTP_VERSION = "10.2.0" +AKKA_HTTP_VERSION = "10.2.4" JENA_VERSION = "3.14.0" METRICS_VERSION = "4.0.1" diff --git a/webapi/BUILD.bazel b/webapi/BUILD.bazel index bca5679de7..c2d798ee38 100644 --- a/webapi/BUILD.bazel +++ b/webapi/BUILD.bazel @@ -34,7 +34,7 @@ scala_library( runtime_deps = [ "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", ], deps = [ @@ -54,48 +54,47 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/util", "//webapi/src/main/scala/org/knora/webapi/util/cache", # Logging - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:org_slf4j_jcl_over_slf4j", "@maven//:org_slf4j_slf4j_api", # - "@maven//:ch_megard_akka_http_cors_2_12", + "@maven//:ch_megard_akka_http_cors_2_13", "@maven//:com_fasterxml_jackson_core_jackson_annotations", "@maven//:com_fasterxml_jackson_core_jackson_databind", "@maven//:com_github_andrewoma_dexx_collection", "@maven//:com_apicatalog_titanium_json_ld", "@maven//:javax_json_javax_json_api", "@maven//:org_glassfish_jakarta_json", - "@maven//:com_github_swagger_akka_http_swagger_akka_http_2_12", + "@maven//:com_github_swagger_akka_http_swagger_akka_http_2_13", "@maven//:com_google_gwt_gwt_servlet", "@maven//:com_ibm_icu_icu4j", - "@maven//:com_jsuereth_scala_arm_2_12", - "@maven//:com_pauldijou_jwt_core_2_12", - "@maven//:com_pauldijou_jwt_json_common_2_12", - "@maven//:com_pauldijou_jwt_spray_json_2_12", + "@maven//:com_pauldijou_jwt_core_2_13", + "@maven//:com_pauldijou_jwt_json_common_2_13", + "@maven//:com_pauldijou_jwt_spray_json_2_13", "@maven//:com_sksamuel_diff_diff", - "@maven//:com_twitter_chill_2_12", + "@maven//:com_twitter_chill_2_13", # Akka - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_parsing_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_parsing_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", "@maven//:com_typesafe_config", # Templates - "@maven//:com_typesafe_play_twirl_api_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", "@maven//:commons_cli_commons_cli", "@maven//:commons_codec_commons_codec", "@maven//:commons_io_commons_io", "@maven//:commons_validator_commons_validator", # Telemetry - "@maven//:io_kamon_kamon_core_2_12", - "@maven//:io_kamon_kamon_instrumentation_common_2_12", - # "@maven//:io_kamon_kamon_logback_2_12", - # "@maven//:io_kamon_kamon_prometheus_2_12", - "@maven//:io_kamon_kamon_scala_future_2_12", + "@maven//:io_kamon_kamon_core_2_13", + "@maven//:io_kamon_kamon_instrumentation_common_2_13", + # "@maven//:io_kamon_kamon_logback_2_13", + # "@maven//:io_kamon_kamon_prometheus_2_13", + "@maven//:io_kamon_kamon_scala_future_2_13", # - "@maven//:io_spray_spray_json_2_12", + "@maven//:io_spray_spray_json_2_13", "@maven//:io_swagger_swagger_annotations", "@maven//:io_swagger_swagger_jaxrs", "@maven//:io_swagger_swagger_models", @@ -119,9 +118,9 @@ scala_library( "@maven//:org_apache_lucene_lucene_core", "@maven//:org_eclipse_rdf4j_rdf4j_client", "@maven//:org_jodd_jodd", - "@maven//:org_rogach_scallop_2_12", - "@maven//:org_scala_lang_modules_scala_java8_compat_2_12", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:org_rogach_scallop_2_13", + "@maven//:org_scala_lang_modules_scala_java8_compat_2_13", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_scala_lang_scala_library", "@maven//:org_scala_lang_scala_reflect", "@maven//:org_springframework_security_spring_security_core", @@ -145,7 +144,7 @@ scala_library( runtime_deps = [ "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", ], deps = [ @@ -163,27 +162,28 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/store", "//webapi/src/main/scala/org/knora/webapi/util", # Logging - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:org_slf4j_slf4j_api", # Test Libs - "@maven//:com_typesafe_akka_akka_testkit_2_12", - "@maven//:com_typesafe_akka_akka_http_testkit_2_12", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:com_typesafe_akka_akka_testkit_2_13", + "@maven//:com_typesafe_akka_akka_http_testkit_2_13", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", "@maven//:com_typesafe_config", - "@maven//:io_spray_spray_json_2_12", - "@maven//:org_scalactic_scalactic_2_12", - "@maven//:org_scalatest_scalatest_core_2_12", - "@maven//:org_scalatest_scalatest_wordspec_2_12", - "@maven//:org_scalatest_scalatest_matchers_core_2_12", - "@maven//:org_scalatest_scalatest_shouldmatchers_2_12", + "@maven//:io_spray_spray_json_2_13", + "@maven//:org_scalactic_scalactic_2_13", + "@maven//:org_scalatest_scalatest_core_2_13", + "@maven//:org_scalatest_scalatest_wordspec_2_13", + "@maven//:org_scalatest_scalatest_matchers_core_2_13", + "@maven//:org_scalatest_scalatest_shouldmatchers_2_13", "@maven//:org_scalatest_scalatest_compatible", "@maven//:org_testcontainers_testcontainers", "@maven//:junit_junit", "@maven//:org_apache_commons_commons_pool2", "@maven//:redis_clients_jedis", + "@maven//:org_bouncycastle_bcprov_jdk15on", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/BUILD.bazel index 32be43bf92..49dfb676f3 100644 --- a/webapi/src/main/scala/org/knora/webapi/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/BUILD.bazel @@ -8,8 +8,8 @@ scala_library( srcs = glob(["*.scala"]), unused_dependency_checker_mode = "warn", deps = [ - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/app/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/app/BUILD.bazel index eaeb4dbcd3..4b110e3dfd 100644 --- a/webapi/src/main/scala/org/knora/webapi/app/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/app/BUILD.bazel @@ -20,18 +20,18 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/settings", "//webapi/src/main/scala/org/knora/webapi/store", "//webapi/src/main/scala/org/knora/webapi/util/cache", - "@maven//:ch_megard_akka_http_cors_2_12", - "@maven//:com_github_swagger_akka_http_swagger_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_parsing_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:ch_megard_akka_http_cors_2_13", + "@maven//:com_github_swagger_akka_http_swagger_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_parsing_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", "@maven//:com_typesafe_config", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", - "@maven//:io_kamon_kamon_core_2_12", - "@maven//:io_spray_spray_json_2_12", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", + "@maven//:io_kamon_kamon_core_2_13", + "@maven//:io_spray_spray_json_2_13", "@maven//:org_slf4j_slf4j_api", "@maven//:redis_clients_jedis", ], @@ -53,9 +53,9 @@ scala_binary( ":app", "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_glassfish_jakarta_json", - "@maven//:org_scala_lang_modules_scala_java8_compat_2_12", + "@maven//:org_scala_lang_modules_scala_java8_compat_2_13", "@maven//:org_slf4j_log4j_over_slf4j", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/contributors/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/contributors/BUILD.bazel index 1a957672dd..5a1b3c4649 100644 --- a/webapi/src/main/scala/org/knora/webapi/contributors/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/contributors/BUILD.bazel @@ -7,7 +7,7 @@ scala_library( srcs = glob(["**/*.scala"]), unused_dependency_checker_mode = "warn", runtime_deps = [ - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", @@ -16,10 +16,10 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/exceptions", "//webapi/src/main/scala/org/knora/webapi/messages", "//webapi/src/main/scala/org/knora/webapi/util", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_play_twirl_api_2_12", - "@maven//:io_spray_spray_json_2_12", - "@maven//:org_rogach_scallop_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_play_twirl_api_2_13", + "@maven//:io_spray_spray_json_2_13", + "@maven//:org_rogach_scallop_2_13", "@maven//:org_scala_lang_scala_library", "@maven//:org_scala_lang_scala_reflect", ], @@ -29,7 +29,7 @@ scala_binary( name = "GenerateContributorsFile", main_class = "org.knora.webapi.util.GenerateContributorsFile", runtime_deps = [ - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", @@ -38,7 +38,7 @@ scala_binary( ":contributors", "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/core/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/core/BUILD.bazel index de9106ac5c..34acc49422 100644 --- a/webapi/src/main/scala/org/knora/webapi/core/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/core/BUILD.bazel @@ -8,7 +8,7 @@ scala_library( unused_dependency_checker_mode = "warn", deps = [ "//webapi/src/main/scala/org/knora/webapi/settings", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/exceptions/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/exceptions/BUILD.bazel index 7f5b4147f9..925aaf78c1 100644 --- a/webapi/src/main/scala/org/knora/webapi/exceptions/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/exceptions/BUILD.bazel @@ -7,7 +7,7 @@ scala_library( srcs = glob(["*.scala"]), unused_dependency_checker_mode = "warn", deps = [ - "@maven//:com_typesafe_akka_akka_actor_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", "@maven//:org_apache_commons_commons_lang3", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/feature/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/feature/BUILD.bazel index f3f8ad4b80..201e4f228e 100644 --- a/webapi/src/main/scala/org/knora/webapi/feature/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/feature/BUILD.bazel @@ -10,8 +10,8 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi", "//webapi/src/main/scala/org/knora/webapi/exceptions", "//webapi/src/main/scala/org/knora/webapi/settings", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/http/directives/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/http/directives/BUILD.bazel index f67438013a..26a1dba755 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/directives/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/http/directives/BUILD.bazel @@ -10,9 +10,9 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi", "//webapi/src/main/scala/org/knora/webapi/http/handler", "//webapi/src/main/scala/org/knora/webapi/settings", - "@maven//:ch_megard_akka_http_cors_2_12", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:ch_megard_akka_http_cors_2_13", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/http/handler/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/http/handler/BUILD.bazel index 6635853450..724c3233d6 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/handler/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/http/handler/BUILD.bazel @@ -12,13 +12,13 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/http/status", "//webapi/src/main/scala/org/knora/webapi/messages", "//webapi/src/main/scala/org/knora/webapi/settings", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", - "@maven//:io_spray_spray_json_2_12", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", + "@maven//:io_spray_spray_json_2_13", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_slf4j_slf4j_api", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/http/status/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/http/status/BUILD.bazel index aa5b05a23f..f6c57e7881 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/status/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/http/status/BUILD.bazel @@ -8,7 +8,7 @@ scala_library( unused_dependency_checker_mode = "warn", deps = [ "//webapi/src/main/scala/org/knora/webapi/exceptions", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/http/version/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/http/version/BUILD.bazel index 0311dfdd78..68865b896a 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/version/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/http/version/BUILD.bazel @@ -8,8 +8,8 @@ scala_library( unused_dependency_checker_mode = "warn", deps = [ "//webapi/src/main/scala/org/knora/webapi/http/version/versioninfo", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/instrumentation/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/instrumentation/BUILD.bazel index 07a37da840..37dcc1251d 100644 --- a/webapi/src/main/scala/org/knora/webapi/instrumentation/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/instrumentation/BUILD.bazel @@ -7,14 +7,14 @@ scala_library( srcs = glob(["*.scala"]), unused_dependency_checker_mode = "warn", deps = [ - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:org_slf4j_slf4j_api", "@maven//:org_scala_lang_scala_library", "@maven//:org_scala_lang_scala_reflect", - "@maven//:io_kamon_kamon_core_2_12", - "@maven//:io_kamon_kamon_instrumentation_common_2_12", - # "@maven//:io_kamon_kamon_logback_2_12", - # "@maven//:io_kamon_kamon_prometheus_2_12", - "@maven//:io_kamon_kamon_scala_future_2_12", + "@maven//:io_kamon_kamon_core_2_13", + "@maven//:io_kamon_kamon_instrumentation_common_2_13", + # "@maven//:io_kamon_kamon_logback_2_13", + # "@maven//:io_kamon_kamon_prometheus_2_13", + "@maven//:io_kamon_kamon_scala_future_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/instrumentation/InstrumentationSupport.scala b/webapi/src/main/scala/org/knora/webapi/instrumentation/InstrumentationSupport.scala index 338392782b..f5a95c152e 100644 --- a/webapi/src/main/scala/org/knora/webapi/instrumentation/InstrumentationSupport.scala +++ b/webapi/src/main/scala/org/knora/webapi/instrumentation/InstrumentationSupport.scala @@ -20,7 +20,7 @@ package org.knora.webapi.instrumentation import com.typesafe.scalalogging.Logger -import kamon.instrumentation.futures.scala.ScalaFutureInstrumentation.traced +import kamon.instrumentation.futures.scala.ScalaFutureInstrumentation.trace import org.slf4j.LoggerFactory import scala.concurrent.{ExecutionContext, Future} @@ -60,7 +60,7 @@ trait InstrumentationSupport { * have at least something. */ val start = System.currentTimeMillis() - traced(name)(future.andThen { + trace(name)(future.andThen { case Success(_) => metricsLogger.info(s"$name: {} ms", System.currentTimeMillis() - start) }) diff --git a/webapi/src/main/scala/org/knora/webapi/messages/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/messages/BUILD.bazel index 15d4298463..0f867a1c14 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/messages/BUILD.bazel @@ -18,16 +18,16 @@ scala_library( "@maven//:com_google_gwt_gwt_servlet", "@maven//:com_ibm_icu_icu4j", "@maven//:com_sksamuel_diff_diff", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", - "@maven//:com_typesafe_play_twirl_api_2_12", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", + "@maven//:com_typesafe_play_twirl_api_2_13", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:commons_io_commons_io", "@maven//:commons_validator_commons_validator", - "@maven//:io_spray_spray_json_2_12", + "@maven//:io_spray_spray_json_2_13", "@maven//:javax_json_javax_json_api", "@maven//:net_sf_saxon_Saxon_HE", "@maven//:org_apache_commons_commons_lang3", @@ -39,11 +39,11 @@ scala_library( "@maven//:org_eclipse_rdf4j_rdf4j_sail_memory", "@maven//:org_eclipse_rdf4j_rdf4j_shacl", "@maven//:org_jodd_jodd", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_scala_lang_scala_library", "@maven//:org_scala_lang_scala_reflect", "@maven//:org_slf4j_slf4j_api", "@maven//:org_springframework_security_spring_security_core", - "@maven//:org_scala_graph_graph_core_2_12", + "@maven//:org_scala_graph_graph_core_2_13", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/messages/StringFormatter.scala b/webapi/src/main/scala/org/knora/webapi/messages/StringFormatter.scala index badebc9429..2b51c8ddac 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/StringFormatter.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/StringFormatter.scala @@ -38,6 +38,7 @@ import org.apache.commons.validator.routines.UrlValidator import org.knora.webapi._ import org.knora.webapi.exceptions._ import org.knora.webapi.messages.IriConversions._ +import org.knora.webapi.messages.OntologyConstants.SalsahGui import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.store.triplestoremessages.{ SparqlAskRequest, @@ -49,7 +50,6 @@ import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoV1 import org.knora.webapi.messages.v2.responder.KnoraContentV2 import org.knora.webapi.messages.v2.responder.standoffmessages._ import org.knora.webapi.settings.KnoraSettingsImpl -import org.knora.webapi.util.JavaUtil.Optional import org.knora.webapi.util.{Base64UrlCheckDigit, JavaUtil} import spray.json._ @@ -1851,14 +1851,11 @@ class StringFormatter private (val maybeSettings: Option[KnoraSettingsImpl] = No */ def toSalsahGuiAttributeDefinition(s: String, errorFun: => Nothing): SalsahGuiAttributeDefinition = { s match { - case SalsahGuiAttributeDefinitionRegex(attributeName, - Optional(maybeRequired), - allowedTypeStr, - _, - Optional(maybeEnumeratedValuesStr)) => - val allowedType = OntologyConstants.SalsahGui.SalsahGuiAttributeType.lookup(allowedTypeStr) - - val enumeratedValues: Set[String] = maybeEnumeratedValuesStr match { + case SalsahGuiAttributeDefinitionRegex(attributeName, required, allowedTypeStr, _, enumeratedValuesStr) => + val allowedType: SalsahGui.SalsahGuiAttributeType.Value = + OntologyConstants.SalsahGui.SalsahGuiAttributeType.lookup(allowedTypeStr) + + val enumeratedValues: Set[String] = Option(enumeratedValuesStr) match { case Some(enumeratedValuesStr) => if (allowedType != OntologyConstants.SalsahGui.SalsahGuiAttributeType.Str) { errorFun @@ -1871,13 +1868,14 @@ class StringFormatter private (val maybeSettings: Option[KnoraSettingsImpl] = No SalsahGuiAttributeDefinition( attributeName = attributeName, - isRequired = maybeRequired.nonEmpty, + isRequired = Option(required).nonEmpty, allowedType = allowedType, enumeratedValues = enumeratedValues, unparsedString = s ) - case _ => errorFun + case _ => + errorFun } } @@ -1972,14 +1970,14 @@ class StringFormatter private (val maybeSettings: Option[KnoraSettingsImpl] = No */ def arkTimestampToInstant(timestampStr: String, errorFun: => Nothing): Instant = { timestampStr match { - case ArkTimestampRegex(year, month, day, hour, minute, second, Optional(maybeFraction)) => - val nanoOfSecond: Int = maybeFraction match { + case ArkTimestampRegex(year, month, day, hour, minute, second, fraction) => + val nanoOfSecond: Int = Option(fraction) match { case None => 0 - case Some(fraction) => + case Some(definedFraction) => // Pad the nano-of-second with trailing zeroes so it has 9 digits, then convert it // to an integer. - fraction.padTo(9, '0').toInt + definedFraction.padTo(9, '0').toInt } try { @@ -2326,11 +2324,11 @@ class StringFormatter private (val maybeSettings: Option[KnoraSettingsImpl] = No */ def xmlImportNamespaceToInternalOntologyIriV1(namespace: String, errorFun: => Nothing): SmartIri = { namespace match { - case ProjectSpecificXmlImportNamespaceRegex(Optional(maybeShared), _, Optional(maybeProjectCode), ontologyName) + case ProjectSpecificXmlImportNamespaceRegex(shared, _, projectCode, ontologyName) if !isBuiltInOntologyName(ontologyName) => - val isShared = maybeShared.nonEmpty + val isShared = Option(shared).nonEmpty - val projectCode = maybeProjectCode match { + val definedProjectCode = Option(projectCode) match { case Some(code) => code case None => if (isShared) DefaultSharedOntologiesProjectCode else errorFun } @@ -2338,7 +2336,7 @@ class StringFormatter private (val maybeSettings: Option[KnoraSettingsImpl] = No makeProjectSpecificInternalOntologyIri( internalOntologyName = externalToInternalOntologyName(ontologyName), isShared = isShared, - projectCode = projectCode + projectCode = definedProjectCode ) case _ => errorFun @@ -2372,15 +2370,16 @@ class StringFormatter private (val maybeSettings: Option[KnoraSettingsImpl] = No */ def toPropertyIriFromOtherOntologyInXmlImport(prefixLabelAndLocalName: String): Option[IRI] = { prefixLabelAndLocalName match { - case PropertyFromOtherOntologyInXmlImportRegex(_, Optional(maybeProjectID), prefixLabel, localName) => - maybeProjectID match { - case Some(projectID) => + case PropertyFromOtherOntologyInXmlImportRegex(_, projectID, prefixLabel, localName) => + Option(projectID) match { + case Some(definedProjectID) => // Is this ia shared ontology? // TODO: when multiple shared project ontologies are supported, this will need to be done differently. - if (projectID == DefaultSharedOntologiesProjectCode) { + if (definedProjectID == DefaultSharedOntologiesProjectCode) { Some(s"${OntologyConstants.KnoraInternal.InternalOntologyStart}/shared/$prefixLabel#$localName") } else { - Some(s"${OntologyConstants.KnoraInternal.InternalOntologyStart}/$projectID/$prefixLabel#$localName") + Some( + s"${OntologyConstants.KnoraInternal.InternalOntologyStart}/$definedProjectID/$prefixLabel#$localName") } case None => diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/ErrorHandlingMap.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/ErrorHandlingMap.scala index 5503f5207a..a2292c1472 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/ErrorHandlingMap.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/ErrorHandlingMap.scala @@ -21,8 +21,6 @@ package org.knora.webapi.messages.util import org.knora.webapi.exceptions.InconsistentRepositoryDataException -import scala.collection.{GenTraversableOnce, Iterator, MapLike} - /** * A [[Map]] that facilitates error-handling, by wrapping an ordinary [[Map]] and overriding the `default` * method to provide custom behaviour (by default, throwing an [[InconsistentRepositoryDataException]]) if a required @@ -41,8 +39,7 @@ class ErrorHandlingMap[A, B](toWrap: Map[A, B], private val errorFun: String => B = { errorMessage: String => throw InconsistentRepositoryDataException(errorMessage) }) - extends Map[A, B] - with MapLike[A, B, ErrorHandlingMap[A, B]] { + extends Map[A, B] { // As an optimization, if the Map we're supposed to wrap is another ErrorHandlingMap, wrap its underlying wrapped Map instead. private val wrapped: Map[A, B] = toWrap match { @@ -70,26 +67,19 @@ class ErrorHandlingMap[A, B](toWrap: Map[A, B], wrapped.size } - override def +[B1 >: B](kv: (A, B1)): ErrorHandlingMap[A, B1] = { - new ErrorHandlingMap(wrapped + kv, errorTemplateFun, errorFun) - } - - override def -(key: A): ErrorHandlingMap[A, B] = { - new ErrorHandlingMap(wrapped - key, errorTemplateFun, errorFun) - } - - override def ++[V1 >: B](xs: GenTraversableOnce[(A, V1)]): ErrorHandlingMap[A, V1] = { + override def ++[V1 >: B](xs: IterableOnce[(A, V1)]): ErrorHandlingMap[A, V1] = { new ErrorHandlingMap(wrapped ++ xs, errorTemplateFun, errorFun) } - override def --(xs: GenTraversableOnce[A]): ErrorHandlingMap[A, B] = { - new ErrorHandlingMap(wrapped -- xs, errorTemplateFun, errorFun) - } - /** * Called when a key is not found. * * @param key the given key value for which a binding is missing. */ override def default(key: A): B = errorFun(errorTemplateFun(key)) + + override def removed(key: A): Map[A, B] = new ErrorHandlingMap(wrapped - key, errorTemplateFun, errorFun) + + override def updated[V1 >: B](key: A, value: V1): Map[A, V1] = + new ErrorHandlingMap(wrapped + (key -> value), errorTemplateFun, errorFun) } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/FakeTriplestore.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/FakeTriplestore.scala index 109deaa9bc..1aa8ac41bd 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/FakeTriplestore.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/FakeTriplestore.scala @@ -25,7 +25,7 @@ import akka.event.LoggingAdapter import org.apache.commons.io.FileUtils import org.knora.webapi.util.FileUtil -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ /** * A fake triplestore for use in performance testing. This feature is activated in `application.conf`. diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/PermissionUtilADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/PermissionUtilADM.scala index efadcdb965..3f99d9634f 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/PermissionUtilADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/PermissionUtilADM.scala @@ -481,7 +481,7 @@ object PermissionUtilADM extends LazyLogging { permissionType: PermissionType): Set[PermissionADM] = { maybePermissionListStr match { case Some(permissionListStr) => { - val cleanedPermissionListStr = permissionListStr replaceAll ("[<>]", "") + val cleanedPermissionListStr = permissionListStr.replaceAll("[<>]", "") val permissions: Seq[String] = cleanedPermissionListStr.split(OntologyConstants.KnoraBase.PermissionListDelimiter) logger.debug(s"PermissionUtil.parsePermissionsWithType - split permissions: $permissions") diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/JsonLDUtil.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/JsonLDUtil.scala index 4406178511..a10fc02d9b 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/JsonLDUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/JsonLDUtil.scala @@ -34,7 +34,7 @@ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.{OntologyConstants, SmartIri, StringFormatter} -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ import scala.util.control.Exception._ /* diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaModel.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaModel.scala index 95a4401c4c..5fa99dc7a6 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaModel.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaModel.scala @@ -27,7 +27,7 @@ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.ErrorHandlingMap import org.knora.webapi.messages.util.rdf._ -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ import scala.collection.mutable.ArrayBuffer sealed trait JenaNode extends RdfNode { @@ -450,7 +450,7 @@ class JenaRepository(private val dataset: jena.query.Dataset) extends RdfReposit // Convert the query result to a SparqlSelectResponse. - val header = SparqlSelectResultHeader(resultSet.getResultVars.asScala) + val header = SparqlSelectResultHeader(resultSet.getResultVars.asScala.toSeq) val rowBuffer = ArrayBuffer.empty[VariableResultsRow] while (resultSet.hasNext) { @@ -481,7 +481,7 @@ class JenaRepository(private val dataset: jena.query.Dataset) extends RdfReposit SparqlSelectResult( head = header, - results = SparqlSelectResultBody(bindings = rowBuffer) + results = SparqlSelectResultBody(bindings = rowBuffer.toSeq) ) } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/rdf4jimpl/RDF4JModel.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/rdf4jimpl/RDF4JModel.scala index 1cb9d0d3cb..208e654fbb 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/rdf4jimpl/RDF4JModel.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/rdf4jimpl/RDF4JModel.scala @@ -27,7 +27,7 @@ import org.knora.webapi.messages.util.ErrorHandlingMap import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.util.JavaUtil._ -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ import scala.collection.mutable.ArrayBuffer sealed trait RDF4JNode extends RdfNode { @@ -398,7 +398,7 @@ class RDF4JRepository(model: rdf4j.model.Model) extends RdfRepository { // Convert the query result to a SparqlSelectResponse. - val header = SparqlSelectResultHeader(tupleQueryResult.getBindingNames.asScala) + val header = SparqlSelectResultHeader(tupleQueryResult.getBindingNames.asScala.toSeq) val rowBuffer = ArrayBuffer.empty[VariableResultsRow] while (tupleQueryResult.hasNext) { @@ -418,7 +418,7 @@ class RDF4JRepository(model: rdf4j.model.Model) extends RdfRepository { SparqlSelectResult( head = header, - results = SparqlSelectResultBody(bindings = rowBuffer) + results = SparqlSelectResultBody(bindings = rowBuffer.toSeq) ) } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParser.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParser.scala index 25d75cb888..7212d656b9 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParser.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParser.scala @@ -29,7 +29,7 @@ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.util.search._ import org.knora.webapi.messages.{OntologyConstants, SmartIri, StringFormatter} -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ /** * Parses a Gravsearch query. The syntax that is accepted is that of a SPARQL CONSTRUCT query, with some restrictions: @@ -159,7 +159,7 @@ object GravsearchParser { whereClause = WhereClause(patterns = getWherePatterns, positiveEntities = positiveEntities.toSet, querySchema = Some(querySchema)), - orderBy = orderBy, + orderBy = orderBy.toSeq, offset = offset, querySchema = Some(querySchema) ) @@ -169,7 +169,7 @@ object GravsearchParser { * Returns the WHERE patterns found in the query. */ private def getWherePatterns: Seq[QueryPattern] = { - wherePatterns + wherePatterns.toSeq } private def unsupported(node: algebra.QueryModelNode) { @@ -678,10 +678,13 @@ object GravsearchParser { case functionCall: algebra.FunctionCall => val functionIri = IriRef(functionCall.getURI.toSmartIri) - val args: Seq[Entity] = functionCall.getArgs.asScala.map(arg => makeFilterExpression(arg)).map { - case entity: Entity => entity - case other => throw GravsearchException(s"Unsupported argument in function: $other") - } + val args: Seq[Entity] = functionCall.getArgs.asScala + .map(arg => makeFilterExpression(arg)) + .map { + case entity: Entity => entity + case other => throw GravsearchException(s"Unsupported argument in function: $other") + } + .toSeq FunctionCallExpression( functionIri = functionIri, diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/IntermediateTypeInspectionResult.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/IntermediateTypeInspectionResult.scala index c73e907763..eedcfe4c51 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/IntermediateTypeInspectionResult.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/IntermediateTypeInspectionResult.scala @@ -102,7 +102,7 @@ case class IntermediateTypeInspectionResult( */ def untypedEntities: Set[TypeableEntity] = { entities.collect { - case (entity, entityTypes) if entityTypes.isEmpty => entity + case (entity: TypeableEntity, entityTypes: Set[GravsearchEntityTypeInfo]) if entityTypes.isEmpty => entity }.toSet } @@ -155,14 +155,16 @@ object IntermediateTypeInspectionResult { // Find the IRIs that represent resource metadata properties, and get their object types. val resourceMetadataPropertyTypesUsed: Map[TypeableIri, PropertyTypeInfo] = - OntologyConstants.ResourceMetadataPropertyAxioms.filterKeys(irisUsed).map { - case (propertyIri, objectTypeIri) => { - val isValue = GravsearchTypeInspectionUtil.GravsearchValueTypeIris.contains(objectTypeIri) - TypeableIri(propertyIri.toSmartIri) -> PropertyTypeInfo(objectTypeIri = objectTypeIri.toSmartIri, - objectIsResourceType = !isValue, - objectIsValueType = isValue) + OntologyConstants.ResourceMetadataPropertyAxioms.view + .filterKeys(irisUsed) + .toMap + .map { + case (propertyIri: IRI, objectTypeIri: IRI) => + val isValue: Boolean = GravsearchTypeInspectionUtil.GravsearchValueTypeIris.contains(objectTypeIri) + TypeableIri(propertyIri.toSmartIri) -> PropertyTypeInfo(objectTypeIri = objectTypeIri.toSmartIri, + objectIsResourceType = !isValue, + objectIsValueType = isValue) } - } // Add those types to the IntermediateTypeInspectionResult. resourceMetadataPropertyTypesUsed.foldLeft(emptyResult) { diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtil.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtil.scala index 936173348f..8d8b6e200b 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtil.scala @@ -444,7 +444,7 @@ class XMLToStandoffUtil(xmlNamespaces: Map[String, IRI] = Map.empty[IRI, String] val saxParser = saxParserFactory.newSAXParser() val nodes: Elem = try { - XML.withSAXParser(saxParser).loadString(xmlStrWithSeparator.toString) + XML.withSAXParser(saxParser).loadString(xmlStrWithSeparator) } catch { case e: Exception => throw StandoffInternalException(s"XML processing error: ${e.getMessage}", e, log) } @@ -457,7 +457,8 @@ class XMLToStandoffUtil(xmlNamespaces: Map[String, IRI] = Map.empty[IRI, String] if (finishedConversionState.clixStartMilestones.nonEmpty) { val missingEndTags = finishedConversionState.clixStartMilestones .map { - case (startTagID, startTag) => s"<${startTag.tagName} $XmlClixStartIdAttrName=${'"'}$startTagID${'"'}>" + case (startTagID: String, startTag: ClixMilestoneTag) => + s"<${startTag.tagName} $XmlClixStartIdAttrName=${'"'}$startTagID${'"'}>" } .mkString(", ") @@ -571,7 +572,7 @@ class XMLToStandoffUtil(xmlNamespaces: Map[String, IRI] = Map.empty[IRI, String] * @return the differences between the two texts. */ def makeStandoffDiffs(baseText: String, derivedText: String): Seq[StandoffDiff] = { - import scala.collection.JavaConverters._ + import scala.jdk.CollectionConverters._ case class DiffConversionState(standoffDiffs: Vector[StandoffDiff] = Vector.empty[StandoffDiff], basePos: Int = 0, @@ -579,7 +580,7 @@ class XMLToStandoffUtil(xmlNamespaces: Map[String, IRI] = Map.empty[IRI, String] val diffList = diffMatchPatch.diff_main(baseText, derivedText) diffMatchPatch.diff_cleanupSemantic(diffList) - val diffs: Seq[Diff] = diffList.asScala + val diffs: Seq[Diff] = diffList.asScala.toSeq val conversionResult = diffs.foldLeft(DiffConversionState()) { case (conversionState, diff) => @@ -874,7 +875,7 @@ class XMLToStandoffUtil(xmlNamespaces: Map[String, IRI] = Map.empty[IRI, String] currentPos = acc.currentPos + textData.length ) - case (acc, other) => + case (_, other) => throw new Exception(s"Got unexpected XML node class ${other.getClass.getName}") } } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/resourcemessages/ResourceMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/resourcemessages/ResourceMessagesV1.scala index 7bc3c38bf0..3ba3cb38a9 100755 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/resourcemessages/ResourceMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/resourcemessages/ResourceMessagesV1.scala @@ -39,8 +39,6 @@ import org.knora.webapi.messages.v1.responder.{KnoraRequestV1, KnoraResponseV1} import org.knora.webapi.messages.v2.responder.UpdateResultInProject import spray.json._ -import scala.collection.breakOut - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests @@ -808,7 +806,7 @@ object SalsahGuiConversions { /** * A [[Map]] of Knora IRIs to SALSAH GUI element names. */ - private val iris2SalsahGuiElements = Map( + private val iris2SalsahGuiElements: Map[IRI, IRI] = Map( OntologyConstants.SalsahGui.SimpleText -> "text", OntologyConstants.SalsahGui.Textarea -> "textarea", OntologyConstants.SalsahGui.Pulldown -> "pulldown", @@ -1022,7 +1020,7 @@ object ResourceV1JsonProtocol extends SprayJsonSupport with DefaultJsonProtocol list2JsonOption("value_rights", propertyV1.value_rights, () => propertyV1.value_rights.toJson) ++ list2JsonOption("locations", propertyV1.locations, () => propertyV1.locations.toJson) (propertyV1.pid, JsObject(fields)) - }(breakOut) + }.toMap JsObject(properties) } @@ -1059,7 +1057,7 @@ object ResourceV1JsonProtocol extends SprayJsonSupport with DefaultJsonProtocol // Don't generate JSON for these lists if they're empty. list2JsonOption("values", propertyGetV1.values, () => propertyGetV1.values.toJson) (propertyGetV1.pid, JsObject(fields)) - }(breakOut) + }.toMap JsObject(properties) } @@ -1145,7 +1143,7 @@ object ResourceV1JsonProtocol extends SprayJsonSupport with DefaultJsonProtocol // Don't generate JSON for these lists if they're empty. list2JsonOption("values", propertyGetV1.values, () => propertyGetV1.values.toJson) (propertyGetV1.pid, JsObject(fields)) - }(breakOut) + }.toMap JsObject( properties ++ Map("res_id" -> propsGetForRegionV1.res_id.toJson, diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/ontologymessages/OntologyMessagesV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/ontologymessages/OntologyMessagesV2.scala index 0ce82a9c5c..b71654847a 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/ontologymessages/OntologyMessagesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/ontologymessages/OntologyMessagesV2.scala @@ -2930,7 +2930,7 @@ object ClassInfoContentV2 { case TestResponseParsingModeV2 => // In test response mode, we ignore predicates that wouldn't be allowed as client input. - JsonLDObject(jsonLDClassDef.value.filterKeys(AllowedJsonLDClassPredicatesInClientInput)) + JsonLDObject(jsonLDClassDef.value.view.filterKeys(AllowedJsonLDClassPredicatesInClientInput).toMap) case KnoraOutputParsingModeV2 => // In Knora output parsing mode, we accept all predicates. @@ -3239,7 +3239,7 @@ object PropertyInfoContentV2 { case TestResponseParsingModeV2 => // In test response mode, we ignore predicates that wouldn't be allowed as client input. - JsonLDObject(jsonLDPropertyDef.value.filterKeys(AllowedJsonLDPropertyPredicatesInClientInput)) + JsonLDObject(jsonLDPropertyDef.value.view.filterKeys(AllowedJsonLDPropertyPredicatesInClientInput).toMap) case KnoraOutputParsingModeV2 => // In Knora output parsing mode, we accept all predicates. diff --git a/webapi/src/main/scala/org/knora/webapi/responders/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/responders/BUILD.bazel index 58527bd5af..4f0dc21241 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/responders/BUILD.bazel @@ -17,15 +17,15 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/settings", "//webapi/src/main/scala/org/knora/webapi/util", "//webapi/src/main/scala/org/knora/webapi/util/cache", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", - "@maven//:com_typesafe_play_twirl_api_2_12", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", - "@maven//:io_spray_spray_json_2_12", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", + "@maven//:com_typesafe_play_twirl_api_2_13", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", + "@maven//:io_spray_spray_json_2_13", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_slf4j_slf4j_api", "@maven//:org_springframework_security_spring_security_core", ], diff --git a/webapi/src/main/scala/org/knora/webapi/responders/admin/ListsResponderADM.scala b/webapi/src/main/scala/org/knora/webapi/responders/admin/ListsResponderADM.scala index 93a1a0ef47..61bf6c4be3 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/admin/ListsResponderADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/admin/ListsResponderADM.scala @@ -39,7 +39,6 @@ import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.responders.{IriLocker, Responder} import scala.annotation.tailrec -import scala.collection.breakOut import scala.concurrent.Future /** @@ -784,7 +783,7 @@ class ListsResponderADM(responderData: ResponderData) extends Responder(responde // A Map of node IRIs to query result rows. nodeMap: Map[IRI, Map[String, String]] = nodePathResponse.results.bindings.map { row => row.rowMap("node") -> row.rowMap - }(breakOut) + }.toMap // A Map of child node IRIs to parent node IRIs. parentMap: Map[IRI, IRI] = nodePathResponse.results.bindings.foldLeft(Map.empty[IRI, IRI]) { diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/ListsResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/ListsResponderV1.scala index 8614164bb6..b4a8169ed8 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/ListsResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/ListsResponderV1.scala @@ -31,7 +31,6 @@ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage import scala.annotation.tailrec -import scala.collection.breakOut import scala.concurrent.Future /** @@ -265,7 +264,7 @@ class ListsResponderV1(responderData: ResponderData) extends Responder(responder // A Map of node IRIs to query result rows. nodeMap: Map[IRI, Map[String, String]] = nodePathResponse.results.bindings.map { row => row.rowMap("node") -> row.rowMap - }(breakOut) + }.toMap // A Map of child node IRIs to parent node IRIs. parentMap: Map[IRI, IRI] = nodePathResponse.results.bindings.foldLeft(Map.empty[IRI, IRI]) { diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/ResourcesResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/ResourcesResponderV1.scala index 27738ca4f7..748f4b62c2 100755 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/ResourcesResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/ResourcesResponderV1.scala @@ -63,6 +63,7 @@ import org.knora.webapi.messages.{OntologyConstants, SmartIri, StringFormatter} import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.responders.v2.ResourceUtilV2 import org.knora.webapi.responders.{IriLocker, Responder} +import org.knora.webapi.util.ActorUtil import org.knora.webapi.util.ApacheLuceneSupport.MatchStringWhileTyping import scala.collection.immutable @@ -1571,19 +1572,19 @@ class ResourcesResponderV1(responderData: ResponderData) extends Responder(respo (resourceClassIri, propertyPermissionsFuture) } - defaultPropertyAccessPermissions: immutable.Iterable[(IRI, Map[IRI, String])] <- Future.traverse( - defaultPropertyAccessPermissionsFutures) { - case (resourceClassIri: IRI, propertyPermissionsFuture: Future[Map[IRI, String]]) => - for { - propertyPermissions <- propertyPermissionsFuture - } yield + defaultPropertyAccessPermissionsMapContents: Map[IRI, Map[IRI, String]] <- ActorUtil.sequenceFuturesInMap( + defaultPropertyAccessPermissionsFutures) + + defaultPropertyAccessPermissionsMapToWrap: Map[IRI, Map[IRI, String]] = defaultPropertyAccessPermissionsMapContents + .map { + case (resourceClassIri: IRI, propertyPermissions: Map[IRI, String]) => resourceClassIri -> new ErrorHandlingMap(propertyPermissions, { key: IRI => s"No default access permissions found for property $key in resource class $resourceClassIri" }) - } + } defaultPropertyAccessPermissionsMap: Map[IRI, Map[IRI, String]] = new ErrorHandlingMap( - defaultPropertyAccessPermissions.toMap, { key: IRI => + defaultPropertyAccessPermissionsMapToWrap.toMap, { key: IRI => s"No default property access permissions found for resource class $key" }) diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/ValuesResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/ValuesResponderV1.scala index d046151bf2..d5492cfa14 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/ValuesResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/ValuesResponderV1.scala @@ -58,7 +58,6 @@ import org.knora.webapi.responders.{IriLocker, Responder} import org.knora.webapi.util._ import scala.annotation.tailrec -import scala.collection.breakOut import scala.concurrent.Future /** @@ -397,7 +396,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde // Finally, replace each Iterable[IRI] with its size. That's the number of text values containing // standoff references to that IRI. - targetIris: Map[IRI, Int] = allResourceReferencesGrouped.mapValues(_.size) + targetIris: Map[IRI, Int] = allResourceReferencesGrouped.view.mapValues(_.size).toMap // If we're creating values as part of a bulk import, some standoff links could point to resources // that already exist in the triplestore, and others could point to resources that are being created @@ -1424,7 +1423,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde versionMap: Map[IRI, Map[String, String]] = rows.map { row => val valueIri = row.rowMap("value") valueIri -> row.rowMap - }(breakOut) + }.toMap // Order the result rows from most recent to oldest. versionRowsVector = versionMap2Vector(versionMap, diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/OntologyResponderV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/OntologyResponderV2.scala index 38b942b45f..72f7d697c6 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/OntologyResponderV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/OntologyResponderV2.scala @@ -967,7 +967,8 @@ class OntologyResponderV2(responderData: ResponderData) extends Responder(respon checkSubjectClassConstraintsViaCardinalities( internalClassDef = classDef, allBaseClassIris = allBaseClasses.toSet, - allClassCardinalityKnoraPropertyDefs = allPropertyDefs.filterKeys(allOwlCardinalitiesForClass.keySet), + allClassCardinalityKnoraPropertyDefs = + allPropertyDefs.view.filterKeys(allOwlCardinalitiesForClass.keySet).toMap, errorSchema = InternalSchema, errorFun = { msg: String => throw InconsistentRepositoryDataException(msg) @@ -1417,12 +1418,14 @@ class OntologyResponderV2(responderData: ResponderData) extends Responder(respon // See if any of the requested entities are hard-coded for knora-api. - hardCodedExternalClassesAvailable: Map[SmartIri, ReadClassInfoV2] = KnoraBaseToApiV2SimpleTransformationRules.externalClassesToAdd - .filterKeys(classIris) ++ - KnoraBaseToApiV2ComplexTransformationRules.externalClassesToAdd.filterKeys(classIris) + hardCodedExternalClassesAvailable: Map[SmartIri, ReadClassInfoV2] = KnoraBaseToApiV2SimpleTransformationRules.externalClassesToAdd.view + .filterKeys(classIris) + .toMap ++ + KnoraBaseToApiV2ComplexTransformationRules.externalClassesToAdd.view.filterKeys(classIris).toMap - hardCodedExternalPropertiesAvailable: Map[SmartIri, ReadPropertyInfoV2] = KnoraBaseToApiV2SimpleTransformationRules.externalPropertiesToAdd - .filterKeys(propertyIris) ++ + hardCodedExternalPropertiesAvailable: Map[SmartIri, ReadPropertyInfoV2] = KnoraBaseToApiV2SimpleTransformationRules.externalPropertiesToAdd.view + .filterKeys(propertyIris) + .toMap ++ KnoraBaseToApiV2ComplexTransformationRules.externalPropertiesToAdd.filterKeys(propertyIris) // Convert the remaining external entity IRIs to internal ones. @@ -1439,19 +1442,21 @@ class OntologyResponderV2(responderData: ResponderData) extends Responder(respon // Get the entities that are available in the ontology cache. - classOntologiesForCache: Iterable[ReadOntologyV2] = cacheData.ontologies + classOntologiesForCache: Iterable[ReadOntologyV2] = cacheData.ontologies.view .filterKeys(classIrisForCache.map(_.getOntologyFromEntity)) + .toMap .values - propertyOntologiesForCache: Iterable[ReadOntologyV2] = cacheData.ontologies + propertyOntologiesForCache: Iterable[ReadOntologyV2] = cacheData.ontologies.view .filterKeys(propertyIrisForCache.map(_.getOntologyFromEntity)) + .toMap .values classesAvailableFromCache: Map[SmartIri, ReadClassInfoV2] = classOntologiesForCache.flatMap { ontology => - ontology.classes.filterKeys(classIrisForCache) + ontology.classes.view.filterKeys(classIrisForCache).toMap }.toMap propertiesAvailableFromCache: Map[SmartIri, ReadPropertyInfoV2] = propertyOntologiesForCache.flatMap { ontology => - ontology.properties.filterKeys(propertyIrisForCache) + ontology.properties.view.filterKeys(propertyIrisForCache).toMap }.toMap allClassesAvailable: Map[SmartIri, ReadClassInfoV2] = classesAvailableFromCache ++ hardCodedExternalClassesAvailable diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourcesResponderV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourcesResponderV2.scala index 0cc8ebfbf7..7f2e835903 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourcesResponderV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourcesResponderV2.scala @@ -714,8 +714,9 @@ class ResourcesResponderV2(responderData: ResponderData) extends ResponderWithSt // Check that the resource class has a suitable cardinality for each submitted value. resourceClassInfo <- Future(entityInfo.classInfoMap(internalCreateResource.resourceClassIri)) - knoraPropertyCardinalities: Map[SmartIri, Cardinality.KnoraCardinalityInfo] = resourceClassInfo.allCardinalities + knoraPropertyCardinalities: Map[SmartIri, Cardinality.KnoraCardinalityInfo] = resourceClassInfo.allCardinalities.view .filterKeys(resourceClassInfo.knoraResourceProperties) + .toMap _ = internalCreateResource.values.foreach { case (propertyIri: SmartIri, valuesForProperty: Seq[CreateValueInNewResourceV2]) => @@ -874,7 +875,9 @@ class ResourcesResponderV2(responderData: ResponderData) extends ResponderWithSt resourceIri -> resourceToCreate.resourceClassIri } .toMap + .view .filterKeys(newTargets) + .toMap for { // Get information about the existing resources that are targets of links. @@ -2403,8 +2406,9 @@ class ResourcesResponderV2(responderData: ResponderData) extends ResponderWithSt resourceIri = resourceAtTimeOfCreation.resourceIri, resourceClassIri = resourceAtTimeOfCreation.resourceClassIri, label = Some(resourceAtTimeOfCreation.label), - values = - resourceAtTimeOfCreation.values.mapValues(readValues => readValues.map(readValue => readValue.valueContent)), + values = resourceAtTimeOfCreation.values.view + .mapValues(readValues => readValues.map(readValue => readValue.valueContent)) + .toMap, projectADM = resourceAtTimeOfCreation.projectADM, permissions = Some(resourceAtTimeOfCreation.permissions), creationDate = Some(resourceAtTimeOfCreation.creationDate) diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ValuesResponderV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ValuesResponderV2.scala index 3b2c75af3d..e1cab211c1 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ValuesResponderV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ValuesResponderV2.scala @@ -787,7 +787,7 @@ class ValuesResponderV2(responderData: ResponderData) extends Responder(responde // Replace each Vector[IRI] with its size. That's the number of text values containing // standoff links to that IRI. - val initialReferenceCounts: Map[IRI, Int] = allStandoffLinkTargetsGrouped.mapValues(_.size) + val initialReferenceCounts: Map[IRI, Int] = allStandoffLinkTargetsGrouped.view.mapValues(_.size).toMap // For each standoff link target IRI, construct a SparqlTemplateLinkUpdate to create a hasStandoffLinkTo property // and one LinkValue with its initial reference count. diff --git a/webapi/src/main/scala/org/knora/webapi/routing/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/routing/BUILD.bazel index ba669433e9..0b46389554 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/routing/BUILD.bazel @@ -18,26 +18,26 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/settings", "//webapi/src/main/scala/org/knora/webapi/util", "//webapi/src/main/scala/org/knora/webapi/util/cache", - "@maven//:com_github_swagger_akka_http_swagger_akka_http_2_12", - "@maven//:com_pauldijou_jwt_core_2_12", - "@maven//:com_pauldijou_jwt_json_common_2_12", - "@maven//:com_pauldijou_jwt_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_parsing_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:com_github_swagger_akka_http_swagger_akka_http_2_13", + "@maven//:com_pauldijou_jwt_core_2_13", + "@maven//:com_pauldijou_jwt_json_common_2_13", + "@maven//:com_pauldijou_jwt_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_parsing_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", "@maven//:com_typesafe_config", - "@maven//:com_typesafe_play_twirl_api_2_12", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:commons_validator_commons_validator", - "@maven//:io_spray_spray_json_2_12", + "@maven//:io_spray_spray_json_2_13", "@maven//:io_swagger_swagger_annotations", "@maven//:io_swagger_swagger_jaxrs", "@maven//:io_swagger_swagger_models", "@maven//:javax_ws_rs_jsr311_api", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_slf4j_slf4j_api", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourcesRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourcesRouteV1.scala index 72f5f5c9d2..aeaafc51a1 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourcesRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourcesRouteV1.scala @@ -59,7 +59,7 @@ import org.knora.webapi.messages.v1.responder.resourcemessages._ import org.knora.webapi.messages.v1.responder.valuemessages._ import org.knora.webapi.messages.{OntologyConstants, SmartIri} import org.knora.webapi.routing.{Authenticator, KnoraRoute, KnoraRouteData, RouteUtilV1} -import org.knora.webapi.util.FileUtil +import org.knora.webapi.util.{ActorUtil, FileUtil} import org.w3c.dom.ls.{LSInput, LSResourceResolver} import org.xml.sax.SAXException @@ -340,19 +340,14 @@ class ResourcesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) ) // make the whole Map a Future - valuesToBeCreated: Iterable[(IRI, Seq[CreateValueV1WithComment])] <- Future.traverse( - valuesToBeCreatedWithFuture) { - case (propIri: IRI, valuesFuture: Future[Seq[CreateValueV1WithComment]]) => - for { - values <- valuesFuture - } yield propIri -> values - } + valuesToBeCreated: Map[IRI, Seq[CreateValueV1WithComment]] <- ActorUtil.sequenceFutureSeqsInMap( + valuesToBeCreatedWithFuture) } yield ResourceCreateRequestV1( resourceTypeIri = resourceTypeIri, label = label, projectIri = projectIri, - values = valuesToBeCreated.toMap, + values = valuesToBeCreated, file = file, featureFactoryConfig = featureFactoryConfig, userProfile = userADM, @@ -372,12 +367,7 @@ class ResourcesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) // make the whole Map a Future for { - valuesToBeCreated: Iterable[(IRI, Seq[CreateValueV1WithComment])] <- Future.traverse(values) { - case (propIri: IRI, valuesFuture: Future[Seq[CreateValueV1WithComment]]) => - for { - values <- valuesFuture - } yield propIri -> values - } + valuesToBeCreated: Map[IRI, Seq[CreateValueV1WithComment]] <- ActorUtil.sequenceFutureSeqsInMap(values) convertedFile <- resourceRequest.file match { case Some(filename) => @@ -405,7 +395,7 @@ class ResourcesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) label = stringFormatter.toSparqlEncodedString( resourceRequest.label, throw BadRequestException(s"The resource label is invalid: '${resourceRequest.label}'")), - values = valuesToBeCreated.toMap, + values = valuesToBeCreated, file = convertedFile, creationDate = resourceRequest.creationDate ) @@ -944,6 +934,7 @@ class ResourcesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) creationDate = creationDate ) }) + .toSeq } /** @@ -963,7 +954,7 @@ class ResourcesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) val language = node.attribute("lang").map(s => s.head.toString) knoraType.toString match { case "richtext_value" => - val maybeMappingID: Option[Seq[Node]] = node.attributes.get("mapping_id") + val maybeMappingID: Option[Seq[Node]] = node.attributes.get("mapping_id").map(_.toSeq) maybeMappingID match { case Some(mappingID) => diff --git a/webapi/src/main/scala/org/knora/webapi/settings/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/settings/BUILD.bazel index 935d3ba861..b70cdcc03f 100644 --- a/webapi/src/main/scala/org/knora/webapi/settings/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/settings/BUILD.bazel @@ -9,7 +9,7 @@ scala_library( deps = [ "//webapi/src/main/scala/org/knora/webapi/exceptions", "//webapi/src/main/scala/org/knora/webapi/util/cache", - "@maven//:com_typesafe_akka_akka_actor_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", "@maven//:com_typesafe_config", ], ) diff --git a/webapi/src/main/scala/org/knora/webapi/settings/KnoraSettings.scala b/webapi/src/main/scala/org/knora/webapi/settings/KnoraSettings.scala index 12f76b6c8f..6659b1cf81 100644 --- a/webapi/src/main/scala/org/knora/webapi/settings/KnoraSettings.scala +++ b/webapi/src/main/scala/org/knora/webapi/settings/KnoraSettings.scala @@ -29,7 +29,7 @@ import com.typesafe.config.{Config, ConfigObject, ConfigValue} import org.knora.webapi.exceptions.{FeatureToggleException, FileWriteException} import org.knora.webapi.util.cache.CacheUtil.KnoraCacheConfig -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ import scala.concurrent.duration._ import scala.util.{Failure, Success, Try} diff --git a/webapi/src/main/scala/org/knora/webapi/store/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/store/BUILD.bazel index b2e2578f05..f0a8499218 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/store/BUILD.bazel @@ -16,18 +16,18 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi/routing", "//webapi/src/main/scala/org/knora/webapi/settings", "//webapi/src/main/scala/org/knora/webapi/util", - "@maven//:com_twitter_chill_2_12", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_akka_akka_http_spray_json_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", + "@maven//:com_twitter_chill_2_13", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_akka_akka_http_spray_json_2_13", + "@maven//:com_typesafe_akka_akka_stream_2_13", "@maven//:com_typesafe_config", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:commons_cli_commons_cli", "@maven//:commons_codec_commons_codec", "@maven//:commons_io_commons_io", - "@maven//:io_spray_spray_json_2_12", + "@maven//:io_spray_spray_json_2_13", "@maven//:org_apache_commons_commons_csv", "@maven//:org_apache_commons_commons_lang3", "@maven//:org_apache_commons_commons_pool2", diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/embedded/JenaTDBActor.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/embedded/JenaTDBActor.scala index 652916fbb2..e909b55c62 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/embedded/JenaTDBActor.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/embedded/JenaTDBActor.scala @@ -48,7 +48,7 @@ import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.store.triplestore.RdfDataObjectFactory import org.knora.webapi.util.ActorUtil._ -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ import scala.concurrent.{ExecutionContextExecutor, Future} /** @@ -112,7 +112,7 @@ class JenaTDBActor extends Actor with ActorLogging { dropAllTriplestoreContent() // insert data - insertDataIntoTriplestore(rdfDataObjectList) + insertDataIntoTriplestore(rdfDataObjectList.toSeq) } this.initialized = true } @@ -205,7 +205,7 @@ class JenaTDBActor extends Actor with ActorLogging { Future.successful( SparqlSelectResult( - SparqlSelectResultHeader(resultVars.asScala), + SparqlSelectResultHeader(resultVars.asScala.toSeq), SparqlSelectResultBody(variableResultsRows) ) ) diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/http/HttpTriplestoreConnector.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/http/HttpTriplestoreConnector.scala index 9bbbfe4bbe..58ce435788 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/http/HttpTriplestoreConnector.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/http/HttpTriplestoreConnector.scala @@ -55,7 +55,7 @@ import org.knora.webapi.util.ActorUtil._ import org.knora.webapi.util.FileUtil import spray.json._ -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ import scala.collection.mutable import scala.concurrent.ExecutionContext import scala.util.{Failure, Success, Try} diff --git a/webapi/src/main/scala/org/knora/webapi/util/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/util/BUILD.bazel index 61e00fb033..637db2dffa 100644 --- a/webapi/src/main/scala/org/knora/webapi/util/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/util/BUILD.bazel @@ -10,12 +10,11 @@ scala_library( "//webapi/src/main/scala/org/knora/webapi", "//webapi/src/main/scala/org/knora/webapi/exceptions", "//webapi/src/main/scala/org/knora/webapi/settings", - "@maven//:com_jsuereth_scala_arm_2_12", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_http_core_2_12", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_akka_akka_actor_2_13", + "@maven//:com_typesafe_akka_akka_http_core_2_13", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:commons_validator_commons_validator", - "@maven//:io_spray_spray_json_2_12", + "@maven//:io_spray_spray_json_2_13", "@maven//:org_scala_lang_scala_library", "@maven//:org_scala_lang_scala_reflect", "@maven//:org_slf4j_slf4j_api", diff --git a/webapi/src/main/scala/org/knora/webapi/util/FileUtil.scala b/webapi/src/main/scala/org/knora/webapi/util/FileUtil.scala index 5b42b2cc91..32477c821d 100644 --- a/webapi/src/main/scala/org/knora/webapi/util/FileUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/util/FileUtil.scala @@ -27,9 +27,9 @@ import java.util.zip.{ZipEntry, ZipOutputStream} import com.typesafe.scalalogging.Logger import org.knora.webapi.exceptions.{FileWriteException, NotFoundException} import org.knora.webapi.settings.KnoraSettingsImpl -import resource._ import scala.io.{BufferedSource, Codec, Source} +import scala.util.{Failure, Success, Try} /** * Functions for reading and writing files. @@ -112,22 +112,25 @@ object FileUtil { * @return a byte array containing the Zip file data. */ def createZipFileBytes(contents: Map[String, Array[Byte]]): Array[Byte] = { - val managedBytes: ExtractableManagedResource[Array[Byte]] = managed(new ByteArrayOutputStream()).map { - byteArrayOutputStream => - for (zipOutputStream <- managed(new ZipOutputStream(byteArrayOutputStream))) { - contents.foreach { - case (filename: String, content: Array[Byte]) => - val entry: ZipEntry = new ZipEntry(filename) - zipOutputStream.putNextEntry(entry) - zipOutputStream.write(content) - zipOutputStream.closeEntry() - } - } - - byteArrayOutputStream.toByteArray + val byteArrayOutputStream = new ByteArrayOutputStream() + val zipOutputStream = new ZipOutputStream(byteArrayOutputStream) + + val bytesTry = Try { + contents.foreach { + case (filename: String, content: Array[Byte]) => + val entry: ZipEntry = new ZipEntry(filename) + zipOutputStream.putNextEntry(entry) + zipOutputStream.write(content) + zipOutputStream.closeEntry() + } } - managedBytes.tried.get + zipOutputStream.close() + + bytesTry match { + case Success(_) => byteArrayOutputStream.toByteArray + case Failure(ex) => throw ex + } } /** diff --git a/webapi/src/main/scala/org/knora/webapi/util/JavaUtil.scala b/webapi/src/main/scala/org/knora/webapi/util/JavaUtil.scala index 9a7b83590f..38f133113d 100644 --- a/webapi/src/main/scala/org/knora/webapi/util/JavaUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/util/JavaUtil.scala @@ -46,14 +46,6 @@ object JavaUtil { def biFunction[A, B, C](f: (A, B) => C): BiFunction[A, B, C] = (a: A, b: B) => f(a, b) - /** - * Helps turn matches for optional regular expression groups, which can be null, into Scala [[Option]] objects. See - * [[https://stackoverflow.com/a/18794646]]. - */ - object Optional { - def unapply[T](group: T): Some[Option[T]] = if (group == null) Some(None) else Some(Some(group)) - } - /** * Wraps a Java `Optional` and converts it to a Scala [[Option]]. */ diff --git a/webapi/src/main/scala/org/knora/webapi/util/cache/BUILD.bazel b/webapi/src/main/scala/org/knora/webapi/util/cache/BUILD.bazel index 1879742b79..7811f5e666 100644 --- a/webapi/src/main/scala/org/knora/webapi/util/cache/BUILD.bazel +++ b/webapi/src/main/scala/org/knora/webapi/util/cache/BUILD.bazel @@ -8,7 +8,7 @@ scala_library( unused_dependency_checker_mode = "warn", deps = [ "//webapi/src/main/scala/org/knora/webapi/exceptions", - "@maven//:com_typesafe_scala_logging_scala_logging_2_12", + "@maven//:com_typesafe_scala_logging_scala_logging_2_13", "@maven//:net_sf_ehcache_ehcache", "@maven//:org_slf4j_slf4j_api", ], diff --git a/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala b/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala index c550c60d4f..5d6a60bba0 100644 --- a/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala @@ -89,13 +89,15 @@ abstract class CoreSpec(_system: ActorSystem) def this(config: Config) = this( ActorSystem( - CoreSpec.getCallerName(getClass), + CoreSpec.getCallerName(classOf[CoreSpec]), TestContainers.PortConfig.withFallback(ConfigFactory.load(config.withFallback(CoreSpec.defaultConfig))))) def this(name: String) = this(ActorSystem(name, TestContainers.PortConfig.withFallback(ConfigFactory.load()))) def this() = - this(ActorSystem(CoreSpec.getCallerName(getClass), TestContainers.PortConfig.withFallback(ConfigFactory.load()))) + this( + ActorSystem(CoreSpec.getCallerName(classOf[CoreSpec]), + TestContainers.PortConfig.withFallback(ConfigFactory.load()))) /* needed by the core trait */ implicit lazy val settings: KnoraSettingsImpl = KnoraSettings(system) diff --git a/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala index 4665d742ad..5d89b819d8 100644 --- a/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala @@ -106,7 +106,7 @@ class E2ESpec(_system: ActorSystem) parent = new KnoraSettingsFeatureFactoryConfig(settings) ) - override def beforeAll: Unit = { + override def beforeAll(): Unit = { // set allow reload over http appActor ! SetAllowReloadOverHTTPState(true) @@ -122,7 +122,7 @@ class E2ESpec(_system: ActorSystem) } - override def afterAll: Unit = { + override def afterAll(): Unit = { /* Stop the server when everything else has finished */ appActor ! AppStop() } diff --git a/webapi/src/test/scala/org/knora/webapi/ITKnoraFakeSpec.scala b/webapi/src/test/scala/org/knora/webapi/ITKnoraFakeSpec.scala index 0edc9c81b5..7702272b1c 100644 --- a/webapi/src/test/scala/org/knora/webapi/ITKnoraFakeSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/ITKnoraFakeSpec.scala @@ -85,13 +85,13 @@ class ITKnoraFakeSpec(_system: ActorSystem) protected val baseInternalSipiUrl: String = settings.internalSipiBaseUrl protected val baseExternalSipiUrl: String = settings.externalSipiBaseUrl - override def beforeAll: Unit = { + override def beforeAll(): Unit = { /* Set the startup flags and start the Knora Server */ log.debug(s"Starting Knora Service") startService() } - override def afterAll: Unit = { + override def afterAll(): Unit = { /* Stop the server when everything else has finished */ log.debug(s"Stopping Knora Service") stopService() diff --git a/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala b/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala index fd34718f99..3d8a83f276 100644 --- a/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala @@ -101,7 +101,7 @@ class ITKnoraLiveSpec(_system: ActorSystem) protected val baseInternalSipiUrl: String = settings.internalSipiBaseUrl protected val baseExternalSipiUrl: String = settings.externalSipiBaseUrl - override def beforeAll: Unit = { + override def beforeAll(): Unit = { // set allow reload over http appActor ! SetAllowReloadOverHTTPState(true) @@ -119,7 +119,7 @@ class ITKnoraLiveSpec(_system: ActorSystem) loadTestData(rdfDataObjects) } - override def afterAll: Unit = { + override def afterAll(): Unit = { /* Stop the server when everything else has finished */ appActor ! AppStop() } diff --git a/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala index 5a536954be..00b7cf58e9 100644 --- a/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala @@ -108,7 +108,7 @@ class R2RSpec val log: LoggingAdapter = akka.event.Logging(system, this.getClass) - override def beforeAll { + override def beforeAll() { // set allow reload over http appActor ! SetAllowReloadOverHTTPState(true) @@ -121,7 +121,7 @@ class R2RSpec loadTestData(rdfDataObjects) } - override def afterAll { + override def afterAll() { /* Stop the server when everything else has finished */ appActor ! AppStop() } diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/http/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/e2e/http/BUILD.bazel index 2e397fc361..42e86951d4 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/http/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/e2e/http/BUILD.bazel @@ -18,7 +18,7 @@ scala_test( runtime_deps = [ "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", ], deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/e2e/v1/BUILD.bazel index 8eeb1ed597..2212a0e5dc 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/BUILD.bazel @@ -111,9 +111,8 @@ scala_test( deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ "//webapi:main_library", "//webapi:test_library", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_xmlunit_xmlunit_core", - "@maven//:com_jsuereth_scala_arm_2_12", ] + BASE_TEST_DEPENDENCIES_WITH_JSON, ) diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ResourcesV1R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ResourcesV1R2RSpec.scala index 974be97da4..70a8156187 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ResourcesV1R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ResourcesV1R2RSpec.scala @@ -50,12 +50,11 @@ import org.knora.webapi.util.{AkkaHttpUtils, MutableTestIri} import org.scalatest.Assertion import org.xmlunit.builder.{DiffBuilder, Input} import org.xmlunit.diff.Diff -import resource._ import spray.json._ import scala.concurrent.duration._ import scala.concurrent.{Await, ExecutionContextExecutor, Future} -import scala.util.Random +import scala.util.{Random, Try} import scala.xml.{Node, NodeSeq, XML} /** @@ -1652,18 +1651,17 @@ class ResourcesV1R2RSpec extends R2RSpec { val responseBodyFuture: Future[Array[Byte]] = response.entity.toStrict(5.seconds).map(_.data.toArray) val responseBytes: Array[Byte] = Await.result(responseBodyFuture, 5.seconds) val zippedFilenames = collection.mutable.Set.empty[String] - - for (zipInputStream <- managed(new ZipInputStream(new ByteArrayInputStream(responseBytes)))) { - var zipEntry: ZipEntry = null - - while ({ - zipEntry = zipInputStream.getNextEntry - zipEntry != null - }) { - zippedFilenames.add(zipEntry.getName) - } + val zipInputStream = new ZipInputStream(new ByteArrayInputStream(responseBytes)) + var zipEntry: ZipEntry = null + + while ({ + zipEntry = zipInputStream.getNextEntry + zipEntry != null + }) { + zippedFilenames.add(zipEntry.getName) } + zipInputStream.close() assert(zippedFilenames == Set("p0801-beol.xsd", "p0801-biblio.xsd", "knoraXmlImport.xsd")) } } @@ -1677,17 +1675,17 @@ class ResourcesV1R2RSpec extends R2RSpec { val responseBytes: Array[Byte] = Await.result(responseBodyFuture, 5.seconds) val zippedFilenames = collection.mutable.Set.empty[String] - for (zipInputStream <- managed(new ZipInputStream(new ByteArrayInputStream(responseBytes)))) { - var zipEntry: ZipEntry = null + val zipInputStream = new ZipInputStream(new ByteArrayInputStream(responseBytes)) + var zipEntry: ZipEntry = null - while ({ - zipEntry = zipInputStream.getNextEntry - zipEntry != null - }) { - zippedFilenames.add(zipEntry.getName) - } + while ({ + zipEntry = zipInputStream.getNextEntry + zipEntry != null + }) { + zippedFilenames.add(zipEntry.getName) } + zipInputStream.close() assert(zippedFilenames == Set("p0001-something.xsd", "knoraXmlImport.xsd", "p0001-anything.xsd")) } } @@ -1700,18 +1698,17 @@ class ResourcesV1R2RSpec extends R2RSpec { val responseBodyFuture: Future[Array[Byte]] = response.entity.toStrict(5.seconds).map(_.data.toArray) val responseBytes: Array[Byte] = Await.result(responseBodyFuture, 5.seconds) val zippedFilenames = collection.mutable.Set.empty[String] - - for (zipInputStream <- managed(new ZipInputStream(new ByteArrayInputStream(responseBytes)))) { - var zipEntry: ZipEntry = null - - while ({ - zipEntry = zipInputStream.getNextEntry - zipEntry != null - }) { - zippedFilenames.add(zipEntry.getName) - } + val zipInputStream = new ZipInputStream(new ByteArrayInputStream(responseBytes)) + var zipEntry: ZipEntry = null + + while ({ + zipEntry = zipInputStream.getNextEntry + zipEntry != null + }) { + zippedFilenames.add(zipEntry.getName) } + zipInputStream.close() assert(zippedFilenames == Set("p0001-empty-thing.xsd", "knoraXmlImport.xsd", "p0001-anything.xsd")) } } diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/e2e/v2/BUILD.bazel index 468b9b4701..e6f96b94d8 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/BUILD.bazel @@ -185,8 +185,8 @@ scala_test( deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ "//webapi:main_library", "//webapi:test_library", - "@maven//:com_typesafe_play_twirl_api_2_12", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_xmlunit_xmlunit_core", ] + BASE_TEST_DEPENDENCIES_WITH_JSON, ) @@ -206,7 +206,7 @@ scala_test( deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ "//webapi:main_library", "//webapi:test_library", - "@maven//:com_typesafe_play_twirl_api_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", ] + BASE_TEST_DEPENDENCIES, ) diff --git a/webapi/src/test/scala/org/knora/webapi/http/version/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/http/version/BUILD.bazel index 76142156eb..9564b0b0d8 100644 --- a/webapi/src/test/scala/org/knora/webapi/http/version/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/http/version/BUILD.bazel @@ -14,7 +14,7 @@ scala_test( runtime_deps = [ "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", ], deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ diff --git a/webapi/src/test/scala/org/knora/webapi/http/version/versioninfo/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/http/version/versioninfo/BUILD.bazel index 12875d9f6f..e4513125ba 100644 --- a/webapi/src/test/scala/org/knora/webapi/http/version/versioninfo/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/http/version/versioninfo/BUILD.bazel @@ -14,7 +14,7 @@ scala_test( runtime_deps = [ "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_slf4j_2_12", + "@maven//:com_typesafe_akka_akka_slf4j_2_13", "@maven//:org_slf4j_log4j_over_slf4j", ], deps = [ diff --git a/webapi/src/test/scala/org/knora/webapi/it/v1/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/it/v1/BUILD.bazel index 143c9ca2d7..41e88475a0 100644 --- a/webapi/src/test/scala/org/knora/webapi/it/v1/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/it/v1/BUILD.bazel @@ -54,7 +54,7 @@ scala_test( deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ "//webapi:test_library", "//webapi:main_library", - "@maven//:org_scala_lang_modules_scala_xml_2_12", + "@maven//:org_scala_lang_modules_scala_xml_2_13", "@maven//:org_xmlunit_xmlunit_core", ] + BASE_TEST_DEPENDENCIES_WITH_JSON, ) diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformerSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformerSpec.scala index 1f27f2f9a0..9efe027484 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformerSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformerSpec.scala @@ -189,7 +189,7 @@ class NonTriplestoreSpecificGravsearchToCountPrequeryTransformerSpec extends Cor ) )) )) - ), + ).toSeq, positiveEntities = Set(), querySchema = None ), diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec.scala index 7e2ad8dbb2..89da8092e3 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec.scala @@ -196,7 +196,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec propertyPathOperator = None )) ) - ), + ).toSeq, positiveEntities = Set(), querySchema = None ), @@ -339,7 +339,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec datatype = "http://www.w3.org/2001/XMLSchema#integer".toSmartIri ) )) - ), + ).toSeq, positiveEntities = Set(), querySchema = None ), @@ -491,7 +491,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec )) ) )) - ), + ).toSeq, positiveEntities = Set(), querySchema = None ), @@ -654,7 +654,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec ) )) )) - ), + ).toSeq, positiveEntities = Set(), querySchema = None ), @@ -801,7 +801,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec )) ) )) - ), + ).toSeq, positiveEntities = Set(), querySchema = None ), @@ -2180,8 +2180,6 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec |} """.stripMargin val transformedQueryToReorderWithCycle: SelectQuery = SelectQuery( - fromClause = None, - variables = Vector(QueryVariable(variableName = "thing")), offset = 0, groupBy = Vector(QueryVariable(variableName = "thing")), orderBy = Vector( @@ -2192,7 +2190,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec whereClause = WhereClause( patterns = Vector( StatementPattern( - subj = QueryVariable(variableName = "thing2"), + subj = QueryVariable(variableName = "thing1"), pred = IriRef( iri = "http://www.knora.org/ontology/knora-base#isDeleted".toSmartIri, propertyPathOperator = None @@ -2208,27 +2206,27 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec )) ), StatementPattern( - subj = QueryVariable(variableName = "thing2"), + subj = QueryVariable(variableName = "thing1"), pred = IriRef( iri = "http://www.knora.org/ontology/0001/anything#hasOtherThing".toSmartIri, propertyPathOperator = None ), - obj = QueryVariable(variableName = "thing"), + obj = QueryVariable(variableName = "thing2"), namedGraph = None ), StatementPattern( - subj = QueryVariable(variableName = "thing2"), + subj = QueryVariable(variableName = "thing1"), pred = IriRef( iri = "http://www.knora.org/ontology/0001/anything#hasOtherThingValue".toSmartIri, propertyPathOperator = None ), obj = - QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), + QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), namedGraph = None ), StatementPattern( subj = - QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), + QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), pred = IriRef( iri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type".toSmartIri, propertyPathOperator = None @@ -2245,7 +2243,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec ), StatementPattern( subj = - QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), + QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), pred = IriRef( iri = "http://www.knora.org/ontology/knora-base#isDeleted".toSmartIri, propertyPathOperator = None @@ -2262,12 +2260,12 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec ), StatementPattern( subj = - QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), + QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), pred = IriRef( iri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#object".toSmartIri, propertyPathOperator = None ), - obj = QueryVariable(variableName = "thing"), + obj = QueryVariable(variableName = "thing2"), namedGraph = Some( IriRef( iri = "http://www.knora.org/explicit".toSmartIri, @@ -2275,7 +2273,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec )) ), StatementPattern( - subj = QueryVariable(variableName = "thing"), + subj = QueryVariable(variableName = "thing2"), pred = IriRef( iri = "http://www.knora.org/ontology/knora-base#isDeleted".toSmartIri, propertyPathOperator = None @@ -2291,7 +2289,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec )) ), StatementPattern( - subj = QueryVariable(variableName = "thing1"), + subj = QueryVariable(variableName = "thing"), pred = IriRef( iri = "http://www.knora.org/ontology/knora-base#isDeleted".toSmartIri, propertyPathOperator = None @@ -2307,27 +2305,27 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec )) ), StatementPattern( - subj = QueryVariable(variableName = "thing1"), + subj = QueryVariable(variableName = "thing"), pred = IriRef( iri = "http://www.knora.org/ontology/0001/anything#hasOtherThing".toSmartIri, propertyPathOperator = None ), - obj = QueryVariable(variableName = "thing2"), + obj = QueryVariable(variableName = "thing1"), namedGraph = None ), StatementPattern( - subj = QueryVariable(variableName = "thing1"), + subj = QueryVariable(variableName = "thing"), pred = IriRef( iri = "http://www.knora.org/ontology/0001/anything#hasOtherThingValue".toSmartIri, propertyPathOperator = None ), obj = - QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), + QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), namedGraph = None ), StatementPattern( subj = - QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), + QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), pred = IriRef( iri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type".toSmartIri, propertyPathOperator = None @@ -2344,7 +2342,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec ), StatementPattern( subj = - QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), + QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), pred = IriRef( iri = "http://www.knora.org/ontology/knora-base#isDeleted".toSmartIri, propertyPathOperator = None @@ -2361,12 +2359,12 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec ), StatementPattern( subj = - QueryVariable(variableName = "thing1__httpwwwknoraorgontology0001anythinghasOtherThing__thing2__LinkValue"), + QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), pred = IriRef( iri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#object".toSmartIri, propertyPathOperator = None ), - obj = QueryVariable(variableName = "thing2"), + obj = QueryVariable(variableName = "thing1"), namedGraph = Some( IriRef( iri = "http://www.knora.org/explicit".toSmartIri, @@ -2374,27 +2372,27 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec )) ), StatementPattern( - subj = QueryVariable(variableName = "thing"), + subj = QueryVariable(variableName = "thing2"), pred = IriRef( iri = "http://www.knora.org/ontology/0001/anything#hasOtherThing".toSmartIri, propertyPathOperator = None ), - obj = QueryVariable(variableName = "thing1"), + obj = QueryVariable(variableName = "thing"), namedGraph = None ), StatementPattern( - subj = QueryVariable(variableName = "thing"), + subj = QueryVariable(variableName = "thing2"), pred = IriRef( iri = "http://www.knora.org/ontology/0001/anything#hasOtherThingValue".toSmartIri, propertyPathOperator = None ), obj = - QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), + QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), namedGraph = None ), StatementPattern( subj = - QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), + QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), pred = IriRef( iri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type".toSmartIri, propertyPathOperator = None @@ -2411,7 +2409,7 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec ), StatementPattern( subj = - QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), + QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), pred = IriRef( iri = "http://www.knora.org/ontology/knora-base#isDeleted".toSmartIri, propertyPathOperator = None @@ -2428,12 +2426,12 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec ), StatementPattern( subj = - QueryVariable(variableName = "thing__httpwwwknoraorgontology0001anythinghasOtherThing__thing1__LinkValue"), + QueryVariable(variableName = "thing2__httpwwwknoraorgontology0001anythinghasOtherThing__thing__LinkValue"), pred = IriRef( iri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#object".toSmartIri, propertyPathOperator = None ), - obj = QueryVariable(variableName = "thing1"), + obj = QueryVariable(variableName = "thing"), namedGraph = Some( IriRef( iri = "http://www.knora.org/explicit".toSmartIri, @@ -2445,7 +2443,9 @@ class NonTriplestoreSpecificGravsearchToPrequeryTransformerSpec extends CoreSpec querySchema = None ), limit = Some(25), - useDistinct = true + useDistinct = true, + fromClause = None, + variables = Vector(QueryVariable(variableName = "thing")) ) val queryToReorderWithMinus: String = diff --git a/webapi/src/test/scala/org/knora/webapi/responders/admin/PermissionsResponderADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/admin/PermissionsResponderADMSpec.scala index ea1949f689..fdc18875a0 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/admin/PermissionsResponderADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/admin/PermissionsResponderADMSpec.scala @@ -194,7 +194,7 @@ class PermissionsResponderADMSpec ) expectMsg( AdministrativePermissionsForProjectGetResponseADM( - Seq(perm002_a1.p, perm002_a3.p, perm002_a2.p) + Seq(perm002_a2.p, perm002_a3.p, perm002_a1.p) )) } @@ -316,7 +316,7 @@ class PermissionsResponderADMSpec expectMsg( DefaultObjectAccessPermissionsForProjectGetResponseADM( - defaultObjectAccessPermissions = Seq(perm002_d1.p, perm0003_a4.p, perm002_d2.p) + defaultObjectAccessPermissions = Seq(perm002_d2.p, perm002_d1.p, perm0003_a4.p) )) } diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/responders/v1/BUILD.bazel index a617250511..aa9590c3f9 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/BUILD.bazel @@ -74,7 +74,7 @@ scala_test( deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ "//webapi:main_library", "//webapi:test_library", - "@maven//:com_typesafe_play_twirl_api_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", ] + BASE_TEST_DEPENDENCIES_WITH_JSON, ) @@ -130,6 +130,6 @@ scala_test( deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ "//webapi:main_library", "//webapi:test_library", - "@maven//:com_typesafe_play_twirl_api_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", ] + BASE_TEST_DEPENDENCIES, ) diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/BUILD.bazel b/webapi/src/test/scala/org/knora/webapi/responders/v2/BUILD.bazel index 5df4ce0670..65513a0fd4 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/BUILD.bazel +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/BUILD.bazel @@ -63,7 +63,7 @@ scala_test( deps = ALL_WEBAPI_MAIN_DEPENDENCIES + [ "//webapi:main_library", "//webapi:test_library", - "@maven//:com_typesafe_play_twirl_api_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", "@maven//:org_xmlunit_xmlunit_core", ] + BASE_TEST_DEPENDENCIES, ) @@ -123,7 +123,7 @@ scala_test( "//webapi:main_library", "//webapi:test_library", # Templates - "@maven//:com_typesafe_play_twirl_api_2_12", + "@maven//:com_typesafe_play_twirl_api_2_13", ] + BASE_TEST_DEPENDENCIES, )