From b026442de716ba3399147e071b941f2b331823a6 Mon Sep 17 00:00:00 2001 From: Ivan Subotic <400790+subotic@users.noreply.github.com> Date: Thu, 25 Aug 2022 13:13:54 +0200 Subject: [PATCH] build: add code coverage (#2163) * Update plugins.sbt * build: add coverage, imports fixing * chore: apply fixes * chore: apply fixes * chore: apply fixes * chore: apply fixes * remove private * chore: tune down scalafix * fix UserHandlerSpec warnings * fix naming * fix some get methods warnings in admin groups * complier config changes * review + formatting fixes * add few more warn fixes * revert non-satisfying changes * update compiler config + some fixes * silenced twirl templates warnings * get rid of warnings * undo two nowarns Co-authored-by: irinaschubert Co-authored-by: Marcin Procyk --- .scalafix.conf | 29 +++++ Makefile | 5 + build.sbt | 107 ++++++---------- .../main/scala/dsp/role/api/RoleRepo.scala | 5 +- .../scala/dsp/role/domain/RoleDomain.scala | 3 +- .../dsp/role/domain/RoleDomainSpec.scala | 3 +- .../scala/dsp/role/handler/RoleHandler.scala | 5 +- .../dsp/role/handler/RoleHandlerSpec.scala | 16 +-- .../dsp/role/repo/impl/RoleRepoLive.scala | 11 +- .../dsp/role/repo/impl/RoleRepoImplSpec.scala | 6 +- .../dsp/role/repo/impl/RoleRepoMock.scala | 11 +- .../dsp/schema/domain/SchemaCommands.scala | 7 +- .../domain/SchemaFunctionalDomain.scala | 4 + .../scala/dsp/schema/repo/SchemaRepo.scala | 4 +- .../schema/domain/SchemaCommandsSpec.scala | 12 +- .../main/scala/dsp/valueobjects/Group.scala | 1 + .../src/main/scala/dsp/valueobjects/Id.scala | 1 - .../src/main/scala/dsp/valueobjects/Iri.scala | 3 +- .../scala/dsp/valueobjects/LangString.scala | 5 +- .../scala/dsp/valueobjects/LanguageCode.scala | 3 +- .../main/scala/dsp/valueobjects/List.scala | 1 + .../main/scala/dsp/valueobjects/Project.scala | 1 + .../main/scala/dsp/valueobjects/Role.scala | 3 +- .../main/scala/dsp/valueobjects/Schema.scala | 10 +- .../main/scala/dsp/valueobjects/User.scala | 6 +- .../src/main/scala/dsp/valueobjects/V2.scala | 4 +- .../scala/dsp/valueobjects/GroupSpec.scala | 3 +- .../test/scala/dsp/valueobjects/IriSpec.scala | 5 +- .../dsp/valueobjects/LangStringSpec.scala | 5 +- .../dsp/valueobjects/LanguageCodeSpec.scala | 3 +- .../scala/dsp/valueobjects/ListSpec.scala | 3 +- .../scala/dsp/valueobjects/ProjectSpec.scala | 3 +- .../scala/dsp/valueobjects/RoleSpec.scala | 7 +- .../scala/dsp/valueobjects/SchemaSpec.scala | 6 +- .../scala/dsp/valueobjects/UserSpec.scala | 6 +- .../main/scala/dsp/user/api/UserRepo.scala | 8 +- .../scala/dsp/user/domain/UserDomain.scala | 5 +- .../dsp/user/domain/UserDomainSpec.scala | 6 +- .../user/sharedtestdata/SharedTestData.scala | 2 - .../scala/dsp/user/handler/UserHandler.scala | 7 +- .../dsp/user/handler/UserHandlerSpec.scala | 77 ++++++------ .../dsp/user/repo/impl/UserRepoLive.scala | 5 +- .../dsp/user/repo/impl/UserRepoImplSpec.scala | 12 +- .../dsp/user/repo/impl/UserRepoMock.scala | 10 +- project/Dependencies.scala | 34 ++--- project/plugins.sbt | 1 + .../knora/webapi/app/ApplicationActor.scala | 36 +++--- .../webapi/app/ApplicationRouterActor.scala | 12 +- .../scala/org/knora/webapi/app/LiveCore.scala | 6 +- .../scala/org/knora/webapi/app/Main.scala | 7 +- .../org/knora/webapi/auth/JWTService.scala | 5 +- .../org/knora/webapi/config/AppConfig.scala | 1 - .../scala/org/knora/webapi/core/Core.scala | 5 +- .../scala/org/knora/webapi/core/Logging.scala | 3 +- .../http/directives/DSPApiDirectives.scala | 1 + .../http/handler/KnoraExceptionHandler.scala | 117 +----------------- .../http/status/ApiStatusCodesADM.scala | 1 + .../webapi/http/status/ApiStatusCodesV1.scala | 1 + .../webapi/http/status/ApiStatusCodesV2.scala | 1 + .../InstrumentationSupport.scala | 2 +- .../webapi/messages/OntologyConstants.scala | 1 - .../webapi/messages/StringFormatter.scala | 36 +++--- .../groupsmessages/GroupsMessagesADM.scala | 27 ++-- .../groupsmessages/GroupsPayloadsADM.scala | 2 +- .../listsmessages/ListsMessagesADM.scala | 15 +-- .../PermissionsMessagesADM.scala | 11 +- .../PermissionsMessagesUtilADM.scala | 4 +- .../ProjectsMessagesADM.scala | 25 ++-- .../sipimessages/SipiMessagesADM.scala | 9 +- .../storesmessages/StoresMessagesADM.scala | 3 +- .../usersmessages/UsersMessagesADM.scala | 7 +- .../store/sipimessages/SipiMessages.scala | 3 +- .../TriplestoreMessages.scala | 25 ++-- .../messages/twirl/ResourceHtmlView.scala | 11 +- .../SparqlTemplateResourceToCreate.scala | 4 +- .../messages/util/CalendarDateUtilV2.scala | 5 +- .../util/ConstructResponseUtilV2.scala | 14 +-- .../webapi/messages/util/DateUtilV1.scala | 9 +- .../messages/util/FakeTriplestore.scala | 3 +- .../webapi/messages/util/MessageUtil.scala | 10 +- .../messages/util/PermissionUtilADM.scala | 16 +-- .../webapi/messages/util/ResponderData.scala | 1 + .../webapi/messages/util/UserUtilADM.scala | 9 +- .../webapi/messages/util/ValueUtilV1.scala | 10 +- .../util/rdf/AbstractShaclValidator.scala | 4 +- .../webapi/messages/util/rdf/JsonLDUtil.scala | 15 +-- .../messages/util/rdf/RdfFeatureFactory.scala | 1 - .../messages/util/rdf/RdfFormatUtil.scala | 13 +- .../webapi/messages/util/rdf/RdfModel.scala | 6 +- .../util/rdf/jenaimpl/JenaFormatUtil.scala | 5 +- .../util/rdf/jenaimpl/JenaModel.scala | 9 +- .../rdf/jenaimpl/JenaShaclValidator.scala | 3 +- .../search/MainQueryResultProcessor.scala | 2 +- .../messages/util/search/QueryTraverser.scala | 9 +- .../messages/util/search/SparqlQuery.scala | 3 +- .../util/search/SparqlTransformer.scala | 19 ++- .../search/gravsearch/GravsearchParser.scala | 7 +- .../gravsearch/GravsearchQueryChecker.scala | 2 +- .../GravsearchMainQueryGenerator.scala | 2 +- .../prequery/AbstractPrequeryGenerator.scala | 6 +- .../GravsearchQueryOptimisationFactory.scala | 5 +- ...GravsearchToCountPrequeryTransformer.scala | 4 +- ...cificGravsearchToPrequeryTransformer.scala | 6 +- ...tationReadingGravsearchTypeInspector.scala | 6 +- .../GravsearchTypeInspectionRunner.scala | 9 +- .../types/GravsearchTypeInspectionUtil.scala | 6 +- .../types/GravsearchTypeInspector.scala | 7 +- .../InferringGravsearchTypeInspector.scala | 15 ++- .../IntermediateTypeInspectionResult.scala | 2 +- .../util/standoff/StandoffTagUtilV2.scala | 38 +++--- .../util/standoff/XMLToStandoffUtil.scala | 11 +- .../messages/util/standoff/XMLUtil.scala | 3 +- .../ckanmessages/CkanMessagesV1.scala | 5 +- .../listmessages/ListMessagesV1.scala | 3 +- .../ontologymessages/OntologyMessagesV1.scala | 4 +- .../projectmessages/ProjectMessagesV1.scala | 9 +- .../resourcemessages/ResourceMessagesV1.scala | 11 +- .../searchmessages/SearchMessagesV1.scala | 7 +- .../standoffmessages/StandoffMessagesV1.scala | 9 +- .../usermessages/UserMessagesV1.scala | 11 +- .../valuemessages/ValueMessagesV1.scala | 15 +-- .../AuthenticationMessagesV1.scala | 3 +- .../v2/responder/KnoraRequestV2.scala | 11 +- .../v2/responder/KnoraResponseV2.scala | 4 +- .../listsmessages/ListsMessagesV2.scala | 2 +- .../ontologymessages/OntologyMessagesV2.scala | 13 +- .../resourcemessages/ResourceMessagesV2.scala | 15 +-- .../searchmessages/SearchMessagesV2.scala | 2 +- .../standoffmessages/StandoffMessagesV2.scala | 19 +-- .../valuemessages/ValueMessagesV2.scala | 12 +- .../AuthenticationMessagesV2.scala | 5 +- .../knora/webapi/responders/IriLocker.scala | 8 +- .../knora/webapi/responders/Responder.scala | 4 +- .../webapi/responders/ResponderManager.scala | 14 --- .../responders/admin/GroupsResponderADM.scala | 100 ++++++--------- .../responders/admin/ListsResponderADM.scala | 47 +++---- .../admin/PermissionsResponderADM.scala | 13 +- .../admin/ProjectsResponderADM.scala | 68 ++-------- .../responders/admin/SipiResponderADM.scala | 5 +- .../responders/admin/StoresResponderADM.scala | 6 +- .../responders/admin/UsersResponderADM.scala | 14 +-- .../responders/v1/CkanResponderV1.scala | 57 ++------- .../responders/v1/ListsResponderV1.scala | 9 +- .../responders/v1/OntologyResponderV1.scala | 7 +- .../responders/v1/ProjectsResponderV1.scala | 9 +- .../responders/v1/ResourcesResponderV1.scala | 34 ++--- .../responders/v1/SearchResponderV1.scala | 15 +-- .../responders/v1/StandoffResponderV1.scala | 10 +- .../responders/v1/UsersResponderV1.scala | 27 +--- .../responders/v1/ValuesResponderV1.scala | 39 +++--- .../responders/v2/ListsResponderV2.scala | 6 +- .../responders/v2/OntologyResponderV2.scala | 13 +- .../webapi/responders/v2/ResourceUtilV2.scala | 16 ++- .../responders/v2/ResourcesResponderV2.scala | 13 +- .../v2/ResponderWithStandoffV2.scala | 8 +- .../responders/v2/SearchResponderV2.scala | 16 +-- .../responders/v2/StandoffResponderV2.scala | 50 ++++---- .../responders/v2/ValuesResponderV2.scala | 9 +- .../webapi/responders/v2/ontology/Cache.scala | 9 +- .../v2/ontology/CardinalityHandler.scala | 9 +- .../v2/ontology/OntologyHelpers.scala | 17 ++- .../webapi/routing/AroundDirectives.scala | 1 + .../knora/webapi/routing/Authenticator.scala | 35 +++--- .../knora/webapi/routing/HealthRoute.scala | 9 +- .../org/knora/webapi/routing/KnoraRoute.scala | 14 +-- .../knora/webapi/routing/RejectingRoute.scala | 7 +- .../knora/webapi/routing/RouteUtilADM.scala | 9 +- .../knora/webapi/routing/RouteUtilV1.scala | 22 ++-- .../knora/webapi/routing/RouteUtilV2.scala | 16 +-- .../webapi/routing/SwaggerApiDocsRoute.scala | 1 + .../knora/webapi/routing/VersionRoute.scala | 3 +- .../webapi/routing/admin/FilesRouteADM.scala | 1 + .../webapi/routing/admin/GroupsRouteADM.scala | 17 +-- .../webapi/routing/admin/ListsRouteADM.scala | 1 + .../routing/admin/PermissionsRouteADM.scala | 1 + .../routing/admin/ProjectsRouteADM.scala | 18 +-- .../webapi/routing/admin/StoreRouteADM.scala | 9 +- .../webapi/routing/admin/UsersRouteADM.scala | 13 +- .../admin/lists/DeleteListItemsRouteADM.scala | 8 +- .../admin/lists/OldListsRouteADMFeature.scala | 20 +-- .../admin/lists/UpdateListItemsRouteADM.scala | 12 +- .../CreatePermissionRouteADM.scala | 9 +- .../DeletePermissionRouteADM.scala | 7 +- .../permissions/GetPermissionsRouteADM.scala | 7 +- .../UpdatePermissionRouteADM.scala | 7 +- .../webapi/routing/v1/AssetsRouteV1.scala | 7 +- .../routing/v1/AuthenticationRouteV1.scala | 1 + .../knora/webapi/routing/v1/CkanRouteV1.scala | 1 + .../webapi/routing/v1/ListsRouteV1.scala | 1 + .../webapi/routing/v1/ProjectsRouteV1.scala | 1 + .../routing/v1/ResourceTypesRouteV1.scala | 5 +- .../webapi/routing/v1/ResourcesRouteV1.scala | 46 +++---- .../webapi/routing/v1/SearchRouteV1.scala | 25 ++-- .../webapi/routing/v1/StandoffRouteV1.scala | 11 +- .../webapi/routing/v1/UsersRouteV1.scala | 9 +- .../webapi/routing/v1/ValuesRouteV1.scala | 12 +- .../routing/v2/AuthenticationRouteV2.scala | 1 + .../webapi/routing/v2/ListsRouteV2.scala | 8 +- .../webapi/routing/v2/OntologiesRouteV2.scala | 17 +-- .../webapi/routing/v2/ResourcesRouteV2.scala | 12 +- .../webapi/routing/v2/SearchRouteV2.scala | 7 +- .../webapi/routing/v2/StandoffRouteV2.scala | 12 +- .../webapi/routing/v2/ValuesRouteV2.scala | 12 +- .../knora/webapi/settings/KnoraSettings.scala | 16 +-- .../store/cache/CacheServiceManager.scala | 9 +- .../webapi/store/cache/api/CacheService.scala | 5 +- .../cache/impl/CacheServiceInMemImpl.scala | 11 +- .../cache/impl/CacheServiceRedisImpl.scala | 9 +- .../serialization/CacheSerialization.scala | 3 +- .../store/iiif/IIIFServiceManager.scala | 3 +- .../webapi/store/iiif/api/IIIFService.scala | 5 +- .../iiif/domain/SipiKnoraJsonResponse.scala | 3 +- .../webapi/store/iiif/errors/Errors.scala | 3 +- .../store/iiif/impl/IIIFServiceSipiImpl.scala | 15 ++- .../TriplestoreServiceManager.scala | 36 +++--- .../triplestore/api/TriplestoreService.scala | 9 +- .../triplestore/defaults/DefaultRdfData.scala | 3 +- .../store/triplestore/errors/Errors.scala | 3 +- .../TriplestoreServiceHttpConnectorImpl.scala | 50 +++----- .../upgrade/RepositoryUpdatePlan.scala | 1 + .../upgrade/RepositoryUpdater.scala | 26 ++-- .../upgrade/plugins/UpgradePluginPR1307.scala | 2 +- .../upgrade/plugins/UpgradePluginPR1746.scala | 3 +- .../upgrade/plugins/UpgradePluginPR1921.scala | 11 +- .../upgrade/plugins/UpgradePluginPR2018.scala | 5 +- .../upgrade/plugins/UpgradePluginPR2079.scala | 1 + .../upgrade/plugins/UpgradePluginPR2081.scala | 6 +- .../upgrade/plugins/UpgradePluginPR2094.scala | 1 + .../org/knora/webapi/util/ActorUtil.scala | 17 ++- .../org/knora/webapi/util/FileUtil.scala | 7 +- .../knora/webapi/util/cache/CacheUtil.scala | 3 +- .../scala/org/knora/webapi/CoreSpec.scala | 46 ++++--- .../test/scala/org/knora/webapi/E2ESpec.scala | 53 ++++---- .../org/knora/webapi/ITKnoraLiveSpec.scala | 28 ++--- .../test/scala/org/knora/webapi/R2RSpec.scala | 35 +++--- .../config/AppConfigForTestContainers.scala | 6 +- .../AppConfigForTestContainersZSpec.scala | 3 +- .../knora/webapi/config/AppConfigZSpec.scala | 1 + .../knora/webapi/e2e/CORSSupportE2ESpec.scala | 1 + .../webapi/e2e/ClientTestDataCollector.scala | 3 +- .../webapi/e2e/ExceptionHandlerR2RSpec.scala | 3 +- .../knora/webapi/e2e/HealthRouteE2ESpec.scala | 1 + .../knora/webapi/e2e/InstanceChecker.scala | 8 +- .../webapi/e2e/InstanceCheckerSpec.scala | 9 +- .../webapi/e2e/RejectingRouteE2ESpec.scala | 1 + .../webapi/e2e/admin/FilesADME2ESpec.scala | 13 +- .../webapi/e2e/admin/GroupsADME2ESpec.scala | 7 +- .../e2e/admin/PermissionsADME2ESpec.scala | 5 +- .../webapi/e2e/admin/ProjectsADME2ESpec.scala | 15 +-- .../webapi/e2e/admin/StoreADME2ESpec.scala | 5 +- .../webapi/e2e/admin/UsersADME2ESpec.scala | 7 +- .../DeleteListItemsRouteADME2ESpec.scala | 10 +- .../OldListsRouteADMFeatureE2ESpec.scala | 7 +- .../UpdateListItemsRouteADME2ESpec.scala | 5 +- .../e2e/http/ServerVersionE2ESpec.scala | 1 + .../e2e/v1/AuthenticationV1E2ESpec.scala | 13 +- .../knora/webapi/e2e/v1/ErrorV1E2ESpec.scala | 3 +- .../knora/webapi/e2e/v1/ListsV1E2ESpec.scala | 26 ++-- .../e2e/v1/PermissionsHandlingV1E2ESpec.scala | 5 +- .../webapi/e2e/v1/ProjectsV1E2ESpec.scala | 6 +- .../webapi/e2e/v1/ResourcesV1R2RSpec.scala | 39 +++--- .../knora/webapi/e2e/v1/SearchV1R2RSpec.scala | 9 +- .../knora/webapi/e2e/v1/SipiV1R2RSpec.scala | 23 ++-- .../webapi/e2e/v1/StandoffV1R2RSpec.scala | 25 ++-- .../knora/webapi/e2e/v1/UsersV1E2ESpec.scala | 20 +-- .../knora/webapi/e2e/v1/ValuesV1R2RSpec.scala | 7 +- .../e2e/v2/AuthenticationV2E2ESpec.scala | 16 +-- .../e2e/v2/JSONLDHandlingV2R2RSpec.scala | 11 +- .../webapi/e2e/v2/ListsRouteV2R2RSpec.scala | 13 +- .../knora/webapi/e2e/v2/MarkupHeader.scala | 3 +- .../webapi/e2e/v2/OntologyV2R2RSpec.scala | 50 ++------ .../knora/webapi/e2e/v2/ProjectHeader.scala | 3 +- .../e2e/v2/ResourcesRouteV2E2ESpec.scala | 44 +++---- .../webapi/e2e/v2/ResponseCheckerV2.scala | 2 +- .../webapi/e2e/v2/ResponseCheckerV2Spec.scala | 4 +- .../knora/webapi/e2e/v2/SchemaHeader.scala | 3 +- .../webapi/e2e/v2/SearchRouteV2R2RSpec.scala | 17 +-- .../e2e/v2/StandoffRouteV2E2ESpec.scala | 19 +-- .../webapi/e2e/v2/ValuesRouteV2E2ESpec.scala | 28 ++--- .../knora/webapi/e2e/v2/ValuesV2R2RSpec.scala | 23 ++-- .../knora/webapi/it/VersionRouteITSpec.scala | 5 +- .../webapi/it/v1/DrawingsGodsV1ITSpec.scala | 17 +-- .../knora/webapi/it/v1/ErrorV1ITSpec.scala | 3 +- .../it/v1/KnoraSipiIntegrationV1ITSpec.scala | 25 ++-- .../it/v2/KnoraSipiAuthenticationITSpec.scala | 32 ++--- .../it/v2/KnoraSipiIntegrationV2ITSpec.scala | 15 +-- .../webapi/messages/StringFormatterSpec.scala | 10 +- .../listsmessages/ListsMessagesADMSpec.scala | 9 +- .../PermissionsMessagesADMSpec.scala | 15 ++- .../ProjectsMessagesADMSpec.scala | 3 +- .../usersmessages/UsersMessagesADMSpec.scala | 7 +- .../TriplestoreMessagesSpec.scala | 5 +- .../util/CalendarDateUtilV2Spec.scala | 2 +- .../util/ConstructResponseUtilV2Spec.scala | 17 ++- .../ConstructResponseUtilV2SpecFullData.scala | 4 +- .../webapi/messages/util/DateUtilV1Spec.scala | 25 ++-- .../messages/util/PermissionUtilADMSpec.scala | 5 +- .../messages/util/rdf/JsonLDUtilSpec.scala | 7 +- .../util/rdf/KnoraResponseV2Spec.scala | 5 +- .../messages/util/rdf/RdfFormatUtilSpec.scala | 13 +- .../messages/util/rdf/RdfModelSpec.scala | 9 +- .../util/rdf/ShaclValidatorSpec.scala | 8 +- .../gravsearch/GravsearchParserSpec.scala | 2 +- ...searchToCountPrequeryTransformerSpec.scala | 18 ++- ...cGravsearchToPrequeryTransformerSpec.scala | 16 +-- .../prequery/TopologicalSortUtilSpec.scala | 5 +- .../types/GravsearchTypeInspectorSpec.scala | 11 +- .../util/standoff/StandoffTagUtilV2Spec.scala | 9 +- .../util/standoff/XMLToStandoffUtilSpec.scala | 11 +- .../messages/util/standoff/XMLUtilSpec.scala | 9 +- .../PermissionMessagesV1Spec.scala | 12 +- .../usermessages/UserMessagesV1Spec.scala | 7 +- .../InputOntologyV2Spec.scala | 4 +- ...raCardinalityInfoIsStricterThanZSpec.scala | 3 +- .../ResourcesMessagesV2Spec.scala | 2 +- .../knora/webapi/models/OntologyModels.scala | 6 +- .../models/filemodels/FileModelUtil.scala | 2 +- .../webapi/models/filemodels/FileModels.scala | 6 +- .../models/filemodels/FileModelsSpec.scala | 13 +- .../standoffmodels/StandoffModels.scala | 9 +- .../standoffmodels/StandoffModelsSpec.scala | 3 +- .../other/v1/DrawingsGodsV1E2ESpec.scala | 5 +- .../webapi/other/v1/DrawingsGodsV1Spec.scala | 7 +- .../other/v2/LumieresLausanneV2E2ESpec.scala | 1 + .../webapi/responders/IriLockerSpec.scala | 11 +- .../admin/GroupsResponderADMSpec.scala | 17 ++- .../admin/ListsResponderADMSpec.scala | 13 +- .../admin/PermissionsResponderADMSpec.scala | 22 ++-- .../admin/ProjectsResponderADMSpec.scala | 14 +-- .../admin/SipiResponderADMSpec.scala | 5 +- .../admin/UsersResponderADMSpec.scala | 10 +- .../responders/v1/ListsResponderV1Spec.scala | 5 +- .../v1/OntologyResponderV1Spec.scala | 9 +- .../v1/ProjectsResponderV1Spec.scala | 7 +- .../v1/ResourcesResponderV1Spec.scala | 29 ++--- .../ResourcesResponderV1SpecContextData.scala | 9 +- .../v1/ResourcesResponderV1SpecFullData.scala | 1 + .../responders/v1/SearchResponderV1Spec.scala | 5 +- .../responders/v1/UsersResponderV1Spec.scala | 12 +- .../responders/v1/ValuesResponderV1Spec.scala | 29 ++--- .../responders/v2/ListsResponderV2Spec.scala | 5 +- .../v2/LoadOntologiesRequestV2Spec.scala | 4 +- .../v2/OntologyResponderV2Spec.scala | 10 +- .../responders/v2/ResourceUtilV2Spec.scala | 5 +- .../v2/ResourcesResponderV2Spec.scala | 50 +++----- .../v2/ResourcesResponderV2SpecFullData.scala | 4 +- ...sourcesResponseCheckerV2SpecFullData.scala | 4 +- .../responders/v2/SearchResponderV2Spec.scala | 6 +- .../v2/SearchResponderV2SpecFullData.scala | 7 +- .../v2/StandoffResponderV2Spec.scala | 13 +- .../responders/v2/ValuesResponderV2Spec.scala | 22 ++-- .../AddCardinalitiesToClassSpec.scala | 12 +- .../responders/v2/ontology/CacheSpec.scala | 22 ++-- .../v2/ontology/CardinalitiesSpec.scala | 6 +- .../v2/ontology/OntologyHelpersSpec.scala | 9 +- .../webapi/routing/AuthenticatorSpec.scala | 19 +-- .../knora/webapi/routing/JWTHelperSpec.scala | 3 +- .../sharedtestdata/SharedTestDataADM.scala | 6 +- .../store/cache/CacheServiceManagerSpec.scala | 1 + .../store/cache/config/RedisTestConfig.scala | 3 +- .../cache/impl/CacheInMemImplZSpec.scala | 7 +- .../cache/impl/CacheRedisImplZSpec.scala | 7 +- .../CacheSerializationZSpec.scala | 7 +- .../store/iiif/impl/IIIFServiceMockImpl.scala | 3 +- .../TriplestoreServiceManagerSpec.scala | 25 ++-- ...lestoreServiceHttpConnectorImplZSpec.scala | 19 +-- .../plugins/UpgradePluginPR1746Spec.scala | 1 + .../plugins/UpgradePluginPR1921Spec.scala | 1 + .../plugins/UpgradePluginPR2018Spec.scala | 1 + .../plugins/UpgradePluginPR2079Spec.scala | 1 + .../plugins/UpgradePluginPR2081Spec.scala | 10 +- .../plugins/UpgradePluginPR2094Spec.scala | 1 + .../upgrade/plugins/UpgradePluginSpec.scala | 12 +- .../testcontainers/FusekiTestContainer.scala | 12 +- .../testcontainers/SipiTestContainer.scala | 5 +- .../testservices/TestActorSystemService.scala | 11 +- .../testservices/TestClientService.scala | 70 ++--------- .../util/ApacheLuceneSupportZSpec.scala | 3 +- .../util/Base64UrlCheckDigitZSpec.scala | 3 - .../org/knora/webapi/util/StartupUtils.scala | 9 +- .../util/StringLiteralSequenceV2Spec.scala | 2 - .../webapi/util/TestExtractorMethods.scala | 3 +- .../webapi/util/cache/CacheUtilSpec.scala | 7 +- 383 files changed, 1996 insertions(+), 2383 deletions(-) create mode 100644 .scalafix.conf diff --git a/.scalafix.conf b/.scalafix.conf new file mode 100644 index 0000000000..83281ce087 --- /dev/null +++ b/.scalafix.conf @@ -0,0 +1,29 @@ +rules = [ + OrganizeImports, + RemoveUnused + ] + +OrganizeImports { + blankLines = Auto + coalesceToWildcardImportThreshold = null + expandRelative = false + groupExplicitlyImportedImplicitsSeparately = false + groupedImports = Explode + groups = [ + "*" + "re:(javax?|scala)\\." + "re:(dsp|org.knora)\\." + ] + importSelectorsOrder = Ascii + importsOrder = Ascii + preset = DEFAULT + removeUnused = true +} + +RemoveUnused { + imports = false + privates = false + locals = false + patternvars = false + params = false +} diff --git a/Makefile b/Makefile index 858b744715..bea6a34410 100644 --- a/Makefile +++ b/Makefile @@ -333,6 +333,11 @@ info: ## print out all variables check: # Run code formating check @sbt "check" +.PHONY: fmt +fmt: # Run code formating fix + @sbt "fmt" + + .PHONY: help help: ## this help @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | sort diff --git a/build.sbt b/build.sbt index eb001ce128..a962036640 100644 --- a/build.sbt +++ b/build.sbt @@ -15,7 +15,13 @@ import scala.sys.process.Process ////////////////////////////////////// // when true enables run cancellation w/o exiting sbt -cancelable in Global := true +// use Ctrl-c to stop current task but not quit SBT +Global / cancelable := true + +Global / scalaVersion := Dependencies.ScalaVersion +Global / semanticdbEnabled := true +Global / semanticdbVersion := scalafixSemanticdb.revision +Global / scalafixDependencies += "com.github.liancheng" %% "organize-imports" % "0.6.0" lazy val aggregatedProjects: Seq[ProjectReference] = Seq(webapi, sipi) @@ -51,18 +57,25 @@ lazy val root: Project = Project(id = "root", file(".")) ThisBuild / scmInfo := Some( ScmInfo(url("https://github.com/dasch-swiss/dsp-api"), "scm:git:git@github.com:dasch-swiss/dsp-api.git") ), - Global / scalaVersion := Dependencies.scalaVersion, + Global / scalaVersion := Dependencies.ScalaVersion, // use 'git describe' for deriving the version git.useGitDescribe := true, // override generated version string because docker hub rejects '+' in tags ThisBuild / version ~= (_.replace('+', '-')), - // use Ctrl-c to stop current task but not quit SBT - Global / cancelable := true, - publish / skip := true + publish / skip := true ) -addCommandAlias("fmt", "all root/scalafmtSbt root/scalafmtAll") -addCommandAlias("check", "all root/scalafmtSbtCheck root/scalafmtCheckAll") +addCommandAlias("fmt", "; all root/scalafmtSbt root/scalafmtAll; root/scalafixAll") +addCommandAlias("check", "; all root/scalafmtSbtCheck root/scalafmtCheckAll; root/scalafixAll --check") + +lazy val customScalacOptions = Seq( + "-feature", + "-unchecked", + "-deprecation", + "-Yresolve-term-conflict:package", + "-Ymacro-annotations", + "-Wunused" +) ////////////////////////////////////// // DSP's custom SIPI @@ -151,7 +164,10 @@ lazy val webapi: Project = Project(id = "webapi", base = file("webapi")) "-unchecked", "-deprecation", "-Yresolve-term-conflict:package", - "-Ymacro-annotations" + "-Ymacro-annotations", + // silence twirl templates unused imports warnings + "-Wconf:src=target/.*:s", + "-Wunused:imports" ), logLevel := Level.Info, run / javaOptions := webapiJavaRunOptions, @@ -208,7 +224,7 @@ lazy val webapi: Project = Project(id = "webapi", base = file("webapi")) buildInfoKeys ++= Seq[BuildInfoKey]( name, version, - "akkaHttp" -> Dependencies.akkaHttpVersion, + "akkaHttp" -> Dependencies.AkkaHttpVersion, "sipi" -> Dependencies.sipiImage, "fuseki" -> Dependencies.fusekiImage ), @@ -249,13 +265,7 @@ lazy val webapiJavaTestOptions = Seq( lazy val roleInterface = project .in(file("dsp-role/interface")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "roleInterface", libraryDependencies ++= Dependencies.roleInterfaceLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -265,13 +275,7 @@ lazy val roleInterface = project lazy val roleHandler = project .in(file("dsp-role/handler")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "roleHandler", libraryDependencies ++= Dependencies.roleHandlerLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -285,13 +289,7 @@ lazy val roleHandler = project lazy val roleRepo = project .in(file("dsp-role/repo")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "roleRepo", libraryDependencies ++= Dependencies.roleRepoLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -301,13 +299,7 @@ lazy val roleRepo = project lazy val roleCore = project .in(file("dsp-role/core")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "roleCore", libraryDependencies ++= Dependencies.roleCoreLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -319,13 +311,7 @@ lazy val roleCore = project lazy val userInterface = project .in(file("dsp-user/interface")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "userInterface", libraryDependencies ++= Dependencies.userInterfaceLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -335,13 +321,7 @@ lazy val userInterface = project lazy val userHandler = project .in(file("dsp-user/handler")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "userHandler", libraryDependencies ++= Dependencies.userHandlerLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -355,13 +335,7 @@ lazy val userHandler = project lazy val userRepo = project .in(file("dsp-user/repo")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "userRepo", libraryDependencies ++= Dependencies.userRepoLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -371,13 +345,7 @@ lazy val userRepo = project lazy val userCore = project .in(file("dsp-user/core")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "userCore", libraryDependencies ++= Dependencies.userCoreLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -389,13 +357,7 @@ lazy val userCore = project lazy val schemaCore = project .in(file("dsp-schema/core")) .settings( - scalacOptions ++= Seq( - "-feature", - "-unchecked", - "-deprecation", - "-Yresolve-term-conflict:package", - "-Ymacro-annotations" - ), + scalacOptions ++= customScalacOptions, name := "schemaCore", libraryDependencies ++= Dependencies.schemaCoreLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) @@ -407,6 +369,7 @@ lazy val schemaCore = project lazy val shared = project .in(file("dsp-shared")) .settings( + scalacOptions ++= customScalacOptions, name := "shared", libraryDependencies ++= Dependencies.sharedLibraryDependencies, testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework")) diff --git a/dsp-role/core/src/main/scala/dsp/role/api/RoleRepo.scala b/dsp-role/core/src/main/scala/dsp/role/api/RoleRepo.scala index f43a7ad67e..9e63b82c61 100644 --- a/dsp-role/core/src/main/scala/dsp/role/api/RoleRepo.scala +++ b/dsp-role/core/src/main/scala/dsp/role/api/RoleRepo.scala @@ -5,11 +5,12 @@ package dsp.role.api -import dsp.role.domain.Role -import dsp.valueobjects.Id.RoleId import zio._ import zio.macros.accessible +import dsp.role.domain.Role +import dsp.valueobjects.Id.RoleId + /** * The trait (interface) for the role repository. * The role repository is responsible for storing and retrieving roles. diff --git a/dsp-role/core/src/main/scala/dsp/role/domain/RoleDomain.scala b/dsp-role/core/src/main/scala/dsp/role/domain/RoleDomain.scala index da67c2ba17..61627c731e 100644 --- a/dsp-role/core/src/main/scala/dsp/role/domain/RoleDomain.scala +++ b/dsp-role/core/src/main/scala/dsp/role/domain/RoleDomain.scala @@ -5,12 +5,13 @@ package dsp.role.domain +import zio.prelude.Validation + import dsp.errors.BadRequestException import dsp.valueobjects.Id.RoleId import dsp.valueobjects.Id.UserId import dsp.valueobjects.Permission import dsp.valueobjects.Role._ -import zio.prelude.Validation case class RoleUser( id: UserId diff --git a/dsp-role/core/src/test/scala/dsp/role/domain/RoleDomainSpec.scala b/dsp-role/core/src/test/scala/dsp/role/domain/RoleDomainSpec.scala index 8be54029c1..d026fb6be5 100644 --- a/dsp-role/core/src/test/scala/dsp/role/domain/RoleDomainSpec.scala +++ b/dsp-role/core/src/test/scala/dsp/role/domain/RoleDomainSpec.scala @@ -5,11 +5,12 @@ package dsp.role.domain +import zio.test._ + import dsp.role.sharedtestdata.RoleTestData import dsp.valueobjects.Id import dsp.valueobjects.Permission import dsp.valueobjects.Role._ -import zio.test._ /** * This spec is used to test [[RoleDomain]]. diff --git a/dsp-role/handler/src/main/scala/dsp/role/handler/RoleHandler.scala b/dsp-role/handler/src/main/scala/dsp/role/handler/RoleHandler.scala index f1f1b55b1b..ace6a93d3d 100644 --- a/dsp-role/handler/src/main/scala/dsp/role/handler/RoleHandler.scala +++ b/dsp-role/handler/src/main/scala/dsp/role/handler/RoleHandler.scala @@ -5,6 +5,9 @@ package dsp.role.handler +import zio.ZIO +import zio._ + import dsp.errors.NotFoundException import dsp.errors.RequestRejectedException import dsp.role.api.RoleRepo @@ -13,8 +16,6 @@ import dsp.role.domain.RoleUser import dsp.valueobjects.Id.RoleId import dsp.valueobjects.Permission import dsp.valueobjects.Role._ -import zio.ZIO -import zio._ /** * The role handler. diff --git a/dsp-role/handler/src/test/scala/dsp/role/handler/RoleHandlerSpec.scala b/dsp-role/handler/src/test/scala/dsp/role/handler/RoleHandlerSpec.scala index 86e42cca83..f50add9aba 100644 --- a/dsp-role/handler/src/test/scala/dsp/role/handler/RoleHandlerSpec.scala +++ b/dsp-role/handler/src/test/scala/dsp/role/handler/RoleHandlerSpec.scala @@ -5,19 +5,13 @@ package dsp.role.handler -import dsp.errors.NotFoundException -import dsp.errors.RequestRejectedException -import dsp.role.api.RoleRepo -import dsp.role.domain.Role -import dsp.role.domain.RoleUser +import zio.ZIO +import zio.test._ + import dsp.role.repo.impl.RoleRepoMock import dsp.role.sharedtestdata.RoleTestData -import dsp.valueobjects.Id.RoleId import dsp.valueobjects.Permission import dsp.valueobjects.Role._ -import zio.ZIO -import zio._ -import zio.test._ /** * This spec is used to test [[RoleHandler]] @@ -185,8 +179,8 @@ object RoleHandlerSpec extends ZIOSpecDefault { permission1 ) - deletedRoleId <- handler.deleteRole(roleId) - roles <- handler.getRoles() + _ <- handler.deleteRole(roleId) + roles <- handler.getRoles() } yield assertTrue(roles.size == 0) } }.provide(RoleRepoMock.layer, RoleHandler.layer) diff --git a/dsp-role/repo/src/main/scala/dsp/role/repo/impl/RoleRepoLive.scala b/dsp-role/repo/src/main/scala/dsp/role/repo/impl/RoleRepoLive.scala index 8ec834edc6..083816339e 100644 --- a/dsp-role/repo/src/main/scala/dsp/role/repo/impl/RoleRepoLive.scala +++ b/dsp-role/repo/src/main/scala/dsp/role/repo/impl/RoleRepoLive.scala @@ -5,14 +5,15 @@ package dsp.role.repo.impl -import dsp.role.api.RoleRepo -import dsp.role.domain.Role -import dsp.valueobjects.Id.RoleId import zio._ import zio.stm.TMap import java.util.UUID +import dsp.role.api.RoleRepo +import dsp.role.domain.Role +import dsp.valueobjects.Id.RoleId + /** * Role repo live implementation. * @@ -54,8 +55,8 @@ final case class RoleRepoLive( */ override def deleteRole(id: RoleId): IO[Option[Nothing], RoleId] = (for { - role <- roles.get(id.uuid).some - _ <- roles.delete(id.uuid) + _ <- roles.get(id.uuid).some + _ <- roles.delete(id.uuid) } yield id).commit.tap(_ => ZIO.logInfo(s"Deleted role: ${id.uuid}")) } diff --git a/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoImplSpec.scala b/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoImplSpec.scala index b7e2d4f658..330b5b8ab4 100644 --- a/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoImplSpec.scala +++ b/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoImplSpec.scala @@ -5,13 +5,13 @@ package dsp.role.repo.impl +import zio.test.Assertion._ +import zio.test._ + import dsp.role.api.RoleRepo import dsp.role.repo.impl.RoleRepoLive import dsp.role.repo.impl.RoleRepoMock import dsp.role.sharedtestdata.RoleTestData -import zio._ -import zio.test.Assertion._ -import zio.test._ /** * This spec is used to test all [[RoleRepo]] implementations. diff --git a/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoMock.scala b/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoMock.scala index a2ec357497..1166140905 100644 --- a/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoMock.scala +++ b/dsp-role/repo/src/test/scala/dsp/role/repo/impl/RoleRepoMock.scala @@ -5,14 +5,15 @@ package dsp.role.repo.impl -import dsp.role.api.RoleRepo -import dsp.role.domain.Role -import dsp.valueobjects.Id.RoleId import zio._ import zio.stm.TMap import java.util.UUID +import dsp.role.api.RoleRepo +import dsp.role.domain.Role +import dsp.valueobjects.Id.RoleId + /** * Role repo test implementation. Mocks the [[RoleRepo]] for tests. * @@ -54,8 +55,8 @@ final case class RoleRepoMock( */ override def deleteRole(id: RoleId): IO[Option[Nothing], RoleId] = (for { - role <- roles.get(id.uuid).some - _ <- roles.delete(id.uuid) + _ <- roles.get(id.uuid).some + _ <- roles.delete(id.uuid) } yield id).commit.tap(_ => ZIO.logInfo(s"Deleted role: ${id.uuid}")) } diff --git a/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaCommands.scala b/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaCommands.scala index 1354c2910d..8feac889b5 100644 --- a/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaCommands.scala +++ b/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaCommands.scala @@ -1,12 +1,13 @@ package dsp.schema.domain -import dsp.errors.ValidationException -import dsp.valueobjects.LangString -import dsp.valueobjects.Schema import zio.prelude.Validation import java.time.Instant +import dsp.errors.ValidationException +import dsp.valueobjects.LangString +import dsp.valueobjects.Schema + /** * SmartIri placeholder value object. * WARNING: don't use this in production code. First find a solution how we deal with SmartIri in the new codebase. diff --git a/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaFunctionalDomain.scala b/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaFunctionalDomain.scala index ed2966570c..6e9faeda64 100644 --- a/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaFunctionalDomain.scala +++ b/dsp-schema/core/src/main/scala/dsp/schema/domain/SchemaFunctionalDomain.scala @@ -7,6 +7,8 @@ package dsp.schema.domain import zio.prelude.Validation +import scala.annotation.unused + object SchemaDomain extends App { // implicitly["".type =:= "".type] @@ -80,11 +82,13 @@ object SchemaDomain extends App { sealed trait Ontology[Classes, Properties] { self => def withClass[Tag <: Singleton with String](ontoClass: OntologyClass[Tag])(implicit + @unused ev: NotSubtypeOf[Classes, Tag] ): Ontology[Classes with Tag, Properties] = Ontology.WithClass[Classes, Properties, Tag](self, ontoClass) def withProperty[Tag <: Singleton with String](propertyInfo: OntologyProperty[Tag])(implicit + @unused ev: NotSubtypeOf[Properties, Tag] ): Ontology[Classes, Properties with Tag] = Ontology.WithProperty[Classes, Properties, Tag](self, propertyInfo) diff --git a/dsp-schema/core/src/main/scala/dsp/schema/repo/SchemaRepo.scala b/dsp-schema/core/src/main/scala/dsp/schema/repo/SchemaRepo.scala index 4d4bb5121b..f009d12f14 100644 --- a/dsp-schema/core/src/main/scala/dsp/schema/repo/SchemaRepo.scala +++ b/dsp-schema/core/src/main/scala/dsp/schema/repo/SchemaRepo.scala @@ -1,7 +1,9 @@ package dsp.schema.repo import zio._ -import dsp.schema.domain.SchemaDomain.{UserID, UserProfile} + +import dsp.schema.domain.SchemaDomain.UserID +import dsp.schema.domain.SchemaDomain.UserProfile trait SchemaRepo { def lookup(id: UserID): Task[UserProfile] diff --git a/dsp-schema/core/src/test/scala/dsp/schema/domain/SchemaCommandsSpec.scala b/dsp-schema/core/src/test/scala/dsp/schema/domain/SchemaCommandsSpec.scala index 352f3e7890..6e7bc811e4 100644 --- a/dsp-schema/core/src/test/scala/dsp/schema/domain/SchemaCommandsSpec.scala +++ b/dsp-schema/core/src/test/scala/dsp/schema/domain/SchemaCommandsSpec.scala @@ -1,16 +1,15 @@ package dsp.schema.domain -import dsp.constants.SalsahGui -import dsp.valueobjects.LangString -import dsp.valueobjects.LanguageCode -import dsp.valueobjects.Schema -import zio._ -import zio.prelude.Validation import zio.test.Assertion._ import zio.test._ import java.time.Instant +import dsp.constants.SalsahGui +import dsp.valueobjects.LangString +import dsp.valueobjects.LanguageCode +import dsp.valueobjects.Schema + /** * This spec is used to test [[dsp.schema.domain.SchemaCommands]]. */ @@ -47,5 +46,4 @@ object SchemaCommandsSpec extends ZIOSpecDefault { } yield assert(command.toEither)(isRight)).toZIO } ) - } diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/Group.scala b/dsp-shared/src/main/scala/dsp/valueobjects/Group.scala index c6a0336df7..455d85c614 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/Group.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/Group.scala @@ -6,6 +6,7 @@ package dsp.valueobjects import zio.prelude.Validation + import dsp.errors.BadRequestException object Group { diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/Id.scala b/dsp-shared/src/main/scala/dsp/valueobjects/Id.scala index 6e0998ece2..6c89f7738e 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/Id.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/Id.scala @@ -5,7 +5,6 @@ package dsp.valueobjects -import dsp.errors.BadRequestException import zio.prelude.Validation import java.util.UUID diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/Iri.scala b/dsp-shared/src/main/scala/dsp/valueobjects/Iri.scala index 3fa760fe61..07864a1c54 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/Iri.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/Iri.scala @@ -5,10 +5,11 @@ package dsp.valueobjects -import dsp.errors.BadRequestException import org.apache.commons.validator.routines.UrlValidator import zio.prelude.Validation +import dsp.errors.BadRequestException + sealed trait Iri object Iri { diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/LangString.scala b/dsp-shared/src/main/scala/dsp/valueobjects/LangString.scala index cd04599b65..b48583c436 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/LangString.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/LangString.scala @@ -1,8 +1,9 @@ package dsp.valueobjects -import dsp.errors.ValidationException -import zio.prelude.Validation import zio._ +import zio.prelude.Validation + +import dsp.errors.ValidationException /** * LangString value object diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/LanguageCode.scala b/dsp-shared/src/main/scala/dsp/valueobjects/LanguageCode.scala index 29ecd56db5..b6b271b241 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/LanguageCode.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/LanguageCode.scala @@ -5,9 +5,10 @@ package dsp.valueobjects -import dsp.errors.ValidationException import zio.prelude.Validation +import dsp.errors.ValidationException + /** * LanguageCode value object. */ diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/List.scala b/dsp-shared/src/main/scala/dsp/valueobjects/List.scala index cd366b03f7..0e37cab348 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/List.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/List.scala @@ -6,6 +6,7 @@ package dsp.valueobjects import zio.prelude.Validation + import dsp.errors.BadRequestException object List { diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/Project.scala b/dsp-shared/src/main/scala/dsp/valueobjects/Project.scala index 61512ebbac..886a87387f 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/Project.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/Project.scala @@ -6,6 +6,7 @@ package dsp.valueobjects import zio.prelude.Validation + import dsp.errors.BadRequestException object Project { diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/Role.scala b/dsp-shared/src/main/scala/dsp/valueobjects/Role.scala index 311e93d258..5eb7e32ae2 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/Role.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/Role.scala @@ -5,9 +5,10 @@ package dsp.valueobjects +import zio.prelude.Validation + import dsp.errors.BadRequestException import dsp.valueobjects.LanguageCode -import zio.prelude.Validation object Role { diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/Schema.scala b/dsp-shared/src/main/scala/dsp/valueobjects/Schema.scala index 40671f73c8..66abeb8218 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/Schema.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/Schema.scala @@ -6,15 +6,15 @@ package dsp.valueobjects import com.google.gwt.safehtml.shared.UriUtils.encodeAllowEscapes -import dsp.constants.SalsahGui -import dsp.errors.ValidationException -import dsp.valueobjects.{List => ListGuiElement} import zio.prelude.ZValidation.Failure import zio.prelude.ZValidation.Success import zio.prelude._ import scala.collection.immutable.List +import dsp.constants.SalsahGui +import dsp.errors.ValidationException + object Schema { /** @@ -122,8 +122,8 @@ object Schema { // if there were errors in creating gui attributes or gui element, all of the errors are returned validatedGuiAttributesAndGuiElement match { - case Failure(log, errors) => Validation.failNonEmptyChunk(errors) - case Success(log, value) => GuiObject.make(value._1.toSet, value._2) + case Failure(_, errors) => Validation.failNonEmptyChunk(errors) + case Success(_, value) => GuiObject.make(value._1.toSet, value._2) } } diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/User.scala b/dsp-shared/src/main/scala/dsp/valueobjects/User.scala index ef40f449ba..1d0c940122 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/User.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/User.scala @@ -5,8 +5,6 @@ package dsp.valueobjects -import dsp.errors.BadRequestException -import dsp.errors.ValidationException import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder import zio._ @@ -15,9 +13,11 @@ import zio.prelude.Subtype import zio.prelude.Validation import java.security.SecureRandom -import scala.language.experimental.macros import scala.util.matching.Regex +import dsp.errors.BadRequestException +import dsp.errors.ValidationException + object User { // TODO-mpro: password, givenname, familyname are missing enhanced validation diff --git a/dsp-shared/src/main/scala/dsp/valueobjects/V2.scala b/dsp-shared/src/main/scala/dsp/valueobjects/V2.scala index db4ff688e4..b890ac8b81 100644 --- a/dsp-shared/src/main/scala/dsp/valueobjects/V2.scala +++ b/dsp-shared/src/main/scala/dsp/valueobjects/V2.scala @@ -6,15 +6,15 @@ package dsp.valueobjects import com.google.gwt.safehtml.shared.UriUtils.encodeAllowEscapes -import dsp.errors.BadRequestException import org.apache.commons.lang3.StringUtils -import org.apache.commons.validator.routines.UrlValidator import java.nio.ByteBuffer import java.util.Base64 import java.util.UUID import scala.util.matching.Regex +import dsp.errors.BadRequestException + // TODO-mpro: don't forget to remove all occurances and additional "helper" // implementations in webapi project which needed to be added temporary in order // to avoid circular dependencies after moving value objects to separate project. diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/GroupSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/GroupSpec.scala index 2a906226e2..b5106cf7de 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/GroupSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/GroupSpec.scala @@ -5,10 +5,11 @@ package dsp.valueobjects -import dsp.valueobjects.Group._ import zio.prelude.Validation import zio.test._ + import dsp.errors.BadRequestException +import dsp.valueobjects.Group._ /** * This spec is used to test the [[Group]] value objects creation. diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/IriSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/IriSpec.scala index 71f37e2cee..718cb71304 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/IriSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/IriSpec.scala @@ -5,10 +5,11 @@ package dsp.valueobjects -import dsp.valueobjects.Iri._ import zio.prelude.Validation import zio.test._ + import dsp.errors.BadRequestException +import dsp.valueobjects.Iri._ /** * This spec is used to test the [[Iri]] value objects creation. @@ -26,7 +27,7 @@ object IriSpec extends ZIOSpecDefault { val validUserIri = "http://rdfh.ch/users/jDEEitJESRi3pDaDjjQ1WQ" val userIriWithUUIDVersion3 = "http://rdfh.ch/users/cCmdcpn2MO211YYOplR1hQ" - def spec = (groupIriTest + listIriTest + projectIriTest) + def spec = (groupIriTest + listIriTest + projectIriTest + RoleIriTest + UserIriTest) private val groupIriTest = suite("IriSpec - GroupIri")( test("pass an empty value and return an error") { diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/LangStringSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/LangStringSpec.scala index 844c895181..95f5066b66 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/LangStringSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/LangStringSpec.scala @@ -5,16 +5,15 @@ package dsp.valueobjects -import dsp.errors.ValidationException import zio.prelude.Validation import zio.test._ +import dsp.errors.ValidationException + /** * This spec is used to test the [[dsp.valueobjects.LangString]] value objects creation. */ object LangStringSpec extends ZIOSpecDefault { - private val validLanguageCode = "de" - private val invalidLanguageCode = "00" def spec = (langStringTest) diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/LanguageCodeSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/LanguageCodeSpec.scala index cb2280d05d..880a8537f3 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/LanguageCodeSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/LanguageCodeSpec.scala @@ -5,10 +5,11 @@ package dsp.valueobjects -import dsp.errors.ValidationException import zio.prelude.Validation import zio.test._ +import dsp.errors.ValidationException + object LanguageCodeSpec extends ZIOSpecDefault { private val validLanguageCode = "de" diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/ListSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/ListSpec.scala index 68e4204a8b..e2e490f64d 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/ListSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/ListSpec.scala @@ -5,10 +5,11 @@ package dsp.valueobjects -import dsp.valueobjects.List._ import zio.prelude.Validation import zio.test._ + import dsp.errors.BadRequestException +import dsp.valueobjects.List._ /** * This spec is used to test the [[List]] value objects creation. diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/ProjectSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/ProjectSpec.scala index 01fb80699d..432ee279e4 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/ProjectSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/ProjectSpec.scala @@ -5,10 +5,11 @@ package dsp.valueobjects -import dsp.valueobjects.Project._ import zio.prelude.Validation import zio.test._ + import dsp.errors.BadRequestException +import dsp.valueobjects.Project._ /** * This spec is used to test the [[Project]] value objects creation. diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/RoleSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/RoleSpec.scala index 910c5e8f5d..dd52a3dc7a 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/RoleSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/RoleSpec.scala @@ -5,13 +5,14 @@ package dsp.valueobjects -import dsp.errors.BadRequestException -import dsp.valueobjects.Role._ -import dsp.valueobjects.LanguageCode import zio.prelude.Validation import zio.test.ZIOSpecDefault import zio.test._ +import dsp.errors.BadRequestException +import dsp.valueobjects.LanguageCode +import dsp.valueobjects.Role._ + /** * This spec is used to test the [[Role]] value objects creation. */ diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/SchemaSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/SchemaSpec.scala index 396976ed74..80e6d51ac2 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/SchemaSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/SchemaSpec.scala @@ -5,13 +5,13 @@ package dsp.valueobjects -import dsp.constants.SalsahGui -import dsp.errors.ValidationException -import dsp.valueobjects.User._ import zio.NonEmptyChunk import zio.prelude.Validation import zio.test._ +import dsp.constants.SalsahGui +import dsp.errors.ValidationException + /** * This spec is used to test the [[dsp.valueobjects.User]] value objects creation. */ diff --git a/dsp-shared/src/test/scala/dsp/valueobjects/UserSpec.scala b/dsp-shared/src/test/scala/dsp/valueobjects/UserSpec.scala index 08f45f0f12..6404f6790a 100644 --- a/dsp-shared/src/test/scala/dsp/valueobjects/UserSpec.scala +++ b/dsp-shared/src/test/scala/dsp/valueobjects/UserSpec.scala @@ -5,12 +5,12 @@ package dsp.valueobjects -import dsp.errors.BadRequestException -import dsp.errors.ValidationException -import dsp.valueobjects.User._ import zio.prelude.Validation import zio.test._ +import dsp.errors.BadRequestException +import dsp.valueobjects.User._ + /** * This spec is used to test the [[dsp.valueobjects.User]] value objects creation. */ diff --git a/dsp-user/core/src/main/scala/dsp/user/api/UserRepo.scala b/dsp-user/core/src/main/scala/dsp/user/api/UserRepo.scala index d6b08ff649..a21314955e 100644 --- a/dsp-user/core/src/main/scala/dsp/user/api/UserRepo.scala +++ b/dsp-user/core/src/main/scala/dsp/user/api/UserRepo.scala @@ -5,14 +5,12 @@ package dsp.user.api -import dsp.errors._ -import dsp.user.domain._ -import dsp.valueobjects.Id.UserId -import dsp.valueobjects.User._ import zio._ import zio.macros.accessible -import java.util.UUID +import dsp.user.domain._ +import dsp.valueobjects.Id.UserId +import dsp.valueobjects.User._ /** * The trait (interface) for the user repository. The user repository is responsible for storing and retrieving users. diff --git a/dsp-user/core/src/main/scala/dsp/user/domain/UserDomain.scala b/dsp-user/core/src/main/scala/dsp/user/domain/UserDomain.scala index da632f17be..acb237d897 100644 --- a/dsp-user/core/src/main/scala/dsp/user/domain/UserDomain.scala +++ b/dsp-user/core/src/main/scala/dsp/user/domain/UserDomain.scala @@ -5,13 +5,12 @@ package dsp.user.domain +import zio.prelude.Validation + import dsp.errors.ValidationException import dsp.valueobjects.Id.UserId import dsp.valueobjects.LanguageCode import dsp.valueobjects.User._ -import zio.prelude.Validation - -import java.util.UUID /** * Represents the user domain object. diff --git a/dsp-user/core/src/test/scala/dsp/user/domain/UserDomainSpec.scala b/dsp-user/core/src/test/scala/dsp/user/domain/UserDomainSpec.scala index b017fc0991..950fad4695 100644 --- a/dsp-user/core/src/test/scala/dsp/user/domain/UserDomainSpec.scala +++ b/dsp-user/core/src/test/scala/dsp/user/domain/UserDomainSpec.scala @@ -5,14 +5,12 @@ package dsp.user.domain +import zio.test._ + import dsp.user.domain.User -import dsp.user.domain._ import dsp.user.sharedtestdata.SharedTestData import dsp.valueobjects.LanguageCode import dsp.valueobjects.User._ -import zio.ZLayer -import zio._ -import zio.test._ /** * This spec is used to test [[dsp.user.domain.UserDomain]]. diff --git a/dsp-user/core/src/test/scala/dsp/user/sharedtestdata/SharedTestData.scala b/dsp-user/core/src/test/scala/dsp/user/sharedtestdata/SharedTestData.scala index f1150e0d3b..6b0649da0b 100644 --- a/dsp-user/core/src/test/scala/dsp/user/sharedtestdata/SharedTestData.scala +++ b/dsp-user/core/src/test/scala/dsp/user/sharedtestdata/SharedTestData.scala @@ -5,12 +5,10 @@ package dsp.user.sharedtestdata -import dsp.errors.BadRequestException import dsp.user.domain.User import dsp.valueobjects.Id import dsp.valueobjects.LanguageCode import dsp.valueobjects.User._ -import zio.prelude.Validation object SharedTestData { val passwordStrength = PasswordStrength(12) diff --git a/dsp-user/handler/src/main/scala/dsp/user/handler/UserHandler.scala b/dsp-user/handler/src/main/scala/dsp/user/handler/UserHandler.scala index ddf3376436..b49d1510f9 100644 --- a/dsp-user/handler/src/main/scala/dsp/user/handler/UserHandler.scala +++ b/dsp-user/handler/src/main/scala/dsp/user/handler/UserHandler.scala @@ -5,10 +5,10 @@ package dsp.user.handler -import dsp.errors.BadRequestException +import zio._ + import dsp.errors.DuplicateValueException import dsp.errors.ForbiddenException -import dsp.errors.KnoraException import dsp.errors.NotFoundException import dsp.errors.RequestRejectedException import dsp.user.api.UserRepo @@ -16,9 +16,6 @@ import dsp.user.domain.User import dsp.valueobjects.Id.UserId import dsp.valueobjects.LanguageCode import dsp.valueobjects.User._ -import zio._ - -import java.util.UUID /** * The user handler. diff --git a/dsp-user/handler/src/test/scala/dsp/user/handler/UserHandlerSpec.scala b/dsp-user/handler/src/test/scala/dsp/user/handler/UserHandlerSpec.scala index a60d1bcca1..60cb70889c 100644 --- a/dsp-user/handler/src/test/scala/dsp/user/handler/UserHandlerSpec.scala +++ b/dsp-user/handler/src/test/scala/dsp/user/handler/UserHandlerSpec.scala @@ -5,21 +5,18 @@ package dsp.user.handler +import zio._ +import zio.test.Assertion._ +import zio.test._ + import dsp.errors.DuplicateValueException import dsp.errors.ForbiddenException import dsp.errors.NotFoundException -import dsp.user.domain.User -import dsp.user.domain._ import dsp.user.repo.impl.UserRepoMock import dsp.user.sharedtestdata.SharedTestData import dsp.valueobjects.Id.UserId import dsp.valueobjects.LanguageCode import dsp.valueobjects.User._ -import dsp.valueobjects.UserErrorMessages -import zio.ZLayer -import zio._ -import zio.test.Assertion._ -import zio.test._ /** * This spec is used to test [[dsp.user.handler.UserHandler]]. @@ -107,7 +104,6 @@ object UserHandlerSpec extends ZIOSpecDefault { familyName1 <- SharedTestData.familyName1.toZIO password1 <- SharedTestData.password1.toZIO - username2 <- SharedTestData.username2.toZIO email2 <- SharedTestData.email2.toZIO givenName2 <- SharedTestData.givenName2.toZIO familyName2 <- SharedTestData.familyName2.toZIO @@ -153,7 +149,6 @@ object UserHandlerSpec extends ZIOSpecDefault { password1 <- SharedTestData.password1.toZIO username2 <- SharedTestData.username2.toZIO - email2 <- SharedTestData.email2.toZIO givenName2 <- SharedTestData.givenName2.toZIO familyName2 <- SharedTestData.familyName2.toZIO password2 <- SharedTestData.password2.toZIO @@ -240,15 +235,15 @@ object UserHandlerSpec extends ZIOSpecDefault { language <- SharedTestData.languageEn.toZIO status <- SharedTestData.statusTrue.toZIO - userId <- userHandler.createUser( - username1, - email1, - givenName1, - familyName1, - password1, - language, - status - ) + _ <- userHandler.createUser( + username1, + email1, + givenName1, + familyName1, + password1, + language, + status + ) retrievedUser <- userHandler.getUserByUsername(username1) } yield assertTrue(retrievedUser.username == username1) && @@ -278,15 +273,15 @@ object UserHandlerSpec extends ZIOSpecDefault { language <- SharedTestData.languageEn.toZIO status <- SharedTestData.statusTrue.toZIO - userId <- userHandler.createUser( - username1, - email1, - givenName1, - familyName1, - password1, - language, - status - ) + _ <- userHandler.createUser( + username1, + email1, + givenName1, + familyName1, + password1, + language, + status + ) retrievedUser <- userHandler.getUserByEmail(email1) } yield assertTrue(retrievedUser.username == username1) && @@ -331,8 +326,9 @@ object UserHandlerSpec extends ZIOSpecDefault { language, status ) - idOfUpdatedUser <- userHandler.updateUsername(userId, newValue) - retrievedUser <- userHandler.getUserById(userId) + + _ <- userHandler.updateUsername(userId, newValue) + retrievedUser <- userHandler.getUserById(userId) } yield assertTrue(retrievedUser.username == newValue) && assertTrue(retrievedUser.username != username1) && assertTrue(retrievedUser.email == email1) && @@ -393,8 +389,8 @@ object UserHandlerSpec extends ZIOSpecDefault { status ) - idOfUpdatedUser <- userHandler.updateEmail(userId, newValue) - retrievedUser <- userHandler.getUserById(userId) + _ <- userHandler.updateEmail(userId, newValue) + retrievedUser <- userHandler.getUserById(userId) } yield assertTrue(retrievedUser.email == newValue) && assertTrue(retrievedUser.username == username1) && assertTrue(retrievedUser.email != email1) && @@ -455,8 +451,8 @@ object UserHandlerSpec extends ZIOSpecDefault { status ) - idOfUpdatedUser <- userHandler.updateGivenName(userId, newValue) - retrievedUser <- userHandler.getUserById(userId) + _ <- userHandler.updateGivenName(userId, newValue) + retrievedUser <- userHandler.getUserById(userId) } yield assertTrue(retrievedUser.givenName == newValue) && assertTrue(retrievedUser.username == username1) && assertTrue(retrievedUser.email == email1) && @@ -490,8 +486,8 @@ object UserHandlerSpec extends ZIOSpecDefault { status ) - idOfUpdatedUser <- userHandler.updateFamilyName(userId, newValue) - retrievedUser <- userHandler.getUserById(userId) + _ <- userHandler.updateFamilyName(userId, newValue) + retrievedUser <- userHandler.getUserById(userId) } yield assertTrue(retrievedUser.familyName == newValue) && assertTrue(retrievedUser.username == username1) && assertTrue(retrievedUser.email == email1) && @@ -525,9 +521,10 @@ object UserHandlerSpec extends ZIOSpecDefault { language, status ) - storedUser <- userHandler.getUserById(userId) - idOfUpdatedUser <- userHandler.updatePassword(userId, newValue, storedUser.password, storedUser) - retrievedUser <- userHandler.getUserById(userId) + + storedUser <- userHandler.getUserById(userId) + _ <- userHandler.updatePassword(userId, newValue, storedUser.password, storedUser) + retrievedUser <- userHandler.getUserById(userId) } yield assertTrue(retrievedUser.password == newValue) && assertTrue(retrievedUser.username == username1) && assertTrue(retrievedUser.email == email1) && @@ -632,8 +629,8 @@ object UserHandlerSpec extends ZIOSpecDefault { status ) - idOfUpdatedUser <- userHandler.updateLanguage(userId, newValue) - retrievedUser <- userHandler.getUserById(userId) + _ <- userHandler.updateLanguage(userId, newValue) + retrievedUser <- userHandler.getUserById(userId) } yield assertTrue(retrievedUser.language == newValue) && assertTrue(retrievedUser.username == username1) && assertTrue(retrievedUser.email == email1) && diff --git a/dsp-user/repo/src/main/scala/dsp/user/repo/impl/UserRepoLive.scala b/dsp-user/repo/src/main/scala/dsp/user/repo/impl/UserRepoLive.scala index b22c9cb85d..1a212ad9c2 100644 --- a/dsp-user/repo/src/main/scala/dsp/user/repo/impl/UserRepoLive.scala +++ b/dsp-user/repo/src/main/scala/dsp/user/repo/impl/UserRepoLive.scala @@ -5,12 +5,13 @@ package dsp.user.repo.impl -import dsp.user.api.UserRepo -import dsp.user.domain.User import zio._ import zio.stm.TMap import java.util.UUID + +import dsp.user.api.UserRepo +import dsp.user.domain.User import dsp.valueobjects.Id.UserId import dsp.valueobjects.User._ diff --git a/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoImplSpec.scala b/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoImplSpec.scala index 870791a948..1c6a321fc8 100644 --- a/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoImplSpec.scala +++ b/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoImplSpec.scala @@ -5,18 +5,12 @@ package dsp.user.repo.impl -import dsp.errors.BadRequestException +import zio.test.Assertion._ +import zio.test._ + import dsp.user.api.UserRepo -import dsp.user.domain.User import dsp.user.repo.impl.UserRepoLive import dsp.user.repo.impl.UserRepoMock -import dsp.valueobjects.User._ -import zio._ -import zio.prelude.Validation -import zio.prelude.ZValidation -import zio.test._ -import zio.test.Assertion._ -import dsp.errors.DuplicateValueException import dsp.user.sharedtestdata.SharedTestData /** diff --git a/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoMock.scala b/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoMock.scala index 92cd79b7fb..29a6a9eb7a 100644 --- a/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoMock.scala +++ b/dsp-user/repo/src/test/scala/dsp/user/repo/impl/UserRepoMock.scala @@ -5,12 +5,13 @@ package dsp.user.repo.impl -import dsp.user.api.UserRepo -import dsp.user.domain.User import zio._ import zio.stm.TMap import java.util.UUID + +import dsp.user.api.UserRepo +import dsp.user.domain.User import dsp.valueobjects.Id.UserId import dsp.valueobjects.User._ @@ -110,8 +111,8 @@ final case class UserRepoMock( /** * @inheritDoc */ - def deleteUser(id: UserId): IO[Option[Nothing], UserId] = { - val userStatusFalse = UserStatus.make(false).fold(e => throw e.head, v => v) + def deleteUser(id: UserId): IO[Option[Nothing], UserId] = + // val userStatusFalse = UserStatus.make(false).fold(e => throw e.head, v => v) (for { user: User <- users.get(id.uuid).some @@ -120,7 +121,6 @@ final case class UserRepoMock( _ <- lookupTableUsernameToUuid.delete(user.username) // remove the user also from the lookup table _ <- lookupTableEmailToUuid.delete(user.email) // remove the user also from the lookup table } yield id).commit.tap(_ => ZIO.logInfo(s"Deleted user: ${id}")) - } } diff --git a/project/Dependencies.scala b/project/Dependencies.scala index c20762aa98..34954751ac 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -14,12 +14,12 @@ object Dependencies { "daschswiss/apache-jena-fuseki:2.0.8" // should be the same version as in docker-compose.yml, also make sure to use the same version when deploying it (i.e. version in ops-deploy)! val sipiImage = "daschswiss/sipi:3.5.0" // base image the knora-sipi image is created from - // versions - val akkaHttpVersion = "10.2.9" - val akkaVersion = "2.6.19" - val jenaVersion = "4.5.0" - val metricsVersion = "4.0.1" - val scalaVersion = "2.13.8" + val ScalaVersion = "2.13.8" + + val AkkaHttpVersion = "10.2.9" + val AkkaActorVersion = "2.6.19" + val JenaVersion = "4.5.0" + val ZioVersion = "2.0.0" val ZioHttpVersion = "2.0.0-RC4" val ZioJsonVersion = "0.3.0-RC11" @@ -44,15 +44,15 @@ object Dependencies { val zioTestSbt = "dev.zio" %% "zio-test-sbt" % "2.0.1" // akka - val akkaActor = "com.typesafe.akka" %% "akka-actor" % akkaVersion // Scala 3 compatible - val akkaHttp = "com.typesafe.akka" %% "akka-http" % akkaHttpVersion // Scala 3 incompatible - val akkaHttpCors = "ch.megard" %% "akka-http-cors" % "1.1.3" // Scala 3 incompatible - val akkaHttpSprayJson = "com.typesafe.akka" %% "akka-http-spray-json" % akkaHttpVersion // Scala 3 incompatible - val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % akkaVersion // Scala 3 compatible - val akkaStream = "com.typesafe.akka" %% "akka-stream" % akkaVersion // Scala 3 compatible + val akkaActor = "com.typesafe.akka" %% "akka-actor" % AkkaActorVersion // Scala 3 compatible + val akkaHttp = "com.typesafe.akka" %% "akka-http" % AkkaHttpVersion // Scala 3 incompatible + val akkaHttpCors = "ch.megard" %% "akka-http-cors" % "1.1.3" // Scala 3 incompatible + val akkaHttpSprayJson = "com.typesafe.akka" %% "akka-http-spray-json" % AkkaHttpVersion // Scala 3 incompatible + val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % AkkaActorVersion // Scala 3 compatible + val akkaStream = "com.typesafe.akka" %% "akka-stream" % AkkaActorVersion // Scala 3 compatible // jena - val jenaText = "org.apache.jena" % "jena-text" % jenaVersion + val jenaText = "org.apache.jena" % "jena-text" % JenaVersion // logging val logbackClassic = "ch.qos.logback" % "logback-classic" % "1.2.11" @@ -99,12 +99,12 @@ object Dependencies { val jacksonDatabind = "com.fasterxml.jackson.core" % "jackson-databind" % "2.13.3" // test - val akkaHttpTestkit = "com.typesafe.akka" %% "akka-http-testkit" % akkaHttpVersion // Scala 3 incompatible - val akkaStreamTestkit = "com.typesafe.akka" %% "akka-stream-testkit" % akkaVersion // Scala 3 compatible - val akkaTestkit = "com.typesafe.akka" %% "akka-testkit" % akkaVersion // Scala 3 compatible + val akkaHttpTestkit = "com.typesafe.akka" %% "akka-http-testkit" % AkkaHttpVersion // Scala 3 incompatible + val akkaStreamTestkit = "com.typesafe.akka" %% "akka-stream-testkit" % AkkaActorVersion // Scala 3 compatible + val akkaTestkit = "com.typesafe.akka" %% "akka-testkit" % AkkaActorVersion // Scala 3 compatible val gatlingHighcharts = "io.gatling.highcharts" % "gatling-charts-highcharts" % "3.8.2" val gatlingTestFramework = "io.gatling" % "gatling-test-framework" % "3.8.2" - val scalaTest = "org.scalatest" %% "scalatest" % "3.2.13" // Scala 3 compatible + val scalaTest = "org.scalatest" %% "scalatest" % "3.2.13" // Scala 3 compatible val testcontainers = "org.testcontainers" % "testcontainers" % "1.17.3" // found/added by the plugin but deleted anyway diff --git a/project/plugins.sbt b/project/plugins.sbt index 871ea195f2..77ed10f9a6 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -15,6 +15,7 @@ addSbtPlugin("io.gatling" % "gatling-sbt" % "2.2.2") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.9.3") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.1") // ad-hoc plugins - uncomment on demenad and keep it commented out in main branch diff --git a/webapi/src/main/scala/org/knora/webapi/app/ApplicationActor.scala b/webapi/src/main/scala/org/knora/webapi/app/ApplicationActor.scala index f9b5524252..b4d045aa20 100644 --- a/webapi/src/main/scala/org/knora/webapi/app/ApplicationActor.scala +++ b/webapi/src/main/scala/org/knora/webapi/app/ApplicationActor.scala @@ -6,37 +6,43 @@ package org.knora.webapi.app import akka.actor.Actor -import akka.actor.ActorLogging -import akka.actor.ActorRef import akka.actor.ActorSystem import akka.actor.OneForOneStrategy import akka.actor.Props import akka.actor.Stash import akka.actor.SupervisorStrategy._ import akka.actor.Timers -import akka.event.Logging import akka.http.scaladsl.Http import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route +import akka.routing.RoundRobinPool import akka.stream.Materializer import akka.util.Timeout import ch.megard.akka.http.cors.scaladsl.CorsDirectives import ch.megard.akka.http.cors.scaladsl.settings.CorsSettings import com.typesafe.scalalogging.Logger -import org.knora.webapi.config.AppConfig -import org.knora.webapi.core.LiveActorMaker +import redis.clients.jedis.exceptions.JedisConnectionException + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future +import scala.concurrent.duration._ +import scala.util.Failure +import scala.util.Success + import dsp.errors.InconsistentRepositoryDataException import dsp.errors.MissingLastModificationDateOntologyException import dsp.errors.UnexpectedMessageException import dsp.errors.UnsupportedValueException +import org.knora.webapi.config.AppConfig import org.knora.webapi.http.directives.DSPApiDirectives import org.knora.webapi.http.version.ServerVersion -import org.knora.webapi.messages.ResponderRequest._ +import org.knora.webapi.messages.ResponderRequest import org.knora.webapi.messages.app.appmessages._ -import org.knora.webapi.messages.store.StoreRequest import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceGetStatus +import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceRequest import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceStatusNOK import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceStatusOK +import org.knora.webapi.messages.store.sipimessages.IIIFRequest import org.knora.webapi.messages.store.sipimessages.IIIFServiceGetStatus import org.knora.webapi.messages.store.sipimessages.IIIFServiceStatusNOK import org.knora.webapi.messages.store.sipimessages.IIIFServiceStatusOK @@ -53,26 +59,12 @@ import org.knora.webapi.routing.v2._ import org.knora.webapi.settings.KnoraDispatchers import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.settings.KnoraSettingsImpl -import org.knora.webapi.settings._ import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.cache.settings.CacheServiceSettings import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.errors.SipiException -import org.knora.webapi.util.ActorUtil.future2Message -import org.knora.webapi.util.cache.CacheUtil -import redis.clients.jedis.exceptions.JedisConnectionException - -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration._ -import scala.util.Failure -import scala.util.Success -import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceRequest -import org.knora.webapi.messages.store.sipimessages.IIIFRequest -import org.knora.webapi.util.ActorUtil import org.knora.webapi.store.triplestore.TriplestoreServiceManager -import org.knora.webapi.messages.ResponderRequest -import akka.routing.RoundRobinPool +import org.knora.webapi.util.cache.CacheUtil /** * This is the first actor in the application. All other actors are children diff --git a/webapi/src/main/scala/org/knora/webapi/app/ApplicationRouterActor.scala b/webapi/src/main/scala/org/knora/webapi/app/ApplicationRouterActor.scala index f7a69155fb..dace7ab76a 100644 --- a/webapi/src/main/scala/org/knora/webapi/app/ApplicationRouterActor.scala +++ b/webapi/src/main/scala/org/knora/webapi/app/ApplicationRouterActor.scala @@ -1,18 +1,20 @@ package org.knora.webapi.app import akka.actor.Actor -import org.knora.webapi.messages.ResponderRequest import com.typesafe.scalalogging.Logger -import org.knora.webapi.responders.ResponderManager -import org.knora.webapi.util.ActorUtil + import scala.concurrent.ExecutionContext + +import org.knora.webapi.config.AppConfig +import org.knora.webapi.messages.ResponderRequest import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceRequest import org.knora.webapi.messages.store.sipimessages.IIIFRequest import org.knora.webapi.messages.store.triplestoremessages.TriplestoreRequest +import org.knora.webapi.responders.ResponderManager +import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.triplestore.TriplestoreServiceManager -import org.knora.webapi.store.cache.CacheServiceManager -import org.knora.webapi.config.AppConfig +import org.knora.webapi.util.ActorUtil class ApplicationRouterActor( responderManager: ResponderManager, diff --git a/webapi/src/main/scala/org/knora/webapi/app/LiveCore.scala b/webapi/src/main/scala/org/knora/webapi/app/LiveCore.scala index b34281bf1c..a932da61d7 100644 --- a/webapi/src/main/scala/org/knora/webapi/app/LiveCore.scala +++ b/webapi/src/main/scala/org/knora/webapi/app/LiveCore.scala @@ -7,6 +7,9 @@ package org.knora.webapi.app import akka.actor._ import akka.stream.Materializer + +import scala.concurrent.ExecutionContext + import org.knora.webapi.core.Core import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.util.rdf.RdfFeatureFactory @@ -15,9 +18,6 @@ import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.settings._ -import scala.concurrent.ExecutionContext -import org.knora.webapi.store.cache.settings.CacheServiceSettings - /** * The applications actor system. */ diff --git a/webapi/src/main/scala/org/knora/webapi/app/Main.scala b/webapi/src/main/scala/org/knora/webapi/app/Main.scala index e5ab602721..518680b271 100644 --- a/webapi/src/main/scala/org/knora/webapi/app/Main.scala +++ b/webapi/src/main/scala/org/knora/webapi/app/Main.scala @@ -6,6 +6,10 @@ package org.knora.webapi.app import akka.actor.Terminated +import zio._ + +import java.util.concurrent.TimeUnit + import org.knora.webapi.auth.JWTService import org.knora.webapi.config.AppConfig import org.knora.webapi.core.Logging @@ -17,9 +21,6 @@ import org.knora.webapi.store.iiif.impl.IIIFServiceSipiImpl import org.knora.webapi.store.triplestore.TriplestoreServiceManager import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import zio._ - -import java.util.concurrent.TimeUnit /** * Starts Knora by bringing everything into scope by using the cake pattern. diff --git a/webapi/src/main/scala/org/knora/webapi/auth/JWTService.scala b/webapi/src/main/scala/org/knora/webapi/auth/JWTService.scala index fc70ed57d3..5a60b0b962 100644 --- a/webapi/src/main/scala/org/knora/webapi/auth/JWTService.scala +++ b/webapi/src/main/scala/org/knora/webapi/auth/JWTService.scala @@ -1,10 +1,11 @@ package org.knora.webapi.auth +import spray.json.JsValue +import zio._ + import org.knora.webapi._ import org.knora.webapi.config._ import org.knora.webapi.routing.JWTHelper -import spray.json.JsValue -import zio._ final case class JWTService(config: AppConfig) { diff --git a/webapi/src/main/scala/org/knora/webapi/config/AppConfig.scala b/webapi/src/main/scala/org/knora/webapi/config/AppConfig.scala index 26a521af3a..9b874c23de 100644 --- a/webapi/src/main/scala/org/knora/webapi/config/AppConfig.scala +++ b/webapi/src/main/scala/org/knora/webapi/config/AppConfig.scala @@ -8,7 +8,6 @@ import scala.concurrent.duration import typesafe._ import magnolia._ -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject /** * Represents (eventually) the complete configuration as defined in application.conf. diff --git a/webapi/src/main/scala/org/knora/webapi/core/Core.scala b/webapi/src/main/scala/org/knora/webapi/core/Core.scala index b832652ecf..1f30ae5ba5 100644 --- a/webapi/src/main/scala/org/knora/webapi/core/Core.scala +++ b/webapi/src/main/scala/org/knora/webapi/core/Core.scala @@ -8,14 +8,15 @@ package org.knora.webapi.core import akka.actor.ActorRef import akka.actor.ActorSystem import akka.stream.Materializer + +import scala.concurrent.ExecutionContext + import org.knora.webapi.config.AppConfig import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.triplestore.TriplestoreServiceManager -import scala.concurrent.ExecutionContext - /** * Knora Core abstraction. */ diff --git a/webapi/src/main/scala/org/knora/webapi/core/Logging.scala b/webapi/src/main/scala/org/knora/webapi/core/Logging.scala index 7f5c3bf9bb..fdd9721b6e 100644 --- a/webapi/src/main/scala/org/knora/webapi/core/Logging.scala +++ b/webapi/src/main/scala/org/knora/webapi/core/Logging.scala @@ -1,9 +1,9 @@ package org.knora.webapi.core import zio.LogLevel +import zio.ZLayer import zio.logging.LogFormat._ import zio.logging._ -import zio.ZLayer import zio.logging.backend.SLF4J object Logging { @@ -34,5 +34,4 @@ object Logging { val slf4j = SLF4J.slf4j(LogLevel.Debug, slf4jFormat, _ => "zio-slf4j-logger") - } diff --git a/webapi/src/main/scala/org/knora/webapi/http/directives/DSPApiDirectives.scala b/webapi/src/main/scala/org/knora/webapi/http/directives/DSPApiDirectives.scala index f996d08618..08a1319134 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/directives/DSPApiDirectives.scala +++ b/webapi/src/main/scala/org/knora/webapi/http/directives/DSPApiDirectives.scala @@ -12,6 +12,7 @@ import akka.http.scaladsl.server.Directives.handleRejections import akka.http.scaladsl.server.ExceptionHandler import akka.http.scaladsl.server.RejectionHandler import ch.megard.akka.http.cors.scaladsl.CorsDirectives + import org.knora.webapi.http.handler.KnoraExceptionHandler import org.knora.webapi.settings.KnoraSettings diff --git a/webapi/src/main/scala/org/knora/webapi/http/handler/KnoraExceptionHandler.scala b/webapi/src/main/scala/org/knora/webapi/http/handler/KnoraExceptionHandler.scala index f92db4b411..5a16c322b4 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/handler/KnoraExceptionHandler.scala +++ b/webapi/src/main/scala/org/knora/webapi/http/handler/KnoraExceptionHandler.scala @@ -10,6 +10,11 @@ import akka.http.scaladsl.server.Directives.complete import akka.http.scaladsl.server.Directives.extractRequest import akka.http.scaladsl.server.ExceptionHandler import com.typesafe.scalalogging.LazyLogging +import spray.json.JsNumber +import spray.json.JsObject +import spray.json.JsString +import spray.json.JsValue + import dsp.errors.InternalServerException import dsp.errors.RequestRejectedException import org.knora.webapi.http.status.ApiStatusCodesV1 @@ -19,11 +24,6 @@ import org.knora.webapi.messages.util.rdf.JsonLDDocument import org.knora.webapi.messages.util.rdf.JsonLDObject import org.knora.webapi.messages.util.rdf.JsonLDString import org.knora.webapi.settings.KnoraSettingsImpl -import spray.json.JsNumber -import spray.json.JsObject -import spray.json.JsString -import spray.json.JsValue -import dsp.errors.BadRequestException /** * The Knora exception handler is used by akka-http to convert any exceptions thrown during route processing @@ -174,113 +174,6 @@ object KnoraExceptionHandler extends LazyLogging { ) } - /** - * Converts an exception to an HTTP response in HTML format specific to `V1`. - * - * @param ex the exception to be converted. - * @return an [[HttpResponse]] in HTML format. - */ - private def exceptionToHtmlHttpResponseV1(ex: Throwable, settings: KnoraSettingsImpl): HttpResponse = { - // Get the API status code that corresponds to the exception. - val apiStatus: ApiStatusCodesV1.Value = ApiStatusCodesV1.fromException(ex) - - // Convert the API status code to the corresponding HTTP status code. - val httpStatus: StatusCode = ApiStatusCodesV1.toHttpStatus(apiStatus) - - // Generate an HTTP response containing the error message, the API status code, and the HTTP status code. - HttpResponse( - status = httpStatus, - entity = HttpEntity( - ContentTypes.`text/xml(UTF-8)`, - - - Error - - -

Error

-

- - {makeClientErrorMessage(ex, settings)} - -

-

Status code

-

- - {apiStatus.id} - -

- - .toString() - ) - ) - } - - /** - * Converts an exception to an HTTP response in HTML format specific to `V2`. - * - * @param ex the exception to be converted. - * @return an [[HttpResponse]] in HTML format. - */ - private def exceptionToHtmlHttpResponseV2(ex: Throwable, settings: KnoraSettingsImpl): HttpResponse = { - - // Get the HTTP status code that corresponds to the exception. - val httpStatus: StatusCode = ApiStatusCodesV2.fromException(ex) - - // Generate an HTTP response containing the error message and the HTTP status code. - HttpResponse( - status = httpStatus, - entity = HttpEntity( - ContentTypes.`text/xml(UTF-8)`, - - - Error - - -

Error

-

- - {makeClientErrorMessage(ex, settings)} - -

- - .toString() - ) - ) - } - - /** - * Converts an exception to an HTTP response in HTML format specific to `ADM`. - * - * @param ex the exception to be converted. - * @return an [[HttpResponse]] in HTML format. - */ - private def exceptionToHtmlHttpResponseADM(ex: Throwable, settings: KnoraSettingsImpl): HttpResponse = { - - // Get the HTTP status code that corresponds to the exception. - val httpStatus: StatusCode = ApiStatusCodesV2.fromException(ex) - - // Generate an HTTP response containing the error message and the HTTP status code. - HttpResponse( - status = httpStatus, - entity = HttpEntity( - ContentTypes.`text/xml(UTF-8)`, - - - Error - - -

Error

-

- - {makeClientErrorMessage(ex, settings)} - -

- - .toString() - ) - ) - } - /** * Given an exception, returns an error message suitable for clients. * diff --git a/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesADM.scala b/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesADM.scala index 835a65bc12..f6d339956b 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesADM.scala @@ -7,6 +7,7 @@ package org.knora.webapi.http.status import akka.http.scaladsl.model.StatusCode import akka.http.scaladsl.model.StatusCodes + import dsp.errors._ /** diff --git a/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV1.scala b/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV1.scala index 2914973c62..2f4c964a52 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV1.scala @@ -7,6 +7,7 @@ package org.knora.webapi.http.status import akka.http.scaladsl.model.StatusCode import akka.http.scaladsl.model.StatusCodes + import dsp.errors._ /** diff --git a/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV2.scala b/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV2.scala index 88a69c4df1..29e928f835 100644 --- a/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/http/status/ApiStatusCodesV2.scala @@ -7,6 +7,7 @@ package org.knora.webapi.http.status import akka.http.scaladsl.model.StatusCode import akka.http.scaladsl.model.StatusCodes + import dsp.errors._ import org.knora.webapi.store.triplestore.errors.TriplestoreTimeoutException 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 d0832299c2..4e98cdd08c 100644 --- a/webapi/src/main/scala/org/knora/webapi/instrumentation/InstrumentationSupport.scala +++ b/webapi/src/main/scala/org/knora/webapi/instrumentation/InstrumentationSupport.scala @@ -6,12 +6,12 @@ package org.knora.webapi.instrumentation import com.typesafe.scalalogging.Logger +import kamon.Kamon import org.slf4j.LoggerFactory import scala.concurrent.ExecutionContext import scala.concurrent.Future import scala.util.Success -import kamon.Kamon /** * A set of methods used for measuring stuff that is happening. diff --git a/webapi/src/main/scala/org/knora/webapi/messages/OntologyConstants.scala b/webapi/src/main/scala/org/knora/webapi/messages/OntologyConstants.scala index f3a9b77655..eec8062d6b 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/OntologyConstants.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/OntologyConstants.scala @@ -7,7 +7,6 @@ package org.knora.webapi package messages import dsp.constants.SalsahGui -import dsp.errors._ /** * Contains string constants for IRIs from ontologies used by the application. 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 ee462dc07a..af58c0bbc0 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/StringFormatter.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/StringFormatter.scala @@ -11,28 +11,10 @@ import akka.pattern._ import akka.util.Timeout import com.google.gwt.safehtml.shared.UriUtils._ import com.typesafe.scalalogging.Logger -import dsp.errors._ -import dsp.valueobjects.Iri -import dsp.valueobjects.IriErrorMessages import org.apache.commons.lang3.StringUtils -import org.apache.commons.validator.routines.UrlValidator -import org.knora.webapi._ -import org.knora.webapi.messages.IriConversions._ -import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM -import org.knora.webapi.messages.store.triplestoremessages.SparqlAskRequest -import org.knora.webapi.messages.store.triplestoremessages.SparqlAskResponse -import org.knora.webapi.messages.store.triplestoremessages.StringLiteralSequenceV2 -import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 -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.Base64UrlCheckDigit -import org.knora.webapi.util.JavaUtil import spray.json._ import java.nio.ByteBuffer -import java.text.ParseException import java.time._ import java.time.format.DateTimeFormatter import java.time.temporal.ChronoField @@ -45,9 +27,25 @@ import scala.concurrent.Future import scala.util.Failure import scala.util.Success import scala.util.Try -import scala.util.control.Exception._ import scala.util.matching.Regex +import dsp.errors._ +import dsp.valueobjects.Iri +import dsp.valueobjects.IriErrorMessages +import org.knora.webapi._ +import org.knora.webapi.messages.IriConversions._ +import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM +import org.knora.webapi.messages.store.triplestoremessages.SparqlAskRequest +import org.knora.webapi.messages.store.triplestoremessages.SparqlAskResponse +import org.knora.webapi.messages.store.triplestoremessages.StringLiteralSequenceV2 +import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 +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.Base64UrlCheckDigit +import org.knora.webapi.util.JavaUtil + /** * Provides instances of [[StringFormatter]], as well as string formatting constants. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsMessagesADM.scala index 5ccada44c5..bc5c05a384 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsMessagesADM.scala @@ -6,21 +6,22 @@ package org.knora.webapi.messages.admin.responder.groupsmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi.IRI -import dsp.errors.BadRequestException -import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM -import org.knora.webapi.messages.admin.responder.KnoraResponseADM -import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM -import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectsADMJsonProtocol -import org.knora.webapi.messages.admin.responder.usersmessages.UserADM -import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import spray.json.DefaultJsonProtocol import spray.json.JsValue import spray.json.JsonFormat import spray.json.RootJsonFormat import java.util.UUID + +import dsp.errors.BadRequestException import dsp.valueobjects.V2 +import org.knora.webapi.IRI +import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM +import org.knora.webapi.messages.admin.responder.KnoraResponseADM +import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM +import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectsADMJsonProtocol +import org.knora.webapi.messages.admin.responder.usersmessages.UserADM +import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests @@ -98,18 +99,14 @@ case class ChangeGroupApiRequestADM( sealed trait GroupsResponderRequestADM extends KnoraRequestADM /** - * Get all information about all groups. - * - * @param requestingUser the user initiating the request. + * Get all information about all groups. the user initiating the request. */ -case class GroupsGetADM(requestingUser: UserADM) extends GroupsResponderRequestADM +case class GroupsGetADM() extends GroupsResponderRequestADM /** * Get all information about all groups. - * - * @param requestingUser the user initiating the request. */ -case class GroupsGetRequestADM(requestingUser: UserADM) extends GroupsResponderRequestADM +case class GroupsGetRequestADM() extends GroupsResponderRequestADM /** * Get everything about a single group identified through its IRI. A successful response will be diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsPayloadsADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsPayloadsADM.scala index bee9d4dbf7..0d473db471 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsPayloadsADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/groupsmessages/GroupsPayloadsADM.scala @@ -5,8 +5,8 @@ package org.knora.webapi.messages.admin.responder.groupsmessages -import dsp.valueobjects.Iri._ import dsp.valueobjects.Group._ +import dsp.valueobjects.Iri._ /** * Group create payload diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADM.scala index e507a7e8ce..525e3dcff3 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADM.scala @@ -6,10 +6,16 @@ package org.knora.webapi.messages.admin.responder.listsmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi._ +import spray.json._ + +import java.util.UUID + import dsp.errors.BadRequestException -import org.knora.webapi.messages.StringFormatter +import dsp.valueobjects.ListErrorMessages +import dsp.valueobjects.V2 +import org.knora.webapi._ import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM +import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.KnoraResponseADM import org.knora.webapi.messages.admin.responder.listsmessages.ListNodeCreatePayloadADM.ListChildNodeCreatePayloadADM import org.knora.webapi.messages.admin.responder.listsmessages.ListNodeCreatePayloadADM.ListRootNodeCreatePayloadADM @@ -17,11 +23,6 @@ import org.knora.webapi.messages.admin.responder.usersmessages._ import org.knora.webapi.messages.store.triplestoremessages.StringLiteralSequenceV2 import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import spray.json._ - -import java.util.UUID -import dsp.valueobjects.ListErrorMessages -import dsp.valueobjects.V2 /////////////// API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADM.scala index b51c0f7529..17159e7ee4 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADM.scala @@ -6,20 +6,21 @@ package org.knora.webapi.messages.admin.responder.permissionsmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi._ +import spray.json._ + +import java.util.UUID + import dsp.errors.BadRequestException import dsp.errors.ForbiddenException +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants -import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM +import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.KnoraResponseADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectsADMJsonProtocol import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.traits.Jsonable -import spray.json._ - -import java.util.UUID ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesUtilADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesUtilADM.scala index cae49b5f06..4cf41179e1 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesUtilADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesUtilADM.scala @@ -5,9 +5,9 @@ package org.knora.webapi.messages.admin.responder.permissionsmessages -import org.knora.webapi.IRI import dsp.errors.ApplicationCacheException import dsp.errors.BadRequestException +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants.KnoraAdmin.AdministrativePermissionAbbreviations import org.knora.webapi.messages.OntologyConstants.KnoraBase.ChangeRightsPermission import org.knora.webapi.messages.OntologyConstants.KnoraBase.DeletePermission @@ -170,7 +170,7 @@ object PermissionsMessagesUtilADM { } val name = permission.name.isEmpty match { case true => - val nameCodeSet: Option[(String, Int)] = PermissionTypeAndCodes.find { case (name, code) => + val nameCodeSet: Option[(String, Int)] = PermissionTypeAndCodes.find { case (_, code) => code == permission.permissionCode.get } nameCodeSet.get._1 diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala index b6177810a1..409e86369c 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala @@ -7,27 +7,28 @@ package org.knora.webapi.messages.admin.responder.projectsmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport import org.apache.commons.lang3.builder.HashCodeBuilder -import org.knora.webapi.IRI -import org.knora.webapi.annotation.ApiMayChange -import org.knora.webapi.annotation.ServerUnique +import spray.json.DefaultJsonProtocol +import spray.json.JsValue +import spray.json.JsonFormat +import spray.json.RootJsonFormat + +import java.nio.file.Path +import java.util.UUID + import dsp.errors.BadRequestException import dsp.errors.DataConversionException import dsp.errors.OntologyConstraintException -import org.knora.webapi.messages.StringFormatter +import dsp.valueobjects.V2 +import org.knora.webapi.IRI +import org.knora.webapi.annotation.ApiMayChange +import org.knora.webapi.annotation.ServerUnique import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM +import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.KnoraResponseADM import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoV1 -import spray.json.DefaultJsonProtocol -import spray.json.JsValue -import spray.json.JsonFormat -import spray.json.RootJsonFormat - -import java.nio.file.Path -import java.util.UUID -import dsp.valueobjects.V2 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/sipimessages/SipiMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/sipimessages/SipiMessagesADM.scala index 1c139f2071..2f11a3dbe2 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/sipimessages/SipiMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/sipimessages/SipiMessagesADM.scala @@ -6,15 +6,16 @@ package org.knora.webapi.messages.admin.responder.sipimessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import spray.json.DefaultJsonProtocol +import spray.json.JsValue +import spray.json.NullOptions +import spray.json.RootJsonFormat + import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM import org.knora.webapi.messages.admin.responder.KnoraResponseADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectRestrictedViewSettingsADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectsADMJsonProtocol import org.knora.webapi.messages.admin.responder.usersmessages.UserADM -import spray.json.DefaultJsonProtocol -import spray.json.JsValue -import spray.json.NullOptions -import spray.json.RootJsonFormat /** * An abstract trait representing a Knora v1 API request message that can be sent to `SipiResponderV2`. diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/storesmessages/StoresMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/storesmessages/StoresMessagesADM.scala index 21950ba9f1..cb0a52fdf1 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/storesmessages/StoresMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/storesmessages/StoresMessagesADM.scala @@ -6,11 +6,12 @@ package org.knora.webapi.messages.admin.responder.storesmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import spray.json._ + import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM import org.knora.webapi.messages.admin.responder.KnoraResponseADM import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import spray.json._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Messages diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADM.scala index ec925cf69e..73b7605a9d 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADM.scala @@ -6,6 +6,10 @@ package org.knora.webapi.messages.admin.responder.usersmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import spray.json._ + +import java.util.UUID + import dsp.errors.BadRequestException import dsp.errors.DataConversionException import dsp.valueobjects.LanguageCode @@ -23,9 +27,6 @@ import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectsADMJsonProtocol import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoV1 import org.knora.webapi.messages.v1.responder.usermessages._ -import spray.json._ - -import java.util.UUID ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/store/sipimessages/SipiMessages.scala b/webapi/src/main/scala/org/knora/webapi/messages/store/sipimessages/SipiMessages.scala index 4c3bcdbad0..5dfe775bd1 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/store/sipimessages/SipiMessages.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/store/sipimessages/SipiMessages.scala @@ -6,10 +6,11 @@ package org.knora.webapi.messages.store.sipimessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import spray.json._ + import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.StoreRequest import org.knora.webapi.messages.traits.RequestWithSender -import spray.json._ /** * An abstract trait for messages that can be sent to the [[org.knora.webapi.store.iiif.IIIFManager]] diff --git a/webapi/src/main/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessages.scala b/webapi/src/main/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessages.scala index 06eecb9c8a..6ebdb383ff 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessages.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessages.scala @@ -5,11 +5,18 @@ package org.knora.webapi.messages.store.triplestoremessages -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport import org.apache.commons.lang3.StringUtils -import org.knora.webapi._ +import spray.json._ +import zio._ + +import java.nio.file.Path +import java.time.Instant +import scala.collection.mutable + import dsp.errors._ +import dsp.valueobjects.V2 +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -18,18 +25,6 @@ import org.knora.webapi.messages.store.StoreRequest import org.knora.webapi.messages.store.triplestoremessages.TriplestoreStatus.TriplestoreStatus import org.knora.webapi.messages.util.ErrorHandlingMap import org.knora.webapi.messages.util.rdf._ -import spray.json._ - -import java.nio.file.Path -import java.time.Instant -import scala.collection.mutable -import scala.util.Failure -import scala.util.Success -import scala.util.Try -import dsp.valueobjects.V2 - -import com.typesafe.config.Config -import zio._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Messages @@ -202,7 +197,7 @@ object SparqlExtendedConstructResponse { SparqlExtendedConstructResponse(statementMap.toMap) }.foldZIO( - failure => + _ => ZIO.logError(s"Couldn't parse Turtle document:$logDelimiter$turtleStr$logDelimiter") *> ZIO.fail(DataConversionException("Couldn't parse Turtle document")), ZIO.succeed(_) diff --git a/webapi/src/main/scala/org/knora/webapi/messages/twirl/ResourceHtmlView.scala b/webapi/src/main/scala/org/knora/webapi/messages/twirl/ResourceHtmlView.scala index 107889ba37..9e6bde1d27 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/twirl/ResourceHtmlView.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/twirl/ResourceHtmlView.scala @@ -9,6 +9,12 @@ import akka.actor.ActorRef import akka.pattern.ask import akka.util.Timeout import com.typesafe.scalalogging.Logger +import org.slf4j.LoggerFactory + +import scala.concurrent.Await +import scala.concurrent.duration.Duration +import scala.concurrent.duration.SECONDS + import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.KnoraSystemInstances import org.knora.webapi.messages.v1.responder.listmessages.NodePathGetRequestV1 @@ -18,11 +24,6 @@ import org.knora.webapi.messages.v1.responder.valuemessages.DateValueV1 import org.knora.webapi.messages.v1.responder.valuemessages.HierarchicalListValueV1 import org.knora.webapi.messages.v1.responder.valuemessages.LinkV1 import org.knora.webapi.messages.v1.responder.valuemessages.TextValueV1 -import org.slf4j.LoggerFactory - -import scala.concurrent.Await -import scala.concurrent.duration.Duration -import scala.concurrent.duration.SECONDS /** * Provides an HTML view of a resource. diff --git a/webapi/src/main/scala/org/knora/webapi/messages/twirl/SparqlTemplateResourceToCreate.scala b/webapi/src/main/scala/org/knora/webapi/messages/twirl/SparqlTemplateResourceToCreate.scala index bb413ee07e..15131c349c 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/twirl/SparqlTemplateResourceToCreate.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/twirl/SparqlTemplateResourceToCreate.scala @@ -5,10 +5,10 @@ package org.knora.webapi.messages.twirl -import org.knora.webapi._ - import java.time.Instant +import org.knora.webapi._ + /** * Represents a resource to be created with its index, label, IRI, permissions, and SPARQL for creating its values * diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/CalendarDateUtilV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/CalendarDateUtilV2.scala index 88432a1893..fc4fab5c0b 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/CalendarDateUtilV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/CalendarDateUtilV2.scala @@ -6,12 +6,13 @@ package org.knora.webapi.messages.util import com.ibm.icu.util._ + +import java.util.Date + import dsp.errors.AssertionException import dsp.errors.BadRequestException import org.knora.webapi.messages.StringFormatter -import java.util.Date - /** * Indicates the era (CE or BCE) in Gregorian and Julian calendar dates. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2.scala index b19537ee04..1d7de7f747 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2.scala @@ -9,10 +9,16 @@ import akka.actor.ActorRef import akka.http.scaladsl.util.FastFuture import akka.pattern.ask import akka.util.Timeout -import org.knora.webapi._ + +import java.time.Instant +import java.util.UUID +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.AssertionException import dsp.errors.InconsistentRepositoryDataException import dsp.errors.NotImplementedException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -35,15 +41,9 @@ import org.knora.webapi.messages.v2.responder.standoffmessages.GetStandoffRespon import org.knora.webapi.messages.v2.responder.standoffmessages.MappingXMLtoStandoff import org.knora.webapi.messages.v2.responder.standoffmessages.StandoffTagV2 import org.knora.webapi.messages.v2.responder.valuemessages._ -import org.knora.webapi.responders.ResponderManager import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.util.ActorUtil -import java.time.Instant -import java.util.UUID -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - object ConstructResponseUtilV2 { private val InferredPredicates = Set( diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/DateUtilV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/DateUtilV1.scala index 99946c72bb..7364dd2c8e 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/DateUtilV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/DateUtilV1.scala @@ -6,6 +6,11 @@ package org.knora.webapi.messages.util import jodd.datetime.JDateTime + +import java.util.Calendar +import java.util.Date +import java.util.GregorianCalendar + import dsp.errors.AssertionException import dsp.errors.BadRequestException import org.knora.webapi.messages.StringFormatter @@ -14,10 +19,6 @@ import org.knora.webapi.messages.v1.responder.valuemessages.JulianDayNumberValue import org.knora.webapi.messages.v1.responder.valuemessages.KnoraCalendarV1 import org.knora.webapi.messages.v1.responder.valuemessages.KnoraPrecisionV1 -import java.util.Calendar -import java.util.Date -import java.util.GregorianCalendar - /** * Utility functions for converting dates. */ 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 6decaa4d2b..07bfc57889 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 @@ -7,12 +7,13 @@ package org.knora.webapi.messages.util import com.typesafe.scalalogging.Logger import org.apache.commons.io.FileUtils -import org.knora.webapi.util.FileUtil import java.nio.file.Files import java.nio.file.Path import scala.jdk.CollectionConverters._ +import org.knora.webapi.util.FileUtil + /** * 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/MessageUtil.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/MessageUtil.scala index 66db69239f..afd749b124 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/MessageUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/MessageUtil.scala @@ -5,16 +5,16 @@ package org.knora.webapi.messages.util -import dsp.schema.domain.Cardinality -import dsp.schema.domain.Cardinality._ import org.apache.commons.text.StringEscapeUtils -import org.knora.webapi.OntologySchema -import org.knora.webapi.messages.SmartIri -import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality import java.time.Instant import scala.reflect.runtime.{universe => ru} +import dsp.schema.domain.Cardinality +import dsp.schema.domain.Cardinality._ +import org.knora.webapi.OntologySchema +import org.knora.webapi.messages.SmartIri + /** * Utility functions for working with Akka messages. */ 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 a6903c898a..690a262870 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 @@ -9,9 +9,13 @@ import akka.actor.ActorRef import akka.pattern.ask import akka.util.Timeout import com.typesafe.scalalogging.LazyLogging -import org.knora.webapi.IRI + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.BadRequestException import dsp.errors.InconsistentRepositoryDataException +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter @@ -25,10 +29,6 @@ import org.knora.webapi.messages.store.triplestoremessages.SparqlExtendedConstru import org.knora.webapi.messages.util.GroupedProps.ValueLiterals import org.knora.webapi.messages.util.GroupedProps.ValueProps import org.knora.webapi.messages.v1.responder.usermessages.UserProfileV1 -import org.knora.webapi.responders.ResponderManager - -import scala.concurrent.ExecutionContext -import scala.concurrent.Future /** * A utility that responder actors use to determine a user's permissions on an RDF entity in the triplestore. @@ -169,7 +169,7 @@ object PermissionUtilADM extends LazyLogging { * @return a list of permission-relevant predicates and objects. */ def filterPermissionRelevantAssertions(assertions: Seq[(IRI, IRI)]): Vector[(IRI, IRI)] = - assertions.filter { case (p, o) => + assertions.filter { case (p, _) => isPermissionRelevant(p) }.toVector @@ -618,7 +618,7 @@ object PermissionUtilADM extends LazyLogging { */ def removeDuplicatePermissions(permissions: Seq[PermissionADM]): Set[PermissionADM] = { - val result = permissions.groupBy(perm => perm.name + perm.additionalInformation).map { case (k, v) => v.head }.toSet + val result = permissions.groupBy(perm => perm.name + perm.additionalInformation).map { case (_, v) => v.head }.toSet // log.debug(s"removeDuplicatePermissions - result: $result") result } @@ -638,7 +638,7 @@ object PermissionUtilADM extends LazyLogging { /* Handling object access permissions which always have 'additionalInformation' and 'permissionCode' set */ permissions .groupBy(_.additionalInformation) - .map { case (groupIri, perms) => + .map { case (_, perms) => // sort in descending order and then take the first one (the highest permission) perms.toArray.sortWith(_.permissionCode.get > _.permissionCode.get).head } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/ResponderData.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/ResponderData.scala index 080f86b846..747a6c8f4d 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/ResponderData.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/ResponderData.scala @@ -7,6 +7,7 @@ package org.knora.webapi.messages.util import akka.actor.ActorRef import akka.actor.ActorSystem + import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.store.cache.settings.CacheServiceSettings diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/UserUtilADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/UserUtilADM.scala index 31b7723b1f..79b0a74d91 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/UserUtilADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/UserUtilADM.scala @@ -9,14 +9,15 @@ import akka.actor.ActorRef import akka.http.scaladsl.util.FastFuture import akka.pattern.ask import akka.util.Timeout -import org.knora.webapi.IRI -import dsp.errors.ForbiddenException -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.admin.responder.usersmessages._ import scala.concurrent.ExecutionContext import scala.concurrent.Future +import dsp.errors.ForbiddenException +import org.knora.webapi.IRI +import org.knora.webapi.messages.StringFormatter +import org.knora.webapi.messages.admin.responder.usersmessages._ + /** * Utility functions for working with users. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/ValueUtilV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/ValueUtilV1.scala index 0c48059965..5646497795 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/ValueUtilV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/ValueUtilV1.scala @@ -8,10 +8,14 @@ package org.knora.webapi.messages.util import akka.actor.ActorRef import akka.pattern._ import akka.util.Timeout -import org.knora.webapi._ + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.InconsistentRepositoryDataException import dsp.errors.NotImplementedException import dsp.errors.OntologyConstraintException +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.usersmessages.UserADM @@ -25,12 +29,8 @@ import org.knora.webapi.messages.v1.responder.resourcemessages.ResourceCreateVal import org.knora.webapi.messages.v1.responder.resourcemessages.ResourceCreateValueResponseV1 import org.knora.webapi.messages.v1.responder.valuemessages._ import org.knora.webapi.messages.v2.responder.standoffmessages._ -import org.knora.webapi.responders.ResponderManager import org.knora.webapi.settings.KnoraSettingsImpl -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * Converts data from SPARQL query results into [[ApiValueV1]] objects. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/AbstractShaclValidator.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/AbstractShaclValidator.scala index d5e830527a..f9efdb5880 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/AbstractShaclValidator.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/AbstractShaclValidator.scala @@ -5,11 +5,11 @@ package org.knora.webapi.messages.util.rdf -import dsp.errors.AssertionException - import java.nio.file._ import java.nio.file.attribute.BasicFileAttributes +import dsp.errors.AssertionException + /** * An abstract base class for classes that validate RDF models using SHACL shapes. * 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 186bd43732..855e8326f2 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 @@ -10,13 +10,6 @@ import com.apicatalog.jsonld.document._ import jakarta.json._ import jakarta.json.stream.JsonGenerator import org.apache.commons.lang3.builder.HashCodeBuilder -import org.knora.webapi._ -import dsp.errors._ -import org.knora.webapi.messages.IriConversions._ -import org.knora.webapi.messages.OntologyConstants -import org.knora.webapi.messages.SmartIri -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import java.io.StringReader import java.io.StringWriter @@ -25,6 +18,14 @@ import java.util.UUID import scala.jdk.CollectionConverters._ import scala.util.control.Exception._ +import dsp.errors._ +import org.knora.webapi._ +import org.knora.webapi.messages.IriConversions._ +import org.knora.webapi.messages.OntologyConstants +import org.knora.webapi.messages.SmartIri +import org.knora.webapi.messages.StringFormatter +import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 + /* The classes in this file provide a Scala API for formatting and parsing JSON-LD, and for converting diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFeatureFactory.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFeatureFactory.scala index f19c9ffbc0..9f26a9191c 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFeatureFactory.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFeatureFactory.scala @@ -17,7 +17,6 @@ object RdfFeatureFactory { /** * The name of the feature toggle that enables the Jena implementation of the RDF façade. */ - private val JENA_TOGGLE_NAME = "jena-rdf-library" // Jena singletons. private val jenaNodeFactory = new JenaNodeFactory diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtil.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtil.scala index 38f7974401..37d3a3afe5 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtil.scala @@ -6,12 +6,6 @@ package org.knora.webapi.messages.util.rdf import akka.http.scaladsl.model.MediaType -import org.knora.webapi.IRI -import org.knora.webapi.RdfMediaTypes -import org.knora.webapi.SchemaOption -import org.knora.webapi.SchemaOptions -import dsp.errors.BadRequestException -import dsp.errors.InvalidRdfException import java.io.BufferedInputStream import java.io.BufferedOutputStream @@ -23,7 +17,12 @@ import scala.util.Failure import scala.util.Success import scala.util.Try -import zio._ +import dsp.errors.BadRequestException +import dsp.errors.InvalidRdfException +import org.knora.webapi.IRI +import org.knora.webapi.RdfMediaTypes +import org.knora.webapi.SchemaOption +import org.knora.webapi.SchemaOptions /** * A trait for supported RDF formats. diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfModel.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfModel.scala index 568b4c7157..f163645306 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfModel.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/RdfModel.scala @@ -5,12 +5,12 @@ package org.knora.webapi.messages.util.rdf -import org.knora.webapi.IRI +import scala.util.control.Exception.allCatch + import dsp.errors.InvalidRdfException +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants -import scala.util.control.Exception.allCatch - /** * Represents an RDF subject, predicate, or object. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaFormatUtil.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaFormatUtil.scala index d2d1965027..47c12da00f 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaFormatUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaFormatUtil.scala @@ -6,8 +6,6 @@ package org.knora.webapi.messages.util.rdf.jenaimpl import org.apache.jena -import org.knora.webapi.IRI -import org.knora.webapi.messages.util.rdf._ import java.io.InputStream import java.io.OutputStream @@ -17,6 +15,9 @@ import scala.util.Failure import scala.util.Success import scala.util.Try +import org.knora.webapi.IRI +import org.knora.webapi.messages.util.rdf._ + /** * Wraps an [[RdfStreamProcessor]] in a [[jena.riot.system.StreamRDF]]. */ 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 b63b96eb3c..aa6e3ca691 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 @@ -6,15 +6,16 @@ package org.knora.webapi.messages.util.rdf.jenaimpl import org.apache.jena -import org.knora.webapi.IRI + +import scala.collection.mutable.ArrayBuffer +import scala.jdk.CollectionConverters._ + import dsp.errors.RdfProcessingException +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.ErrorHandlingMap import org.knora.webapi.messages.util.rdf._ -import scala.collection.mutable.ArrayBuffer -import scala.jdk.CollectionConverters._ - sealed trait JenaNode extends RdfNode { def node: jena.graph.Node } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaShaclValidator.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaShaclValidator.scala index 49d0c78363..8553150387 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaShaclValidator.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/rdf/jenaimpl/JenaShaclValidator.scala @@ -7,10 +7,11 @@ package org.knora.webapi.messages.util.rdf.jenaimpl import org.apache.jena import org.apache.jena.query.DatasetFactory -import org.knora.webapi.messages.util.rdf._ import java.nio.file.Path +import org.knora.webapi.messages.util.rdf._ + /** * Performs SHACL validation using Jena. * diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/MainQueryResultProcessor.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/MainQueryResultProcessor.scala index eb6f6cb4aa..d2048faf10 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/MainQueryResultProcessor.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/MainQueryResultProcessor.scala @@ -5,8 +5,8 @@ package org.knora.webapi.messages.util.search -import org.knora.webapi._ import dsp.errors.AssertionException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/QueryTraverser.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/QueryTraverser.scala index 825a5ebbda..0399e9dac0 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/QueryTraverser.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/QueryTraverser.scala @@ -8,6 +8,11 @@ package org.knora.webapi.messages.util.search import akka.actor.ActorRef import akka.pattern.ask import akka.util.Timeout + +import scala.concurrent.ExecutionContext +import scala.concurrent._ +import scala.concurrent.duration._ + import org.knora.webapi.InternalSchema import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants @@ -18,10 +23,6 @@ import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentif import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceGetProjectADM import org.knora.webapi.responders.v2.ontology.Cache -import scala.concurrent.ExecutionContext -import scala.concurrent._ -import scala.concurrent.duration._ - /** * A trait for classes that visit statements and filters in WHERE clauses, accumulating some result. * diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlQuery.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlQuery.scala index 19b28b602f..70ee320d4d 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlQuery.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlQuery.scala @@ -7,9 +7,10 @@ package org.knora.webapi.messages.util.search import akka.http.scaladsl.model.HttpCharsets import akka.http.scaladsl.model.MediaType -import org.knora.webapi._ + import dsp.errors.AssertionException import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlTransformer.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlTransformer.scala index 2d8973a857..d88d1989d2 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlTransformer.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/SparqlTransformer.scala @@ -5,24 +5,19 @@ package org.knora.webapi.messages.util.search -import org.knora.webapi._ +import scala.concurrent.Await +import scala.concurrent.ExecutionContext +import scala.concurrent.duration._ + import dsp.errors.AssertionException import dsp.errors.GravsearchException -import dsp.errors.InconsistentRepositoryDataException -import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter import org.knora.webapi.responders.v2.ontology.Cache -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.duration._ -import scala.util.Failure -import scala.util.Success -import scala.util.Try - /** * Methods and classes for transforming generated SPARQL. */ @@ -34,7 +29,7 @@ object SparqlTransformer { * @param simulateInference `true` if RDFS inference should be simulated using property path syntax. */ class NoInferenceSelectToSelectTransformer(simulateInference: Boolean) extends SelectToSelectTransformer { - private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance + StringFormatter.getGeneralInstance override def transformStatementInSelect(statementPattern: StatementPattern): Seq[StatementPattern] = Seq(statementPattern) @@ -69,7 +64,7 @@ object SparqlTransformer { * Transforms a non-triplestore-specific CONSTRUCT query for a triplestore that does not have inference enabled (e.g., Fuseki). */ class NoInferenceConstructToConstructTransformer extends ConstructToConstructTransformer { - private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance + StringFormatter.getGeneralInstance override def transformStatementInConstruct(statementPattern: StatementPattern): Seq[StatementPattern] = Seq(statementPattern) 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 dfc311afda..ea9ee62227 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 @@ -10,16 +10,17 @@ import org.eclipse.rdf4j.query.MalformedQueryException import org.eclipse.rdf4j.query.algebra import org.eclipse.rdf4j.query.parser.QueryParser import org.eclipse.rdf4j.query.parser.sparql._ -import org.knora.webapi._ + +import scala.jdk.CollectionConverters._ + import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.util.search._ -import scala.jdk.CollectionConverters._ - /** * Parses a Gravsearch query. The syntax that is accepted is that of a SPARQL CONSTRUCT query, with some restrictions: * diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchQueryChecker.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchQueryChecker.scala index 023d5f3e1a..1b4ad1759a 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchQueryChecker.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchQueryChecker.scala @@ -5,9 +5,9 @@ package org.knora.webapi.messages.util.search.gravsearch -import org.knora.webapi._ import dsp.errors.AssertionException import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.search._ import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchEntityTypeInfo diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/mainquery/GravsearchMainQueryGenerator.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/mainquery/GravsearchMainQueryGenerator.scala index 31afd8259f..9489267b25 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/mainquery/GravsearchMainQueryGenerator.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/mainquery/GravsearchMainQueryGenerator.scala @@ -5,8 +5,8 @@ package org.knora.webapi.messages.util.search.gravsearch.mainquery -import org.knora.webapi._ import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/AbstractPrequeryGenerator.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/AbstractPrequeryGenerator.scala index c0199a0939..8052f86d71 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/AbstractPrequeryGenerator.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/AbstractPrequeryGenerator.scala @@ -5,8 +5,10 @@ package org.knora.webapi.messages.util.search.gravsearch.prequery -import org.knora.webapi._ +import scala.collection.mutable + import dsp.errors._ +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -17,8 +19,6 @@ import org.knora.webapi.messages.util.search.gravsearch.types._ import org.knora.webapi.messages.v2.responder.valuemessages.DateValueContentV2 import org.knora.webapi.util.ApacheLuceneSupport.LuceneQueryString -import scala.collection.mutable - object AbstractPrequeryGenerator { // separator used by GroupConcat val groupConcatSeparator: Char = StringFormatter.INFORMATION_SEPARATOR_ONE diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/GravsearchQueryOptimisationFactory.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/GravsearchQueryOptimisationFactory.scala index 1015219e46..41c3578abe 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/GravsearchQueryOptimisationFactory.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/GravsearchQueryOptimisationFactory.scala @@ -5,6 +5,9 @@ package org.knora.webapi.messages.util.search.gravsearch.prequery +import scalax.collection.Graph +import scalax.collection.GraphEdge.DiHyperEdge + import org.knora.webapi.ApiV2Schema import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -12,8 +15,6 @@ import org.knora.webapi.messages.util.search._ import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionResult import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionUtil import org.knora.webapi.messages.util.search.gravsearch.types.TypeableEntity -import scalax.collection.Graph -import scalax.collection.GraphEdge.DiHyperEdge /** * Represents optimisation algorithms that transform Gravsearch input queries. diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformer.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformer.scala index fe20987fc0..d4a9490c97 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformer.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToCountPrequeryTransformer.scala @@ -5,13 +5,13 @@ package org.knora.webapi.messages.util.search.gravsearch.prequery +import scala.concurrent.ExecutionContext + import org.knora.webapi.ApiV2Schema import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.util.search._ import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionResult -import scala.concurrent.ExecutionContext - /** * Transforms a preprocessed CONSTRUCT query into a SELECT query that returns only the IRIs and sort order of the main resources that matched * the search criteria. This query will be used to get resource IRIs for a single page of results. These IRIs will be included in a CONSTRUCT diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformer.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformer.scala index b544dc1c61..6ec1b456dc 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformer.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/NonTriplestoreSpecificGravsearchToPrequeryTransformer.scala @@ -5,9 +5,11 @@ package org.knora.webapi.messages.util.search.gravsearch.prequery -import org.knora.webapi._ +import scala.concurrent.ExecutionContext + import dsp.errors.AssertionException import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.util.search._ import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionResult @@ -16,8 +18,6 @@ import org.knora.webapi.messages.util.search.gravsearch.types.NonPropertyTypeInf import org.knora.webapi.messages.util.search.gravsearch.types.PropertyTypeInfo import org.knora.webapi.settings.KnoraSettingsImpl -import scala.concurrent.ExecutionContext - /** * Transforms a preprocessed CONSTRUCT query into a SELECT query that returns only the IRIs and sort order of the main resources that matched * the search criteria and are requested by client in the input query's WHERE clause. This query will be used to get resource IRIs for a single diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/AnnotationReadingGravsearchTypeInspector.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/AnnotationReadingGravsearchTypeInspector.scala index 28822bcd0e..a73a6d4f8d 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/AnnotationReadingGravsearchTypeInspector.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/AnnotationReadingGravsearchTypeInspector.scala @@ -5,9 +5,11 @@ package org.knora.webapi.messages.util.search.gravsearch.types -import org.knora.webapi._ +import scala.concurrent.Future + import dsp.errors.AssertionException import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.admin.responder.usersmessages.UserADM @@ -16,8 +18,6 @@ import org.knora.webapi.messages.util.search._ import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionUtil.TypeAnnotationProperties import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionUtil.TypeAnnotationProperty -import scala.concurrent.Future - /** * A [[GravsearchTypeInspector]] that relies on Gravsearch type annotations. There are two kinds of type annotations: * diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionRunner.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionRunner.scala index ab9d15d719..b55d619823 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionRunner.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionRunner.scala @@ -5,6 +5,11 @@ package org.knora.webapi.messages.util.search.gravsearch.types +import akka.actor.ActorRef + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.GravsearchException import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter @@ -13,10 +18,6 @@ import org.knora.webapi.messages.util.ResponderData import org.knora.webapi.messages.util.search._ import org.knora.webapi.settings.KnoraDispatchers -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import akka.actor.ActorRef - /** * Runs Gravsearch type inspection using one or more type inspector implementations. * diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionUtil.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionUtil.scala index 0cf9037a78..6209badd0a 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectionUtil.scala @@ -5,15 +5,15 @@ package org.knora.webapi.messages.util.search.gravsearch.types -import org.knora.webapi.IRI +import scala.concurrent.ExecutionContext + import dsp.errors.AssertionException import dsp.errors.GravsearchException +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.util.search._ -import scala.concurrent.ExecutionContext - /** * Utilities for Gravsearch type inspection. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspector.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspector.scala index d073d2ab56..dd8c4ce350 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspector.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspector.scala @@ -7,6 +7,10 @@ package org.knora.webapi.messages.util.search.gravsearch.types import akka.actor.ActorSystem import akka.util.Timeout + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.util.ResponderData import org.knora.webapi.messages.util.search.WhereClause @@ -14,9 +18,6 @@ import org.knora.webapi.settings.KnoraDispatchers import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.settings.KnoraSettingsImpl -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * An trait whose implementations can get type information from a parsed Gravsearch query in different ways. * Type inspectors are run in a pipeline. Each inspector tries to determine the types of all the typeable diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/InferringGravsearchTypeInspector.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/InferringGravsearchTypeInspector.scala index 06bfd765f0..695a35764a 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/InferringGravsearchTypeInspector.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/search/gravsearch/types/InferringGravsearchTypeInspector.scala @@ -5,12 +5,17 @@ package org.knora.webapi.messages.util.search.gravsearch.types +import akka.actor.ActorRef import akka.event.LogSource -import com.typesafe.scalalogging.Logger import akka.pattern._ -import org.knora.webapi._ +import com.typesafe.scalalogging.Logger + +import scala.annotation.tailrec +import scala.concurrent.Future + import dsp.errors.AssertionException import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -24,10 +29,6 @@ import org.knora.webapi.messages.v2.responder.ontologymessages.EntityInfoGetResp import org.knora.webapi.messages.v2.responder.ontologymessages.ReadClassInfoV2 import org.knora.webapi.messages.v2.responder.ontologymessages.ReadPropertyInfoV2 -import scala.annotation.tailrec -import scala.concurrent.Future -import akka.actor.ActorRef - /** * A Gravsearch type inspector that infers types, relying on information from the relevant ontologies. */ @@ -37,8 +38,6 @@ class InferringGravsearchTypeInspector( responderData: ResponderData ) extends GravsearchTypeInspector(nextInspector = nextInspector, responderData = responderData) { - import InferringGravsearchTypeInspector._ - private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance private val log: Logger = Logger(this.getClass()) 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 e3e9642462..abadcce686 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 @@ -5,8 +5,8 @@ package org.knora.webapi.messages.util.search.gravsearch.types -import org.knora.webapi.IRI import dsp.errors.AssertionException +import org.knora.webapi.IRI import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2.scala index 04c03e5c80..088cfc9c76 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2.scala @@ -9,6 +9,12 @@ import akka.actor.ActorRef import akka.pattern.ask import akka.util.Timeout import com.typesafe.scalalogging.Logger + +import java.time.Instant +import java.util.UUID +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors._ import dsp.schema.domain.Cardinality._ import org.knora.webapi.IRI @@ -29,11 +35,6 @@ import org.knora.webapi.messages.v2.responder.ontologymessages._ import org.knora.webapi.messages.v2.responder.standoffmessages._ import org.knora.webapi.settings.KnoraSettingsImpl -import java.time.Instant -import java.util.UUID -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - object StandoffTagUtilV2 { // string constant used to mark the absence of an XML namespace in the mapping definitioon of an XML element @@ -215,8 +216,7 @@ object StandoffTagUtilV2 { // check if all the min cardinalities are respected mustExistOnce.foreach { propIri => attrsGroupedByPropIri.get(propIri) match { - case Some(attrs: Seq[StandoffTagAttributeV2]) => () - + case Some(_) => () case None => throw BadRequestException( s"the min cardinalities were not respected for the property $propIri (missing attribute for element ${standoffNodeFromXML.tagName})" @@ -300,10 +300,10 @@ object StandoffTagUtilV2 { // namespace = Map("myXMLNamespace" -> Map("myXMLTagName" -> Map("myXMLClassname" -> XMLTag(...)))) val elementsSeparatorRequired: Vector[XMLTagSeparatorRequired] = mapping.mapping.namespace.flatMap { case (namespace: String, elesForNamespace: Map[String, Map[String, XMLTag]]) => - elesForNamespace.flatMap { case (tagname: String, classWithTag: Map[String, XMLTag]) => + elesForNamespace.flatMap { case (_, classWithTag: Map[String, XMLTag]) => val tagsWithSeparator: Iterable[XMLTagSeparatorRequired] = classWithTag.filter { // filter out all `XMLTag` that require a separator - case (classname: String, tag: XMLTag) => + case (_, tag: XMLTag) => tag.separatorRequired }.map { case (classname: String, tag: XMLTag) => // create a `XMLTagSeparatorRequired` with the current's element @@ -967,7 +967,7 @@ object StandoffTagUtilV2 { // check for duplicate standoff class Iris val classIris: Iterable[IRI] = mappingXMLtoStandoff.namespace.values.flatten.flatMap { - case (tagname: String, tagItem: Map[String, XMLTag]) => + case (_, tagItem: Map[String, XMLTag]) => tagItem.values.map(_.mapping.standoffClassIri) } @@ -982,9 +982,8 @@ object StandoffTagUtilV2 { classnameMapping.map { case (classname: String, tagItem: XMLTag) => // collect all the property Iris defined in the attributes for the current tag // over all namespaces - val propIris: Iterable[IRI] = tagItem.mapping.attributesToProps.values.flatten.map { - case (attrName, propIri) => - propIri + val propIris: Iterable[IRI] = tagItem.mapping.attributesToProps.values.flatten.map { case (_, propIri) => + propIri } // check for duplicate property Iris @@ -1057,13 +1056,12 @@ object StandoffTagUtilV2 { )(implicit timeout: Timeout, executionContext: ExecutionContext): Future[Vector[StandoffTagV2]] = { implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance - val standoffClassIris: Set[SmartIri] = standoffAssertions.map { - case (standoffTagIri: IRI, standoffTagAssertions: Map[IRI, String]) => - standoffTagAssertions(OntologyConstants.Rdf.Type).toSmartIri + val standoffClassIris: Set[SmartIri] = standoffAssertions.map { case (_, standoffTagAssertions: Map[IRI, String]) => + standoffTagAssertions(OntologyConstants.Rdf.Type).toSmartIri }.toSet val standoffPropertyIris: Set[SmartIri] = standoffAssertions.flatMap { - case (standoffTagIri: IRI, standoffTagAssertions: Map[IRI, String]) => + case (_, standoffTagAssertions: Map[IRI, String]) => (standoffTagAssertions.keySet - OntologyConstants.Rdf.Type).map(_.toSmartIri) }.toSet @@ -1564,7 +1562,7 @@ object StandoffTagUtilV2 { case None => convertStandoffAttributeTags(xmlItemForStandoffClass.attributes, standoffTagV2.attributes) - case unknownDataType => + case _ => throw InconsistentRepositoryDataException( s"the triplestore returned an unknown data type for ${standoffTagV2.standoffTagClassIri} that could not be handled" ) @@ -1656,10 +1654,10 @@ object StandoffTagUtilV2 { index -> comparableTags.toSet } .toVector - .sortBy { case (index: Int, standoffForIndex: Set[StandoffTagV2]) => + .sortBy { case (index: Int, _) => index } - .map { case (index: Int, standoffForIndex: Set[StandoffTagV2]) => + .map { case (_, standoffForIndex: Set[StandoffTagV2]) => standoffForIndex } 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 75e7ecf189..ed6978219e 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 @@ -5,14 +5,10 @@ package org.knora.webapi.messages.util.standoff -import com.typesafe.scalalogging.Logger import com.sksamuel.diffpatch.DiffMatchPatch import com.sksamuel.diffpatch.DiffMatchPatch._ +import com.typesafe.scalalogging.Logger import org.apache.commons.text.StringEscapeUtils -import org.knora.webapi._ -import dsp.errors._ -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.util.ErrorHandlingMap import java.io.StringReader import java.io.StringWriter @@ -21,6 +17,11 @@ import javax.xml.parsers.SAXParserFactory import javax.xml.transform.stream.StreamSource import scala.xml._ +import dsp.errors._ +import org.knora.webapi._ +import org.knora.webapi.messages.StringFormatter +import org.knora.webapi.messages.util.ErrorHandlingMap + /** * Represents an attribute of a standoff tag. * diff --git a/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLUtil.scala b/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLUtil.scala index 0665d41493..93ccd1ad36 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/util/standoff/XMLUtil.scala @@ -6,12 +6,13 @@ package org.knora.webapi.messages.util.standoff import net.sf.saxon.s9api.XsltExecutable -import dsp.errors.StandoffConversionException import java.io.StringReader import java.io.StringWriter import javax.xml.transform.stream.StreamSource +import dsp.errors.StandoffConversionException + object XMLUtil { /** diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ckanmessages/CkanMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ckanmessages/CkanMessagesV1.scala index c10f3fb958..da04715035 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ckanmessages/CkanMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ckanmessages/CkanMessagesV1.scala @@ -6,10 +6,11 @@ package org.knora.webapi.messages.v1.responder.ckanmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi.messages.admin.responder.usersmessages.UserADM +import spray.json._ + import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 +import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.v1.responder.KnoraResponseV1 -import spray.json._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/listmessages/ListMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/listmessages/ListMessagesV1.scala index fced8a2f7b..e372362d27 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/listmessages/ListMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/listmessages/ListMessagesV1.scala @@ -6,11 +6,12 @@ package org.knora.webapi.messages.v1.responder.listmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import spray.json._ + import org.knora.webapi.IRI import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 import org.knora.webapi.messages.v1.responder.KnoraResponseV1 import org.knora.webapi.messages.v1.responder.usermessages.UserProfileV1 -import spray.json._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ontologymessages/OntologyMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ontologymessages/OntologyMessagesV1.scala index 919f031f17..679844d8f1 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ontologymessages/OntologyMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/ontologymessages/OntologyMessagesV1.scala @@ -6,7 +6,8 @@ package org.knora.webapi.messages.v1.responder.ontologymessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import dsp.schema.domain.Cardinality +import spray.json._ + import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 @@ -20,7 +21,6 @@ import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality.Kn import org.knora.webapi.messages.v2.responder.ontologymessages.ReadClassInfoV2 import org.knora.webapi.messages.v2.responder.ontologymessages._ import org.knora.webapi.messages.v2.responder.standoffmessages.StandoffDataTypeClasses -import spray.json._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Messages diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/projectmessages/ProjectMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/projectmessages/ProjectMessagesV1.scala index 31df178768..e2dd56bb5e 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/projectmessages/ProjectMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/projectmessages/ProjectMessagesV1.scala @@ -6,16 +6,17 @@ package org.knora.webapi.messages.v1.responder.projectmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi.IRI -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 -import org.knora.webapi.messages.v1.responder.KnoraResponseV1 -import org.knora.webapi.messages.v1.responder.usermessages.UserProfileV1 import spray.json.DefaultJsonProtocol import spray.json.JsValue import spray.json.JsonFormat import spray.json.NullOptions import spray.json.RootJsonFormat +import org.knora.webapi.IRI +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 +import org.knora.webapi.messages.v1.responder.KnoraResponseV1 +import org.knora.webapi.messages.v1.responder.usermessages.UserProfileV1 + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests 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 9979e71ce9..130572960e 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 @@ -6,6 +6,11 @@ package org.knora.webapi.messages.v1.responder.resourcemessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import spray.json._ + +import java.time.Instant +import java.util.UUID + import dsp.constants.SalsahGui import dsp.errors.BadRequestException import dsp.errors.DataConversionException @@ -19,10 +24,6 @@ import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.v1.responder.KnoraResponseV1 import org.knora.webapi.messages.v1.responder.valuemessages._ import org.knora.webapi.messages.v2.responder.UpdateResultInProject -import spray.json._ - -import java.time.Instant -import java.util.UUID ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests @@ -1089,7 +1090,7 @@ object ResourceV1JsonProtocol extends SprayJsonSupport with DefaultJsonProtocol val properties: Map[String, JsValue] = jsonObj.fields - "res_id" - "iconsrc" - val propsConverted: Seq[PropertyGetV1] = properties.map { case (propname: String, prop: JsValue) => + val propsConverted: Seq[PropertyGetV1] = properties.map { case (_: String, prop: JsValue) => val propObj = prop.asJsObject PropertyGetV1( diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/searchmessages/SearchMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/searchmessages/SearchMessagesV1.scala index 90eba5317b..3d1aa1f9fc 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/searchmessages/SearchMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/searchmessages/SearchMessagesV1.scala @@ -6,12 +6,13 @@ package org.knora.webapi.messages.v1.responder.searchmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi._ +import spray.json._ + import dsp.errors.BadRequestException -import org.knora.webapi.messages.admin.responder.usersmessages.UserADM +import org.knora.webapi._ import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 +import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.v1.responder.KnoraResponseV1 -import spray.json._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Messages diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/standoffmessages/StandoffMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/standoffmessages/StandoffMessagesV1.scala index 890b8cdfe7..ebd3df16da 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/standoffmessages/StandoffMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/standoffmessages/StandoffMessagesV1.scala @@ -6,15 +6,16 @@ package org.knora.webapi.messages.v1.responder.standoffmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport +import spray.json._ + +import java.util.UUID + import org.knora.webapi.IRI -import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 +import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.v1.responder.KnoraResponseV1 import org.knora.webapi.messages.v1.responder.ontologymessages.StandoffEntityInfoGetResponseV1 import org.knora.webapi.messages.v2.responder.standoffmessages.MappingXMLtoStandoff -import spray.json._ - -import java.util.UUID /** * An abstract trait representing a Knora v1 API request message that can be sent to `StandoffResponderV1`. diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1.scala index 8a55b7eb06..6c1f6c18c1 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1.scala @@ -6,19 +6,20 @@ package org.knora.webapi.messages.v1.responder.usermessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi._ +import spray.json._ + +import java.util.UUID + import dsp.errors.BadRequestException import dsp.errors.InconsistentRepositoryDataException +import org.knora.webapi._ +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionsADMJsonProtocol import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionsDataADM -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 import org.knora.webapi.messages.v1.responder.KnoraResponseV1 import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoV1 import org.knora.webapi.messages.v1.responder.projectmessages.ProjectV1JsonProtocol import org.knora.webapi.messages.v1.responder.usermessages.UserProfileTypeV1.UserProfileType -import spray.json._ - -import java.util.UUID ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/valuemessages/ValueMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/valuemessages/ValueMessagesV1.scala index 4d19237b4c..e5b8913efd 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/valuemessages/ValueMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/responder/valuemessages/ValueMessagesV1.scala @@ -6,26 +6,27 @@ package org.knora.webapi.messages.v1.responder.valuemessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi._ +import spray.json._ + +import java.time.Instant +import java.util.UUID + import dsp.errors.BadRequestException import dsp.errors.InconsistentRepositoryDataException +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.traits.Jsonable import org.knora.webapi.messages.util.DateUtilV1 import org.knora.webapi.messages.util.standoff.StandoffTagUtilV2 -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 import org.knora.webapi.messages.v1.responder.KnoraResponseV1 import org.knora.webapi.messages.v1.responder.resourcemessages.LocationV1 import org.knora.webapi.messages.v2.responder.UpdateResultInProject import org.knora.webapi.messages.v2.responder.standoffmessages._ import org.knora.webapi.messages.v2.responder.valuemessages._ -import spray.json._ - -import java.time.Instant -import java.util.UUID ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests @@ -1270,7 +1271,7 @@ case class JulianDayNumberValueV1( override def isDuplicateOfOtherValue(other: ApiValueV1): Boolean = other match { - case dateValueV1: DateValueV1 => DateUtilV1.julianDayNumberValueV1ToDateValueV1(this) == other + case _: DateValueV1 => DateUtilV1.julianDayNumberValueV1ToDateValueV1(this) == other case otherValue => throw InconsistentRepositoryDataException(s"Cannot compare a $valueTypeIri to a ${otherValue.valueTypeIri}") } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v1/routing/authenticationmessages/AuthenticationMessagesV1.scala b/webapi/src/main/scala/org/knora/webapi/messages/v1/routing/authenticationmessages/AuthenticationMessagesV1.scala index 64d88173ab..2a8f93533d 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v1/routing/authenticationmessages/AuthenticationMessagesV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v1/routing/authenticationmessages/AuthenticationMessagesV1.scala @@ -7,9 +7,10 @@ package org.knora.webapi.messages.v1.routing.authenticationmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport import akka.http.scaladsl.model.headers.BasicHttpCredentials +import spray.json._ + import org.knora.webapi.IRI import org.knora.webapi.messages.admin.responder.usersmessages.UserADM -import spray.json._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraRequestV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraRequestV2.scala index e8b61d802f..4051445460 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraRequestV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraRequestV2.scala @@ -6,8 +6,13 @@ package org.knora.webapi.messages.v2.responder import akka.actor.ActorRef -import com.typesafe.scalalogging.Logger import akka.util.Timeout +import com.typesafe.scalalogging.Logger + +import java.util.UUID +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.util.rdf.JsonLDDocument import org.knora.webapi.messages.util.rdf.RdfFeatureFactory @@ -15,10 +20,6 @@ import org.knora.webapi.messages.util.rdf.RdfModel import org.knora.webapi.messages.util.rdf.Turtle import org.knora.webapi.settings.KnoraSettingsImpl -import java.util.UUID -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * A trait for request messages that are constructed as an [[RdfModel]]. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraResponseV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraResponseV2.scala index 1f40d11141..24f46669c3 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraResponseV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/KnoraResponseV2.scala @@ -5,6 +5,8 @@ package org.knora.webapi.messages.v2.responder +import dsp.errors.AssertionException +import dsp.errors.BadRequestException import org.knora.webapi.ApiV2Complex import org.knora.webapi.ApiV2Schema import org.knora.webapi.ApiV2Simple @@ -12,8 +14,6 @@ import org.knora.webapi.InternalSchema import org.knora.webapi.OntologySchema import org.knora.webapi.SchemaOption import org.knora.webapi.SchemaOptions -import dsp.errors.AssertionException -import dsp.errors.BadRequestException import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.util.rdf._ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/listsmessages/ListsMessagesV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/listsmessages/ListsMessagesV2.scala index d756daa8ff..8d3e1f697f 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/listsmessages/ListsMessagesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/listsmessages/ListsMessagesV2.scala @@ -8,6 +8,7 @@ package org.knora.webapi.messages.v2.responder.listsmessages import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.listsmessages._ import org.knora.webapi.messages.admin.responder.usersmessages.UserADM @@ -16,7 +17,6 @@ import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.util.rdf import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.messages.v2.responder.KnoraJsonLDResponseV2 -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.settings.KnoraSettingsImpl /** 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 538d9d54a2..3103ba5fc2 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 @@ -8,6 +8,13 @@ package org.knora.webapi.messages.v2.responder.ontologymessages import akka.actor.ActorRef import akka.util.Timeout import com.typesafe.scalalogging.Logger +import org.apache.commons.lang3.builder.HashCodeBuilder + +import java.time.Instant +import java.util.UUID +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.constants.SalsahGui import dsp.errors.AssertionException import dsp.errors.BadRequestException @@ -17,7 +24,6 @@ import dsp.schema.domain.Cardinality import dsp.schema.domain.Cardinality._ import dsp.valueobjects.Iri import dsp.valueobjects.Schema -import org.apache.commons.lang3.builder.HashCodeBuilder import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants @@ -33,11 +39,6 @@ import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality.Ow import org.knora.webapi.messages.v2.responder.standoffmessages.StandoffDataTypeClasses import org.knora.webapi.settings.KnoraSettingsImpl -import java.time.Instant -import java.util.UUID -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * An abstract trait for messages that can be sent to `ResourcesResponderV2`. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/resourcemessages/ResourceMessagesV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/resourcemessages/ResourceMessagesV2.scala index ba3445b743..db894412e4 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/resourcemessages/ResourceMessagesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/resourcemessages/ResourceMessagesV2.scala @@ -6,11 +6,17 @@ package org.knora.webapi.messages.v2.responder.resourcemessages import akka.actor.ActorRef -import com.typesafe.scalalogging.Logger import akka.pattern._ import akka.util.Timeout -import org.knora.webapi._ +import com.typesafe.scalalogging.Logger + +import java.time.Instant +import java.util.UUID +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors._ +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 @@ -32,11 +38,6 @@ import org.knora.webapi.messages.v2.responder.valuemessages._ import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.util._ -import java.time.Instant -import java.util.UUID -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * An abstract trait for messages that can be sent to `ResourcesResponderV2`. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/searchmessages/SearchMessagesV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/searchmessages/SearchMessagesV2.scala index f878d7f4e5..e718d04dcf 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/searchmessages/SearchMessagesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/searchmessages/SearchMessagesV2.scala @@ -8,8 +8,8 @@ package org.knora.webapi.messages.v2.responder.searchmessages import org.knora.webapi.ApiV2Schema import org.knora.webapi.IRI import org.knora.webapi.SchemaOption -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.messages.OntologyConstants +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.util.rdf.JsonLDDocument diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/standoffmessages/StandoffMessagesV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/standoffmessages/StandoffMessagesV2.scala index a2b867ab11..7b504b7326 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/standoffmessages/StandoffMessagesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/standoffmessages/StandoffMessagesV2.scala @@ -6,12 +6,20 @@ package org.knora.webapi.messages.v2.responder.standoffmessages import akka.actor.ActorRef -import com.typesafe.scalalogging.Logger import akka.util.Timeout -import org.knora.webapi._ +import com.typesafe.scalalogging.Logger + +import java.time.Instant +import java.util.UUID +import scala.collection.immutable.SortedSet +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.AssertionException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.usersmessages.UserADM @@ -19,16 +27,9 @@ import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.messages.v2.responder.KnoraContentV2 import org.knora.webapi.messages.v2.responder.KnoraJsonLDRequestReaderV2 import org.knora.webapi.messages.v2.responder.KnoraJsonLDResponseV2 -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.messages.v2.responder.ontologymessages.StandoffEntityInfoGetResponseV2 import org.knora.webapi.settings.KnoraSettingsImpl -import java.time.Instant -import java.util.UUID -import scala.collection.immutable.SortedSet -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * An abstract trait representing a Knora v2 API request message that can be sent to `StandoffResponderV2`. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/valuemessages/ValueMessagesV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/valuemessages/ValueMessagesV2.scala index 507f5e2977..003df3ab83 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/valuemessages/ValueMessagesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/responder/valuemessages/ValueMessagesV2.scala @@ -10,6 +10,12 @@ import akka.http.scaladsl.util.FastFuture import akka.pattern._ import akka.util.Timeout import com.typesafe.scalalogging.Logger + +import java.time.Instant +import java.util.UUID +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.AssertionException import dsp.errors.BadRequestException import dsp.errors.NotImplementedException @@ -33,16 +39,10 @@ import org.knora.webapi.messages.util.standoff.XMLUtil import org.knora.webapi.messages.v2.responder._ import org.knora.webapi.messages.v2.responder.resourcemessages.ReadResourceV2 import org.knora.webapi.messages.v2.responder.standoffmessages._ -import org.knora.webapi.responders.ResponderManager import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.store.iiif.errors.SipiException import org.knora.webapi.util._ -import java.time.Instant -import java.util.UUID -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * A tagging trait for requests handled by [[org.knora.webapi.responders.v2.ValuesResponderV2]]. */ diff --git a/webapi/src/main/scala/org/knora/webapi/messages/v2/routing/authenticationmessages/AuthenticationMessagesV2.scala b/webapi/src/main/scala/org/knora/webapi/messages/v2/routing/authenticationmessages/AuthenticationMessagesV2.scala index 75ae1b7dea..d27f9d781a 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/v2/routing/authenticationmessages/AuthenticationMessagesV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/v2/routing/authenticationmessages/AuthenticationMessagesV2.scala @@ -6,10 +6,11 @@ package org.knora.webapi.messages.v2.routing.authenticationmessages import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi.IRI +import spray.json._ + import dsp.errors.BadRequestException +import org.knora.webapi.IRI import org.knora.webapi.messages.admin.responder.usersmessages.UserIdentifierADM -import spray.json._ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // API requests diff --git a/webapi/src/main/scala/org/knora/webapi/responders/IriLocker.scala b/webapi/src/main/scala/org/knora/webapi/responders/IriLocker.scala index a4a24745e0..b05491d71e 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/IriLocker.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/IriLocker.scala @@ -5,16 +5,16 @@ package org.knora.webapi.responders -import org.knora.webapi.IRI -import dsp.errors.ApplicationLockException -import org.knora.webapi.util.JavaUtil - import java.util.UUID import java.util.concurrent.ConcurrentHashMap import scala.annotation.tailrec import scala.concurrent.ExecutionContext import scala.concurrent.Future +import dsp.errors.ApplicationLockException +import org.knora.webapi.IRI +import org.knora.webapi.util.JavaUtil + /** * Implements JVM-wide, reentrant, application-level update locks on data represented by IRIs, such as Knora * resources. Each API operation that intends to perform an update receives an API request ID from its API route. It diff --git a/webapi/src/main/scala/org/knora/webapi/responders/Responder.scala b/webapi/src/main/scala/org/knora/webapi/responders/Responder.scala index 016b54ef64..5cd8f5652d 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/Responder.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/Responder.scala @@ -8,18 +8,18 @@ package responders import akka.actor.ActorRef import akka.actor.ActorSystem -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.util.FastFuture import akka.pattern._ import akka.util.Timeout import com.typesafe.scalalogging.LazyLogging import com.typesafe.scalalogging.Logger -import org.knora.webapi.store.cache.settings.CacheServiceSettings import scala.concurrent.ExecutionContext import scala.concurrent.Future import dsp.errors._ +import org.knora.webapi.store.cache.settings.CacheServiceSettings + import messages.store.triplestoremessages.SparqlSelectRequest import messages.util.ResponderData import messages.util.rdf.SparqlSelectResult diff --git a/webapi/src/main/scala/org/knora/webapi/responders/ResponderManager.scala b/webapi/src/main/scala/org/knora/webapi/responders/ResponderManager.scala index 7d31b976bc..0ce51fa041 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/ResponderManager.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/ResponderManager.scala @@ -5,12 +5,6 @@ package org.knora.webapi.responders -import akka.actor.Actor -import akka.actor.ActorLogging -import akka.actor.ActorRef -import akka.actor.ActorSystem -import akka.event.LoggingReceive -import org.knora.webapi.core.ActorMaker import org.knora.webapi.messages.ResponderRequest import org.knora.webapi.messages.admin.responder.groupsmessages.GroupsResponderRequestADM import org.knora.webapi.messages.admin.responder.listsmessages.ListsResponderRequestADM @@ -38,14 +32,6 @@ import org.knora.webapi.messages.v2.responder.valuemessages.ValuesResponderReque import org.knora.webapi.responders.admin._ import org.knora.webapi.responders.v1._ import org.knora.webapi.responders.v2._ -import org.knora.webapi.settings.KnoraDispatchers -import org.knora.webapi.settings.KnoraSettingsImpl -import org.knora.webapi.store.cache.settings.CacheServiceSettings -import org.knora.webapi.util.ActorUtil._ - -import scala.concurrent.ExecutionContext - -import zio._ /** * This actor receives messages representing client requests, and forwards them to pools of specialised actors diff --git a/webapi/src/main/scala/org/knora/webapi/responders/admin/GroupsResponderADM.scala b/webapi/src/main/scala/org/knora/webapi/responders/admin/GroupsResponderADM.scala index 4e3a442f1d..6bc3d99b45 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/admin/GroupsResponderADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/admin/GroupsResponderADM.scala @@ -7,8 +7,13 @@ package org.knora.webapi.responders.admin import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ + +import java.util.UUID +import scala.concurrent.Future + import dsp.errors._ +import dsp.valueobjects.Group.GroupStatus +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -25,11 +30,6 @@ import org.knora.webapi.responders.IriLocker import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import java.util.UUID -import scala.concurrent.Future -import dsp.valueobjects.Group.GroupStatus -import akka.actor.ActorRef - /** * Returns information about Knora projects. */ @@ -42,9 +42,8 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond * Receives a message extending [[ProjectsResponderRequestV1]], and returns an appropriate response message */ def receive(msg: GroupsResponderRequestADM) = msg match { - case GroupsGetADM(requestingUser) => groupsGetADM(requestingUser) - case GroupsGetRequestADM(requestingUser) => - groupsGetRequestADM(requestingUser) + case GroupsGetADM() => groupsGetADM + case GroupsGetRequestADM() => groupsGetRequestADM case GroupGetADM(groupIri, requestingUser) => groupGetADM(groupIri, requestingUser) case MultipleGroupsGetRequestADM(groupIris, requestingUser) => @@ -75,12 +74,9 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond /** * Gets all the groups (without built-in groups) and returns them as a sequence of [[GroupADM]]. * - * @param requestingUser the user making the request. * @return all the groups as a sequence of [[GroupADM]]. */ - private def groupsGetADM( - requestingUser: UserADM - ): Future[Seq[GroupADM]] = { + private def groupsGetADM: Future[Seq[GroupADM]] = { log.debug("groupsGetADM") @@ -117,7 +113,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond .value for { - maybeProjectADM: Option[ProjectADM] <- + maybeProjectADM <- appActor .ask( ProjectGetADM( @@ -129,7 +125,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond ) .mapTo[Option[ProjectADM]] - projectADM: ProjectADM = + projectADM = maybeProjectADM match { case Some(project) => project case None => @@ -197,17 +193,12 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond /** * Gets all the groups and returns them as a [[GroupsGetResponseADM]]. * - * @param requestingUser the user initiating the request. * @return all the groups as a [[GroupsGetResponseADM]]. */ - private def groupsGetRequestADM( - requestingUser: UserADM - ): Future[GroupsGetResponseADM] = + private def groupsGetRequestADM: Future[GroupsGetResponseADM] = for { maybeGroupsListToReturn <- - groupsGetADM( - requestingUser = requestingUser - ) + groupsGetADM result = maybeGroupsListToReturn match { case groups: Seq[GroupADM] if groups.nonEmpty => GroupsGetResponseADM(groups = groups) @@ -270,7 +261,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond requestingUser: UserADM ): Future[GroupGetResponseADM] = for { - maybeGroupADM: Option[GroupADM] <- + maybeGroupADM <- groupGetADM( groupIri = groupIri, requestingUser = requestingUser @@ -318,7 +309,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond log.debug("groupMembersGetADM - groupIri: {}", groupIri) for { - maybeGroupADM: Option[GroupADM] <- + maybeGroupADM <- groupGetADM( groupIri = groupIri, requestingUser = KnoraSystemInstances.Users.SystemUser @@ -352,7 +343,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond // _ = log.debug(s"groupMembersByIRIGetRequestV1 - result: {}", MessageUtil.toSource(groupMembersResponse)) // get project member IRI from results rows - groupMemberIris: Seq[IRI] = + groupMemberIris = if (groupMembersResponse.results.bindings.nonEmpty) { groupMembersResponse.results.bindings.map(_.rowMap("s")) } else { @@ -373,8 +364,8 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond ) .mapTo[Option[UserADM]] } - maybeUsers: Seq[Option[UserADM]] <- Future.sequence(maybeUsersFutures) - users: Seq[UserADM] = maybeUsers.flatten + maybeUsers <- Future.sequence(maybeUsersFutures) + users: Seq[UserADM] = maybeUsers.flatten _ = log.debug("groupMembersGetRequestADM - users: {}", users) @@ -451,7 +442,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond throw DuplicateValueException(s"Group with the name '${createRequest.name.value}' already exists") } - maybeProjectADM: Option[ProjectADM] <- + maybeProjectADM <- appActor .ask( ProjectGetADM( @@ -558,9 +549,9 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond requestingUser = KnoraSystemInstances.Users.SystemUser ) - groupADM: GroupADM = maybeGroupADM.getOrElse( - throw NotFoundException(s"Group <$groupIri> not found. Aborting update request.") - ) + groupADM = maybeGroupADM.getOrElse( + throw NotFoundException(s"Group <$groupIri> not found. Aborting update request.") + ) /* check if the requesting user is allowed to perform updates */ _ = @@ -636,9 +627,9 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond requestingUser = KnoraSystemInstances.Users.SystemUser ) - groupADM: GroupADM = maybeGroupADM.getOrElse( - throw NotFoundException(s"Group <$groupIri> not found. Aborting update request.") - ) + groupADM = maybeGroupADM.getOrElse( + throw NotFoundException(s"Group <$groupIri> not found. Aborting update request.") + ) /* check if the requesting user is allowed to perform updates */ _ = @@ -649,11 +640,11 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond throw ForbiddenException("Group's status can only be changed by a project or system admin.") } - maybeStatus: Option[GroupStatus] = changeGroupRequest.status match { - case Some(value) => - Some(GroupStatus.make(value).fold(e => throw e.head, v => v)) - case None => None - } + maybeStatus = changeGroupRequest.status match { + case Some(value) => + Some(GroupStatus.make(value).fold(e => throw e.head, v => v)) + case None => None + } /* create the update request */ groupUpdatePayload = GroupUpdatePayloadADM( @@ -810,7 +801,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond if (propsMap.nonEmpty) { for { projectIri <- projectIriFuture - maybeProject: Option[ProjectADM] <- + maybeProject <- appActor .ask( ProjectGetADM( @@ -820,9 +811,9 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond ) .mapTo[Option[ProjectADM]] - project: ProjectADM = maybeProject.getOrElse( - throw InconsistentRepositoryDataException(s"Group $groupIri has no project attached.") - ) + project = maybeProject.getOrElse( + throw InconsistentRepositoryDataException(s"Group $groupIri has no project attached.") + ) groupADM: GroupADM = GroupADM( @@ -877,24 +868,6 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond } } - /** - * Helper method for checking if a group identified by IRI exists. - * - * @param groupIri the IRI of the group. - * @return a [[Boolean]]. - */ - private def groupExists(groupIri: IRI): Future[Boolean] = - for { - askString <- Future( - org.knora.webapi.messages.twirl.queries.sparql.admin.txt.checkGroupExistsByIri(groupIri).toString - ) - // _ = log.debug("groupExists - query: {}", askString) - - checkGroupExistsResponse <- appActor.ask(SparqlAskRequest(askString)).mapTo[SparqlAskResponse] - result = checkGroupExistsResponse.result - - } yield result - /** * Helper method for checking if a group identified by name / project IRI exists. * @@ -937,7 +910,7 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond // group deactivated. need to remove members. log.debug("removeGroupMembersIfNecessary - group deactivated. need to remove members.") for { - members: Seq[UserADM] <- + members <- groupMembersGetADM( groupIri = changedGroup.id, requestingUser = KnoraSystemInstances.Users.SystemUser @@ -956,7 +929,8 @@ class GroupsResponderADM(responderData: ResponderData) extends Responder(respond ) .mapTo[UserOperationResponseADM] } - userOperationResults: Seq[UserOperationResponseADM] <- Future.sequence(seqOfFutures) + + _: Seq[UserOperationResponseADM] <- Future.sequence(seqOfFutures) } yield GroupOperationResponseADM(group = changedGroup) } 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 0695c1879b..b9a9997922 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 @@ -7,8 +7,16 @@ package org.knora.webapi.responders.admin import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ + +import java.util.UUID +import scala.annotation.tailrec +import scala.concurrent.Future + import dsp.errors._ +import dsp.valueobjects.Iri._ +import dsp.valueobjects.List.ListName +import dsp.valueobjects.ListErrorMessages +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -27,14 +35,6 @@ import org.knora.webapi.responders.IriLocker import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import java.util.UUID -import scala.annotation.tailrec -import scala.concurrent.Future -import dsp.valueobjects.Iri._ -import dsp.valueobjects.ListErrorMessages -import dsp.valueobjects.List.ListName -import akka.actor.ActorRef - /** * A responder that returns information about hierarchical lists. */ @@ -55,11 +55,11 @@ class ListsResponderADM(responderData: ResponderData) extends Responder(responde listNodeInfoGetRequestADM(listIri, requestingUser) case NodePathGetRequestADM(iri, requestingUser) => nodePathGetAdminRequest(iri, requestingUser) - case ListRootNodeCreateRequestADM(createRootNode, requestingUser, apiRequestID) => + case ListRootNodeCreateRequestADM(createRootNode, _, apiRequestID) => listCreateRequestADM(createRootNode, apiRequestID) - case ListChildNodeCreateRequestADM(createChildNodeRequest, requestingUser, apiRequestID) => + case ListChildNodeCreateRequestADM(createChildNodeRequest, _, apiRequestID) => listChildNodeCreateRequestADM(createChildNodeRequest, apiRequestID) - case NodeInfoChangeRequestADM(nodeIri, changeNodeRequest, requestingUser, apiRequestID) => + case NodeInfoChangeRequestADM(nodeIri, changeNodeRequest, _, apiRequestID) => nodeInfoChangeRequest(nodeIri, changeNodeRequest, apiRequestID) case NodeNameChangeRequestADM(nodeIri, changeNodeNameRequest, requestingUser, apiRequestID) => nodeNameChangeRequest(nodeIri, changeNodeNameRequest, requestingUser, apiRequestID) @@ -86,7 +86,7 @@ class ListsResponderADM(responderData: ResponderData) extends Responder(responde nodePositionChangeRequest(nodeIri, changeNodePositionRequest, requestingUser, apiRequestID) case ListItemDeleteRequestADM(nodeIri, requestingUser, apiRequestID) => deleteListItemRequestADM(nodeIri, requestingUser, apiRequestID) - case CanDeleteListRequestADM(iri, requestingUser) => + case CanDeleteListRequestADM(iri, _) => canDeleteListRequestADM(iri) case ListNodeCommentsDeleteRequestADM(iri, requestingUser) => deleteListNodeCommentsADM(iri, requestingUser) @@ -1012,7 +1012,7 @@ class ListsResponderADM(responderData: ResponderData) extends Responder(responde parentNodeIri, projectIri, name, - position, + _, labels, comments ) => @@ -2066,25 +2066,6 @@ class ListsResponderADM(responderData: ResponderData) extends Responder(responde // Helper Methods // //////////////////// - /** - * Helper method for checking if a project identified by IRI exists. - * - * @param projectIri the IRI of the project. - * @return a [[Boolean]]. - */ - private def projectByIriExists(projectIri: IRI): Future[Boolean] = - for { - askString <- - Future( - org.knora.webapi.messages.twirl.queries.sparql.admin.txt.checkProjectExistsByIri(projectIri).toString - ) - // _ = log.debug("projectByIriExists - query: {}", askString) - - askResponse <- appActor.ask(SparqlAskRequest(askString)).mapTo[SparqlAskResponse] - result = askResponse.result - - } yield result - /** * Helper method for checking if a list node identified by IRI exists and is a root node. * diff --git a/webapi/src/main/scala/org/knora/webapi/responders/admin/PermissionsResponderADM.scala b/webapi/src/main/scala/org/knora/webapi/responders/admin/PermissionsResponderADM.scala index 0bcb16966b..93af2ab7a0 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/admin/PermissionsResponderADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/admin/PermissionsResponderADM.scala @@ -7,8 +7,14 @@ package org.knora.webapi.responders.admin import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ + +import java.util.UUID +import scala.collection.immutable.Iterable +import scala.collection.mutable.ListBuffer +import scala.concurrent.Future + import dsp.errors._ +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -31,11 +37,6 @@ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.util.cache.CacheUtil -import java.util.UUID -import scala.collection.immutable.Iterable -import scala.collection.mutable.ListBuffer -import scala.concurrent.Future - /** * Provides information about permissions to other responders. */ diff --git a/webapi/src/main/scala/org/knora/webapi/responders/admin/ProjectsResponderADM.scala b/webapi/src/main/scala/org/knora/webapi/responders/admin/ProjectsResponderADM.scala index 8ce68e6100..2da00de35d 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/admin/ProjectsResponderADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/admin/ProjectsResponderADM.scala @@ -7,9 +7,20 @@ package org.knora.webapi.responders.admin import akka.http.scaladsl.util.FastFuture import akka.pattern._ + +import java.io.BufferedInputStream +import java.io.BufferedOutputStream +import java.nio.file.Files +import java.nio.file.Path +import java.util.UUID +import scala.concurrent.Future +import scala.util.Failure +import scala.util.Success +import scala.util.Try + +import dsp.errors._ import org.knora.webapi._ import org.knora.webapi.annotation.ApiMayChange -import dsp.errors._ import org.knora.webapi.instrumentation.InstrumentationSupport import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants @@ -33,16 +44,6 @@ import org.knora.webapi.responders.IriLocker import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import java.io.BufferedInputStream -import java.io.BufferedOutputStream -import java.nio.file.Files -import java.nio.file.Path -import java.util.UUID -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try - /** * Returns information about Knora projects. */ @@ -1201,7 +1202,7 @@ class ProjectsResponderADM(responderData: ResponderData) extends Responder(respo "getProjectFromCacheOrTriplestore - not found in cache but found in triplestore. need to write to cache." ) // writing project to cache and afterwards returning the project found in the triplestore - writeProjectADMToCache(project).map(res => Some(project)) + writeProjectADMToCache(project).map(_ => Some(project)) } case Some(user) => log.debug("getProjectFromCacheOrTriplestore - found in cache. returning user.") @@ -1331,49 +1332,6 @@ class ProjectsResponderADM(responderData: ResponderData) extends Responder(respo ).unescape } - /** - * Helper method for checking if a project exists. - * - * @param maybeIri the IRI of the project. - * @param maybeShortname the shortname of the project. - * @param maybeShortcode the shortcode of the project. - * @return a [[Boolean]]. - */ - private def projectExists( - maybeIri: Option[IRI], - maybeShortname: Option[String], - maybeShortcode: Option[String] - ): Future[Boolean] = - if (maybeIri.nonEmpty) { - projectByIriExists(maybeIri.get) - } else if (maybeShortname.nonEmpty) { - projectByShortnameExists(maybeShortname.get) - } else if (maybeShortcode.nonEmpty) { - projectByShortcodeExists(maybeShortcode.get) - } else { - FastFuture.successful(false) - } - - /** - * Helper method for checking if a project identified by IRI exists. - * - * @param projectIri the IRI of the project. - * @return a [[Boolean]]. - */ - private def projectByIriExists(projectIri: IRI): Future[Boolean] = - for { - askString <- Future( - org.knora.webapi.messages.twirl.queries.sparql.admin.txt - .checkProjectExistsByIri(projectIri = projectIri) - .toString - ) - // _ = log.debug("projectExists - query: {}", askString) - - checkProjectExistsResponse <- appActor.ask(SparqlAskRequest(askString)).mapTo[SparqlAskResponse] - result = checkProjectExistsResponse.result - - } yield result - /** * Helper method for checking if a project identified by shortname exists. * diff --git a/webapi/src/main/scala/org/knora/webapi/responders/admin/SipiResponderADM.scala b/webapi/src/main/scala/org/knora/webapi/responders/admin/SipiResponderADM.scala index bcc639c590..c4169db62e 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/admin/SipiResponderADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/admin/SipiResponderADM.scala @@ -7,6 +7,9 @@ package org.knora.webapi.responders.admin import akka.http.scaladsl.util.FastFuture import akka.pattern._ + +import scala.concurrent.Future + import dsp.errors.InconsistentRepositoryDataException import dsp.errors.NotFoundException import org.knora.webapi.messages.SmartIri @@ -27,8 +30,6 @@ import org.knora.webapi.messages.util.ResponderData import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import scala.concurrent.Future - /** * Responds to requests for information about binary representations of resources, and returns responses in Knora API * ADM format. diff --git a/webapi/src/main/scala/org/knora/webapi/responders/admin/StoresResponderADM.scala b/webapi/src/main/scala/org/knora/webapi/responders/admin/StoresResponderADM.scala index 06c4495186..6e92148c79 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/admin/StoresResponderADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/admin/StoresResponderADM.scala @@ -6,8 +6,10 @@ package org.knora.webapi.responders.admin import akka.pattern._ -import dsp.errors.ForbiddenException +import scala.concurrent.Future + +import dsp.errors.ForbiddenException import org.knora.webapi.messages.admin.responder.storesmessages.ResetTriplestoreContentRequestADM import org.knora.webapi.messages.admin.responder.storesmessages.ResetTriplestoreContentResponseADM import org.knora.webapi.messages.admin.responder.storesmessages.StoreResponderRequestADM @@ -23,8 +25,6 @@ import org.knora.webapi.messages.v2.responder.ontologymessages.LoadOntologiesReq import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import scala.concurrent.Future - /** * This responder is used by [[org.knora.webapi.routing.admin.StoreRouteADM]], for piping through HTTP requests to the * 'Store Module' diff --git a/webapi/src/main/scala/org/knora/webapi/responders/admin/UsersResponderADM.scala b/webapi/src/main/scala/org/knora/webapi/responders/admin/UsersResponderADM.scala index 8997119225..211adb15cf 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/admin/UsersResponderADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/admin/UsersResponderADM.scala @@ -7,11 +7,16 @@ package org.knora.webapi.responders.admin import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder + +import java.util.UUID +import scala.concurrent.Future + import dsp.errors.BadRequestException import dsp.errors.InconsistentRepositoryDataException import dsp.errors._ - +import dsp.valueobjects.User._ +import org.knora.webapi._ import org.knora.webapi.instrumentation.InstrumentationSupport import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants @@ -35,11 +40,6 @@ import org.knora.webapi.messages.util.rdf.SparqlSelectResult import org.knora.webapi.responders.IriLocker import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder - -import java.util.UUID -import scala.concurrent.Future -import dsp.valueobjects.User._ /** * Provides information about Knora users to other responders. diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/CkanResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/CkanResponderV1.scala index 16be85454c..8bfcd67de4 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/CkanResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/CkanResponderV1.scala @@ -8,8 +8,13 @@ package org.knora.webapi.responders.v1 import akka.actor.ActorRef import akka.pattern._ import akka.util.Timeout -import org.knora.webapi.IRI +import java.net.URLEncoder +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.triplestoremessages.SparqlSelectRequest @@ -24,7 +29,6 @@ import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoByShort import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoResponseV1 import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoV1 import org.knora.webapi.messages.v1.responder.resourcemessages._ -import org.knora.webapi.messages.v1.responder.usermessages.UserProfileV1 import org.knora.webapi.messages.v1.responder.valuemessages.DateValueV1 import org.knora.webapi.messages.v1.responder.valuemessages.HierarchicalListValueV1 import org.knora.webapi.messages.v1.responder.valuemessages.LinkV1 @@ -32,11 +36,6 @@ import org.knora.webapi.messages.v1.responder.valuemessages.TextValueV1 import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import java.net.URLEncoder -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * This responder is used by the Ckan route, for serving data to the Ckan harverster, which is published * under http://data.humanities.ch @@ -142,8 +141,7 @@ class CkanResponderV1(responderData: ResponderData) extends Responder(responderD - bild 2 */ - val pIri = pinfo.id - val resType = "http://www.knora.org/ontology/0804/dokubib#bild" + val pIri = pinfo.id val ckanPInfo = CkanProjectInfoV1( @@ -163,7 +161,7 @@ class CkanResponderV1(responderData: ResponderData) extends Responder(responderD bilderMitProps <- bilderMitPropsFuture dataset = bilderMitProps.map { case (iri, info, props) => - val infoMap = flattenInfo(info) + flattenInfo(info) val propsMap = flattenProps(props) CkanProjectDatasetV1( ckan_title = propsMap.getOrElse("Description", ""), @@ -269,15 +267,13 @@ class CkanResponderV1(responderData: ResponderData) extends Responder(responderD userProfile = userProfile ) - bookResourceFuture flatMap { case (bIri, bInfo, bProps) => - val bInfoMap = flattenInfo(bInfo) + bookResourceFuture flatMap { case (_, _, bProps) => val bPropsMap = flattenProps(bProps) val files = pageIris map { pageIri => getResource( iri = pageIri, userProfile = userProfile - ) map { case (pIri, pInfo, pProps) => - val pInfoMap = flattenInfo(pInfo) + ) map { case (pIri, _, pProps) => val pPropsMap = flattenProps(pProps) CkanProjectDatasetFileV1( ckan_title = pPropsMap.getOrElse("Page identifier", ""), @@ -378,39 +374,6 @@ class CkanResponderV1(responderData: ResponderData) extends Responder(responderD } yield result } - /** - * Get IRIs of a certain type inside a certain project - * - * @param projectIri - * @param resType - * @param limit - * @param userProfile - * @return - */ - private def getIris( - projectIri: IRI, - resType: String, - limit: Option[Int], - userProfile: UserProfileV1 - ): Future[Seq[IRI]] = - for { - sparqlQuery <- Future( - org.knora.webapi.messages.twirl.queries.sparql.v1.txt - .getResourcesByProjectAndType( - projectIri = projectIri, - resType = resType - ) - .toString() - ) - resourcesResponse <- appActor.ask(SparqlSelectRequest(sparqlQuery)).mapTo[SparqlSelectResult] - resourcesResponseRows: Seq[VariableResultsRow] = resourcesResponse.results.bindings - resIri = resourcesResponseRows.groupBy(_.rowMap("s")).keys.toVector - result = limit match { - case Some(n) if n > 0 => resIri.take(n) - case _ => resIri - } - } yield result - /** * Get all information there is about these resources * 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 7607a7bcd2..ddba0610f3 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 @@ -6,8 +6,12 @@ package org.knora.webapi.responders.v1 import akka.pattern._ -import org.knora.webapi._ + +import scala.annotation.tailrec +import scala.concurrent.Future + import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages.SparqlSelectRequest import org.knora.webapi.messages.util.ResponderData import org.knora.webapi.messages.util.rdf.SparqlSelectResult @@ -17,9 +21,6 @@ import org.knora.webapi.messages.v1.responder.usermessages.UserProfileV1 import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import scala.annotation.tailrec -import scala.concurrent.Future - /** * A responder that returns information about hierarchical lists. */ diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/OntologyResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/OntologyResponderV1.scala index 1d29a9beab..89ff42aad7 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/OntologyResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/OntologyResponderV1.scala @@ -6,6 +6,9 @@ package org.knora.webapi.responders.v1 import akka.pattern._ + +import scala.concurrent.Future + import dsp.constants.SalsahGui import dsp.errors.InconsistentRepositoryDataException import dsp.errors.NotFoundException @@ -26,8 +29,6 @@ import org.knora.webapi.messages.v2.responder.ontologymessages._ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import scala.concurrent.Future - /** * Handles requests for information about ontology entities. * @@ -603,7 +604,7 @@ class OntologyResponderV1(responderData: ResponderData) extends Responder(respon userProfile = userProfile ) propertyInfoMap: Map[IRI, PropertyInfoV1] = - entities.propertyInfoMap.filterNot { case (propertyIri, propertyEntityInfo) => + entities.propertyInfoMap.filterNot { case (_, propertyEntityInfo) => propertyEntityInfo.isLinkValueProp } diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/ProjectsResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/ProjectsResponderV1.scala index 8174033874..e4a1650f1f 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/ProjectsResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/ProjectsResponderV1.scala @@ -7,10 +7,12 @@ package org.knora.webapi.responders.v1 import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ + +import scala.concurrent.Future + import dsp.errors.InconsistentRepositoryDataException import dsp.errors.NotFoundException - +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.admin.responder.usersmessages.UserGetRequestADM @@ -29,15 +31,12 @@ import org.knora.webapi.messages.v1.responder.usermessages._ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import scala.concurrent.Future - /** * Returns information about Knora projects. */ class ProjectsResponderV1(responderData: ResponderData) extends Responder(responderData) { // Global lock IRI used for project creation and update - private val PROJECTS_GLOBAL_LOCK_IRI = "http://rdfh.ch/projects" /** * Receives a message extending [[ProjectsResponderRequestV1]], and returns an appropriate response message. 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 6c3643eb83..623aad6735 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 @@ -7,6 +7,14 @@ package org.knora.webapi.responders.v1 import akka.http.scaladsl.util.FastFuture import akka.pattern._ + +import java.time.Instant +import java.util.UUID +import scala.concurrent.Future +import scala.util.Failure +import scala.util.Success +import scala.util.Try + import dsp.constants.SalsahGui import dsp.errors._ import dsp.schema.domain.Cardinality._ @@ -37,7 +45,6 @@ import org.knora.webapi.messages.v1.responder.valuemessages._ import org.knora.webapi.messages.v2.responder.UpdateResultInProject import org.knora.webapi.messages.v2.responder.ontologymessages.OntologyMetadataGetByIriRequestV2 import org.knora.webapi.messages.v2.responder.ontologymessages.OntologyMetadataV2 -import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality.KnoraCardinalityInfo import org.knora.webapi.messages.v2.responder.ontologymessages.ReadOntologyMetadataV2 import org.knora.webapi.messages.v2.responder.valuemessages.FileValueContentV2 @@ -48,13 +55,6 @@ import org.knora.webapi.responders.v2.ResourceUtilV2 import org.knora.webapi.util.ActorUtil import org.knora.webapi.util.ApacheLuceneSupport.MatchStringWhileTyping -import java.time.Instant -import java.util.UUID -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try - /** * Responds to requests for information about resources, and returns responses in Knora API v1 format. */ @@ -497,7 +497,7 @@ class ResourcesResponderV1(responderData: ResponderData) extends Responder(respo queryOntology = true ) } yield userPermissions match { - case Some(permissions) => + case Some(_) => ResourceInfoResponseV1( resource_info = Some(resInfo), rights = userPermissions @@ -559,7 +559,7 @@ class ResourcesResponderV1(responderData: ResponderData) extends Responder(respo // Get the types of all the resources that this resource links to. linkedResourceTypes = groupedPropsByType.groupedLinkProperties.groupedProperties.foldLeft(Set.empty[IRI]) { - case (acc, (prop, propMap)) => + case (acc, (_, propMap)) => val targetResourceTypes = propMap.valueObjects.foldLeft(Set.empty[IRI]) { case (resTypeAcc, (obj: IRI, objMap: ValueProps)) => val resType = objMap.literalData.get(OntologyConstants.Rdf.Type) match { @@ -1139,8 +1139,8 @@ class ResourcesResponderV1(responderData: ResponderData) extends Responder(respo permissionCode = Seq(containingResourcePermissionCode, linkValuePermissionCode).min } yield permissionCode match { - case Some(permission) => (Some(containingResourceIri), Some(resInfoV1)) - case None => (None, None) + case Some(_) => (Some(containingResourceIri), Some(resInfoV1)) + case None => (None, None) } case _ => Future((None, None)) } @@ -2964,7 +2964,7 @@ class ResourcesResponderV1(responderData: ResponderData) extends Responder(respo ) maybeResourceProjectStatement: Option[(IRI, IRI)] = - permissionRelevantAssertions.find { case (subject, predicate) => + permissionRelevantAssertions.find { case (subject, _) => subject == OntologyConstants.KnoraBase.AttachedToProject } @@ -3253,19 +3253,19 @@ class ResourcesResponderV1(responderData: ResponderData) extends Responder(respo value_restype = valueObjects.map { _.valueV1 match { case link: LinkV1 => link.valueResourceClassLabel - case other => None + case _ => None } }, value_iconsrcs = valueObjects.map { _.valueV1 match { case link: LinkV1 => link.valueResourceClassIcon - case other => None + case _ => None } }, value_firstprops = valueObjects.map { _.valueV1 match { case link: LinkV1 => link.valueLabel - case other => None + case _ => None } }, values = valueObjects.map(_.valueV1), @@ -3550,7 +3550,7 @@ class ResourcesResponderV1(responderData: ResponderData) extends Responder(respo case Some(OntologyConstants.KnoraBase.IntValue) => Some("ival") case Some(OntologyConstants.KnoraBase.DecimalValue) => Some("dval") case Some(OntologyConstants.KnoraBase.DateValue) => Some("dateval") - case Some(other: IRI) => Some("textval") + case Some(_: IRI) => Some("textval") case None => None }, guielement = propertyV1.guielement, diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/SearchResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/SearchResponderV1.scala index b41e1c0643..3b4796e1b4 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/SearchResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/SearchResponderV1.scala @@ -6,9 +6,12 @@ package org.knora.webapi.responders.v1 import akka.pattern._ -import org.knora.webapi._ + +import scala.concurrent.Future + import dsp.errors.BadRequestException import dsp.errors.InconsistentRepositoryDataException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.store.triplestoremessages.SparqlSelectRequest @@ -28,8 +31,6 @@ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.util.ApacheLuceneSupport.LuceneQueryString -import scala.concurrent.Future - /** * Responds to requests for user search queries and returns responses in Knora API * v1 format. @@ -252,7 +253,7 @@ class SearchResponderV1(responderData: ResponderData) extends Responder(responde userProfile = userProfileV1 ) - val value: Option[(IRI, MatchingValue)] = valuePermissionCode.map { permissionCode => + val value: Option[(IRI, MatchingValue)] = valuePermissionCode.map { _ => val propertyIri = row.rowMap("resourceProperty") val propertyLabel = entityInfoResponse .propertyInfoMap(propertyIri) @@ -567,7 +568,7 @@ class SearchResponderV1(responderData: ResponderData) extends Responder(responde .toString searchParamWithoutValue.copy(searchValue = Some(searchString)) - case other => throw BadRequestException(s"The value type for the given property $prop is unknown.") + case _ => throw BadRequestException(s"The value type for the given property $prop is unknown.") } } } @@ -717,8 +718,8 @@ class SearchResponderV1(responderData: ResponderData) extends Responder(responde } // Filter out the values that the user doesn't have permission to see. - val filteredValues: Seq[(IRI, MatchingValue)] = valuesInRow.filter { - case (matchingValueIri, matchingValue) => matchingValue.valuePermissionCode.nonEmpty + val filteredValues: Seq[(IRI, MatchingValue)] = valuesInRow.filter { case (_, matchingValue) => + matchingValue.valuePermissionCode.nonEmpty } valuesAcc ++ filteredValues diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/StandoffResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/StandoffResponderV1.scala index 1cb8907152..d73a7eb54e 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/StandoffResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/StandoffResponderV1.scala @@ -6,9 +6,12 @@ package org.knora.webapi.responders.v1 import akka.pattern._ -import org.knora.webapi._ -import dsp.errors.NotFoundException +import java.util.UUID +import scala.concurrent.Future + +import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.usersmessages.UserADM @@ -21,9 +24,6 @@ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.store.iiif.errors.SipiException -import java.util.UUID -import scala.concurrent.Future - /** * Responds to requests relating to the creation of mappings from XML elements and attributes to standoff classes and properties. */ diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v1/UsersResponderV1.scala b/webapi/src/main/scala/org/knora/webapi/responders/v1/UsersResponderV1.scala index ef4095decc..6d56e952b7 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v1/UsersResponderV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v1/UsersResponderV1.scala @@ -7,11 +7,14 @@ package org.knora.webapi.responders.v1 import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ + +import java.util.UUID +import scala.concurrent.Future + import dsp.errors.ApplicationCacheException import dsp.errors.ForbiddenException import dsp.errors.NotFoundException - +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionDataGetADM import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionsDataADM @@ -28,9 +31,6 @@ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.util.cache.CacheUtil -import java.util.UUID -import scala.concurrent.Future - /** * Provides information about Knora users to other responders. */ @@ -669,21 +669,4 @@ class UsersResponderV1(responderData: ResponderData) extends Responder(responder true } - /** - * Removes the user profile from cache. - * - * @param userIri the user's IRI und which a profile could be cached. - * @param email the user's email under which a profile could be cached. - */ - private def invalidateCachedUserProfileV1(userIri: Option[IRI] = None, email: Option[String] = None): Unit = { - - if (userIri.nonEmpty) { - CacheUtil.remove(USER_PROFILE_CACHE_NAME, userIri.get) - } - - if (email.nonEmpty) { - CacheUtil.remove(USER_PROFILE_CACHE_NAME, email.get) - } - } - } 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 fcb0bee4df..d44f9055bf 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 @@ -6,6 +6,11 @@ package org.knora.webapi.responders.v1 import akka.pattern._ + +import java.time.Instant +import scala.annotation.tailrec +import scala.concurrent.Future + import dsp.errors._ import dsp.schema.domain.Cardinality._ import org.knora.webapi._ @@ -38,7 +43,6 @@ import org.knora.webapi.messages.v1.responder.usermessages.UserProfileByIRIGetV1 import org.knora.webapi.messages.v1.responder.usermessages.UserProfileTypeV1 import org.knora.webapi.messages.v1.responder.usermessages.UserProfileV1 import org.knora.webapi.messages.v1.responder.valuemessages._ -import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality import org.knora.webapi.messages.v2.responder.standoffmessages._ import org.knora.webapi.messages.v2.responder.valuemessages.FileValueContentV2 import org.knora.webapi.responders.IriLocker @@ -47,10 +51,6 @@ import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.responders.v2.ResourceUtilV2 import org.knora.webapi.util._ -import java.time.Instant -import scala.annotation.tailrec -import scala.concurrent.Future - /** * Updates Knora values. */ @@ -883,7 +883,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde // If we're updating a link, findResourceWithValueResult will contain the IRI of the property that points to the // knora-base:LinkValue, but we'll need the IRI of the corresponding link property. val propertyIri = changeValueRequest.value match { - case linkUpdateV1: LinkUpdateV1 => + case _: LinkUpdateV1 => stringFormatter.linkValuePropertyIriToLinkPropertyIri(findResourceWithValueResult.propertyIri) case _ => findResourceWithValueResult.propertyIri } @@ -896,7 +896,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde // Ensure that the user has permission to modify the value. maybeCurrentValueQueryResult: Option[ValueQueryResult] <- changeValueRequest.value match { - case linkUpdateV1: LinkUpdateV1 => + case _: LinkUpdateV1 => // We're being asked to update a link. We expect the current value version IRI to point to a // knora-base:LinkValue. Get all necessary information about the LinkValue and the corresponding // direct link. @@ -908,7 +908,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde userProfile = changeValueRequest.userProfile ) - case otherValueV1 => + case _ => // We're being asked to update an ordinary value. findValue( valueIri = changeValueRequest.valueIri, @@ -1096,7 +1096,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde // Give the new version the same permissions as the previous version. val valuePermissions = currentValueQueryResult.permissionRelevantAssertions.find { - case (p, o) => + case (p, _) => p == OntologyConstants.KnoraBase.HasPermissions } .map(_._2) @@ -1321,7 +1321,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde val valuePermissions: String = currentValueQueryResult.permissionRelevantAssertions.find { - case (p, o) => + case (p, _) => p == OntologyConstants.KnoraBase.HasPermissions } .map(_._2) @@ -2022,13 +2022,12 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde maybePermissionCode = valueClassIri match { case OntologyConstants.KnoraBase.LinkValue => - val linkPredicateIri = - getValuePredicateObject(predicateIri = OntologyConstants.Rdf.Predicate, rows = rows) - .getOrElse( - throw InconsistentRepositoryDataException( - s"Link value $valueIri has no rdf:predicate" - ) + getValuePredicateObject(predicateIri = OntologyConstants.Rdf.Predicate, rows = rows) + .getOrElse( + throw InconsistentRepositoryDataException( + s"Link value $valueIri has no rdf:predicate" ) + ) PermissionUtilADM.getUserPermissionWithValuePropsV1( valueIri = valueIri, @@ -2214,7 +2213,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde rights = linkValueQueryResult.permissionCode ) - case ordinaryUpdateValueV1 => + case _ => for { verifyUpdateResult <- verifyOrdinaryValueUpdate( resourceIri = resourceIri, @@ -2727,7 +2726,7 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde newTextValue match { case newTextWithStandoff: TextValueWithStandoffV1 => checkTextValueResourceRefs(newTextWithStandoff) - case textValueSimple: TextValueSimpleV1 => () + case _: TextValueSimpleV1 => () } // Identify the resource references that have been added or removed in the new version of @@ -2735,14 +2734,14 @@ class ValuesResponderV1(responderData: ResponderData) extends Responder(responde val currentResourceRefs = currentTextValue match { case textValueWithStandoff: TextValueWithStandoffV1 => textValueWithStandoff.resource_reference - case textValueSimple: TextValueSimpleV1 => + case _: TextValueSimpleV1 => Set.empty[IRI] } val newResourceRefs = newTextValue match { case textValueWithStandoff: TextValueWithStandoffV1 => textValueWithStandoff.resource_reference - case textValueSimple: TextValueSimpleV1 => + case _: TextValueSimpleV1 => Set.empty[IRI] } val addedResourceRefs = diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ListsResponderV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ListsResponderV2.scala index 1602aeb654..6e18d06485 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ListsResponderV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ListsResponderV2.scala @@ -6,8 +6,10 @@ package org.knora.webapi.responders.v2 import akka.pattern._ -import org.knora.webapi.IRI +import scala.concurrent.Future + +import org.knora.webapi.IRI import org.knora.webapi.messages.admin.responder.listsmessages.ChildNodeInfoGetResponseADM import org.knora.webapi.messages.admin.responder.listsmessages.ListGetRequestADM import org.knora.webapi.messages.admin.responder.listsmessages.ListGetResponseADM @@ -18,8 +20,6 @@ import org.knora.webapi.messages.v2.responder.listsmessages._ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage -import scala.concurrent.Future - /** * Responds to requests relating to lists and nodes. */ 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 a92f39deef..c99e02bef2 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 @@ -7,6 +7,10 @@ package org.knora.webapi.responders.v2 import akka.http.scaladsl.util.FastFuture import akka.pattern._ + +import java.time.Instant +import scala.concurrent.Future + import dsp.constants.SalsahGui import dsp.errors._ import dsp.schema.domain.Cardinality._ @@ -18,13 +22,11 @@ import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectGetRequ import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectGetResponseADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM import org.knora.webapi.messages.admin.responder.usersmessages.UserADM -import org.knora.webapi.messages.store.triplestoremessages.OntologyLiteralV2 import org.knora.webapi.messages.store.triplestoremessages.SmartIriLiteralV2 import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateRequest import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateResponse import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.util.ErrorHandlingMap -import org.knora.webapi.messages.util.KnoraSystemInstances import org.knora.webapi.messages.util.ResponderData import org.knora.webapi.messages.v2.responder.CanDoResponseV2 import org.knora.webapi.messages.v2.responder.SuccessResponseV2 @@ -39,11 +41,6 @@ import org.knora.webapi.responders.v2.ontology.CardinalityHandler import org.knora.webapi.responders.v2.ontology.OntologyHelpers import org.knora.webapi.util._ -import java.time.Instant -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * Responds to requests dealing with ontologies. * @@ -78,7 +75,7 @@ class OntologyResponderV2(responderData: ResponderData) extends Responder(respon case StandoffClassesWithDataTypeGetRequestV2(requestingUser) => getStandoffStandoffClassesWithDataTypeV2(requestingUser) case StandoffAllPropertyEntitiesGetRequestV2(requestingUser) => getAllStandoffPropertyEntitiesV2(requestingUser) - case CheckSubClassRequestV2(subClassIri, superClassIri, requestingUser) => + case CheckSubClassRequestV2(subClassIri, superClassIri, _) => checkSubClassV2(subClassIri, superClassIri) case SubClassesGetRequestV2(resourceClassIri, requestingUser) => getSubClassesV2(resourceClassIri, requestingUser) case OntologyKnoraEntityIrisGetRequestV2(namedGraphIri, requestingUser) => diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourceUtilV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourceUtilV2.scala index b915ae72df..e5fcf0ff5b 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourceUtilV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ResourceUtilV2.scala @@ -9,7 +9,12 @@ import akka.actor.ActorRef import akka.pattern._ import akka.util.Timeout import com.typesafe.scalalogging.Logger -import dsp.errors.BadRequestException + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future +import scala.util.Failure +import scala.util.Success + import dsp.errors.ForbiddenException import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants @@ -21,8 +26,6 @@ import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.sipimessages.DeleteTemporaryFileRequest import org.knora.webapi.messages.store.sipimessages.MoveTemporaryFileToPermanentStorageRequest import org.knora.webapi.messages.store.triplestoremessages.LiteralV2 -import org.knora.webapi.messages.store.triplestoremessages.SparqlAskRequest -import org.knora.webapi.messages.store.triplestoremessages.SparqlAskResponse import org.knora.webapi.messages.store.triplestoremessages.SparqlExtendedConstructRequest import org.knora.webapi.messages.store.triplestoremessages.SparqlExtendedConstructResponse import org.knora.webapi.messages.store.triplestoremessages.SubjectV2 @@ -36,11 +39,6 @@ import org.knora.webapi.messages.v2.responder.valuemessages.FileValueContentV2 import org.knora.webapi.messages.v2.responder.valuemessages.ReadValueV2 import org.knora.webapi.messages.v2.responder.valuemessages.ValueContentV2 -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success - /** * Utility functions for working with Knora resources and their values. */ @@ -234,7 +232,7 @@ object ResourceUtilV2 { // Did Sipi successfully delete the temporary file? sipiResponseFuture.transformWith { - case Success(value) => + case Success(_) => // Yes. Return the future we were given. updateFuture 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 83c061cac8..df38c49907 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 @@ -8,6 +8,13 @@ package org.knora.webapi.responders.v2 import akka.http.scaladsl.util.FastFuture import akka.pattern._ import akka.stream.Materializer + +import java.time.Instant +import java.util.UUID +import scala.concurrent.Future +import scala.util.Failure +import scala.util.Success + import dsp.errors._ import dsp.schema.domain.Cardinality._ import org.knora.webapi._ @@ -57,12 +64,6 @@ import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.store.iiif.errors.SipiException import org.knora.webapi.util._ -import java.time.Instant -import java.util.UUID -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success - class ResourcesResponderV2(responderData: ResponderData) extends ResponderWithStandoffV2(responderData) { /* actor materializer needed for http requests */ diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ResponderWithStandoffV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ResponderWithStandoffV2.scala index ab050f4946..670ae124f2 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ResponderWithStandoffV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ResponderWithStandoffV2.scala @@ -7,9 +7,11 @@ package org.knora.webapi.responders.v2 import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi.IRI -import dsp.errors.NotFoundException +import scala.concurrent.Future + +import dsp.errors.NotFoundException +import org.knora.webapi.IRI import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.util.ConstructResponseUtilV2 import org.knora.webapi.messages.util.ConstructResponseUtilV2.MappingAndXSLTransformation @@ -22,8 +24,6 @@ import org.knora.webapi.messages.v2.responder.standoffmessages.GetXSLTransformat import org.knora.webapi.responders.Responder import org.knora.webapi.store.iiif.errors.SipiException -import scala.concurrent.Future - /** * An abstract class with standoff utility methods for v2 responders. */ diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/SearchResponderV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/SearchResponderV2.scala index 5fb199226e..5e0d70b150 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/SearchResponderV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/SearchResponderV2.scala @@ -7,12 +7,17 @@ package org.knora.webapi.responders.v2 import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ + +import scala.concurrent.Future +import scala.util.Failure +import scala.util.Success +import scala.util.Try + import dsp.errors.AssertionException import dsp.errors.BadRequestException import dsp.errors.GravsearchException import dsp.errors.InconsistentRepositoryDataException - +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -44,11 +49,6 @@ import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.store.triplestore.errors.TriplestoreTimeoutException import org.knora.webapi.util.ApacheLuceneSupport._ -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try - class SearchResponderV2(responderData: ResponderData) extends ResponderWithStandoffV2(responderData) { // A Gravsearch type inspection runner. @@ -549,7 +549,7 @@ class SearchResponderV2(responderData: ResponderData) extends ResponderWithStand (tryPrequeryResponseNotMerged match { case Failure(exception) => { exception match { - case timeoutException: TriplestoreTimeoutException => + case _: TriplestoreTimeoutException => log.error(s"Gravsearch timed out for query: $inputQuery") } throw exception diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/StandoffResponderV2.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/StandoffResponderV2.scala index f8df0ea45e..69748f4485 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/StandoffResponderV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/StandoffResponderV2.scala @@ -8,6 +8,22 @@ package org.knora.webapi.responders.v2 import akka.pattern._ import akka.stream.Materializer import akka.util.Timeout +import org.xml.sax.SAXException + +import java.io._ +import java.util.UUID +import javax.xml.XMLConstants +import javax.xml.transform.stream.StreamSource +import javax.xml.validation.Schema +import javax.xml.validation.SchemaFactory +import javax.xml.validation.{Validator => JValidator} +import scala.concurrent.ExecutionContext +import scala.concurrent.Future +import scala.xml.Elem +import scala.xml.Node +import scala.xml.NodeSeq +import scala.xml.XML + import dsp.errors._ import dsp.schema.domain.Cardinality._ import org.knora.webapi._ @@ -42,21 +58,6 @@ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.util._ import org.knora.webapi.util.cache.CacheUtil -import org.xml.sax.SAXException - -import java.io._ -import java.util.UUID -import javax.xml.XMLConstants -import javax.xml.transform.stream.StreamSource -import javax.xml.validation.Schema -import javax.xml.validation.SchemaFactory -import javax.xml.validation.{Validator => JValidator} -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.xml.Elem -import scala.xml.Node -import scala.xml.NodeSeq -import scala.xml.XML /** * Responds to requests relating to the creation of mappings from XML elements and attributes to standoff classes and properties. @@ -647,7 +648,7 @@ class StandoffResponderV2(responderData: ResponderData) extends Responder(respon case validationException: SAXException => throw BadRequestException(s"the provided mapping is invalid: ${validationException.getMessage}") - case ioException: IOException => throw NotFoundException(s"The schema could not be found") + case _: IOException => throw NotFoundException(s"The schema could not be found") case unknown: Exception => throw BadRequestException(s"the provided mapping could not be handled correctly: ${unknown.getMessage}") @@ -801,7 +802,7 @@ class StandoffResponderV2(responderData: ResponderData) extends Responder(respon val newNamespaceMap: Map[String, Map[String, XMLTag]] = namespaceMap.get(tagname) match { case Some(tagMap: Map[String, XMLTag]) => tagMap.get(classname) match { - case Some(existingClassname) => + case Some(_) => throw BadRequestException("Duplicate tag and classname combination in the same namespace") case None => // create the definition for the current element @@ -945,7 +946,7 @@ class StandoffResponderV2(responderData: ResponderData) extends Responder(respon // separate MappingElements from other statements (attributes and datatypes) (mappingElementStatements: Map[IRI, Seq[(IRI, String)]], otherStatements: Map[IRI, Seq[(IRI, String)]]) = - mappingResponse.statements.partition { case (subjectIri: IRI, assertions: Seq[(IRI, String)]) => + mappingResponse.statements.partition { case (_: IRI, assertions: Seq[(IRI, String)]) => assertions.contains((OntologyConstants.Rdf.Type, OntologyConstants.KnoraBase.MappingElement)) } @@ -956,9 +957,9 @@ class StandoffResponderV2(responderData: ResponderData) extends Responder(respon // check for attributes val attributes: Seq[MappingXMLAttribute] = assertions.filter { - case (propIri, obj) => + case (propIri, _) => propIri == OntologyConstants.KnoraBase.MappingHasXMLAttribute - }.map { case (attrProp: IRI, attributeElementIri: String) => + }.map { case (_: IRI, attributeElementIri: String) => val attributeStatementsAsMap: Map[IRI, String] = otherStatements(attributeElementIri).toMap @@ -1021,11 +1022,10 @@ class StandoffResponderV2(responderData: ResponderData) extends Responder(respon }.toSeq // check if there is a default XSL transformation - defaultXSLTransformationOption: Option[IRI] = otherStatements(mappingIri).find { case (pred: IRI, obj: String) => + defaultXSLTransformationOption: Option[IRI] = otherStatements(mappingIri).find { case (pred: IRI, _: String) => pred == OntologyConstants.KnoraBase.MappingHasDefaultXSLTransformation - }.map { - case (hasDefaultTransformation: IRI, xslTransformationIri: IRI) => - xslTransformationIri + }.map { case (_: IRI, xslTransformationIri: IRI) => + xslTransformationIri } mappingXMLToStandoff = transformMappingElementsToMappingXMLtoStandoff( @@ -1104,7 +1104,7 @@ class StandoffResponderV2(responderData: ResponderData) extends Responder(respon standoffPropertyIrisFromOntologyResponder: Set[SmartIri] = standoffClassEntities.standoffClassInfoMap.foldLeft( Set.empty[SmartIri] - ) { case (acc, (standoffClassIri, standoffClassEntity: ReadClassInfoV2)) => + ) { case (acc, (_, standoffClassEntity: ReadClassInfoV2)) => val props = standoffClassEntity.allCardinalities.keySet acc ++ props } 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 ca763c4d7f..46bca3e06e 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 @@ -7,6 +7,11 @@ package org.knora.webapi.responders.v2 import akka.http.scaladsl.util.FastFuture import akka.pattern._ + +import java.time.Instant +import java.util.UUID +import scala.concurrent.Future + import dsp.errors._ import dsp.schema.domain.Cardinality._ import org.knora.webapi._ @@ -35,10 +40,6 @@ import org.knora.webapi.responders.Responder import org.knora.webapi.responders.Responder.handleUnexpectedMessage import org.knora.webapi.util.ActorUtil -import java.time.Instant -import java.util.UUID -import scala.concurrent.Future - /** * Handles requests to read and write Knora values. */ diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/Cache.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/Cache.scala index 2d54d8932c..2e8cd17efa 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/Cache.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/Cache.scala @@ -11,6 +11,11 @@ import akka.pattern._ import akka.util.Timeout import com.typesafe.scalalogging.LazyLogging import com.typesafe.scalalogging.Logger + +import java.time.Instant +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.ApplicationCacheException import dsp.errors.BadRequestException import dsp.errors.ForbiddenException @@ -45,10 +50,6 @@ import org.knora.webapi.responders.v2.ontology.OntologyHelpers.OntologyGraph import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.util.cache.CacheUtil -import java.time.Instant -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - object Cache extends LazyLogging { private val log: Logger = logger diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/CardinalityHandler.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/CardinalityHandler.scala index a34391f636..314465d790 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/CardinalityHandler.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/CardinalityHandler.scala @@ -9,6 +9,11 @@ import akka.actor.ActorRef import akka.http.scaladsl.util.FastFuture import akka.pattern._ import akka.util.Timeout + +import java.time.Instant +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.BadRequestException import dsp.errors.InconsistentRepositoryDataException import org.knora.webapi.InternalSchema @@ -25,10 +30,6 @@ import org.knora.webapi.messages.v2.responder.CanDoResponseV2 import org.knora.webapi.messages.v2.responder.ontologymessages._ import org.knora.webapi.settings.KnoraSettingsImpl -import java.time.Instant -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * Contains methods used for dealing with cardinalities on a class */ diff --git a/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpers.scala b/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpers.scala index 44cc99d387..9b7c6dd02d 100644 --- a/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpers.scala +++ b/webapi/src/main/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpers.scala @@ -9,6 +9,14 @@ import akka.actor.ActorRef import akka.http.scaladsl.util.FastFuture import akka.pattern._ import akka.util.Timeout +import zio.prelude.Validation + +import java.time.Instant +import scala.collection.immutable +import scala.concurrent.ExecutionContext +import scala.concurrent.Future +import scala.util.Try + import dsp.constants.SalsahGui import dsp.errors._ import dsp.schema.domain.Cardinality._ @@ -32,15 +40,6 @@ import org.knora.webapi.messages.v2.responder.ontologymessages._ import org.knora.webapi.messages.v2.responder.standoffmessages.StandoffDataTypeClasses import org.knora.webapi.responders.v2.ontology.Cache.OntologyCacheData import org.knora.webapi.settings.KnoraSettingsImpl -import zio.prelude.Validation - -import java.time.Instant -import scala.collection.immutable -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try object OntologyHelpers { diff --git a/webapi/src/main/scala/org/knora/webapi/routing/AroundDirectives.scala b/webapi/src/main/scala/org/knora/webapi/routing/AroundDirectives.scala index d7b75aadb3..321557b9e2 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/AroundDirectives.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/AroundDirectives.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing import akka.http.scaladsl.server.Directive0 import akka.http.scaladsl.server.Directives._ + import org.knora.webapi.instrumentation.InstrumentationSupport /** diff --git a/webapi/src/main/scala/org/knora/webapi/routing/Authenticator.scala b/webapi/src/main/scala/org/knora/webapi/routing/Authenticator.scala index 36363d1bd1..2b5ee161b3 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/Authenticator.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/Authenticator.scala @@ -17,22 +17,7 @@ import akka.pattern._ import akka.util.ByteString import akka.util.Timeout import com.typesafe.scalalogging.Logger -import org.knora.webapi.IRI -import dsp.errors.AuthenticationException -import dsp.errors.BadCredentialsException -import dsp.errors.BadRequestException - -import org.knora.webapi.instrumentation.InstrumentationSupport -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.admin.responder.usersmessages._ -import org.knora.webapi.messages.util.KnoraSystemInstances -import org.knora.webapi.messages.v1.responder.usermessages._ -import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredentialsV2.KnoraJWTTokenCredentialsV2 -import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredentialsV2.KnoraPasswordCredentialsV2 -import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredentialsV2.KnoraSessionCredentialsV2 -import org.knora.webapi.messages.v2.routing.authenticationmessages._ -import org.knora.webapi.settings.KnoraSettings -import org.knora.webapi.util.cache.CacheUtil +import org.apache.commons.codec.binary.Base32 import org.slf4j.LoggerFactory import pdi.jwt.JwtAlgorithm import pdi.jwt.JwtClaim @@ -48,9 +33,23 @@ import scala.concurrent.duration._ import scala.util.Failure import scala.util.Success import scala.util.Try -import scala.annotation.tailrec + +import dsp.errors.AuthenticationException +import dsp.errors.BadCredentialsException +import dsp.errors.BadRequestException +import org.knora.webapi.IRI +import org.knora.webapi.instrumentation.InstrumentationSupport +import org.knora.webapi.messages.StringFormatter +import org.knora.webapi.messages.admin.responder.usersmessages._ +import org.knora.webapi.messages.util.KnoraSystemInstances +import org.knora.webapi.messages.v1.responder.usermessages._ +import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredentialsV2.KnoraJWTTokenCredentialsV2 +import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredentialsV2.KnoraPasswordCredentialsV2 +import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredentialsV2.KnoraSessionCredentialsV2 +import org.knora.webapi.messages.v2.routing.authenticationmessages._ +import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.settings.KnoraSettingsImpl -import org.apache.commons.codec.binary.Base32 +import org.knora.webapi.util.cache.CacheUtil /** * This trait is used in routes that need authentication support. It provides methods that use the [[RequestContext]] diff --git a/webapi/src/main/scala/org/knora/webapi/routing/HealthRoute.scala b/webapi/src/main/scala/org/knora/webapi/routing/HealthRoute.scala index 97e9877c27..a3fc17e6fc 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/HealthRoute.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/HealthRoute.scala @@ -9,17 +9,18 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.server.Directives.get import akka.http.scaladsl.server.Directives.path import akka.http.scaladsl.server.Route +import akka.http.scaladsl.util.FastFuture import akka.pattern.ask import akka.util.Timeout -import org.knora.webapi.messages.app.appmessages.AppState -import org.knora.webapi.messages.app.appmessages.AppStates -import org.knora.webapi.messages.app.appmessages.GetAppState import spray.json.JsObject import spray.json.JsString import scala.concurrent.Future import scala.concurrent.duration._ -import akka.http.scaladsl.util.FastFuture + +import org.knora.webapi.messages.app.appmessages.AppState +import org.knora.webapi.messages.app.appmessages.AppStates +import org.knora.webapi.messages.app.appmessages.GetAppState case class HealthCheckResult(name: String, severity: String, status: Boolean, message: String) diff --git a/webapi/src/main/scala/org/knora/webapi/routing/KnoraRoute.scala b/webapi/src/main/scala/org/knora/webapi/routing/KnoraRoute.scala index 7f4338505c..34abae9711 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/KnoraRoute.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/KnoraRoute.scala @@ -7,16 +7,20 @@ package org.knora.webapi.routing import akka.actor.ActorRef import akka.actor.ActorSystem -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.server.RequestContext import akka.http.scaladsl.server.Route import akka.http.scaladsl.server.RouteResult import akka.pattern._ import akka.stream.Materializer import akka.util.Timeout -import org.knora.webapi.IRI -import dsp.errors.BadRequestException +import com.typesafe.scalalogging.Logger +import zio.prelude.Validation + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future +import dsp.errors.BadRequestException +import org.knora.webapi.IRI import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectGetRequestADM @@ -26,10 +30,6 @@ import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.settings.KnoraDispatchers import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.settings.KnoraSettingsImpl -import zio.prelude.Validation - -import scala.concurrent.ExecutionContext -import scala.concurrent.Future /** * Data needed to be passed to each route. diff --git a/webapi/src/main/scala/org/knora/webapi/routing/RejectingRoute.scala b/webapi/src/main/scala/org/knora/webapi/routing/RejectingRoute.scala index b09736a920..01b8b8f764 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/RejectingRoute.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/RejectingRoute.scala @@ -10,15 +10,16 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import akka.pattern.ask import akka.util.Timeout -import org.knora.webapi.messages.app.appmessages.AppState -import org.knora.webapi.messages.app.appmessages.AppStates -import org.knora.webapi.messages.app.appmessages.GetAppState import scala.concurrent.Future import scala.concurrent.duration._ import scala.util.Failure import scala.util.Success +import org.knora.webapi.messages.app.appmessages.AppState +import org.knora.webapi.messages.app.appmessages.AppStates +import org.knora.webapi.messages.app.appmessages.GetAppState + /** * Provides AppState actor access logic */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilADM.scala index 634a1ac8d7..3ee82af4db 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilADM.scala @@ -6,20 +6,21 @@ package org.knora.webapi.routing import akka.actor.ActorRef -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.model._ import akka.http.scaladsl.server.RequestContext import akka.http.scaladsl.server.RouteResult import akka.pattern._ import akka.util.Timeout +import com.typesafe.scalalogging.Logger + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import dsp.errors.UnexpectedMessageException import org.knora.webapi.messages.ResponderRequest.KnoraRequestADM import org.knora.webapi.messages.admin.responder.KnoraResponseADM import org.knora.webapi.settings.KnoraSettingsImpl -import scala.concurrent.ExecutionContext -import scala.concurrent.Future - /** * Convenience methods for Knora Admin routes. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV1.scala index 3847314c1d..5166737f90 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV1.scala @@ -6,22 +6,28 @@ package org.knora.webapi.routing import akka.actor.ActorRef -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.model._ import akka.http.scaladsl.server.RequestContext import akka.http.scaladsl.server.RouteResult import akka.pattern._ import akka.util.Timeout -import org.knora.webapi.IRI +import com.typesafe.scalalogging.Logger +import spray.json.JsNumber +import spray.json.JsObject + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future +import scala.reflect.ClassTag + import dsp.errors.BadRequestException import dsp.errors.UnexpectedMessageException - +import org.knora.webapi.IRI import org.knora.webapi.http.status.ApiStatusCodesV1 +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.sipimessages.GetFileMetadataResponse import org.knora.webapi.messages.util.standoff.StandoffTagUtilV2 import org.knora.webapi.messages.util.standoff.StandoffTagUtilV2.TextWithStandoffTagsV2 -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV1 import org.knora.webapi.messages.v1.responder.KnoraResponseV1 import org.knora.webapi.messages.v1.responder.valuemessages.ArchiveFileValueV1 import org.knora.webapi.messages.v1.responder.valuemessages.AudioFileValueV1 @@ -32,17 +38,9 @@ import org.knora.webapi.messages.v1.responder.valuemessages.StillImageFileValueV import org.knora.webapi.messages.v1.responder.valuemessages.TextFileValueV1 import org.knora.webapi.messages.v2.responder.standoffmessages.GetMappingRequestV2 import org.knora.webapi.messages.v2.responder.standoffmessages.GetMappingResponseV2 -import org.knora.webapi.responders.ResponderManager import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.store.iiif.errors.SipiException -import spray.json.JsNumber -import spray.json.JsObject - -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.reflect.ClassTag - /** * Convenience methods for Knora routes. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV2.scala index cbd8c55ead..e4ac441854 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/RouteUtilV2.scala @@ -6,32 +6,32 @@ package org.knora.webapi.routing import akka.actor.ActorRef -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.model._ import akka.http.scaladsl.server.RequestContext import akka.http.scaladsl.server.RouteResult import akka.pattern._ import akka.util.Timeout -import org.knora.webapi._ +import com.typesafe.scalalogging.Logger + +import scala.concurrent.ExecutionContext +import scala.concurrent.Future +import scala.util.control.Exception.catching + import dsp.errors.BadRequestException import dsp.errors.UnexpectedMessageException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ +import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.util.rdf.JsonLDDocument import org.knora.webapi.messages.util.rdf.RdfFeatureFactory import org.knora.webapi.messages.util.rdf.RdfFormat import org.knora.webapi.messages.util.rdf.RdfModel -import org.knora.webapi.messages.ResponderRequest.KnoraRequestV2 import org.knora.webapi.messages.v2.responder.KnoraResponseV2 import org.knora.webapi.messages.v2.responder.resourcemessages.ResourceTEIGetResponseV2 -import org.knora.webapi.responders.ResponderManager import org.knora.webapi.settings.KnoraSettingsImpl -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.control.Exception.catching - /** * Handles message formatting, content negotiation, and simple interactions with responders, on behalf of Knora routes. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/SwaggerApiDocsRoute.scala b/webapi/src/main/scala/org/knora/webapi/routing/SwaggerApiDocsRoute.scala index 4561d6df85..1869104f4e 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/SwaggerApiDocsRoute.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/SwaggerApiDocsRoute.scala @@ -11,6 +11,7 @@ import com.github.swagger.akka.model.Info import io.swagger.models.ExternalDocs import io.swagger.models.Scheme import io.swagger.models.auth.BasicAuthDefinition + import org.knora.webapi.routing.admin._ import org.knora.webapi.routing.admin.lists._ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/VersionRoute.scala b/webapi/src/main/scala/org/knora/webapi/routing/VersionRoute.scala index f5511320c9..d68cb26591 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/VersionRoute.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/VersionRoute.scala @@ -10,12 +10,13 @@ import akka.http.scaladsl.server.Directives.get import akka.http.scaladsl.server.Directives.path import akka.http.scaladsl.server.Route import akka.util.Timeout -import org.knora.webapi.http.version.BuildInfo import spray.json.JsObject import spray.json.JsString import scala.concurrent.duration._ +import org.knora.webapi.http.version.BuildInfo + /** * Provides version check logic */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/FilesRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/FilesRouteADM.scala index a732dac8ac..037280ff79 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/FilesRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/FilesRouteADM.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.admin import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import dsp.errors.BadRequestException import org.knora.webapi.messages.admin.responder.sipimessages.SipiFileInfoGetRequestADM import org.knora.webapi.routing.Authenticator diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/GroupsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/GroupsRouteADM.scala index 2c777447ea..2ecdd5b1e7 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/GroupsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/GroupsRouteADM.scala @@ -9,18 +9,19 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route import io.swagger.annotations._ +import zio.prelude.Validation + +import java.util.UUID +import javax.ws.rs.Path + import dsp.errors.BadRequestException +import dsp.valueobjects.Group._ +import dsp.valueobjects.Iri._ import org.knora.webapi.messages.admin.responder.groupsmessages._ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import zio.prelude.Validation - -import java.util.UUID -import javax.ws.rs.Path -import dsp.valueobjects.Iri._ -import dsp.valueobjects.Group._ object GroupsRouteADM { val GroupsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "groups") @@ -54,8 +55,8 @@ class GroupsRouteADM(routeData: KnoraRouteData) private def getGroups(): Route = path(GroupsBasePath) { get { requestContext => val requestMessage = for { - requestingUser <- getUserADM(requestContext) - } yield GroupsGetRequestADM(requestingUser) + _ <- getUserADM(requestContext) + } yield GroupsGetRequestADM() RouteUtilADM.runJsonRoute( requestMessageF = requestMessage, diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/ListsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/ListsRouteADM.scala index 2aa6dabd15..12a575be46 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/ListsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/ListsRouteADM.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.admin import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.admin.lists._ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/PermissionsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/PermissionsRouteADM.scala index a8a4ee75b1..e94c85bbc1 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/PermissionsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/PermissionsRouteADM.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.admin import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.admin.permissions._ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala index 3a43835e6c..49694d80b1 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala @@ -19,15 +19,6 @@ import akka.stream.scaladsl.FileIO import akka.stream.scaladsl.Source import akka.util.ByteString import io.swagger.annotations._ -import org.knora.webapi.IRI -import org.knora.webapi.annotation.ApiMayChange -import dsp.errors.BadRequestException - -import org.knora.webapi.messages.admin.responder.projectsmessages._ -import org.knora.webapi.routing.Authenticator -import org.knora.webapi.routing.KnoraRoute -import org.knora.webapi.routing.KnoraRouteData -import org.knora.webapi.routing.RouteUtilADM import zio.prelude.Validation import java.nio.file.Files @@ -35,8 +26,17 @@ import java.util.UUID import javax.ws.rs.Path import scala.concurrent.Future import scala.util.Try + +import dsp.errors.BadRequestException import dsp.valueobjects.Iri.ProjectIri import dsp.valueobjects.Project._ +import org.knora.webapi.IRI +import org.knora.webapi.annotation.ApiMayChange +import org.knora.webapi.messages.admin.responder.projectsmessages._ +import org.knora.webapi.routing.Authenticator +import org.knora.webapi.routing.KnoraRoute +import org.knora.webapi.routing.KnoraRouteData +import org.knora.webapi.routing.RouteUtilADM object ProjectsRouteADM { val ProjectsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "projects") diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/StoreRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/StoreRouteADM.scala index 89a2fb63d6..a6a4c00b55 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/StoreRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/StoreRouteADM.scala @@ -8,6 +8,11 @@ package org.knora.webapi.routing.admin import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import io.swagger.annotations.Api + +import javax.ws.rs.Path +import scala.concurrent.Future +import scala.concurrent.duration._ + import org.knora.webapi.messages.admin.responder.storesmessages.ResetTriplestoreContentRequestADM import org.knora.webapi.messages.admin.responder.storesmessages.StoresADMJsonProtocol import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject @@ -16,10 +21,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import javax.ws.rs.Path -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * A route used to send requests which can directly affect the data stored inside the triplestore. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/UsersRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/UsersRouteADM.scala index ca8b14af30..5bf65d2ab0 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/UsersRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/UsersRouteADM.scala @@ -8,11 +8,17 @@ package org.knora.webapi.routing.admin import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route +import io.swagger.annotations._ +import zio.prelude.Validation + +import java.util.UUID +import javax.ws.rs.Path +import scala.concurrent.Future + import dsp.errors.BadRequestException import dsp.valueobjects.Iri.UserIri import dsp.valueobjects.LanguageCode import dsp.valueobjects.User._ -import io.swagger.annotations._ import org.knora.webapi.annotation.ApiMayChange import org.knora.webapi.messages.admin.responder.usersmessages.UsersADMJsonProtocol._ import org.knora.webapi.messages.admin.responder.usersmessages._ @@ -21,11 +27,6 @@ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import zio.prelude.Validation - -import java.util.UUID -import javax.ws.rs.Path -import scala.concurrent.Future object UsersRouteADM { val UsersBasePath: PathMatcher[Unit] = PathMatcher("admin" / "users") diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/DeleteListItemsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/DeleteListItemsRouteADM.scala index abc309d3fa..86c7719dbb 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/DeleteListItemsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/DeleteListItemsRouteADM.scala @@ -8,17 +8,17 @@ package org.knora.webapi.routing.admin.lists import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route -import dsp.errors.BadRequestException +import java.util.UUID +import scala.concurrent.Future + +import dsp.errors.BadRequestException import org.knora.webapi.messages.admin.responder.listsmessages._ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import java.util.UUID -import scala.concurrent.Future - object DeleteListItemsRouteADM { val ListsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "lists") } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/OldListsRouteADMFeature.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/OldListsRouteADMFeature.scala index f1c8e5edec..7d15bc17e5 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/OldListsRouteADMFeature.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/OldListsRouteADMFeature.scala @@ -9,10 +9,18 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route import io.swagger.annotations._ -import org.knora.webapi.IRI +import zio.prelude.Validation + +import java.util.UUID +import javax.ws.rs.Path +import scala.concurrent.Future + import dsp.errors.BadRequestException import dsp.errors.ForbiddenException - +import dsp.valueobjects.Iri._ +import dsp.valueobjects.List._ +import dsp.valueobjects.ListErrorMessages +import org.knora.webapi.IRI import org.knora.webapi.messages.admin.responder.listsmessages.ListNodeCreatePayloadADM.ListChildNodeCreatePayloadADM import org.knora.webapi.messages.admin.responder.listsmessages.ListNodeCreatePayloadADM.ListRootNodeCreatePayloadADM import org.knora.webapi.messages.admin.responder.listsmessages._ @@ -20,14 +28,6 @@ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import zio.prelude.Validation - -import java.util.UUID -import javax.ws.rs.Path -import scala.concurrent.Future -import dsp.valueobjects.Iri._ -import dsp.valueobjects.List._ -import dsp.valueobjects.ListErrorMessages object OldListsRouteADMFeature { val ListsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "lists") diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/UpdateListItemsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/UpdateListItemsRouteADM.scala index e143da900d..dd3c4e3041 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/UpdateListItemsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/lists/UpdateListItemsRouteADM.scala @@ -9,19 +9,19 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route import io.swagger.annotations._ -import dsp.errors.BadRequestException +import java.util.UUID +import javax.ws.rs.Path +import scala.concurrent.Future + +import dsp.errors.BadRequestException +import dsp.valueobjects.List._ import org.knora.webapi.messages.admin.responder.listsmessages._ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import java.util.UUID -import javax.ws.rs.Path -import scala.concurrent.Future -import dsp.valueobjects.List._ - object UpdateListItemsRouteADM { val ListsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "lists") } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/CreatePermissionRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/CreatePermissionRouteADM.scala index e4d0dabbe8..32dd4659ab 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/CreatePermissionRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/CreatePermissionRouteADM.scala @@ -9,16 +9,17 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route import io.swagger.annotations._ + +import java.util.UUID +import javax.ws.rs.Path +import scala.concurrent.Future + import org.knora.webapi.messages.admin.responder.permissionsmessages._ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import java.util.UUID -import javax.ws.rs.Path -import scala.concurrent.Future - object CreatePermissionRouteADM { val PermissionsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "permissions") } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/DeletePermissionRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/DeletePermissionRouteADM.scala index 91cb0dd588..e5620941cf 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/DeletePermissionRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/DeletePermissionRouteADM.scala @@ -9,15 +9,16 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route import io.swagger.annotations._ + +import java.util.UUID +import javax.ws.rs.Path + import org.knora.webapi.messages.admin.responder.permissionsmessages._ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import java.util.UUID -import javax.ws.rs.Path - object DeletePermissionRouteADM { val PermissionsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "permissions") } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/GetPermissionsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/GetPermissionsRouteADM.scala index 6c12d8103d..12490567a4 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/GetPermissionsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/GetPermissionsRouteADM.scala @@ -9,15 +9,16 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route import io.swagger.annotations._ + +import java.util.UUID +import javax.ws.rs.Path + import org.knora.webapi.messages.admin.responder.permissionsmessages._ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import java.util.UUID -import javax.ws.rs.Path - object GetPermissionsRouteADM { val PermissionsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "permissions") } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/UpdatePermissionRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/UpdatePermissionRouteADM.scala index 8134818e24..f92c56ab4f 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/UpdatePermissionRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/permissions/UpdatePermissionRouteADM.scala @@ -9,6 +9,10 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route import io.swagger.annotations._ + +import java.util.UUID +import javax.ws.rs.Path + import dsp.errors.BadRequestException import org.knora.webapi.messages.admin.responder.permissionsmessages._ import org.knora.webapi.routing.Authenticator @@ -16,9 +20,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilADM -import java.util.UUID -import javax.ws.rs.Path - object UpdatePermissionRouteADM { val PermissionsBasePath: PathMatcher[Unit] = PathMatcher("admin" / "permissions") } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/AssetsRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/AssetsRouteV1.scala index 8944c72bf2..85102ac96b 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/AssetsRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/AssetsRouteV1.scala @@ -10,9 +10,6 @@ import akka.http.scaladsl.model.HttpResponse import akka.http.scaladsl.model.MediaTypes import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route -import org.knora.webapi.routing.Authenticator -import org.knora.webapi.routing.KnoraRoute -import org.knora.webapi.routing.KnoraRouteData import java.awt.Color import java.awt.Font @@ -22,6 +19,10 @@ import java.io.ByteArrayOutputStream import java.nio.file.Paths import javax.imageio.ImageIO +import org.knora.webapi.routing.Authenticator +import org.knora.webapi.routing.KnoraRoute +import org.knora.webapi.routing.KnoraRouteData + /** * A route used for faking the image server. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/AuthenticationRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/AuthenticationRouteV1.scala index 8d28bdcae2..49e2aa184b 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/AuthenticationRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/AuthenticationRouteV1.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.v1 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/CkanRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/CkanRouteV1.scala index 3d9b318a88..e41dd2df1a 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/CkanRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/CkanRouteV1.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.v1 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import org.knora.webapi.messages.v1.responder.ckanmessages.CkanRequestV1 import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/ListsRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/ListsRouteV1.scala index 34209a2a34..d2b2a649b3 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/ListsRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/ListsRouteV1.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.v1 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import dsp.errors.BadRequestException import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.v1.responder.listmessages._ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/ProjectsRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/ProjectsRouteV1.scala index a64d58ee26..8647bc0b5b 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/ProjectsRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/ProjectsRouteV1.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.v1 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import dsp.errors.BadRequestException import org.knora.webapi.messages.v1.responder.projectmessages._ import org.knora.webapi.routing.Authenticator diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourceTypesRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourceTypesRouteV1.scala index ecfbfb1d55..72b3b0192f 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourceTypesRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/ResourceTypesRouteV1.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.v1 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import dsp.errors.BadRequestException import org.knora.webapi.messages.v1.responder.ontologymessages._ import org.knora.webapi.routing.Authenticator @@ -59,7 +60,7 @@ class ResourceTypesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeDa namedGraphIri = vocabularyId match { case "0" => None // if param vocabulary is set to 0, query all named graphs - case other => + case _ => Some( stringFormatter.validateAndEscapeIri( vocabularyId, @@ -114,7 +115,7 @@ class ResourceTypesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeDa case None => // no vocabulary id given, check for restype resourcetypeId match { case Some(restypeId) => // get property types for given resource type - val resourceClassIri = stringFormatter.validateAndEscapeIri( + stringFormatter.validateAndEscapeIri( restypeId, throw BadRequestException(s"Invalid vocabulary IRI: $restypeId") ) 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 84e70320d5..199e7af130 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 @@ -11,12 +11,31 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ +import org.w3c.dom.ls.LSInput +import org.w3c.dom.ls.LSResourceResolver +import org.xml.sax.SAXException + +import java.io._ +import java.nio.charset.StandardCharsets +import java.time.Instant +import java.util.UUID +import javax.xml.XMLConstants +import javax.xml.transform.stream.StreamSource +import javax.xml.validation.Schema +import javax.xml.validation.SchemaFactory +import javax.xml.validation.Validator +import scala.collection.immutable +import scala.concurrent.Future +import scala.util.Failure +import scala.util.Success +import scala.util.Try +import scala.xml._ + import dsp.errors.AssertionException import dsp.errors.BadRequestException import dsp.errors.ForbiddenException import dsp.errors.InconsistentRepositoryDataException - +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -40,25 +59,6 @@ import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV1 import org.knora.webapi.util.ActorUtil import org.knora.webapi.util.FileUtil -import org.w3c.dom.ls.LSInput -import org.w3c.dom.ls.LSResourceResolver -import org.xml.sax.SAXException - -import java.io._ -import java.nio.charset.StandardCharsets -import java.time.Instant -import java.util.UUID -import javax.xml.XMLConstants -import javax.xml.transform.stream.StreamSource -import javax.xml.validation.Schema -import javax.xml.validation.SchemaFactory -import javax.xml.validation.Validator -import scala.collection.immutable -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try -import scala.xml._ /** * Provides API routes that deal with resources. @@ -554,7 +554,7 @@ class ResourcesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) // the ontologies containing the definitions of those classes, not including including the initial ontology itself // or any other ontologies we've already looked at. ontologyIrisFromBaseClasses: Set[IRI] = entityInfoResponse.resourceClassInfoMap.foldLeft(Set.empty[IRI]) { - case (acc, (resourceClassIri, resourceClassInfo)) => + case (acc, (_, resourceClassInfo)) => val subClassOfOntologies: Set[IRI] = resourceClassInfo.subClassOf .map(_.toSmartIri) .filter(_.isKnoraDefinitionIri) @@ -566,7 +566,7 @@ class ResourcesRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) // Make a set of the ontologies containing the definitions of those properties, not including the initial ontology itself // or any other ontologies we've already looked at. ontologyIrisFromCardinalities: Set[IRI] = entityInfoResponse.resourceClassInfoMap.foldLeft(Set.empty[IRI]) { - case (acc, (resourceClassIri, resourceClassInfo)) => + case (acc, (_, resourceClassInfo)) => val resourceCardinalityOntologies: Set[IRI] = resourceClassInfo.knoraResourceCardinalities.map { case (propertyIri, _) => diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/SearchRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/SearchRouteV1.scala index 1bca2419e3..af81217571 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/SearchRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/SearchRouteV1.scala @@ -7,8 +7,11 @@ package org.knora.webapi.routing.v1 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route -import org.knora.webapi.IRI + +import scala.language.postfixOps + import dsp.errors.BadRequestException +import org.knora.webapi.IRI import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.v1.responder.searchmessages.ExtendedSearchGetRequestV1 @@ -19,8 +22,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV1 -import scala.language.postfixOps - // slash after path without following segment /** @@ -62,7 +63,7 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit ) ) ) - case other => None + case _ => None } // only one value is expected @@ -76,7 +77,7 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit ) ) ) - case other => None + case _ => None } // only one value is expected @@ -90,7 +91,7 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit ) ) ) - case other => None + case _ => None } // here, also multiple values can be given @@ -104,7 +105,7 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit ) ) ) - case other => Nil + case _ => Nil } // here, also multiple values can be given @@ -114,14 +115,14 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit compopList.map { (compop: String) => SearchComparisonOperatorV1.lookup(compop) } - case other => Nil + case _ => Nil } // here, also multiple values can be given val searchval: Seq[String] = params.get("searchval") match { case Some(searchvalList: Seq[String]) => searchvalList // Attention: searchval cannot be processed (escaped) here because we do not know its value type yet - case other => Nil + case _ => Nil } // propertyId, compop, and searchval are parallel structures (parallel arrays): they have to be of the same length @@ -177,7 +178,7 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit params.get("searchtype") match { case Some("fulltext") => () - case other => throw BadRequestException(s"Unexpected searchtype param for fulltext search") + case _ => throw BadRequestException(s"Unexpected searchtype param for fulltext search") } val restypeIri: Option[IRI] = params.get("filter_by_restype") match { @@ -188,7 +189,7 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit throw BadRequestException(s"Unexpected param 'filter_by_restype' for extended search: $restype") ) ) - case other => None + case _ => None } val projectIri: Option[IRI] = params.get("filter_by_project") match { case Some(project: IRI) => @@ -198,7 +199,7 @@ class SearchRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) wit throw BadRequestException(s"Unexpected param 'filter_by_project' for extended search: $project") ) ) - case other => None + case _ => None } val searchString = stringFormatter.toSparqlEncodedString( diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/StandoffRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/StandoffRouteV1.scala index 8f85ec237f..779230bcec 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/StandoffRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/StandoffRouteV1.scala @@ -9,6 +9,12 @@ import akka.http.scaladsl.model.Multipart import akka.http.scaladsl.model.Multipart.BodyPart import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route +import spray.json._ + +import java.util.UUID +import scala.concurrent.Future +import scala.concurrent.duration._ + import dsp.errors.BadRequestException import org.knora.webapi.messages.v1.responder.standoffmessages.RepresentationV1JsonProtocol.createMappingApiRequestV1Format import org.knora.webapi.messages.v1.responder.standoffmessages._ @@ -16,11 +22,6 @@ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV1 -import spray.json._ - -import java.util.UUID -import scala.concurrent.Future -import scala.concurrent.duration._ /** * A route used to convert XML to standoff. diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/UsersRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/UsersRouteV1.scala index 830fabbc94..01d9a1ba99 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/UsersRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/UsersRouteV1.scala @@ -8,6 +8,9 @@ package org.knora.webapi.routing.v1 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import org.apache.commons.validator.routines.UrlValidator + +import java.util.UUID + import dsp.errors.BadRequestException import org.knora.webapi.messages.v1.responder.usermessages._ import org.knora.webapi.routing.Authenticator @@ -15,15 +18,13 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV1 -import java.util.UUID - /** * Provides a spray-routing function for API routes that deal with lists. */ class UsersRouteV1(routeData: KnoraRouteData) extends KnoraRoute(routeData) with Authenticator { - private val schemes = Array("http", "https") - private val urlValidator = new UrlValidator(schemes) + private val schemes = Array("http", "https") + new UrlValidator(schemes) /** * Returns the route. diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v1/ValuesRouteV1.scala b/webapi/src/main/scala/org/knora/webapi/routing/v1/ValuesRouteV1.scala index e632c0c4f5..3e92e86942 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v1/ValuesRouteV1.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v1/ValuesRouteV1.scala @@ -9,11 +9,15 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import akka.http.scaladsl.util.FastFuture import akka.pattern._ -import org.knora.webapi._ + +import java.time.Instant +import java.util.UUID +import scala.concurrent.Future + import dsp.errors.BadRequestException import dsp.errors.InconsistentRepositoryDataException import dsp.errors.NotFoundException - +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.sipimessages.GetFileMetadataRequest @@ -29,10 +33,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV1 -import java.time.Instant -import java.util.UUID -import scala.concurrent.Future - /** * Provides an Akka routing function for API routes that deal with values. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v2/AuthenticationRouteV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/v2/AuthenticationRouteV2.scala index 0caa835089..c2ebf397c3 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v2/AuthenticationRouteV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v2/AuthenticationRouteV2.scala @@ -7,6 +7,7 @@ package org.knora.webapi.routing.v2 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route + import org.knora.webapi.messages.admin.responder.usersmessages.UserIdentifierADM import org.knora.webapi.messages.v2.routing.authenticationmessages.AuthenticationV2JsonProtocol import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredentialsV2.KnoraPasswordCredentialsV2 diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v2/ListsRouteV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/v2/ListsRouteV2.scala index c7b09bdb4b..5177a2517f 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v2/ListsRouteV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v2/ListsRouteV2.scala @@ -7,9 +7,11 @@ package org.knora.webapi.routing.v2 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route -import org.knora.webapi._ -import dsp.errors.BadRequestException +import scala.concurrent.Future + +import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.v2.responder.listsmessages.ListGetRequestV2 import org.knora.webapi.messages.v2.responder.listsmessages.NodeGetRequestV2 import org.knora.webapi.routing.Authenticator @@ -17,8 +19,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV2 -import scala.concurrent.Future - /** * Provides a function for API routes that deal with lists and nodes. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v2/OntologiesRouteV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/v2/OntologiesRouteV2.scala index cb3e45d14a..d6c62250e4 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v2/OntologiesRouteV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v2/OntologiesRouteV2.scala @@ -5,10 +5,14 @@ package org.knora.webapi.routing.v2 -import akka.actor.Status import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route +import zio.prelude.Validation + +import java.util.UUID +import scala.concurrent.Future + import dsp.constants.SalsahGui import dsp.errors.BadRequestException import dsp.errors.ValidationException @@ -17,14 +21,12 @@ import dsp.schema.domain.{SmartIri => SmartIriV3} import dsp.valueobjects.Iri._ import dsp.valueobjects.LangString import dsp.valueobjects.Schema._ -import dsp.valueobjects.V2 import org.knora.webapi.ApiV2Complex import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.admin.responder.usersmessages.UserADM -import org.knora.webapi.messages.store.triplestoremessages.BooleanLiteralV2 import org.knora.webapi.messages.store.triplestoremessages.SmartIriLiteralV2 import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.util.rdf.JsonLDDocument @@ -34,15 +36,6 @@ import org.knora.webapi.routing.Authenticator import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV2 -import zio.ZIO -import zio.prelude.Validation - -import java.util.UUID -import javax.validation.Valid -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try object OntologiesRouteV2 { val OntologiesBasePath: PathMatcher[Unit] = PathMatcher("v2" / "ontologies") diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v2/ResourcesRouteV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/v2/ResourcesRouteV2.scala index 159ce60016..63c8127da3 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v2/ResourcesRouteV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v2/ResourcesRouteV2.scala @@ -8,9 +8,13 @@ package org.knora.webapi.routing.v2 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route -import org.knora.webapi._ -import dsp.errors.BadRequestException +import java.time.Instant +import java.util.UUID +import scala.concurrent.Future + +import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter @@ -23,10 +27,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV2 -import java.time.Instant -import java.util.UUID -import scala.concurrent.Future - object ResourcesRouteV2 { val ResourcesBasePath: PathMatcher[Unit] = PathMatcher("v2" / "resources") } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v2/SearchRouteV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/v2/SearchRouteV2.scala index 1323d4eb59..7ce24f6f53 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v2/SearchRouteV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v2/SearchRouteV2.scala @@ -7,8 +7,11 @@ package org.knora.webapi.routing.v2 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route -import org.knora.webapi._ + +import scala.concurrent.Future + import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -20,8 +23,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV2 -import scala.concurrent.Future - /** * Provides a function for API routes that deal with search. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v2/StandoffRouteV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/v2/StandoffRouteV2.scala index 52fcd375ca..f730886a05 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v2/StandoffRouteV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v2/StandoffRouteV2.scala @@ -9,9 +9,13 @@ import akka.http.scaladsl.model.Multipart import akka.http.scaladsl.model.Multipart.BodyPart import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route -import org.knora.webapi._ -import dsp.errors.BadRequestException +import java.util.UUID +import scala.concurrent.Future +import scala.concurrent.duration._ + +import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.util.rdf.JsonLDUtil @@ -24,10 +28,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV2 -import java.util.UUID -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * Provides a function for API routes that deal with search. */ diff --git a/webapi/src/main/scala/org/knora/webapi/routing/v2/ValuesRouteV2.scala b/webapi/src/main/scala/org/knora/webapi/routing/v2/ValuesRouteV2.scala index 6b5eb94abf..19a928dd92 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/v2/ValuesRouteV2.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/v2/ValuesRouteV2.scala @@ -8,9 +8,13 @@ package org.knora.webapi.routing.v2 import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.PathMatcher import akka.http.scaladsl.server.Route -import org.knora.webapi._ -import dsp.errors.BadRequestException +import java.time.Instant +import java.util.UUID +import scala.concurrent.Future + +import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.util.rdf.JsonLDDocument @@ -22,10 +26,6 @@ import org.knora.webapi.routing.KnoraRoute import org.knora.webapi.routing.KnoraRouteData import org.knora.webapi.routing.RouteUtilV2 -import java.time.Instant -import java.util.UUID -import scala.concurrent.Future - object ValuesRouteV2 { val ValuesBasePath: PathMatcher[Unit] = PathMatcher("v2" / "values") } 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 d9c0b8987b..4391b2f276 100644 --- a/webapi/src/main/scala/org/knora/webapi/settings/KnoraSettings.scala +++ b/webapi/src/main/scala/org/knora/webapi/settings/KnoraSettings.scala @@ -12,32 +12,24 @@ import akka.actor.Extension import akka.actor.ExtensionId import akka.actor.ExtensionIdProvider import com.typesafe.config.Config -import com.typesafe.config.ConfigObject import com.typesafe.config.ConfigValue import com.typesafe.scalalogging.Logger -import dsp.errors.FeatureToggleException -import dsp.errors.FileWriteException -import dsp.valueobjects.User -import org.knora.webapi.util.cache.CacheUtil.KnoraCacheConfig -import zio.prelude.ZValidation import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths -import java.time.Instant import scala.concurrent.duration._ import scala.jdk.CollectionConverters._ -import scala.util.Failure -import scala.util.Success -import scala.util.Try + +import dsp.errors.FileWriteException +import dsp.valueobjects.User +import org.knora.webapi.util.cache.CacheUtil.KnoraCacheConfig /** * Reads application settings that come from `application.conf`. */ class KnoraSettingsImpl(config: Config, log: Logger) extends Extension { - import KnoraSettings._ - // print config val printExtendedConfig: Boolean = config.getBoolean("app.print-extended-config") diff --git a/webapi/src/main/scala/org/knora/webapi/store/cache/CacheServiceManager.scala b/webapi/src/main/scala/org/knora/webapi/store/cache/CacheServiceManager.scala index 2dd4257042..ade4d70d79 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/cache/CacheServiceManager.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/cache/CacheServiceManager.scala @@ -5,16 +5,17 @@ package org.knora.webapi.store.cache +import zio._ +import zio.metrics.Metric + +import java.time.temporal.ChronoUnit + import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.admin.responder.usersmessages.UserIdentifierADM import org.knora.webapi.messages.store.cacheservicemessages._ import org.knora.webapi.store.cache.api.CacheService -import zio._ -import zio.metrics.Metric - -import java.time.temporal.ChronoUnit final case class CacheServiceManager(cs: CacheService) { diff --git a/webapi/src/main/scala/org/knora/webapi/store/cache/api/CacheService.scala b/webapi/src/main/scala/org/knora/webapi/store/cache/api/CacheService.scala index e64f9f43b9..6a9941f265 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/cache/api/CacheService.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/cache/api/CacheService.scala @@ -5,13 +5,14 @@ package org.knora.webapi.store.cache.api +import zio._ +import zio.macros.accessible + import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.admin.responder.usersmessages.UserIdentifierADM import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceStatusResponse -import zio._ -import zio.macros.accessible /** * Cache Service Interface diff --git a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala index e0470f4eaf..955f5106ec 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala @@ -5,6 +5,9 @@ package org.knora.webapi.store.cache.impl +import zio._ +import zio.stm._ + import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierType @@ -16,8 +19,6 @@ import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceStatusRe import org.knora.webapi.store.cache.api.CacheService import org.knora.webapi.store.cache.api.EmptyKey import org.knora.webapi.store.cache.api.EmptyValue -import zio._ -import zio.stm._ /** * In-Memory Cache implementation @@ -187,9 +188,9 @@ case class CacheServiceInMemImpl( */ def flushDB(requestingUser: UserADM): Task[Unit] = (for { - _ <- users.foreach((k, v) => users.delete(k)) - _ <- projects.foreach((k, v) => projects.delete(k)) - _ <- lut.foreach((k, v) => lut.delete(k)) + _ <- users.foreach((k, _) => users.delete(k)) + _ <- projects.foreach((k, _) => projects.delete(k)) + _ <- lut.foreach((k, _) => lut.delete(k)) } yield ()).commit.tap(_ => ZIO.logDebug("Flushed in-memory cache")) /** diff --git a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala index 05d2cc1db3..7254c415c6 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala @@ -5,6 +5,11 @@ package org.knora.webapi.store.cache.impl +import redis.clients.jedis.Jedis +import redis.clients.jedis.JedisPool +import redis.clients.jedis.JedisPoolConfig +import zio._ + import dsp.errors.ForbiddenException import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM @@ -20,10 +25,6 @@ import org.knora.webapi.store.cache.api.EmptyKey import org.knora.webapi.store.cache.api.EmptyValue import org.knora.webapi.store.cache.config.RedisConfig import org.knora.webapi.store.cache.serialization.CacheSerialization -import redis.clients.jedis.Jedis -import redis.clients.jedis.JedisPool -import redis.clients.jedis.JedisPoolConfig -import zio._ case class CacheServiceRedisImpl(pool: JedisPool) extends CacheService { diff --git a/webapi/src/main/scala/org/knora/webapi/store/cache/serialization/CacheSerialization.scala b/webapi/src/main/scala/org/knora/webapi/store/cache/serialization/CacheSerialization.scala index d7c565d1fa..9f319131c1 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/cache/serialization/CacheSerialization.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/cache/serialization/CacheSerialization.scala @@ -5,7 +5,6 @@ package org.knora.webapi.store.cache.serialization -import dsp.errors.CacheServiceException import zio._ import java.io.ByteArrayInputStream @@ -13,6 +12,8 @@ import java.io.ByteArrayOutputStream import java.io.ObjectInputStream import java.io.ObjectOutputStream +import dsp.errors.CacheServiceException + case class EmptyByteArray(message: String) extends CacheServiceException(message) object CacheSerialization { diff --git a/webapi/src/main/scala/org/knora/webapi/store/iiif/IIIFServiceManager.scala b/webapi/src/main/scala/org/knora/webapi/store/iiif/IIIFServiceManager.scala index 9a1a4a5aba..552bf0e250 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/iiif/IIIFServiceManager.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/iiif/IIIFServiceManager.scala @@ -5,6 +5,8 @@ package org.knora.webapi.store.iiif +import zio._ + import org.knora.webapi.messages.store.sipimessages.DeleteTemporaryFileRequest import org.knora.webapi.messages.store.sipimessages.GetFileMetadataRequest import org.knora.webapi.messages.store.sipimessages.IIIFRequest @@ -12,7 +14,6 @@ import org.knora.webapi.messages.store.sipimessages.IIIFServiceGetStatus import org.knora.webapi.messages.store.sipimessages.MoveTemporaryFileToPermanentStorageRequest import org.knora.webapi.messages.store.sipimessages.SipiGetTextFileRequest import org.knora.webapi.store.iiif.api.IIIFService -import zio._ /** * Makes requests to IIIF servers. diff --git a/webapi/src/main/scala/org/knora/webapi/store/iiif/api/IIIFService.scala b/webapi/src/main/scala/org/knora/webapi/store/iiif/api/IIIFService.scala index b473103830..3c933b7d07 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/iiif/api/IIIFService.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/iiif/api/IIIFService.scala @@ -1,5 +1,8 @@ package org.knora.webapi.store.iiif.api +import zio._ +import zio.macros.accessible + import org.knora.webapi.messages.store.sipimessages.DeleteTemporaryFileRequest import org.knora.webapi.messages.store.sipimessages.GetFileMetadataRequest import org.knora.webapi.messages.store.sipimessages.GetFileMetadataResponse @@ -8,8 +11,6 @@ import org.knora.webapi.messages.store.sipimessages.MoveTemporaryFileToPermanent import org.knora.webapi.messages.store.sipimessages.SipiGetTextFileRequest import org.knora.webapi.messages.store.sipimessages.SipiGetTextFileResponse import org.knora.webapi.messages.v2.responder.SuccessResponseV2 -import zio._ -import zio.macros.accessible @accessible trait IIIFService { diff --git a/webapi/src/main/scala/org/knora/webapi/store/iiif/domain/SipiKnoraJsonResponse.scala b/webapi/src/main/scala/org/knora/webapi/store/iiif/domain/SipiKnoraJsonResponse.scala index 818684764c..7e2aeca598 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/iiif/domain/SipiKnoraJsonResponse.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/iiif/domain/SipiKnoraJsonResponse.scala @@ -1,10 +1,11 @@ package org.knora.webapi.store.iiif.domain import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import org.knora.webapi.store.iiif.errors.SipiException import spray.json.DefaultJsonProtocol import spray.json.RootJsonFormat +import org.knora.webapi.store.iiif.errors.SipiException + /** * Represents a response from Sipi's `knora.json` route. * diff --git a/webapi/src/main/scala/org/knora/webapi/store/iiif/errors/Errors.scala b/webapi/src/main/scala/org/knora/webapi/store/iiif/errors/Errors.scala index d6bc2461b7..9ffdf554a7 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/iiif/errors/Errors.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/iiif/errors/Errors.scala @@ -1,8 +1,9 @@ package org.knora.webapi.store.iiif.errors -import dsp.errors.InternalServerException import com.typesafe.scalalogging.Logger + import dsp.errors.ExceptionUtil +import dsp.errors.InternalServerException /** * Indicates that an error occurred with Sipi not relating to the user's request (it is not the user's fault). diff --git a/webapi/src/main/scala/org/knora/webapi/store/iiif/impl/IIIFServiceSipiImpl.scala b/webapi/src/main/scala/org/knora/webapi/store/iiif/impl/IIIFServiceSipiImpl.scala index 4a90563754..e9f13e4bb1 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/iiif/impl/IIIFServiceSipiImpl.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/iiif/impl/IIIFServiceSipiImpl.scala @@ -22,11 +22,15 @@ import org.apache.http.impl.client.HttpClients import org.apache.http.impl.conn.PoolingHttpClientConnectionManager import org.apache.http.message.BasicNameValuePair import org.apache.http.util.EntityUtils -import org.knora.webapi.auth.JWTService -import org.knora.webapi.config.AppConfig +import spray.json._ +import zio._ + +import java.util + import dsp.errors.BadRequestException import dsp.errors.NotFoundException - +import org.knora.webapi.auth.JWTService +import org.knora.webapi.config.AppConfig import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.sipimessages._ import org.knora.webapi.messages.v2.responder.SuccessResponseV2 @@ -34,11 +38,6 @@ import org.knora.webapi.store.iiif.api.IIIFService import org.knora.webapi.store.iiif.domain._ import org.knora.webapi.store.iiif.errors.SipiException import org.knora.webapi.util.SipiUtil -import spray.json._ -import zio._ - -import java.util -import dsp.errors.KnoraException /** * Makes requests to Sipi. diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManager.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManager.scala index d835aa0d98..a76f6c6f0a 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManager.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManager.scala @@ -5,34 +5,34 @@ package org.knora.webapi.store.triplestore -import org.knora.webapi.messages.store.triplestoremessages.UpdateRepositoryRequest -import org.knora.webapi.settings._ -import org.knora.webapi._ -import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater - import zio._ -import org.knora.webapi.store.triplestore.api.TriplestoreService -import dsp.errors.UnexpectedMessageException -import org.knora.webapi.messages.store.triplestoremessages.SimulateTimeoutRequest -import org.knora.webapi.messages.store.triplestoremessages.InsertGraphDataContentRequest -import org.knora.webapi.messages.store.triplestoremessages.UploadRepositoryRequest + import java.nio.file.Path -import org.knora.webapi.messages.store.triplestoremessages.DownloadRepositoryRequest + +import dsp.errors.UnexpectedMessageException +import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages.CheckTriplestoreRequest -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject -import org.knora.webapi.messages.store.triplestoremessages.InsertRepositoryContent +import org.knora.webapi.messages.store.triplestoremessages.DownloadRepositoryRequest import org.knora.webapi.messages.store.triplestoremessages.DropAllTRepositoryContent -import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryContent -import org.knora.webapi.messages.store.triplestoremessages.SparqlAskRequest -import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateRequest +import org.knora.webapi.messages.store.triplestoremessages.InsertGraphDataContentRequest +import org.knora.webapi.messages.store.triplestoremessages.InsertRepositoryContent import org.knora.webapi.messages.store.triplestoremessages.NamedGraphDataRequest -import org.knora.webapi.messages.util.rdf.QuadFormat import org.knora.webapi.messages.store.triplestoremessages.NamedGraphFileRequest +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryContent +import org.knora.webapi.messages.store.triplestoremessages.SimulateTimeoutRequest +import org.knora.webapi.messages.store.triplestoremessages.SparqlAskRequest import org.knora.webapi.messages.store.triplestoremessages.SparqlConstructFileRequest -import org.knora.webapi.messages.store.triplestoremessages.SparqlExtendedConstructRequest import org.knora.webapi.messages.store.triplestoremessages.SparqlConstructRequest +import org.knora.webapi.messages.store.triplestoremessages.SparqlExtendedConstructRequest import org.knora.webapi.messages.store.triplestoremessages.SparqlSelectRequest +import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateRequest import org.knora.webapi.messages.store.triplestoremessages.TriplestoreRequest +import org.knora.webapi.messages.store.triplestoremessages.UpdateRepositoryRequest +import org.knora.webapi.messages.store.triplestoremessages.UploadRepositoryRequest +import org.knora.webapi.messages.util.rdf.QuadFormat +import org.knora.webapi.store.triplestore.api.TriplestoreService +import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater /** * This service receives akka messages and translates them to calls to ZIO besed service implementations. diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/api/TriplestoreService.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/api/TriplestoreService.scala index bf316ba7c9..c7a16b9aa3 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/api/TriplestoreService.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/api/TriplestoreService.scala @@ -1,5 +1,10 @@ package org.knora.webapi.store.triplestore.api +import zio._ +import zio.macros.accessible + +import java.nio.file.Path + import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages.CheckTriplestoreResponse import org.knora.webapi.messages.store.triplestoremessages.DropAllRepositoryContentACK @@ -18,10 +23,6 @@ import org.knora.webapi.messages.store.triplestoremessages.SparqlExtendedConstru import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateResponse import org.knora.webapi.messages.util.rdf.QuadFormat import org.knora.webapi.messages.util.rdf.SparqlSelectResult -import zio._ -import zio.macros.accessible - -import java.nio.file.Path @accessible trait TriplestoreService { diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/defaults/DefaultRdfData.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/defaults/DefaultRdfData.scala index ed2612678d..ee133b2b70 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/defaults/DefaultRdfData.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/defaults/DefaultRdfData.scala @@ -1,8 +1,9 @@ package org.knora.webapi.store.triplestore.defaults -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import zio.NonEmptyChunk +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject + object DefaultRdfData { /** diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/errors/Errors.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/errors/Errors.scala index a70644751a..0c57df6e58 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/errors/Errors.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/errors/Errors.scala @@ -1,8 +1,9 @@ package org.knora.webapi.store.triplestore.errors -import dsp.errors.InternalServerException import com.typesafe.scalalogging.Logger + import dsp.errors.ExceptionUtil +import dsp.errors.InternalServerException /** * An abstract class for exceptions indicating that something went wrong with the triplestore. diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImpl.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImpl.scala index b22e4c04f5..c9952d733b 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImpl.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImpl.scala @@ -5,11 +5,6 @@ package org.knora.webapi.store.triplestore.impl -import akka.actor.Actor -import akka.actor.ActorLogging -import akka.actor.ActorSystem -import akka.actor.Status -import akka.event.LoggingAdapter import org.apache.commons.lang3.StringUtils import org.apache.http.Consts import org.apache.http.HttpEntity @@ -27,6 +22,7 @@ import org.apache.http.client.methods.HttpPost import org.apache.http.client.methods.HttpPut import org.apache.http.client.protocol.HttpClientContext import org.apache.http.client.utils.URIBuilder +import org.apache.http.config.SocketConfig import org.apache.http.entity.ContentType import org.apache.http.entity.FileEntity import org.apache.http.entity.StringEntity @@ -35,21 +31,11 @@ import org.apache.http.impl.client.BasicAuthCache import org.apache.http.impl.client.BasicCredentialsProvider import org.apache.http.impl.client.CloseableHttpClient import org.apache.http.impl.client.HttpClients +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager import org.apache.http.message.BasicNameValuePair import org.apache.http.util.EntityUtils -import org.knora.webapi._ -import dsp.errors._ -import org.knora.webapi.instrumentation.InstrumentationSupport -import org.knora.webapi.messages.store.triplestoremessages.SparqlResultProtocol._ -import org.knora.webapi.messages.store.triplestoremessages._ -import org.knora.webapi.messages.util.FakeTriplestore -import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.settings.KnoraDispatchers -import org.knora.webapi.settings.KnoraSettings -import org.knora.webapi.util.ActorUtil._ -import org.knora.webapi.util.FileUtil -import org.knora.webapi.store.triplestore.errors._ import spray.json._ +import zio._ import java.io.BufferedInputStream import java.net.URI @@ -60,17 +46,17 @@ import java.nio.file.Paths import java.nio.file.StandardCopyOption import java.util import scala.collection.mutable -import scala.concurrent.ExecutionContext -import scala.jdk.CollectionConverters._ -import org.knora.webapi.store.triplestore.api.TriplestoreService +import dsp.errors._ +import org.knora.webapi._ import org.knora.webapi.config.AppConfig +import org.knora.webapi.messages.store.triplestoremessages.SparqlResultProtocol._ +import org.knora.webapi.messages.store.triplestoremessages._ +import org.knora.webapi.messages.util.rdf._ +import org.knora.webapi.store.triplestore.api.TriplestoreService import org.knora.webapi.store.triplestore.defaults.DefaultRdfData - -import zio._ -import zio.json.ast.Json -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager -import org.apache.http.config.SocketConfig +import org.knora.webapi.store.triplestore.errors._ +import org.knora.webapi.util.FileUtil /** * Submits SPARQL queries and updates to a triplestore over HTTP. Supports different triplestores, which can be configured in @@ -177,7 +163,7 @@ case class TriplestoreServiceHttpConnectorImpl( ZIO .attemptBlocking(resultStr.parseJson.convertTo[SparqlSelectResult]) .foldZIO( - failure => + _ => if (resultStr.contains("## Query cancelled due to timeout during execution")) { ZIO.logError("Triplestore timed out while sending a response, after sending statuscode 200.") *> ZIO.fail( @@ -234,7 +220,7 @@ case class TriplestoreServiceHttpConnectorImpl( SparqlConstructResponse(statementMap.toMap) }.foldZIO( - failure => + _ => if (turtleStr.contains("## Query cancelled due to timeout during execution")) { ZIO.logError("Triplestore timed out while sending a response, after sending statuscode 200.") *> ZIO.fail( @@ -319,7 +305,7 @@ case class TriplestoreServiceHttpConnectorImpl( response <- SparqlExtendedConstructResponse .parseTurtleResponse(turtleStr) .foldZIO( - failure => + _ => ZIO.die( TriplestoreResponseException( s"Couldn't parse Turtle from triplestore: ${sparqlExtendedConstructRequest}" @@ -908,11 +894,6 @@ case class TriplestoreServiceHttpConnectorImpl( } } - def logTimeTook(start: Long, statusCode: Int) = - ZIO - .succeed(java.lang.System.currentTimeMillis() - start) - .flatMap(took => ZIO.logInfo(s"[$statusCode] Triplestore query took: ${took}ms")) - (for { _ <- checkSimulateTimeout() // start <- ZIO.attempt(java.lang.System.currentTimeMillis()).orDie @@ -996,8 +977,7 @@ case class TriplestoreServiceHttpConnectorImpl( }.flatMap(_ => ZIO.succeed(FileWrittenResponse())).orDie case None => - val message = "Triplestore returned no content for repository dump" - val error = TriplestoreResponseException(s"Triplestore returned no content for for repository dump") + val error = TriplestoreResponseException(s"Triplestore returned no content for for repository dump") ZIO.logError(error.toString()) *> ZIO.die(error) } diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdatePlan.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdatePlan.scala index e9c4ddb1bc..9357eb02d2 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdatePlan.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdatePlan.scala @@ -1,6 +1,7 @@ package org.knora.webapi.store.triplestore.upgrade import com.typesafe.scalalogging.Logger + import org.knora.webapi.store.triplestore.upgrade.plugins._ /** diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdater.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdater.scala index 60865cc7fe..4ff51f6555 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdater.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdater.scala @@ -1,32 +1,22 @@ package org.knora.webapi.store.triplestore.upgrade -import akka.actor.ActorRef -import akka.actor.ActorSystem -import akka.http.scaladsl.util.FastFuture -import akka.pattern._ -import akka.util.Timeout import com.typesafe.scalalogging.LazyLogging import com.typesafe.scalalogging.Logger -import org.knora.webapi.IRI -import dsp.errors.InconsistentRepositoryDataException -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.store.triplestoremessages._ -import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.settings.KnoraDispatchers -import org.knora.webapi.settings.KnoraSettingsImpl -import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdatePlan.PluginForKnoraBaseVersion -import org.knora.webapi.util.FileUtil +import zio._ import java.io.File import java.nio.file.Files import java.nio.file.Path -import scala.concurrent.ExecutionContext -import scala.concurrent.Future import scala.reflect.io.Directory -import org.knora.webapi.config.AppConfig -import zio._ +import dsp.errors.InconsistentRepositoryDataException +import org.knora.webapi.IRI +import org.knora.webapi.config.AppConfig +import org.knora.webapi.messages.store.triplestoremessages._ +import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.api.TriplestoreService +import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdatePlan.PluginForKnoraBaseVersion +import org.knora.webapi.util.FileUtil /** * Updates a DSP repository to work with the current version of DSP-API. diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1307.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1307.scala index e11138671f..aa14ec5fb1 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1307.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1307.scala @@ -5,8 +5,8 @@ package org.knora.webapi.store.triplestore.upgrade.plugins -import org.knora.webapi.IRI import dsp.errors.InconsistentRepositoryDataException +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.upgrade.UpgradePlugin diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746.scala index 17c7f3f73a..f8614af2d6 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746.scala @@ -5,10 +5,11 @@ package org.knora.webapi.store.triplestore.upgrade.plugins +import com.typesafe.scalalogging.Logger + import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.upgrade.UpgradePlugin -import com.typesafe.scalalogging.Logger /** * Transforms a repository for Knora PR 1746. diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921.scala index 64b674b224..911d504e63 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921.scala @@ -5,10 +5,11 @@ package org.knora.webapi.store.triplestore.upgrade.plugins +import com.typesafe.scalalogging.Logger + import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.upgrade.UpgradePlugin -import com.typesafe.scalalogging.Logger /** * Transforms a repository for Knora PR 1921. @@ -63,9 +64,9 @@ class UpgradePluginPR1921(log: Logger) extends UpgradePlugin { case predicate: IriNode => if (predicate.stringValue == "http://www.knora.org/ontology/knora-admin#groupDescriptions") { statement.obj match { - case stringWithLanguage: StringWithLanguage => + case _: StringWithLanguage => () - case stringWithLanguage: StringLiteralV2 => + case _: StringLiteralV2 => () case _ => updateGroupDescription( @@ -77,9 +78,9 @@ class UpgradePluginPR1921(log: Logger) extends UpgradePlugin { if (predicate.stringValue == "http://www.knora.org/ontology/knora-admin#groupDescription") { statement.obj match { - case stringWithLanguage: StringWithLanguage => + case _: StringWithLanguage => updateGroupDescription(statement, None) - case stringWithLanguage: StringLiteralV2 => + case _: StringLiteralV2 => updateGroupDescription(statement, None) case _ => updateGroupDescription( diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018.scala index 369d97c097..8494a3497b 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018.scala @@ -6,6 +6,9 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.Logger + +import java.time.Instant + import dsp.errors.InconsistentRepositoryDataException import org.knora.webapi.messages.OntologyConstants.KnoraAdmin.SystemProject import org.knora.webapi.messages.OntologyConstants.KnoraBase.AttachedToProject @@ -15,8 +18,6 @@ import org.knora.webapi.messages.OntologyConstants.Xsd.DateTime import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.upgrade.UpgradePlugin -import java.time.Instant - /** * Transforms a repository for DSP-API PR 2018. */ diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079.scala index d89939a15e..62edc71b78 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.Logger + import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.upgrade.UpgradePlugin diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081.scala index a751575342..cf75a260d7 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081.scala @@ -6,10 +6,12 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.Logger + +import java.time.Instant + import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.upgrade.UpgradePlugin -import java.time.Instant /** * Transforms a repository for Knora PR 2081. @@ -40,7 +42,7 @@ class UpgradePluginPR2081(log: Logger) extends UpgradePlugin { obj = newValue, context = statement.context ) - case other => () + case _ => () } } diff --git a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094.scala b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094.scala index 82dec99e1e..0e4773903e 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.Logger + import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.store.triplestore.upgrade.UpgradePlugin diff --git a/webapi/src/main/scala/org/knora/webapi/util/ActorUtil.scala b/webapi/src/main/scala/org/knora/webapi/util/ActorUtil.scala index 92af858bde..6caa29c718 100644 --- a/webapi/src/main/scala/org/knora/webapi/util/ActorUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/util/ActorUtil.scala @@ -9,14 +9,7 @@ import akka.actor.ActorRef import akka.http.scaladsl.util.FastFuture import akka.util.Timeout import com.typesafe.scalalogging.Logger -import dsp.errors.BadRequestException -import dsp.errors.ExceptionUtil -import dsp.errors.RequestRejectedException -import dsp.errors.UnexpectedMessageException -import org.knora.webapi.config.AppConfig -import org.knora.webapi.core.Logging import zio.Cause._ -import zio.Unsafe.unsafe import zio._ import scala.concurrent.ExecutionContext @@ -25,7 +18,13 @@ import scala.reflect.ClassTag import scala.util.Failure import scala.util.Success import scala.util.Try + +import dsp.errors.ExceptionUtil import dsp.errors.NotFoundException +import dsp.errors.RequestRejectedException +import dsp.errors.UnexpectedMessageException +import org.knora.webapi.config.AppConfig +import org.knora.webapi.core.Logging object ActorUtil { @@ -67,13 +66,13 @@ object ActorUtil { */ def handleCause(cause: Cause[Throwable], sender: ActorRef, log: Logger): Unit = cause match { - case Fail(value, trace) => + case Fail(value, _) => value match { case notFoundEx: NotFoundException => log.info(s"This error is presumably the clients fault: $notFoundEx") sender ! akka.actor.Status.Failure(notFoundEx) } - case Die(value, trace) => + case Die(value, _) => value match { case rejectedEx: RequestRejectedException => log.info(s"This error is presumably the clients fault: $rejectedEx") 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 fb75817034..0e8f37aba0 100644 --- a/webapi/src/main/scala/org/knora/webapi/util/FileUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/util/FileUtil.scala @@ -6,9 +6,6 @@ package org.knora.webapi.util import com.typesafe.scalalogging.Logger -import dsp.errors.FileWriteException -import dsp.errors.NotFoundException -import org.knora.webapi.settings.KnoraSettingsImpl import java.io.ByteArrayOutputStream import java.nio.charset.StandardCharsets @@ -24,6 +21,10 @@ import scala.util.Failure import scala.util.Success import scala.util.Try +import dsp.errors.FileWriteException +import dsp.errors.NotFoundException +import org.knora.webapi.settings.KnoraSettingsImpl + /** * Functions for reading and writing files. */ diff --git a/webapi/src/main/scala/org/knora/webapi/util/cache/CacheUtil.scala b/webapi/src/main/scala/org/knora/webapi/util/cache/CacheUtil.scala index 046d6ad8fe..0be26977a5 100644 --- a/webapi/src/main/scala/org/knora/webapi/util/cache/CacheUtil.scala +++ b/webapi/src/main/scala/org/knora/webapi/util/cache/CacheUtil.scala @@ -11,9 +11,10 @@ import net.sf.ehcache.CacheManager import net.sf.ehcache.Ehcache import net.sf.ehcache.Element import net.sf.ehcache.event.CacheEventListener -import dsp.errors.ApplicationCacheException import org.slf4j.LoggerFactory +import dsp.errors.ApplicationCacheException + /** * Maintains in-memory caches, and caches values, using Ehcache (http://ehcache.org/). Each cache is accessible * by name from any function running in the same JVM. diff --git a/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala b/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala index e14da19dbd..e31a440288 100644 --- a/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/CoreSpec.scala @@ -12,48 +12,46 @@ import akka.pattern.ask import akka.stream.Materializer import akka.testkit.ImplicitSender import akka.testkit.TestKit -import akka.util.Timeout import com.typesafe.config.Config import com.typesafe.config.ConfigFactory import com.typesafe.scalalogging.Logger -import org.knora.webapi.auth.JWTService -import org.knora.webapi.config.AppConfig -import org.knora.webapi.config.AppConfigForTestContainers -import org.knora.webapi.core.Logging -import org.knora.webapi.store.cache.CacheServiceManager -import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl -import org.knora.webapi.store.iiif.IIIFServiceManager -import org.knora.webapi.store.iiif.impl.IIIFServiceSipiImpl -import org.knora.webapi.testcontainers.SipiTestContainer import org.scalatest.BeforeAndAfterAll import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike import zio._ -import scala.concurrent.Await import scala.concurrent.ExecutionContext -import scala.language.postfixOps -import scala.util.Failure -import scala.util.Success -import scala.util.Try import org.knora.webapi.app.ApplicationActor +import org.knora.webapi.auth.JWTService +import org.knora.webapi.config.AppConfig +import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.core.Core +import org.knora.webapi.core.Logging import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.app.appmessages.{AppStart, SetAllowReloadOverHTTPState} +import org.knora.webapi.messages.app.appmessages.AppStart +import org.knora.webapi.messages.app.appmessages.SetAllowReloadOverHTTPState import org.knora.webapi.messages.store.cacheservicemessages.CacheServiceFlushDB -import org.knora.webapi.messages.store.triplestoremessages.{RdfDataObject, ResetRepositoryContent} -import org.knora.webapi.messages.util.rdf.RdfFeatureFactory -import org.knora.webapi.messages.util.{KnoraSystemInstances, ResponderData} +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.messages.util.KnoraSystemInstances +import org.knora.webapi.messages.util.ResponderData import org.knora.webapi.messages.v2.responder.ontologymessages.LoadOntologiesRequestV2 -import org.knora.webapi.settings.{KnoraDispatchers, KnoraSettings, KnoraSettingsImpl, _} +import org.knora.webapi.settings.KnoraDispatchers +import org.knora.webapi.settings.KnoraSettings +import org.knora.webapi.settings.KnoraSettingsImpl +import org.knora.webapi.settings._ +import org.knora.webapi.store.cache.CacheServiceManager +import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.cache.settings.CacheServiceSettings -import org.knora.webapi.util.StartupUtils +import org.knora.webapi.store.iiif.IIIFServiceManager +import org.knora.webapi.store.iiif.impl.IIIFServiceSipiImpl import org.knora.webapi.store.triplestore.TriplestoreServiceManager +import org.knora.webapi.store.triplestore.api.TriplestoreService import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.store.triplestore.api.TriplestoreService +import org.knora.webapi.testcontainers.SipiTestContainer +import org.knora.webapi.util.StartupUtils object CoreSpec { @@ -227,7 +225,7 @@ abstract class CoreSpec(_system: ActorSystem) _ <- ZIO.logInfo("... loading test data done.") _ <- ZIO.logInfo("Loading load ontologies into cache started ...") _ <- ZIO - .fromFuture(implicit ec => + .fromFuture(_ => appActor .ask(LoadOntologiesRequestV2(KnoraSystemInstances.Users.SystemUser))( akka.util.Timeout.create(2.minutes) @@ -238,7 +236,7 @@ abstract class CoreSpec(_system: ActorSystem) _ <- ZIO.logInfo("CacheServiceFlushDB started ...") _ <- ZIO - .fromFuture(implicit ec => + .fromFuture(_ => appActor .ask(CacheServiceFlushDB(KnoraSystemInstances.Users.SystemUser))(akka.util.Timeout.create(30.seconds)) ) diff --git a/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala index f9805aa31c..01e9464c91 100644 --- a/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/E2ESpec.scala @@ -15,31 +15,6 @@ import akka.testkit.TestKit import com.typesafe.config.Config import com.typesafe.config.ConfigFactory import com.typesafe.scalalogging._ -import org.knora.webapi.auth.JWTService -import org.knora.webapi.config.AppConfig -import org.knora.webapi.config.AppConfigForTestContainers -import org.knora.webapi.core.Core -import org.knora.webapi.core.Logging -import dsp.errors.FileWriteException -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.app.appmessages.AppStart -import org.knora.webapi.messages.app.appmessages.SetAllowReloadOverHTTPState -import org.knora.webapi.messages.store.sipimessages.SipiUploadResponse -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject -import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.routing.KnoraRouteData -import org.knora.webapi.settings._ -import org.knora.webapi.store.cache.CacheServiceManager -import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl -import org.knora.webapi.store.iiif.IIIFServiceManager -import org.knora.webapi.store.iiif.impl.IIIFServiceSipiImpl -import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.testcontainers.SipiTestContainer -import org.knora.webapi.testservices.FileToUpload -import org.knora.webapi.testservices.TestClientService -import org.knora.webapi.util.FileUtil -import org.knora.webapi.util.StartupUtils import org.scalatest.BeforeAndAfterAll import org.scalatest.Suite import org.scalatest.concurrent.ScalaFutures @@ -48,7 +23,6 @@ import org.scalatest.wordspec.AnyWordSpecLike import spray.json._ import zio.& import zio.Runtime -import zio.ZEnvironment import zio.ZIO import zio.ZLayer import zio._ @@ -62,12 +36,37 @@ import scala.concurrent.ExecutionContext import scala.concurrent.Future import scala.concurrent.duration.FiniteDuration -import app.ApplicationActor +import dsp.errors.FileWriteException +import org.knora.webapi.auth.JWTService +import org.knora.webapi.config.AppConfig +import org.knora.webapi.config.AppConfigForTestContainers +import org.knora.webapi.core.Core +import org.knora.webapi.core.Logging +import org.knora.webapi.messages.StringFormatter +import org.knora.webapi.messages.app.appmessages.AppStart +import org.knora.webapi.messages.app.appmessages.SetAllowReloadOverHTTPState +import org.knora.webapi.messages.store.sipimessages.SipiUploadResponse +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol +import org.knora.webapi.messages.util.rdf._ +import org.knora.webapi.routing.KnoraRouteData +import org.knora.webapi.settings._ +import org.knora.webapi.store.cache.CacheServiceManager +import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl +import org.knora.webapi.store.iiif.IIIFServiceManager +import org.knora.webapi.store.iiif.impl.IIIFServiceSipiImpl import org.knora.webapi.store.triplestore.TriplestoreServiceManager import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater import org.knora.webapi.testcontainers.FusekiTestContainer +import org.knora.webapi.testcontainers.SipiTestContainer +import org.knora.webapi.testservices.FileToUpload import org.knora.webapi.testservices.TestActorSystemService +import org.knora.webapi.testservices.TestClientService +import org.knora.webapi.util.FileUtil +import org.knora.webapi.util.StartupUtils + +import app.ApplicationActor object E2ESpec { val defaultConfig: Config = ConfigFactory.load() diff --git a/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala b/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala index 4089715c74..af352e7cda 100644 --- a/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/ITKnoraLiveSpec.scala @@ -8,7 +8,6 @@ package org.knora.webapi import akka.actor.ActorRef import akka.actor.ActorSystem import akka.actor.Props -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.client.RequestBuilding import akka.http.scaladsl.model._ import akka.stream.Materializer @@ -16,6 +15,16 @@ import akka.testkit.TestKit import com.typesafe.config.Config import com.typesafe.config.ConfigFactory import com.typesafe.scalalogging.LazyLogging +import com.typesafe.scalalogging.Logger +import org.scalatest.BeforeAndAfterAll +import org.scalatest.Suite +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpecLike +import spray.json._ +import zio._ + +import scala.concurrent.ExecutionContext + import org.knora.webapi.app.ApplicationActor import org.knora.webapi.auth.JWTService import org.knora.webapi.config.AppConfig @@ -29,29 +38,20 @@ import org.knora.webapi.messages.store.sipimessages._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.util.rdf.JsonLDDocument -import org.knora.webapi.messages.util.rdf.RdfFeatureFactory import org.knora.webapi.settings._ import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.impl.IIIFServiceSipiImpl +import org.knora.webapi.store.triplestore.TriplestoreServiceManager +import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl +import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater +import org.knora.webapi.testcontainers.FusekiTestContainer import org.knora.webapi.testcontainers.SipiTestContainer import org.knora.webapi.testservices.FileToUpload import org.knora.webapi.testservices.TestActorSystemService import org.knora.webapi.testservices.TestClientService import org.knora.webapi.util.StartupUtils -import org.scalatest.BeforeAndAfterAll -import org.scalatest.Suite -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpecLike -import spray.json._ -import zio._ - -import scala.concurrent.ExecutionContext -import org.knora.webapi.store.triplestore.TriplestoreServiceManager -import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl -import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import org.knora.webapi.testcontainers.FusekiTestContainer object ITKnoraLiveSpec { val defaultConfig: Config = ConfigFactory.load() diff --git a/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala index aea3434ade..05363acbdc 100644 --- a/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/R2RSpec.scala @@ -8,13 +8,25 @@ package org.knora.webapi import akka.actor.ActorRef import akka.actor.ActorSystem import akka.actor.Props -import com.typesafe.scalalogging.Logger import akka.http.scaladsl.model.HttpResponse import akka.http.scaladsl.server.ExceptionHandler import akka.http.scaladsl.testkit.ScalatestRouteTest import akka.util.Timeout -import com.typesafe.config.ConfigFactory -import com.typesafe.scalalogging.LazyLogging +import com.typesafe.scalalogging.Logger +import org.scalatest.BeforeAndAfterAll +import org.scalatest.Suite +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpecLike +import zio._ + +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.Paths +import java.util.concurrent.TimeUnit +import scala.concurrent.Await +import scala.concurrent.ExecutionContext +import scala.concurrent.Future + import org.knora.webapi.app.ApplicationActor import org.knora.webapi.auth.JWTService import org.knora.webapi.config.AppConfig @@ -42,25 +54,10 @@ import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorIm import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater import org.knora.webapi.testcontainers.FusekiTestContainer import org.knora.webapi.testcontainers.SipiTestContainer -import org.knora.webapi.testservices.TestClientService import org.knora.webapi.testservices.TestActorSystemService +import org.knora.webapi.testservices.TestClientService import org.knora.webapi.util.FileUtil import org.knora.webapi.util.StartupUtils -import org.scalatest.BeforeAndAfterAll -import org.scalatest.Suite -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpecLike -import zio._ - -import java.nio.file.Files -import java.nio.file.Path -import java.nio.file.Paths -import java.util.concurrent.TimeUnit -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration._ -import akka.testkit.TestActorRef /** * R(oute)2R(esponder) Spec base class. Please, for any new E2E tests, use E2ESpec. diff --git a/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainers.scala b/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainers.scala index bb40cb9ee8..f6231e3578 100644 --- a/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainers.scala +++ b/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainers.scala @@ -1,14 +1,14 @@ package org.knora.webapi.config import com.typesafe.config.ConfigFactory -import org.knora.webapi.testcontainers.SipiTestContainer import zio._ import zio.config._ import zio.config.typesafe.TypesafeConfigSource -import magnolia._ import org.knora.webapi.testcontainers.FusekiTestContainer -import org.testcontainers.containers.GenericContainer +import org.knora.webapi.testcontainers.SipiTestContainer + +import magnolia._ /** * Alters the AppConfig with the TestContainer ports for Fuseki and Sipi. diff --git a/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainersZSpec.scala b/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainersZSpec.scala index 22e4cd2602..8c204404ad 100644 --- a/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainersZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/config/AppConfigForTestContainersZSpec.scala @@ -1,9 +1,10 @@ package org.knora.webapi.config -import org.knora.webapi.testcontainers.SipiTestContainer import zio._ import zio.test._ + import org.knora.webapi.testcontainers.FusekiTestContainer +import org.knora.webapi.testcontainers.SipiTestContainer object AppConfigForTestContainersZSpec extends ZIOSpecDefault { diff --git a/webapi/src/test/scala/org/knora/webapi/config/AppConfigZSpec.scala b/webapi/src/test/scala/org/knora/webapi/config/AppConfigZSpec.scala index b3d6ede22c..8fba1db63b 100644 --- a/webapi/src/test/scala/org/knora/webapi/config/AppConfigZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/config/AppConfigZSpec.scala @@ -5,6 +5,7 @@ import zio.test._ import java.util.concurrent.TimeUnit import scala.concurrent.duration.FiniteDuration + import dsp.valueobjects.User object AppConfigZSpec extends ZIOSpec[AppConfig] { diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/CORSSupportE2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/CORSSupportE2ESpec.scala index 2c552d4835..9b64ef4653 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/CORSSupportE2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/CORSSupportE2ESpec.scala @@ -13,6 +13,7 @@ import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.model.headers.`Access-Control-Allow-Methods` import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.ConfigFactory + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/ClientTestDataCollector.scala b/webapi/src/test/scala/org/knora/webapi/e2e/ClientTestDataCollector.scala index ac342a527b..464e35b4cc 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/ClientTestDataCollector.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/ClientTestDataCollector.scala @@ -6,12 +6,13 @@ package org.knora.webapi.e2e import com.typesafe.scalalogging.LazyLogging -import org.knora.webapi.settings.KnoraSettingsImpl import java.nio.charset.StandardCharsets import java.nio.file.Files import java.nio.file.Path +import org.knora.webapi.settings.KnoraSettingsImpl + /** * Collects E2E test requests and responses for use as client test data. * diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/ExceptionHandlerR2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/ExceptionHandlerR2RSpec.scala index 57fafb9e79..f5c3fc74a2 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/ExceptionHandlerR2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/ExceptionHandlerR2RSpec.scala @@ -10,8 +10,9 @@ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Directives.get import akka.http.scaladsl.server.Directives.path import akka.http.scaladsl.server.Route -import org.knora.webapi._ + import dsp.errors._ +import org.knora.webapi._ import org.knora.webapi.http.handler /** diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/HealthRouteE2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/HealthRouteE2ESpec.scala index 62e26d5227..2709a5b044 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/HealthRouteE2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/HealthRouteE2ESpec.scala @@ -10,6 +10,7 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.app.appmessages.AppStates import org.knora.webapi.messages.app.appmessages.SetAppState diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/InstanceChecker.scala b/webapi/src/test/scala/org/knora/webapi/e2e/InstanceChecker.scala index 231a5da3e7..46970ac6cd 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/InstanceChecker.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/InstanceChecker.scala @@ -6,6 +6,10 @@ package org.knora.webapi.e2e import com.typesafe.scalalogging.LazyLogging + +import java.net.URLEncoder +import scala.collection.mutable + import dsp.errors.AssertionException import dsp.schema.domain.Cardinality import dsp.schema.domain.Cardinality._ @@ -16,12 +20,8 @@ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.util._ import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality._ import org.knora.webapi.messages.v2.responder.ontologymessages._ -import java.net.URLEncoder -import scala.collection.mutable - /** * A factory that constructs [[InstanceChecker]] instances for different Knora response formats. */ diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/InstanceCheckerSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/InstanceCheckerSpec.scala index af17d39f0a..b47c62415b 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/InstanceCheckerSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/InstanceCheckerSpec.scala @@ -9,15 +9,16 @@ import akka.actor.ActorSystem import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi.E2ESpec + +import java.nio.file.Paths +import scala.concurrent.ExecutionContextExecutor + import dsp.errors.AssertionException +import org.knora.webapi.E2ESpec import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.util.FileUtil -import java.nio.file.Paths -import scala.concurrent.ExecutionContextExecutor - /** * Tests [[InstanceChecker]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/RejectingRouteE2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/RejectingRouteE2ESpec.scala index a97ccbbb56..9451dc0994 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/RejectingRouteE2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/RejectingRouteE2ESpec.scala @@ -7,6 +7,7 @@ package org.knora.webapi.e2e import akka.http.scaladsl.model._ import com.typesafe.config.ConfigFactory + import org.knora.webapi.E2ESpec object RejectingRouteE2ESpec { diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/FilesADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/FilesADME2ESpec.scala index e477aeb67f..50889ed7c3 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/FilesADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/FilesADME2ESpec.scala @@ -5,13 +5,15 @@ package org.knora.webapi.e2e.admin -import akka.actor.ActorSystem import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.Cookie -import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.admin.responder.sipimessages.SipiFileInfoGetResponseADM import org.knora.webapi.messages.admin.responder.sipimessages.SipiResponderResponseADMJsonProtocol._ @@ -19,11 +21,8 @@ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.v1.responder.sessionmessages.SessionJsonProtocol import org.knora.webapi.messages.v1.responder.sessionmessages.SessionResponse -import org.knora.webapi.sharedtestdata.SharedTestDataV1 - -import scala.concurrent.Await -import scala.concurrent.duration._ import org.knora.webapi.routing.Authenticator +import org.knora.webapi.sharedtestdata.SharedTestDataV1 object FilesADME2ESpec { val config: Config = ConfigFactory.parseString(""" @@ -39,8 +38,6 @@ object FilesADME2ESpec { */ class FilesADME2ESpec extends E2ESpec(FilesADME2ESpec.config) with SessionJsonProtocol with TriplestoreJsonProtocol { - private implicit def default(implicit system: ActorSystem) = RouteTestTimeout(30.seconds) - private val anythingAdminEmail = SharedTestDataV1.anythingAdminUser.userData.email.get private val anythingAdminEmailEnc = java.net.URLEncoder.encode(anythingAdminEmail, "utf-8") private val normalUserEmail = SharedTestDataV1.normalUser.userData.email.get diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/GroupsADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/GroupsADME2ESpec.scala index feea53588a..9103a80994 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/GroupsADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/GroupsADME2ESpec.scala @@ -12,6 +12,10 @@ import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent @@ -24,9 +28,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.AkkaHttpUtils import org.knora.webapi.util.MutableTestIri -import scala.concurrent.Await -import scala.concurrent.duration._ - object GroupsADME2ESpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/PermissionsADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/PermissionsADME2ESpec.scala index f5f20d8abc..7b5b50e49c 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/PermissionsADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/PermissionsADME2ESpec.scala @@ -9,6 +9,9 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.BasicHttpCredentials import com.typesafe.config.Config import com.typesafe.config.ConfigFactory +import spray.json._ +import zio._ + import org.knora.webapi.E2ESpec import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent @@ -19,8 +22,6 @@ import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.knora.webapi.util.AkkaHttpUtils -import spray.json._ -import zio._ object PermissionsADME2ESpec { diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/ProjectsADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/ProjectsADME2ESpec.scala index 803fd180c6..4b0dbf8b19 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/ProjectsADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/ProjectsADME2ESpec.scala @@ -5,17 +5,21 @@ package org.knora.webapi.e2e.admin -import akka.actor.ActorSystem import akka.http.scaladsl.model.ContentTypes import akka.http.scaladsl.model.HttpEntity import akka.http.scaladsl.model.HttpResponse import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.model.headers.BasicHttpCredentials -import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import akka.util.Timeout import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import java.net.URLEncoder +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.IRI import org.knora.webapi.e2e.ClientTestDataCollector @@ -33,11 +37,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.AkkaHttpUtils import org.knora.webapi.util.MutableTestIri -import java.net.URLEncoder -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ - object ProjectsADME2ESpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" @@ -54,8 +53,6 @@ class ProjectsADME2ESpec with ProjectsADMJsonProtocol with TriplestoreJsonProtocol { - private implicit def default(implicit system: ActorSystem): RouteTestTimeout = RouteTestTimeout(30.seconds) - private val rootEmail = SharedTestDataADM.rootUser.email private val testPass = SharedTestDataADM.testPass private val projectIri = SharedTestDataADM.imagesProject.id diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/StoreADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/StoreADME2ESpec.scala index c301251226..d0a54e6889 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/StoreADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/StoreADME2ESpec.scala @@ -9,11 +9,12 @@ import akka.http.scaladsl.model.ContentTypes import akka.http.scaladsl.model.HttpEntity import akka.http.scaladsl.model.StatusCodes import com.typesafe.config.ConfigFactory +import spray.json._ +import zio._ + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.app.appmessages.SetAllowReloadOverHTTPState import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import spray.json._ -import zio._ object StoreADME2ESpec { val config = ConfigFactory.parseString(""" diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/UsersADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/UsersADME2ESpec.scala index b2e1ce13d0..dc6bf100ff 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/UsersADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/UsersADME2ESpec.scala @@ -12,6 +12,10 @@ import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi._ import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent @@ -31,9 +35,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.knora.webapi.util.AkkaHttpUtils import org.knora.webapi.util.MutableTestIri -import scala.concurrent.Await -import scala.concurrent.duration._ - object UsersADME2ESpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/DeleteListItemsRouteADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/DeleteListItemsRouteADME2ESpec.scala index f92bd7a015..0d17814a2f 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/DeleteListItemsRouteADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/DeleteListItemsRouteADME2ESpec.scala @@ -12,6 +12,9 @@ import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent @@ -25,8 +28,6 @@ import org.knora.webapi.sharedtestdata.SharedListsTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.AkkaHttpUtils -import scala.concurrent.duration._ - object DeleteListItemsRouteADME2ESpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" @@ -89,9 +90,6 @@ class DeleteListItemsRouteADME2ESpec "test" ) - private val treeListInfo: ListRootNodeInfoADM = SharedListsTestDataADM.treeListInfo - private val treeListNodes: Seq[ListChildNodeADM] = SharedListsTestDataADM.treeListChildNodes - "The List Items Route (/admin/lists)" when { "deleting list items" should { "return forbidden exception when requesting user is not system or project admin" in { @@ -247,8 +245,6 @@ class DeleteListItemsRouteADME2ESpec ) val response: HttpResponse = singleAwaitingRequest(request) - val responseStr = responseToString(response) - response.status should be(StatusCodes.BadRequest) } } diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/OldListsRouteADMFeatureE2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/OldListsRouteADMFeatureE2ESpec.scala index d1111b8317..140e313968 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/OldListsRouteADMFeatureE2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/OldListsRouteADMFeatureE2ESpec.scala @@ -12,6 +12,10 @@ import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.IRI import org.knora.webapi.e2e.ClientTestDataCollector @@ -28,9 +32,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.AkkaHttpUtils import org.knora.webapi.util.MutableTestIri -import scala.concurrent.Await -import scala.concurrent.duration._ - object OldListsRouteADMFeatureE2ESpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/UpdateListItemsRouteADME2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/UpdateListItemsRouteADME2ESpec.scala index 1fa1303e56..b531ee55ae 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/UpdateListItemsRouteADME2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/admin/lists/UpdateListItemsRouteADME2ESpec.scala @@ -13,6 +13,9 @@ import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent @@ -27,8 +30,6 @@ import org.knora.webapi.sharedtestdata.SharedListsTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.AkkaHttpUtils -import scala.concurrent.duration._ - object UpdateListItemsRouteADME2ESpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/http/ServerVersionE2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/http/ServerVersionE2ESpec.scala index a3a6839928..8a729b125a 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/http/ServerVersionE2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/http/ServerVersionE2ESpec.scala @@ -10,6 +10,7 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + import org.knora.webapi.E2ESpec import org.knora.webapi.http.version.ServerVersion diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/AuthenticationV1E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/AuthenticationV1E2ESpec.scala index 574f9f3d41..5d5ad051f1 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/AuthenticationV1E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/AuthenticationV1E2ESpec.scala @@ -5,23 +5,22 @@ package org.knora.webapi.e2e.v1 -import akka.actor.ActorSystem import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.model.headers.`Set-Cookie` -import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.v1.responder.sessionmessages.SessionJsonProtocol import org.knora.webapi.messages.v1.responder.sessionmessages.SessionResponse -import org.knora.webapi.sharedtestdata.SharedTestDataV1 - -import scala.concurrent.Await -import scala.concurrent.duration._ import org.knora.webapi.routing.Authenticator +import org.knora.webapi.sharedtestdata.SharedTestDataV1 object AuthenticationV1E2ESpec { val config: Config = ConfigFactory.parseString(""" @@ -40,8 +39,6 @@ class AuthenticationV1E2ESpec with SessionJsonProtocol with TriplestoreJsonProtocol { - private implicit def default(implicit system: ActorSystem) = RouteTestTimeout(30.seconds) - private val rootIri = SharedTestDataV1.rootUser.userData.user_id.get private val rootIriEnc = java.net.URLEncoder.encode(rootIri, "utf-8") private val rootEmail = SharedTestDataV1.rootUser.userData.email.get diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ErrorV1E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ErrorV1E2ESpec.scala index baac32e44c..23b4ad7a05 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ErrorV1E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ErrorV1E2ESpec.scala @@ -1,9 +1,10 @@ package org.knora.webapi.e2e.v1 import akka.http.scaladsl.model.StatusCodes +import zio._ + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import zio._ /** * Causes an internal server error to see if logging is working correctly. diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ListsV1E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ListsV1E2ESpec.scala index b2d7fb9571..0b1844fbfb 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ListsV1E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ListsV1E2ESpec.scala @@ -8,6 +8,9 @@ package org.knora.webapi.e2e.v1 import akka.actor.ActorSystem import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.ConfigFactory + +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol @@ -16,8 +19,6 @@ import org.knora.webapi.messages.v1.responder.sessionmessages.SessionJsonProtoco import org.knora.webapi.messages.v1.routing.authenticationmessages.CredentialsV1 import org.knora.webapi.sharedtestdata.SharedTestDataV1 -import scala.concurrent.duration._ - object ListsV1E2ESpec { val config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" @@ -53,23 +54,12 @@ class ListsV1E2ESpec "test" ) - private val inactiveUserEmailEnc = - java.net.URLEncoder.encode(SharedTestDataV1.inactiveUser.userData.email.get, "utf-8") - - private val normalUserIri = SharedTestDataV1.normalUser.userData.user_id.get - private val normalUserIriEnc = java.net.URLEncoder.encode(normalUserIri, "utf-8") - - private val multiUserIri = SharedTestDataV1.multiuserUser.userData.user_id.get - private val multiUserIriEnc = java.net.URLEncoder.encode(multiUserIri, "utf-8") - - private val wrongEmail = "wrong@example.com" - val wrongEmailEnc = java.net.URLEncoder.encode(wrongEmail, "utf-8") - - private val testPass = java.net.URLEncoder.encode("test", "utf-8") + val normalUserIri = SharedTestDataV1.normalUser.userData.user_id.get + val multiUserIri = SharedTestDataV1.multiuserUser.userData.user_id.get + val wrongEmail = "wrong@example.com" + val wrongEmailEnc = java.net.URLEncoder.encode(wrongEmail, "utf-8") val wrongPass = java.net.URLEncoder.encode("wrong", "utf-8") - - private val imagesProjectIri = SharedTestDataV1.imagesProjectInfo.id - private val imagesProjectIriEnc = java.net.URLEncoder.encode(imagesProjectIri, "utf-8") + val imagesProjectIri = SharedTestDataV1.imagesProjectInfo.id "The HList Route ('v1/hlists')" when { diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/PermissionsHandlingV1E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/PermissionsHandlingV1E2ESpec.scala index c3090997be..8bfadcddad 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/PermissionsHandlingV1E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/PermissionsHandlingV1E2ESpec.scala @@ -8,6 +8,7 @@ package org.knora.webapi.e2e.v1 import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.BasicHttpCredentials import com.typesafe.config.ConfigFactory + import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM @@ -88,7 +89,7 @@ class PermissionsHandlingV1E2ESpec extends E2ESpec(PermissionsHandlingV1E2ESpec. Post(baseApiUrl + s"/v1/resources", HttpEntity(ContentTypes.`application/json`, params)) ~> addCredentials( BasicHttpCredentials(rootUserEmail, password) ) - val response: HttpResponse = singleAwaitingRequest(request) + singleAwaitingRequest(request) } "not allow a user from another project to create a resource" in { @@ -110,7 +111,7 @@ class PermissionsHandlingV1E2ESpec extends E2ESpec(PermissionsHandlingV1E2ESpec. Post(baseApiUrl + s"/v1/resources", HttpEntity(ContentTypes.`application/json`, params)) ~> addCredentials( BasicHttpCredentials(incunabulaUserEmail, password) ) - val response: HttpResponse = singleAwaitingRequest(request) + singleAwaitingRequest(request) } } diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ProjectsV1E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ProjectsV1E2ESpec.scala index 7eef4ad195..73990d9899 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ProjectsV1E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ProjectsV1E2ESpec.scala @@ -10,6 +10,9 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.ConfigFactory + +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.v1.responder.projectmessages.ProjectInfoV1 @@ -18,8 +21,6 @@ import org.knora.webapi.messages.v1.responder.sessionmessages.SessionJsonProtoco import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.knora.webapi.util.AkkaHttpUtils -import scala.concurrent.duration._ - object ProjectsV1E2ESpec { val config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" @@ -39,7 +40,6 @@ class ProjectsV1E2ESpec implicit def default(implicit system: ActorSystem) = RouteTestTimeout(30.seconds) private val rootEmail = SharedTestDataV1.rootUser.userData.email.get - private val rootEmailEnc = java.net.URLEncoder.encode(rootEmail, "utf-8") private val testPass = java.net.URLEncoder.encode("test", "utf-8") private val projectIri = SharedTestDataV1.imagesProjectInfo.id private val projectIriEnc = java.net.URLEncoder.encode(projectIri, "utf-8") 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 63547f0491..203654dc86 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 @@ -10,10 +10,29 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout import akka.pattern._ -import org.knora.webapi._ +import org.scalatest.Assertion +import org.xmlunit.builder.DiffBuilder +import org.xmlunit.builder.Input +import org.xmlunit.diff.Diff +import spray.json._ + +import java.io.ByteArrayInputStream +import java.net.URLEncoder +import java.util.zip.ZipEntry +import java.util.zip.ZipInputStream +import scala.concurrent.Await +import scala.concurrent.ExecutionContextExecutor +import scala.concurrent.Future +import scala.concurrent.duration._ +import scala.util.Random +import scala.xml.Node +import scala.xml.NodeSeq +import scala.xml.XML + import dsp.errors.AssertionException import dsp.errors.InvalidApiJsonException import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.http.directives.DSPApiDirectives import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.store.triplestoremessages._ @@ -30,24 +49,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM._ import org.knora.webapi.store.triplestore.errors.TriplestoreResponseException import org.knora.webapi.util.AkkaHttpUtils import org.knora.webapi.util.MutableTestIri -import org.scalatest.Assertion -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input -import org.xmlunit.diff.Diff -import spray.json._ - -import java.io.ByteArrayInputStream -import java.net.URLEncoder -import java.util.zip.ZipEntry -import java.util.zip.ZipInputStream -import scala.concurrent.Await -import scala.concurrent.ExecutionContextExecutor -import scala.concurrent.Future -import scala.concurrent.duration._ -import scala.util.Random -import scala.xml.Node -import scala.xml.NodeSeq -import scala.xml.XML /** * End-to-end test specification for the resources endpoint. diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/SearchV1R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/SearchV1R2RSpec.scala index 1acf95986e..d53c92ba08 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/SearchV1R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/SearchV1R2RSpec.scala @@ -8,15 +8,16 @@ package org.knora.webapi.e2e.v1 import akka.actor.ActorSystem import akka.http.javadsl.model.StatusCodes import akka.http.scaladsl.testkit.RouteTestTimeout -import org.knora.webapi._ -import dsp.errors.InvalidApiJsonException -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject -import org.knora.webapi.routing.v1.SearchRouteV1 import org.scalatest.Assertion import spray.json._ import scala.concurrent.ExecutionContextExecutor +import dsp.errors.InvalidApiJsonException +import org.knora.webapi._ +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.routing.v1.SearchRouteV1 + /** * End-to-end test specification for the search endpoint. This specification uses the Spray Testkit as documented * here: http://spray.io/documentation/1.2.2/spray-testkit/ diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/SipiV1R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/SipiV1R2RSpec.scala index d929bca640..be7c92ff6f 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/SipiV1R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/SipiV1R2RSpec.scala @@ -9,9 +9,19 @@ import akka.actor._ import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout +import zio.& +import zio.Runtime +import zio.ZLayer + +import java.net.URLEncoder +import java.nio.file.Files +import java.nio.file.Paths + +import dsp.errors.FileWriteException import org.knora.webapi._ import org.knora.webapi.config.AppConfig -import dsp.errors.FileWriteException +import org.knora.webapi.config.AppConfigForTestContainers +import org.knora.webapi.core.Logging import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.v1.responder.resourcemessages.CreateResourceApiRequestV1 import org.knora.webapi.messages.v1.responder.resourcemessages.CreateResourceValueV1 @@ -24,21 +34,12 @@ import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.impl.IIIFServiceMockImpl -import zio.& -import zio.ZLayer -import zio.Runtime - -import java.net.URLEncoder -import java.nio.file.Files -import java.nio.file.Paths import org.knora.webapi.store.triplestore.TriplestoreServiceManager import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.testservices.TestClientService import org.knora.webapi.testservices.TestActorSystemService -import org.knora.webapi.core.Logging +import org.knora.webapi.testservices.TestClientService /** * End-to-end test specification for the resources endpoint. This specification uses the Spray Testkit as documented diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/StandoffV1R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/StandoffV1R2RSpec.scala index ebf21c07d8..b1af5721ac 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/StandoffV1R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/StandoffV1R2RSpec.scala @@ -10,8 +10,20 @@ import akka.http.scaladsl.model.HttpEntity import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout -import org.knora.webapi._ +import org.xmlunit.builder.DiffBuilder +import org.xmlunit.builder.Input +import org.xmlunit.diff.Diff +import spray.json._ + +import java.net.URLEncoder +import java.nio.file.Paths +import scala.concurrent.Await +import scala.concurrent.ExecutionContextExecutor +import scala.concurrent.Future +import scala.concurrent.duration._ + import dsp.errors.InvalidApiJsonException +import org.knora.webapi._ import org.knora.webapi.http.directives.DSPApiDirectives import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.store.triplestoremessages._ @@ -23,17 +35,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataV1._ import org.knora.webapi.util.AkkaHttpUtils import org.knora.webapi.util.FileUtil import org.knora.webapi.util.MutableTestIri -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input -import org.xmlunit.diff.Diff -import spray.json._ - -import java.net.URLEncoder -import java.nio.file.Paths -import scala.concurrent.Await -import scala.concurrent.ExecutionContextExecutor -import scala.concurrent.Future -import scala.concurrent.duration._ /** * End-to-end test specification for the standoff endpoint. This specification uses the Spray Testkit as documented diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/UsersV1E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/UsersV1E2ESpec.scala index 48c539e1b2..39d1cfa3ac 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/UsersV1E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/UsersV1E2ESpec.scala @@ -10,6 +10,9 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.testkit.RouteTestTimeout import com.typesafe.config.ConfigFactory + +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.IRI import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol @@ -18,8 +21,6 @@ import org.knora.webapi.messages.v1.routing.authenticationmessages.CredentialsV1 import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.knora.webapi.util.AkkaHttpUtils -import scala.concurrent.duration._ - object UsersV1E2ESpec { val config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" @@ -46,24 +47,9 @@ class UsersV1E2ESpec extends E2ESpec(UsersV1E2ESpec.config) with SessionJsonProt "test" ) - private val inactiveUserEmailEnc = - java.net.URLEncoder.encode(SharedTestDataV1.inactiveUser.userData.email.get, "utf-8") - - private val normalUserIri = SharedTestDataV1.normalUser.userData.user_id.get - private val normalUserIriEnc = java.net.URLEncoder.encode(normalUserIri, "utf-8") - private val multiUserIri = SharedTestDataV1.multiuserUser.userData.user_id.get private val multiUserIriEnc = java.net.URLEncoder.encode(multiUserIri, "utf-8") - private val wrongEmail = "wrong@example.com" - private val wrongEmailEnc = java.net.URLEncoder.encode(wrongEmail, "utf-8") - - private val testPass = java.net.URLEncoder.encode("test", "utf-8") - private val wrongPass = java.net.URLEncoder.encode("wrong", "utf-8") - - private val imagesProjectIri = SharedTestDataV1.imagesProjectInfo.id - private val imagesProjectIriEnc = java.net.URLEncoder.encode(imagesProjectIri, "utf-8") - /** * Convenience method returning the users project memberships. * diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ValuesV1R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ValuesV1R2RSpec.scala index afae44872c..7987d94d62 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v1/ValuesV1R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v1/ValuesV1R2RSpec.scala @@ -11,6 +11,10 @@ import akka.http.scaladsl.model.HttpEntity import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout +import spray.json._ + +import java.net.URLEncoder + import org.knora.webapi._ import org.knora.webapi.http.directives.DSPApiDirectives import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject @@ -19,9 +23,6 @@ import org.knora.webapi.routing.v1.ValuesRouteV1 import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.knora.webapi.util.AkkaHttpUtils import org.knora.webapi.util.MutableTestIri -import spray.json._ - -import java.net.URLEncoder /** * Tests the values route. diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/AuthenticationV2E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/AuthenticationV2E2ESpec.scala index a010696be2..b2793dd8fb 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/AuthenticationV2E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/AuthenticationV2E2ESpec.scala @@ -5,24 +5,23 @@ package org.knora.webapi.e2e.v2 -import akka.actor.ActorSystem import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers._ -import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.v2.routing.authenticationmessages.AuthenticationV2JsonProtocol import org.knora.webapi.messages.v2.routing.authenticationmessages.LoginResponse +import org.knora.webapi.routing.Authenticator import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.MutableTestString -import scala.concurrent.Await -import scala.concurrent.duration._ -import org.knora.webapi.routing.Authenticator - object AuthenticationV2E2ESpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" @@ -40,9 +39,6 @@ class AuthenticationV2E2ESpec with AuthenticationV2JsonProtocol with TriplestoreJsonProtocol { - private implicit def default(implicit system: ActorSystem): RouteTestTimeout = - RouteTestTimeout(settings.defaultTimeout) - private val rootIri = SharedTestDataADM.rootUser.id private val rootIriEnc = java.net.URLEncoder.encode(rootIri, "utf-8") private val rootUsername = SharedTestDataADM.rootUser.username @@ -51,8 +47,6 @@ class AuthenticationV2E2ESpec private val rootEmailEnc = java.net.URLEncoder.encode(rootEmail, "utf-8") private val inactiveUserEmail = SharedTestDataADM.inactiveUser.email private val inactiveUserEmailEnc = java.net.URLEncoder.encode(inactiveUserEmail, "utf-8") - private val wrongEmail = "wrong@example.com" - private val wrongEmailEnc = java.net.URLEncoder.encode(wrongEmail, "utf-8") private val testPass = java.net.URLEncoder.encode("test", "utf-8") private val wrongPass = java.net.URLEncoder.encode("wrong", "utf-8") diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/JSONLDHandlingV2R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/JSONLDHandlingV2R2RSpec.scala index 6c443aeb83..361e7ed8c6 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/JSONLDHandlingV2R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/JSONLDHandlingV2R2RSpec.scala @@ -8,17 +8,18 @@ package org.knora.webapi.e2e.v2 import akka.actor.ActorSystem import akka.http.javadsl.model.StatusCodes import akka.http.scaladsl.testkit.RouteTestTimeout -import org.knora.webapi._ -import org.knora.webapi.e2e.v2.ResponseCheckerV2._ -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject -import org.knora.webapi.messages.util.rdf.JsonLDUtil -import org.knora.webapi.routing.v2.ResourcesRouteV2 import spray.json._ import java.net.URLEncoder import java.nio.file.Paths import scala.concurrent.ExecutionContextExecutor +import org.knora.webapi._ +import org.knora.webapi.e2e.v2.ResponseCheckerV2._ +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.messages.util.rdf.JsonLDUtil +import org.knora.webapi.routing.v2.ResourcesRouteV2 + /** * End-to-end specification for the handling of JSONLD documents. */ diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ListsRouteV2R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ListsRouteV2R2RSpec.scala index 8e95e9a8b0..e5c7746c27 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ListsRouteV2R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ListsRouteV2R2RSpec.scala @@ -9,6 +9,13 @@ import akka.actor.ActorSystem import akka.http.javadsl.model.StatusCodes import akka.http.scaladsl.model.headers.Accept import akka.http.scaladsl.testkit.RouteTestTimeout +import spray.json.JsValue +import spray.json.JsonParser + +import java.net.URLEncoder +import java.nio.file.Paths +import scala.concurrent.ExecutionContextExecutor + import org.knora.webapi._ import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent @@ -17,12 +24,6 @@ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.util.rdf.RdfModel import org.knora.webapi.routing.v2.ListsRouteV2 import org.knora.webapi.util.FileUtil -import spray.json.JsValue -import spray.json.JsonParser - -import java.net.URLEncoder -import java.nio.file.Paths -import scala.concurrent.ExecutionContextExecutor /** * End-to-end test specification for the lists endpoint. This specification uses the Spray Testkit as documented diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/MarkupHeader.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/MarkupHeader.scala index cd9cebde46..ec3670f08f 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/MarkupHeader.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/MarkupHeader.scala @@ -7,10 +7,11 @@ package org.knora.webapi.e2e.v2 import akka.http.scaladsl.model.headers.ModeledCustomHeader import akka.http.scaladsl.model.headers.ModeledCustomHeaderCompanion -import org.knora.webapi.routing.RouteUtilV2 import scala.util.Try +import org.knora.webapi.routing.RouteUtilV2 + /** * A custom Akka HTTP header representing [[RouteUtilV2.MARKUP_HEADER]], which a client can send to specify * how text markup should be returned in an API response. diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/OntologyV2R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/OntologyV2R2RSpec.scala index 745cfa298b..5f980c4c89 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/OntologyV2R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/OntologyV2R2RSpec.scala @@ -5,6 +5,15 @@ import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.Accept import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout +import spray.json._ + +import java.net.URLEncoder +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.Paths +import java.time.Instant +import scala.concurrent.ExecutionContextExecutor + import dsp.constants.SalsahGui import dsp.errors.AssertionException import dsp.schema.domain.Cardinality._ @@ -22,7 +31,6 @@ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.messages.v2.responder.ontologymessages.InputOntologyV2 -import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality import org.knora.webapi.messages.v2.responder.ontologymessages.TestResponseParsingModeV2 import org.knora.webapi.models._ import org.knora.webapi.routing.v2.OntologiesRouteV2 @@ -30,14 +38,6 @@ import org.knora.webapi.routing.v2.ResourcesRouteV2 import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util._ -import spray.json._ - -import java.net.URLEncoder -import java.nio.file.Files -import java.nio.file.Path -import java.nio.file.Paths -import java.time.Instant -import scala.concurrent.ExecutionContextExecutor object OntologyV2R2RSpec { private val anythingUserProfile = SharedTestDataADM.anythingAdminUser @@ -1246,8 +1246,8 @@ class OntologyV2R2RSpec extends R2RSpec { CollectClientTestData("not-change-property-guielement-request", params) - // Convert the submitted JSON-LD to an InputOntologyV2, without SPARQL-escaping, so we can compare it to the response. - val paramsAsInput: InputOntologyV2 = InputOntologyV2.fromJsonLD(JsonLDUtil.parseJsonLD(params)).unescape + // FIXME: Convert the submitted JSON-LD to an InputOntologyV2, without SPARQL-escaping, so we can compare it to the response. + // val paramsAsInput: InputOntologyV2 = InputOntologyV2.fromJsonLD(JsonLDUtil.parseJsonLD(params)).unescape Put( "/v2/ontologies/properties/guielement", @@ -3477,30 +3477,6 @@ class OntologyV2R2RSpec extends R2RSpec { ) ) - val params = - s""" - |{ - | "@id": "http://0.0.0.0:3333/ontology/0001/anything/v2", - | "@type": "http://www.w3.org/2002/07/owl#Ontology", - | "http://api.knora.org/ontology/knora-api/v2#lastModificationDate": { - | "@type": "http://www.w3.org/2001/XMLSchema#dateTimeStamp", - | "@value": "$anythingLastModDate" - | }, - | "@graph": [{ - | "@id": "http://0.0.0.0:3333/ontology/0001/anything/v2#Thing", - | "@type": "http://www.w3.org/2002/07/owl#Class", - | "http://www.w3.org/2000/01/rdf-schema#subClassOf": { - | "@type": "http://www.w3.org/2002/07/owl#Restriction", - | "http://www.w3.org/2002/07/owl#onProperty": { - | "@id": "http://0.0.0.0:3333/ontology/0001/anything/v2#isPartOfOtherThing" - | }, - | "http://www.w3.org/2002/07/owl#minCardinality": 0, - | "http://api.knora.org/ontology/salsah-gui/v2#guiOrder": 21 - | } - | }] - |} - |""".stripMargin - Post( "/v2/ontologies/candeletecardinalities", HttpEntity(RdfMediaTypes.`application/ld+json`, cardinalityOnLinkPropertyWhichCantBeDeletedPayload.value) @@ -3643,7 +3619,6 @@ class OntologyV2R2RSpec extends R2RSpec { ) ~> addCredentials(BasicHttpCredentials(anythingUsername, password)) ~> ontologiesPath ~> check { assert(status == StatusCodes.OK, response.toString) - val responseString = responseAs[String] val responseJsonDoc = responseToJsonLDDocument(response) val responseAsInput: InputOntologyV2 = InputOntologyV2.fromJsonLD(responseJsonDoc, parsingMode = TestResponseParsingModeV2).unescape @@ -3666,7 +3641,6 @@ class OntologyV2R2RSpec extends R2RSpec { ) ~> addCredentials(BasicHttpCredentials(anythingUsername, password)) ~> ontologiesPath ~> check { assert(status == StatusCodes.OK, response.toString) - val responseString = responseAs[String] val responseJsonDoc = responseToJsonLDDocument(response) val responseAsInput: InputOntologyV2 = InputOntologyV2.fromJsonLD(responseJsonDoc, parsingMode = TestResponseParsingModeV2).unescape @@ -3778,7 +3752,6 @@ class OntologyV2R2RSpec extends R2RSpec { ) ~> addCredentials(BasicHttpCredentials(anythingUsername, password)) ~> ontologiesPath ~> check { assert(status == StatusCodes.OK, response.toString) - val responseString = responseAs[String] val responseJsonDoc = responseToJsonLDDocument(response) val responseAsInput: InputOntologyV2 = InputOntologyV2.fromJsonLD(responseJsonDoc, parsingMode = TestResponseParsingModeV2).unescape @@ -3801,7 +3774,6 @@ class OntologyV2R2RSpec extends R2RSpec { ) ~> addCredentials(BasicHttpCredentials(anythingUsername, password)) ~> ontologiesPath ~> check { assert(status == StatusCodes.OK, response.toString) - val responseString = responseAs[String] val responseJsonDoc = responseToJsonLDDocument(response) val responseAsInput: InputOntologyV2 = InputOntologyV2.fromJsonLD(responseJsonDoc, parsingMode = TestResponseParsingModeV2).unescape diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ProjectHeader.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ProjectHeader.scala index ef6373ae9f..24966f0b83 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ProjectHeader.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ProjectHeader.scala @@ -7,10 +7,11 @@ package org.knora.webapi.e2e.v2 import akka.http.scaladsl.model.headers.ModeledCustomHeader import akka.http.scaladsl.model.headers.ModeledCustomHeaderCompanion -import org.knora.webapi.routing.RouteUtilV2 import scala.util.Try +import org.knora.webapi.routing.RouteUtilV2 + /** * A custom Akka HTTP header representing [[RouteUtilV2.PROJECT_HEADER]], which a client can send to specify * a project from which results should be returned. diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResourcesRouteV2E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResourcesRouteV2E2ESpec.scala index 93e159b8dc..814c431775 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResourcesRouteV2E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResourcesRouteV2E2ESpec.scala @@ -16,13 +16,27 @@ import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory +import org.xmlunit.builder.DiffBuilder +import org.xmlunit.builder.Input +import org.xmlunit.diff.Diff +import spray.json.JsValue +import spray.json.JsonParser + +import java.net.URLEncoder +import java.nio.file.Paths +import java.time.Instant +import scala.collection.mutable.ArrayBuffer +import scala.concurrent.Await +import scala.concurrent.ExecutionContextExecutor +import scala.concurrent.duration._ + +import dsp.errors.AssertionException import org.knora.webapi._ import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.InstanceChecker import org.knora.webapi.e2e.TestDataFileContent import org.knora.webapi.e2e.TestDataFilePath import org.knora.webapi.e2e.v2.ResponseCheckerV2._ -import dsp.errors.AssertionException import org.knora.webapi.http.directives.DSPApiDirectives import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants @@ -30,25 +44,11 @@ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.util._ import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.messages.v2.responder.ontologymessages.InputOntologyV2 import org.knora.webapi.routing.RouteUtilV2 import org.knora.webapi.routing.v2.OntologiesRouteV2 import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util._ -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input -import org.xmlunit.diff.Diff -import spray.json.JsValue -import spray.json.JsonParser - -import java.net.URLEncoder -import java.nio.file.Paths -import java.time.Instant -import scala.collection.mutable.ArrayBuffer -import scala.concurrent.Await -import scala.concurrent.ExecutionContextExecutor -import scala.concurrent.duration._ /** * Tests the API v2 resources route. @@ -2109,9 +2109,9 @@ class ResourcesRouteV2E2ESpec extends E2ESpec(ResourcesRouteV2E2ESpec.config) { } "correctly update the ontology cache when adding a resource, so that the resource can afterwards be found by gravsearch" in { - var freetestLastModDate: Instant = Instant.parse("2012-12-12T12:12:12.12Z") - val ontologiesPath = DSPApiDirectives.handleErrors(system)(new OntologiesRouteV2(routeData).knoraApiPath) - val auth = BasicHttpCredentials(SharedTestDataADM.anythingAdminUser.email, SharedTestDataADM.testPass) + val freetestLastModDate: Instant = Instant.parse("2012-12-12T12:12:12.12Z") + DSPApiDirectives.handleErrors(system)(new OntologiesRouteV2(routeData).knoraApiPath) + val auth = BasicHttpCredentials(SharedTestDataADM.anythingAdminUser.email, SharedTestDataADM.testPass) // create a new resource class and add a property with cardinality to it val createResourceClass = @@ -2161,7 +2161,6 @@ class ResourcesRouteV2E2ESpec extends E2ESpec(ResourcesRouteV2E2ESpec.config) { val createResourceClassResponse: HttpResponse = singleAwaitingRequest(createResourceClassRequest) assert(createResourceClassResponse.status == StatusCodes.OK, createResourceClassResponse.toString) - val responseJsonDoc: JsonLDDocument = responseToJsonLDDocument(createResourceClassResponse) // create an instance of the class val createResourceWithValues: String = @@ -2229,7 +2228,6 @@ class ResourcesRouteV2E2ESpec extends E2ESpec(ResourcesRouteV2E2ESpec.config) { auth ) val editValueResponse: HttpResponse = singleAwaitingRequest(editValueRequest) - val editValueResponseDoc = responseToJsonLDDocument(editValueResponse) assert(editValueResponse.status == StatusCodes.OK, responseToString(editValueResponse)) } @@ -2304,8 +2302,7 @@ class ResourcesRouteV2E2ESpec extends E2ESpec(ResourcesRouteV2E2ESpec.config) { val createSequenceRequest = Post(resUrl, HttpEntity(RdfMediaTypes.`application/ld+json`, createSequenceJson)) ~> addCredentials(cred) - val createSequenceResponse = singleAwaitingRequest(createSequenceRequest) - val createSequenceResponseAsString = responseToString(createSequenceResponse) + val createSequenceResponse = singleAwaitingRequest(createSequenceRequest) assert(createSequenceResponse.status == StatusCodes.OK, createSequenceResponse.toString) val createSequenceResponseBody = responseToJsonLDDocument(createSequenceResponse).body val sequenceResourceIri = URLEncoder.encode(createSequenceResponseBody.requireString(JsonLDKeywords.ID), "UTF-8") @@ -2374,8 +2371,7 @@ class ResourcesRouteV2E2ESpec extends E2ESpec(ResourcesRouteV2E2ESpec.config) { val createSequenceRequest = Post(resUrl, HttpEntity(RdfMediaTypes.`application/ld+json`, createSequenceJson)) ~> addCredentials(cred) - val createSequenceResponse = singleAwaitingRequest(createSequenceRequest) - val createSequenceResponseAsString = responseToString(createSequenceResponse) + val createSequenceResponse = singleAwaitingRequest(createSequenceRequest) assert(createSequenceResponse.status == StatusCodes.OK, createSequenceResponse.toString) val createSequenceResponseBody = responseToJsonLDDocument(createSequenceResponse).body val sequenceResourceIri = URLEncoder.encode(createSequenceResponseBody.requireString(JsonLDKeywords.ID), "UTF-8") diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2.scala index 9bb3828ca4..d5ded651bc 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2.scala @@ -5,8 +5,8 @@ package org.knora.webapi.e2e.v2 -import org.knora.webapi.IRI import dsp.errors.AssertionException +import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2Spec.scala index c3f8c8b74f..cd1d4ea05b 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ResponseCheckerV2Spec.scala @@ -5,11 +5,11 @@ package org.knora.webapi.e2e.v2 +import java.nio.file.Paths + import org.knora.webapi.CoreSpec import org.knora.webapi.util.FileUtil -import java.nio.file.Paths - /** * Tests [[ResponseCheckerV2]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/SchemaHeader.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/SchemaHeader.scala index 4633bdb2d1..b963f31fb8 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/SchemaHeader.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/SchemaHeader.scala @@ -7,10 +7,11 @@ package org.knora.webapi.e2e.v2 import akka.http.scaladsl.model.headers.ModeledCustomHeader import akka.http.scaladsl.model.headers.ModeledCustomHeaderCompanion -import org.knora.webapi.routing.RouteUtilV2 import scala.util.Try +import org.knora.webapi.routing.RouteUtilV2 + /** * A custom Akka HTTP header representing [[RouteUtilV2.SCHEMA_HEADER]], which a client can send to specify * which ontology schema should be used in an API response. diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/SearchRouteV2R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/SearchRouteV2R2RSpec.scala index ab35da0905..7778bb621d 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/SearchRouteV2R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/SearchRouteV2R2RSpec.scala @@ -12,6 +12,15 @@ import akka.http.scaladsl.model.HttpEntity import akka.http.scaladsl.model.Multipart import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout +import org.xmlunit.builder.DiffBuilder +import org.xmlunit.builder.Input +import org.xmlunit.diff.Diff +import spray.json.JsString + +import java.net.URLEncoder +import java.nio.file.Paths +import scala.concurrent.ExecutionContextExecutor + import org.knora.webapi._ import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent @@ -34,14 +43,6 @@ import org.knora.webapi.routing.v2.StandoffRouteV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.FileUtil import org.knora.webapi.util.MutableTestIri -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input -import org.xmlunit.diff.Diff -import spray.json.JsString - -import java.net.URLEncoder -import java.nio.file.Paths -import scala.concurrent.ExecutionContextExecutor /** * End-to-end test specification for the search endpoint. This specification uses the Spray Testkit as documented diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/StandoffRouteV2E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/StandoffRouteV2E2ESpec.scala index da2f706693..c010503eeb 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/StandoffRouteV2E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/StandoffRouteV2E2ESpec.scala @@ -10,6 +10,16 @@ import akka.http.scaladsl.model.HttpEntity import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.unmarshalling.Unmarshal +import org.xmlunit.builder.DiffBuilder +import org.xmlunit.builder.Input +import org.xmlunit.diff.Diff +import spray.json._ + +import java.net.URLEncoder +import java.nio.file.Paths +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi._ import org.knora.webapi.e2e.v2.ResponseCheckerV2.compareJSONLDForMappingCreationResponse import org.knora.webapi.messages.OntologyConstants @@ -28,15 +38,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataV1.ANYTHING_PROJECT_IRI import org.knora.webapi.util.FileUtil import org.knora.webapi.util.MutableTestIri -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input -import org.xmlunit.diff.Diff -import spray.json._ - -import java.net.URLEncoder -import java.nio.file.Paths -import scala.concurrent.Await -import scala.concurrent.duration._ /** * End-to-end test specification for the standoff endpoint. diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesRouteV2E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesRouteV2E2ESpec.scala index d32aecb455..831256965f 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesRouteV2E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesRouteV2E2ESpec.scala @@ -5,17 +5,26 @@ package org.knora.webapi.e2e.v2 -import akka.actor.ActorSystem import akka.http.scaladsl.model._ import akka.http.scaladsl.model.headers.BasicHttpCredentials -import akka.http.scaladsl.testkit.RouteTestTimeout import akka.http.scaladsl.unmarshalling.Unmarshal +import org.xmlunit.builder.DiffBuilder +import org.xmlunit.builder.Input +import org.xmlunit.diff.Diff + +import java.net.URLEncoder +import java.nio.file.Paths +import java.time.Instant +import java.util.UUID +import scala.concurrent.Await +import scala.concurrent.duration._ + +import dsp.errors.AssertionException import org.knora.webapi._ import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent import org.knora.webapi.e2e.TestDataFilePath import org.knora.webapi.e2e.v2.ResponseCheckerV2.compareJSONLDForResourcesResponse -import dsp.errors.AssertionException import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -25,22 +34,9 @@ import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.messages.util.search.SparqlQueryConstants import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util._ -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input -import org.xmlunit.diff.Diff - -import java.net.URLEncoder -import java.nio.file.Paths -import java.time.Instant -import java.util.UUID -import scala.concurrent.Await -import scala.concurrent.duration._ class ValuesRouteV2E2ESpec extends E2ESpec { - private implicit def default(implicit system: ActorSystem): RouteTestTimeout = - RouteTestTimeout(settings.defaultTimeout) - private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance private val anythingUserEmail = SharedTestDataADM.anythingUser1.email diff --git a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesV2R2RSpec.scala b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesV2R2RSpec.scala index c31db5a293..05832f7b90 100644 --- a/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesV2R2RSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/e2e/v2/ValuesV2R2RSpec.scala @@ -10,12 +10,20 @@ import akka.http.scaladsl.model.HttpEntity import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.testkit.RouteTestTimeout +import zio.& +import zio.Runtime +import zio.ZLayer + +import scala.concurrent.ExecutionContextExecutor + +import dsp.errors.AssertionException import org.knora.webapi._ import org.knora.webapi.config.AppConfig +import org.knora.webapi.config.AppConfigForTestContainers +import org.knora.webapi.core.Logging import org.knora.webapi.e2e.ClientTestDataCollector import org.knora.webapi.e2e.TestDataFileContent import org.knora.webapi.e2e.TestDataFilePath -import dsp.errors.AssertionException import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -30,20 +38,13 @@ import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.impl.IIIFServiceMockImpl -import org.knora.webapi.util.MutableTestIri -import zio.& -import zio.ZLayer -import zio.Runtime - -import scala.concurrent.ExecutionContextExecutor +import org.knora.webapi.store.triplestore.TriplestoreServiceManager import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import org.knora.webapi.store.triplestore.TriplestoreServiceManager -import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.testservices.TestClientService import org.knora.webapi.testservices.TestActorSystemService -import org.knora.webapi.core.Logging +import org.knora.webapi.testservices.TestClientService +import org.knora.webapi.util.MutableTestIri /** * Tests creating a still image file value using a mock Sipi. diff --git a/webapi/src/test/scala/org/knora/webapi/it/VersionRouteITSpec.scala b/webapi/src/test/scala/org/knora/webapi/it/VersionRouteITSpec.scala index 0c71a4037f..860f9254c0 100644 --- a/webapi/src/test/scala/org/knora/webapi/it/VersionRouteITSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/it/VersionRouteITSpec.scala @@ -8,13 +8,14 @@ package org.knora.webapi.it import akka.http.scaladsl.model._ import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi.ITKnoraLiveSpec import spray.json._ import java.util.NoSuchElementException import scala.concurrent.Await import scala.concurrent.duration._ +import org.knora.webapi.ITKnoraLiveSpec + object VersionRouteITSpec { val config: Config = ConfigFactory.parseString(""" |akka.loglevel = "DEBUG" @@ -43,7 +44,7 @@ class VersionRouteITSpec extends ITKnoraLiveSpec(VersionRouteITSpec.config) { val value = responseBodyJson.fields(field).toString().replaceAll("\"", "") result = !value.equals("") } catch { - case nse: NoSuchElementException => result = false + case _: NoSuchElementException => result = false } result } diff --git a/webapi/src/test/scala/org/knora/webapi/it/v1/DrawingsGodsV1ITSpec.scala b/webapi/src/test/scala/org/knora/webapi/it/v1/DrawingsGodsV1ITSpec.scala index ebe68e2dac..4478688122 100644 --- a/webapi/src/test/scala/org/knora/webapi/it/v1/DrawingsGodsV1ITSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/it/v1/DrawingsGodsV1ITSpec.scala @@ -10,20 +10,21 @@ import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi.ITKnoraLiveSpec +import spray.json._ + +import java.net.URLEncoder +import java.nio.file.Paths +import scala.concurrent.Await +import scala.concurrent.duration._ + import dsp.errors.InvalidApiJsonException +import org.knora.webapi.ITKnoraLiveSpec import org.knora.webapi.messages.store.sipimessages._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol import org.knora.webapi.messages.v2.routing.authenticationmessages.AuthenticationV2JsonProtocol import org.knora.webapi.messages.v2.routing.authenticationmessages.LoginResponse import org.knora.webapi.testservices.FileToUpload -import spray.json._ - -import java.net.URLEncoder -import java.nio.file.Paths -import scala.concurrent.Await -import scala.concurrent.duration._ object DrawingsGodsV1ITSpec { val config: Config = ConfigFactory.parseString(""" @@ -140,7 +141,7 @@ class DrawingsGodsV1ITSpec locdata.fields.get("path") match { case Some(JsString(foundUrl)) => foundUrl.replace("http://0.0.0.0:1024", baseInternalSipiUrl) case None => throw InvalidApiJsonException("no 'path' given") - case other => throw InvalidApiJsonException("'path' could not pe parsed correctly") + case _ => throw InvalidApiJsonException("'path' could not pe parsed correctly") } case None => throw InvalidApiJsonException("no 'locdata' given") diff --git a/webapi/src/test/scala/org/knora/webapi/it/v1/ErrorV1ITSpec.scala b/webapi/src/test/scala/org/knora/webapi/it/v1/ErrorV1ITSpec.scala index 30d72cfaad..59693f26c1 100644 --- a/webapi/src/test/scala/org/knora/webapi/it/v1/ErrorV1ITSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/it/v1/ErrorV1ITSpec.scala @@ -6,9 +6,10 @@ package org.knora.webapi.it.v1 import akka.http.scaladsl.model.StatusCodes +import zio._ + import org.knora.webapi.ITKnoraLiveSpec import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import zio._ /** * Causes an internal server error to see if logging is working correctly. diff --git a/webapi/src/test/scala/org/knora/webapi/it/v1/KnoraSipiIntegrationV1ITSpec.scala b/webapi/src/test/scala/org/knora/webapi/it/v1/KnoraSipiIntegrationV1ITSpec.scala index a5163e6b88..5dcb9c2bca 100644 --- a/webapi/src/test/scala/org/knora/webapi/it/v1/KnoraSipiIntegrationV1ITSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/it/v1/KnoraSipiIntegrationV1ITSpec.scala @@ -18,18 +18,6 @@ import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ -import dsp.errors.AssertionException -import dsp.errors.InvalidApiJsonException -import org.knora.webapi.messages.store.sipimessages._ -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject -import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import org.knora.webapi.messages.v2.routing.authenticationmessages.AuthenticationV2JsonProtocol -import org.knora.webapi.messages.v2.routing.authenticationmessages.LoginResponse -import org.knora.webapi.sharedtestdata.SharedTestDataADM -import org.knora.webapi.testservices.FileToUpload -import org.knora.webapi.util.FileUtil -import org.knora.webapi.util.MutableTestIri import org.xmlunit.builder.DiffBuilder import org.xmlunit.builder.Input import org.xmlunit.diff.Diff @@ -47,6 +35,19 @@ import scala.xml._ import scala.xml.transform.RewriteRule import scala.xml.transform.RuleTransformer +import dsp.errors.AssertionException +import dsp.errors.InvalidApiJsonException +import org.knora.webapi._ +import org.knora.webapi.messages.store.sipimessages._ +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol +import org.knora.webapi.messages.v2.routing.authenticationmessages.AuthenticationV2JsonProtocol +import org.knora.webapi.messages.v2.routing.authenticationmessages.LoginResponse +import org.knora.webapi.sharedtestdata.SharedTestDataADM +import org.knora.webapi.testservices.FileToUpload +import org.knora.webapi.util.FileUtil +import org.knora.webapi.util.MutableTestIri + object KnoraSipiIntegrationV1ITSpec { val config: Config = ConfigFactory.parseString(""" |akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiAuthenticationITSpec.scala b/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiAuthenticationITSpec.scala index 15c89237d0..24c66be9db 100644 --- a/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiAuthenticationITSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiAuthenticationITSpec.scala @@ -6,33 +6,21 @@ package org.knora.webapi.it.v2 import akka.http.scaladsl.model._ -import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ -import dsp.errors.AssertionException -import dsp.errors.BadRequestException -import org.knora.webapi.messages.IriConversions._ -import org.knora.webapi.messages.OntologyConstants -import org.knora.webapi.messages.SmartIri -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.store.sipimessages._ -import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol -import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.messages.v2.routing.authenticationmessages._ -import org.knora.webapi.models.filemodels._ -import org.knora.webapi.sharedtestdata.SharedTestDataADM -import org.knora.webapi.testservices.FileToUpload -import org.knora.webapi.util.MutableTestIri -import java.net.URLEncoder import java.nio.file.Files import java.nio.file.Paths import scala.concurrent.Await import scala.concurrent.duration._ -import org.knora.webapi.routing.Authenticator + +import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol +import org.knora.webapi.messages.v2.routing.authenticationmessages._ +import org.knora.webapi.routing.Authenticator +import org.knora.webapi.sharedtestdata.SharedTestDataADM object KnoraSipiAuthenticationITSpec { val config: Config = ConfigFactory.parseString(""" @@ -48,15 +36,12 @@ class KnoraSipiAuthenticationITSpec extends ITKnoraLiveSpec(KnoraSipiIntegrationV2ITSpec.config) with AuthenticationV2JsonProtocol with TriplestoreJsonProtocol { - private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance - private val anythingUserEmail = SharedTestDataADM.anythingAdminUser.email - private val incunabulaUserEmail = SharedTestDataADM.incunabulaMemberUser.email - private val password = SharedTestDataADM.testPass + private val anythingUserEmail = SharedTestDataADM.anythingAdminUser.email + private val password = SharedTestDataADM.testPass private val marblesOriginalFilename = "marbles.tif" private val pathToMarbles = Paths.get("..", s"test_data/test_route/images/$marblesOriginalFilename") - private val incunabulaImageDirPath = Paths.get("..", "sipi/images/0803") override lazy val rdfDataObjects: List[RdfDataObject] = List( RdfDataObject(path = "test_data/all_data/incunabula-data.ttl", name = "http://www.knora.org/data/0803/incunabula"), @@ -107,7 +92,6 @@ class KnoraSipiAuthenticationITSpec } "accept a token in Sipi that has been signed by Knora" in { - val invalidToken = "a_invalid_token" // The image to be uploaded. assert(Files.exists(pathToMarbles), s"File $pathToMarbles does not exist") diff --git a/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiIntegrationV2ITSpec.scala b/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiIntegrationV2ITSpec.scala index f8ddc45483..5f09ffa7dc 100644 --- a/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiIntegrationV2ITSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/it/v2/KnoraSipiIntegrationV2ITSpec.scala @@ -10,9 +10,16 @@ import akka.http.scaladsl.model.headers.BasicHttpCredentials import akka.http.scaladsl.unmarshalling.Unmarshal import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ + +import java.net.URLEncoder +import java.nio.file.Files +import java.nio.file.Paths +import scala.concurrent.Await +import scala.concurrent.duration._ + import dsp.errors.AssertionException import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -26,12 +33,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.testservices.FileToUpload import org.knora.webapi.util.MutableTestIri -import java.net.URLEncoder -import java.nio.file.Files -import java.nio.file.Paths -import scala.concurrent.Await -import scala.concurrent.duration._ - object KnoraSipiIntegrationV2ITSpec { val config: Config = ConfigFactory.parseString(""" |akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/messages/StringFormatterSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/StringFormatterSpec.scala index d5eeade49d..d3387fefa1 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/StringFormatterSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/StringFormatterSpec.scala @@ -5,6 +5,9 @@ package org.knora.webapi.messages +import java.time.Instant +import java.util.UUID + import dsp.errors.AssertionException import dsp.errors.BadRequestException import org.knora.webapi._ @@ -13,9 +16,6 @@ import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataV1 -import java.time.Instant -import java.util.UUID - /** * Tests [[StringFormatter]]. */ @@ -1018,7 +1018,7 @@ class StringFormatterSpec extends CoreSpec() { for (i <- 1 to totalIris) { val iriStr = s"http://0.0.0.0:3333/ontology/00FF/images/v2#class$i" - val iri = iriStr.toSmartIri.toOntologySchema(InternalSchema) + iriStr.toSmartIri.toOntologySchema(InternalSchema) } val parseEnd = System.currentTimeMillis @@ -1030,7 +1030,7 @@ class StringFormatterSpec extends CoreSpec() { for (i <- 1 to totalIris) { val iriStr = s"http://0.0.0.0:3333/ontology/00FF/images/v2#class$i" - val iri = iriStr.toSmartIri.toOntologySchema(InternalSchema) + iriStr.toSmartIri.toOntologySchema(InternalSchema) } val retrieveEnd = System.currentTimeMillis diff --git a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADMSpec.scala index 2f8bac568d..89af4714f9 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/listsmessages/ListsMessagesADMSpec.scala @@ -6,20 +6,21 @@ package org.knora.webapi.messages.admin.responder.listsmessages import com.typesafe.config.ConfigFactory +import spray.json._ + +import java.util.UUID + +import dsp.errors.BadRequestException import dsp.valueobjects.Iri._ import dsp.valueobjects.List._ import dsp.valueobjects.ListErrorMessages import dsp.valueobjects.V2 import org.knora.webapi.CoreSpec -import dsp.errors.BadRequestException import org.knora.webapi.messages.admin.responder.listsmessages.ListNodeCreatePayloadADM.ListChildNodeCreatePayloadADM import org.knora.webapi.messages.store.triplestoremessages.StringLiteralSequenceV2 import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.sharedtestdata.SharedListsTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM -import spray.json._ - -import java.util.UUID object ListsMessagesADMSpec { val config = ConfigFactory.parseString(""" diff --git a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADMSpec.scala index 56ac3ff6b3..6ad032b8dc 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/permissionsmessages/PermissionsMessagesADMSpec.scala @@ -5,10 +5,12 @@ package org.knora.webapi.messages.admin.responder.permissionsmessages -import dsp.valueobjects.IriErrorMessages -import org.knora.webapi.CoreSpec +import java.util.UUID + import dsp.errors.BadRequestException import dsp.errors.ForbiddenException +import dsp.valueobjects.IriErrorMessages +import org.knora.webapi.CoreSpec import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.OntologyConstants.KnoraAdmin.AdministrativePermissionAbbreviations import org.knora.webapi.messages.OntologyConstants.KnoraBase.EntityPermissionAbbreviations @@ -17,8 +19,6 @@ import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM._ import org.knora.webapi.sharedtestdata.SharedTestDataV1._ import org.knora.webapi.sharedtestdata._ -import java.util.UUID - /** * This spec is used to test subclasses of the [[PermissionsResponderRequestADM]] class. */ @@ -867,10 +867,9 @@ class PermissionsMessagesADMSpec extends CoreSpec() { } "return true if the user is allowed to create a resource (ProjectResourceCreateRestrictedPermission)" in { - val projectIri = IMAGES_PROJECT_IRI - val allowedResourceClassIri01 = s"$IMAGES_ONTOLOGY_IRI#bild" - val allowedResourceClassIri02 = s"$IMAGES_ONTOLOGY_IRI#bildformat" - val notAllowedResourceClassIri = s"$IMAGES_ONTOLOGY_IRI#person" + val projectIri = IMAGES_PROJECT_IRI + val allowedResourceClassIri01 = s"$IMAGES_ONTOLOGY_IRI#bild" + val allowedResourceClassIri02 = s"$IMAGES_ONTOLOGY_IRI#bildformat" val result1 = SharedTestDataADM.imagesReviewerUser.permissions .hasPermissionFor(ResourceCreateOperation(allowedResourceClassIri01), projectIri, None) diff --git a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADMSpec.scala index 08d8ff456e..21609af99f 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADMSpec.scala @@ -7,9 +7,10 @@ package org.knora.webapi.messages.admin.responder.projectsmessages import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ + import dsp.errors.BadRequestException import dsp.errors.OntologyConstraintException +import org.knora.webapi._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM diff --git a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADMSpec.scala index cb94c3633b..743f02bb93 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/admin/responder/usersmessages/UsersMessagesADMSpec.scala @@ -7,14 +7,15 @@ package org.knora.webapi.messages.admin.responder.usersmessages import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder +import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder + import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionProfileType import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionsDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder -import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder object UsersMessagesADMSpec { val config: Config = ConfigFactory.parseString(""" diff --git a/webapi/src/test/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessagesSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessagesSpec.scala index 066b1c1fab..cbecd853db 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessagesSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/store/triplestoremessages/TriplestoreMessagesSpec.scala @@ -5,12 +5,13 @@ package org.knora.webapi.messages.store.triplestoremessages -import dsp.errors.BadRequestException -import org.knora.webapi.messages.admin.responder.listsmessages._ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike import spray.json._ +import dsp.errors.BadRequestException +import org.knora.webapi.messages.admin.responder.listsmessages._ + /** * This spec is used to test 'ListAdminMessages'. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/CalendarDateUtilV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/CalendarDateUtilV2Spec.scala index cab3d35baf..fe293ca643 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/CalendarDateUtilV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/CalendarDateUtilV2Spec.scala @@ -5,8 +5,8 @@ package org.knora.webapi.util -import org.knora.webapi.CoreSpec import dsp.errors.BadRequestException +import org.knora.webapi.CoreSpec import org.knora.webapi.messages.util._ /** diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2Spec.scala index d040082708..88589d6a59 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2Spec.scala @@ -7,23 +7,23 @@ package org.knora.webapi.util import akka.testkit.ImplicitSender import akka.util.Timeout +import zio.FiberFailure +import zio.Unsafe + +import java.nio.file.Paths +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + import org.knora.webapi._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.SparqlExtendedConstructResponse import org.knora.webapi.messages.util.ConstructResponseUtilV2 -import org.knora.webapi.messages.util.rdf.RdfFeatureFactory import org.knora.webapi.messages.v2.responder.resourcemessages.ReadResourcesSequenceV2 import org.knora.webapi.responders.v2.ResourcesResponderV2SpecFullData import org.knora.webapi.responders.v2.ResourcesResponseCheckerV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.nio.file.Paths -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ -import zio.Unsafe -import zio.FiberFailure - /** * Tests [[ConstructResponseUtilV2]]. */ @@ -35,7 +35,6 @@ class ConstructResponseUtilV2Spec extends CoreSpec() with ImplicitSender { private val anonymousUser = SharedTestDataADM.anonymousUser private val resourcesResponderV2SpecFullData = new ResourcesResponderV2SpecFullData private val constructResponseUtilV2SpecFullData = new ConstructResponseUtilV2SpecFullData - private val rdfFormatUtil = RdfFeatureFactory.getRdfFormatUtil() "ConstructResponseUtilV2" should { diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2SpecFullData.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2SpecFullData.scala index 7158f16749..35ffd7134c 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2SpecFullData.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/ConstructResponseUtilV2SpecFullData.scala @@ -1,5 +1,7 @@ package org.knora.webapi.util +import java.time.Instant + import org.knora.webapi.InternalSchema import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter @@ -13,8 +15,6 @@ import org.knora.webapi.messages.v2.responder.standoffmessages.StandoffTagV2 import org.knora.webapi.messages.v2.responder.valuemessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.time.Instant - class ConstructResponseUtilV2SpecFullData(implicit stringFormatter: StringFormatter) { val expectedReadResourceForAnythingVisibleThingWithHiddenIntValuesAnythingAdmin = ReadResourcesSequenceV2( diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/DateUtilV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/DateUtilV1Spec.scala index a7d852ab22..79e61819bc 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/DateUtilV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/DateUtilV1Spec.scala @@ -5,6 +5,12 @@ package org.knora.webapi.util +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpecLike + +import java.util.Calendar +import java.util.GregorianCalendar + import dsp.errors.BadRequestException import org.knora.webapi.messages.util.DateUtilV1 import org.knora.webapi.messages.util.DateUtilV1.DateRange @@ -12,11 +18,6 @@ import org.knora.webapi.messages.v1.responder.valuemessages.DateValueV1 import org.knora.webapi.messages.v1.responder.valuemessages.JulianDayNumberValueV1 import org.knora.webapi.messages.v1.responder.valuemessages.KnoraCalendarV1 import org.knora.webapi.messages.v1.responder.valuemessages.KnoraPrecisionV1 -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpecLike - -import java.util.Calendar -import java.util.GregorianCalendar /** * Tests [[DateUtilV1]]. @@ -96,7 +97,7 @@ class DateUtilV1Spec extends AnyWordSpecLike with Matchers { val theJulianDayCountValueV1 = DateUtilV1.dateValueV1ToJulianDayNumberValueV1(someDateValueV1) - val date_string = DateUtilV1.julianDayNumber2DateString( + DateUtilV1.julianDayNumber2DateString( theJulianDayCountValueV1.dateval1, theJulianDayCountValueV1.calendar, theJulianDayCountValueV1.dateprecision1 @@ -207,14 +208,14 @@ class DateUtilV1Spec extends AnyWordSpecLike with Matchers { "convert a valid date string with day precision to a Java GregorianCalendar" in { - val dateRange: DateRange = DateUtilV1.dateString2DateRange("2017-02-28", KnoraCalendarV1.GREGORIAN) + DateUtilV1.dateString2DateRange("2017-02-28", KnoraCalendarV1.GREGORIAN) } "attempt to convert an date string representing an non existing date with day precision to a Java GregorianCalendar" in { assertThrows[BadRequestException] { - val dateRange: DateRange = DateUtilV1.dateString2DateRange("2017-02-29", KnoraCalendarV1.GREGORIAN) + DateUtilV1.dateString2DateRange("2017-02-29", KnoraCalendarV1.GREGORIAN) } } @@ -222,7 +223,7 @@ class DateUtilV1Spec extends AnyWordSpecLike with Matchers { "attempt to convert an invalid date string with day precision to a Java GregorianCalendar" in { assertThrows[BadRequestException] { - val dateRange: DateRange = DateUtilV1.dateString2DateRange("2017-02-00", KnoraCalendarV1.GREGORIAN) + DateUtilV1.dateString2DateRange("2017-02-00", KnoraCalendarV1.GREGORIAN) } } @@ -230,21 +231,21 @@ class DateUtilV1Spec extends AnyWordSpecLike with Matchers { "attempt to convert an invalid date string with day precision to a Java GregorianCalendar (2)" in { assertThrows[BadRequestException] { - val dateRange: DateRange = DateUtilV1.dateString2DateRange("2017-00-01", KnoraCalendarV1.GREGORIAN) + DateUtilV1.dateString2DateRange("2017-00-01", KnoraCalendarV1.GREGORIAN) } } "convert a valid date string with month precision to a Java GregorianCalendar" in { - val dateRange: DateRange = DateUtilV1.dateString2DateRange("2017-02", KnoraCalendarV1.GREGORIAN) + DateUtilV1.dateString2DateRange("2017-02", KnoraCalendarV1.GREGORIAN) } "attempt to convert an invalid date string with month precision to a Java GregorianCalendar" in { assertThrows[BadRequestException] { - val dateRange: DateRange = DateUtilV1.dateString2DateRange("2017-00", KnoraCalendarV1.GREGORIAN) + DateUtilV1.dateString2DateRange("2017-00", KnoraCalendarV1.GREGORIAN) } } diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/PermissionUtilADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/PermissionUtilADMSpec.scala index e55cf29e49..cf69a8e683 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/PermissionUtilADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/PermissionUtilADMSpec.scala @@ -7,6 +7,9 @@ package org.knora.webapi.util import akka.testkit.ImplicitSender import com.typesafe.config.ConfigFactory + +import scala.collection.Map + import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionADM @@ -17,8 +20,6 @@ import org.knora.webapi.routing.Authenticator import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataV1 -import scala.collection.Map - object PermissionUtilADMSpec { val config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/JsonLDUtilSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/JsonLDUtilSpec.scala index e54f0ad595..2cb9502693 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/JsonLDUtilSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/JsonLDUtilSpec.scala @@ -5,14 +5,15 @@ package org.knora.webapi.util.rdf -import org.knora.webapi.CoreSpec -import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.util.FileUtil import spray.json.JsValue import spray.json.JsonParser import java.nio.file.Paths +import org.knora.webapi.CoreSpec +import org.knora.webapi.messages.util.rdf._ +import org.knora.webapi.util.FileUtil + /** * Tests [[JsonLDUtil]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/KnoraResponseV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/KnoraResponseV2Spec.scala index 5091b4d5e1..daad5bdc51 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/KnoraResponseV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/KnoraResponseV2Spec.scala @@ -5,16 +5,15 @@ package org.knora.webapi.util.rdf -import org.knora.webapi._ +import java.nio.file.Paths +import org.knora.webapi._ import org.knora.webapi.messages.util.rdf._ import org.knora.webapi.messages.v2.responder.KnoraJsonLDResponseV2 import org.knora.webapi.messages.v2.responder.KnoraTurtleResponseV2 import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.util.FileUtil -import java.nio.file.Paths - /** * Tests the formatting of Knora API v2 responses. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtilSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtilSpec.scala index 3feb1aedcb..791d1bc792 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtilSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfFormatUtilSpec.scala @@ -5,13 +5,6 @@ package org.knora.webapi.util.rdf -import org.knora.webapi.CoreSpec -import org.knora.webapi.IRI - -import org.knora.webapi.messages.OntologyConstants -import org.knora.webapi.messages.util.rdf._ -import org.knora.webapi.util.FileUtil - import java.io.BufferedInputStream import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream @@ -19,6 +12,12 @@ import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths +import org.knora.webapi.CoreSpec +import org.knora.webapi.IRI +import org.knora.webapi.messages.OntologyConstants +import org.knora.webapi.messages.util.rdf._ +import org.knora.webapi.util.FileUtil + /** * Tests implementations of [[RdfFormatUtil]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfModelSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfModelSpec.scala index bd2de7fce9..5bdea16f55 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfModelSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/RdfModelSpec.scala @@ -5,16 +5,15 @@ package org.knora.webapi.util.rdf +import java.io.BufferedInputStream +import java.io.FileInputStream + +import dsp.errors.AssertionException import org.knora.webapi.CoreSpec import org.knora.webapi.IRI -import dsp.errors.AssertionException - import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ -import java.io.BufferedInputStream -import java.io.FileInputStream - /** * Tests implementations of [[RdfModel]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/ShaclValidatorSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/ShaclValidatorSpec.scala index 9b4660b24b..92a14f751a 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/ShaclValidatorSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/rdf/ShaclValidatorSpec.scala @@ -6,14 +6,14 @@ package org.knora.webapi.util.rdf import com.typesafe.config.ConfigFactory -import org.knora.webapi.CoreSpec -import dsp.errors.AssertionException +import java.nio.file.Paths + +import dsp.errors.AssertionException +import org.knora.webapi.CoreSpec import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ -import java.nio.file.Paths - object ShaclValidatorSpec { val config: String = s""" diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParserSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParserSpec.scala index 4da24f9008..1dd01a94a5 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParserSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/GravsearchParserSpec.scala @@ -5,10 +5,10 @@ package org.knora.webapi.util.search.gravsearch +import dsp.errors.GravsearchException import org.knora.webapi.ApiV2Complex import org.knora.webapi.ApiV2Simple import org.knora.webapi.CoreSpec -import dsp.errors.GravsearchException import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.util.search._ 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 420e654d17..efb79e2886 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 @@ -1,9 +1,14 @@ package org.knora.webapi.util.search.gravsearch.prequery -import akka.actor.ActorSystem -import org.knora.webapi.CoreSpec -import dsp.errors.AssertionException +import akka.actor.ActorRef + +import scala.collection.mutable.ArrayBuffer +import scala.concurrent.Await +import scala.concurrent.ExecutionContext +import scala.concurrent.duration._ +import dsp.errors.AssertionException +import org.knora.webapi.CoreSpec import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.usersmessages.UserADM @@ -14,15 +19,8 @@ import org.knora.webapi.messages.util.search.gravsearch.GravsearchQueryChecker import org.knora.webapi.messages.util.search.gravsearch.prequery.NonTriplestoreSpecificGravsearchToCountPrequeryTransformer import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionRunner import org.knora.webapi.messages.util.search.gravsearch.types.GravsearchTypeInspectionUtil -import org.knora.webapi.settings.KnoraDispatchers import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.collection.mutable.ArrayBuffer -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.duration._ -import akka.actor.ActorRef - private object CountQueryHandler { private val timeout = 10.seconds 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 1087b0a92e..ec383c8c81 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 @@ -1,8 +1,14 @@ package org.knora.webapi.util.search.gravsearch.prequery -import org.knora.webapi.CoreSpec -import dsp.errors.AssertionException +import akka.actor.ActorRef + +import scala.collection.mutable.ArrayBuffer +import scala.concurrent.Await +import scala.concurrent.ExecutionContext +import scala.concurrent.duration._ +import dsp.errors.AssertionException +import org.knora.webapi.CoreSpec import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.usersmessages.UserADM @@ -17,12 +23,6 @@ import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.ApacheLuceneSupport.LuceneQueryString -import scala.collection.mutable.ArrayBuffer -import scala.concurrent.Await -import scala.concurrent.duration._ -import scala.concurrent.ExecutionContext -import akka.actor.ActorRef - private object QueryHandler { private val timeout = 10.seconds diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/TopologicalSortUtilSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/TopologicalSortUtilSpec.scala index 822571e5c1..002dc12b16 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/TopologicalSortUtilSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/prequery/TopologicalSortUtilSpec.scala @@ -5,11 +5,12 @@ package org.knora.webapi.util.search.gravsearch.prequery -import org.knora.webapi.CoreSpec -import org.knora.webapi.messages.util.search.gravsearch.prequery.TopologicalSortUtil import scalax.collection.Graph import scalax.collection.GraphEdge._ +import org.knora.webapi.CoreSpec +import org.knora.webapi.messages.util.search.gravsearch.prequery.TopologicalSortUtil + /** * Tests [[TopologicalSortUtil]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectorSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectorSpec.scala index c6212a456a..d72739238d 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectorSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/search/gravsearch/types/GravsearchTypeInspectorSpec.scala @@ -6,8 +6,13 @@ package org.knora.webapi.util.search.gravsearch.types import akka.testkit.ImplicitSender -import org.knora.webapi._ + +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + import dsp.errors.GravsearchException +import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.util.search._ @@ -15,10 +20,6 @@ import org.knora.webapi.messages.util.search.gravsearch.GravsearchParser import org.knora.webapi.messages.util.search.gravsearch.types._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * Tests Gravsearch type inspection. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2Spec.scala index a4a000a0c6..d0f4ebad7c 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/StandoffTagUtilV2Spec.scala @@ -6,6 +6,11 @@ package org.knora.webapi.util.standoff import akka.util.Timeout + +import java.util.UUID +import scala.concurrent.Await +import scala.concurrent.duration._ + import org.knora.webapi.CoreSpec import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter @@ -13,10 +18,6 @@ import org.knora.webapi.messages.util.standoff.StandoffTagUtilV2 import org.knora.webapi.messages.v2.responder.standoffmessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.util.UUID -import scala.concurrent.Await -import scala.concurrent.duration._ - /** * Tests [[StandoffTagUtilV2]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtilSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtilSpec.scala index 5db43b53a4..9a28f54f1d 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtilSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLToStandoffUtilSpec.scala @@ -5,15 +5,16 @@ package org.knora.webapi.util.standoff -import org.knora.webapi.CoreSpec -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.util.standoff._ import org.xmlunit.builder.DiffBuilder import org.xmlunit.builder.Input import org.xmlunit.diff.Diff import java.util.UUID +import org.knora.webapi.CoreSpec +import org.knora.webapi.messages.StringFormatter +import org.knora.webapi.messages.util.standoff._ + /** * Tests [[XMLToStandoffUtil]]. */ @@ -450,7 +451,7 @@ class XMLToStandoffUtilSpec extends CoreSpec { derivedText = criticalTextWithStandoff.text ) - val criticalTextDiffsAsXml: String = standoffUtil.standoffDiffs2Xml( + standoffUtil.standoffDiffs2Xml( baseText = diploTextWithStandoff.text, derivedText = criticalTextWithStandoff.text, standoffDiffs = criticalTextDiffs @@ -509,7 +510,7 @@ class XMLToStandoffUtilSpec extends CoreSpec { derivedText = criticalTextWithStandoff.text ) - val criticalTextDiffsAsXml: String = standoffUtil.standoffDiffs2Xml( + standoffUtil.standoffDiffs2Xml( baseText = diploTextWithStandoff.text, derivedText = criticalTextWithStandoff.text, standoffDiffs = criticalTextDiffs diff --git a/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLUtilSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLUtilSpec.scala index 00a50cb24f..e934405d2b 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLUtilSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/util/standoff/XMLUtilSpec.scala @@ -5,16 +5,17 @@ package org.knora.webapi.util.standoff -import org.knora.webapi.CoreSpec -import dsp.errors.StandoffConversionException -import org.knora.webapi.messages.util.standoff.XMLUtil -import org.knora.webapi.util.FileUtil import org.xmlunit.builder.DiffBuilder import org.xmlunit.builder.Input import org.xmlunit.diff.Diff import java.nio.file.Paths +import dsp.errors.StandoffConversionException +import org.knora.webapi.CoreSpec +import org.knora.webapi.messages.util.standoff.XMLUtil +import org.knora.webapi.util.FileUtil + /** * Tests [[org.knora.webapi.messages.util.standoff.XMLToStandoffUtil]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/permissionmessages/PermissionMessagesV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/permissionmessages/PermissionMessagesV1Spec.scala index e1b81cf277..c93a34c9cb 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/permissionmessages/PermissionMessagesV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/permissionmessages/PermissionMessagesV1Spec.scala @@ -1,11 +1,12 @@ package org.knora.webapi.messages.v1.responder.permissionmessages +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpecLike + import org.knora.webapi.messages.admin.responder.permissionsmessages.ResourceCreateOperation import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM._ import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.knora.webapi.sharedtestdata.SharedTestDataV1._ -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpecLike /** * This spec is used to test subclasses of the [[UsersResponderRequestV1]] class. @@ -61,10 +62,9 @@ class PermissionMessagesV1Spec extends AnyWordSpecLike with Matchers { } "return true if the user is allowed to create a resource (ProjectResourceCreateRestrictedPermission)" in { - val projectIri = IMAGES_PROJECT_IRI - val allowedResourceClassIri01 = s"$IMAGES_ONTOLOGY_IRI#bild" - val allowedResourceClassIri02 = s"$IMAGES_ONTOLOGY_IRI#bildformat" - val notAllowedResourceClassIri = s"$IMAGES_ONTOLOGY_IRI#person" + val projectIri = IMAGES_PROJECT_IRI + val allowedResourceClassIri01 = s"$IMAGES_ONTOLOGY_IRI#bild" + val allowedResourceClassIri02 = s"$IMAGES_ONTOLOGY_IRI#bildformat" val result1 = SharedTestDataV1.imagesReviewerUser.permissionData .hasPermissionFor(ResourceCreateOperation(allowedResourceClassIri01), projectIri, None) diff --git a/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1Spec.scala index 2b3467b2cc..30b84bd9a7 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/v1/responder/usermessages/UserMessagesV1Spec.scala @@ -5,14 +5,15 @@ package org.knora.webapi.messages.v1.responder.usermessages -import org.knora.webapi.messages.admin.responder.permissionsmessages -import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionProfileType -import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder +import org.knora.webapi.messages.admin.responder.permissionsmessages +import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionProfileType +import org.knora.webapi.sharedtestdata.SharedTestDataV1 + /** * This spec is used to test subclasses of the [[UsersResponderRequestV1]] class. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/InputOntologyV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/InputOntologyV2Spec.scala index 7f39fea9c5..a2e2b659c2 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/InputOntologyV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/InputOntologyV2Spec.scala @@ -5,6 +5,8 @@ package org.knora.webapi.messages.v2.responder.ontologymessages +import java.time.Instant + import dsp.errors.BadRequestException import dsp.schema.domain.Cardinality._ import org.knora.webapi.ApiV2Complex @@ -16,8 +18,6 @@ import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.util.rdf.JsonLDUtil import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality.KnoraCardinalityInfo -import java.time.Instant - /** * Tests [[InputOntologyV2]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/KnoraCardinalityInfoIsStricterThanZSpec.scala b/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/KnoraCardinalityInfoIsStricterThanZSpec.scala index f651d82bc6..9016469fc3 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/KnoraCardinalityInfoIsStricterThanZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/ontologymessages/KnoraCardinalityInfoIsStricterThanZSpec.scala @@ -5,9 +5,10 @@ package org.knora.webapi.messages.v2.responder.ontologymessages -import dsp.schema.domain.Cardinality._ import zio.test._ +import dsp.schema.domain.Cardinality._ + /** * Tests the comparison forstrictness of cardinalities with [[isStricterThan()]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/resourcesmessages/ResourcesMessagesV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/resourcesmessages/ResourcesMessagesV2Spec.scala index d4fd863487..1215777420 100644 --- a/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/resourcesmessages/ResourcesMessagesV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/messages/v2/responder/resourcesmessages/ResourcesMessagesV2Spec.scala @@ -1,7 +1,7 @@ package org.knora.webapi.messages.v2.responder.resourcesmessages -import org.knora.webapi.CoreSpec import dsp.errors.BadRequestException +import org.knora.webapi.CoreSpec import org.knora.webapi.messages.v2.responder.resourcemessages._ import org.knora.webapi.sharedtestdata._ diff --git a/webapi/src/test/scala/org/knora/webapi/models/OntologyModels.scala b/webapi/src/test/scala/org/knora/webapi/models/OntologyModels.scala index 1c1dae469f..ae2f4a9c55 100644 --- a/webapi/src/test/scala/org/knora/webapi/models/OntologyModels.scala +++ b/webapi/src/test/scala/org/knora/webapi/models/OntologyModels.scala @@ -5,12 +5,12 @@ package org.knora.webapi.models -import dsp.valueobjects.LangString -import dsp.valueobjects.LanguageCode - import java.time.Instant import scala.annotation.tailrec +import dsp.valueobjects.LangString +import dsp.valueobjects.LanguageCode + object Comments { def handleOptionalComment(comment: Option[LangString]): String = comment match { diff --git a/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelUtil.scala b/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelUtil.scala index bc8e9551cb..aaa29f4202 100644 --- a/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelUtil.scala +++ b/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelUtil.scala @@ -121,7 +121,7 @@ object FileModelUtil { dimY = dimY, comment = comment ) - case FileType.MovingImageFile(dimX, dimY) => + case FileType.MovingImageFile(_, _) => MovingImageFileValueContentV2( ontologySchema = ApiV2Complex, fileValue = FileValueV2( diff --git a/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModels.scala b/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModels.scala index a3326efeb1..74f502175c 100644 --- a/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModels.scala +++ b/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModels.scala @@ -5,6 +5,9 @@ package org.knora.webapi.models.filemodels +import java.time.Instant +import java.util.UUID + import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter @@ -16,9 +19,6 @@ import org.knora.webapi.messages.v2.responder.valuemessages.UpdateValueContentV2 import org.knora.webapi.messages.v2.responder.valuemessages.UpdateValueRequestV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.time.Instant -import java.util.UUID - sealed abstract case class UploadFileRequest private ( fileType: FileType, internalFilename: String, diff --git a/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelsSpec.scala b/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelsSpec.scala index 35f7d23164..75fbcd2a2d 100644 --- a/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelsSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/models/filemodels/FileModelsSpec.scala @@ -1,8 +1,14 @@ package org.knora.webapi.models.filemodels +import spray.json.DefaultJsonProtocol._ +import spray.json._ + +import java.time.Instant +import java.util.UUID + +import dsp.errors.AssertionException import org.knora.webapi.ApiV2Complex import org.knora.webapi.CoreSpec -import dsp.errors.AssertionException import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.v2.responder.resourcemessages.CreateValueInNewResourceV2 @@ -10,11 +16,6 @@ import org.knora.webapi.messages.v2.responder.valuemessages.DocumentFileValueCon import org.knora.webapi.messages.v2.responder.valuemessages.FileValueV2 import org.knora.webapi.messages.v2.responder.valuemessages.UpdateValueContentV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM -import spray.json.DefaultJsonProtocol._ -import spray.json._ - -import java.time.Instant -import java.util.UUID class FileModelsSpec extends CoreSpec { implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance diff --git a/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModels.scala b/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModels.scala index 9b5e628dd8..d84a0ee40a 100644 --- a/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModels.scala +++ b/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModels.scala @@ -5,6 +5,11 @@ package org.knora.webapi.models.standoffmodels +import spray.json.DefaultJsonProtocol._ +import spray.json._ + +import java.util.UUID + import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter @@ -14,10 +19,6 @@ import org.knora.webapi.messages.v2.responder.standoffmessages.CreateMappingRequ import org.knora.webapi.messages.v2.responder.standoffmessages.CreateMappingRequestV2 import org.knora.webapi.messages.v2.responder.standoffmessages.CreateMappingRequestXMLV2 import org.knora.webapi.sharedtestdata.SharedTestDataV1.ANYTHING_PROJECT_IRI -import spray.json.DefaultJsonProtocol._ -import spray.json._ - -import java.util.UUID sealed abstract case class DefineStandoffMapping private ( mappingName: String, diff --git a/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModelsSpec.scala b/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModelsSpec.scala index 50fb4f0e76..b82f958dab 100644 --- a/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModelsSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/models/standoffmodels/StandoffModelsSpec.scala @@ -5,11 +5,12 @@ package org.knora.webapi.models.standoffmodels +import spray.json._ + import org.knora.webapi.CoreSpec import org.knora.webapi.messages.StringFormatter import org.knora.webapi.sharedtestdata.SharedTestDataV1.ANYTHING_PROJECT_IRI import org.knora.webapi.sharedtestdata.SharedTestDataV1.INCUNABULA_PROJECT_IRI -import spray.json._ class StandoffModelsSpec extends CoreSpec { implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance diff --git a/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1E2ESpec.scala index ff18be6a2f..1d9bed49a9 100644 --- a/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1E2ESpec.scala @@ -11,6 +11,9 @@ import akka.http.scaladsl.model.HttpResponse import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.model.headers.BasicHttpCredentials import com.typesafe.config.ConfigFactory + +import java.net.URLEncoder + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol @@ -18,8 +21,6 @@ import org.knora.webapi.util.MutableTestIri import org.knora.webapi.util.ResourceResponseExtractorMethods import org.knora.webapi.util.ValuesResponseExtractorMethods -import java.net.URLEncoder - object DrawingsGodsV1E2ESpec { val config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1Spec.scala index 5603537050..a79967ae79 100644 --- a/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/other/v1/DrawingsGodsV1Spec.scala @@ -7,6 +7,10 @@ package org.knora.webapi.other.v1 import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import java.util.UUID +import scala.concurrent.duration._ + import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter @@ -19,9 +23,6 @@ import org.knora.webapi.messages.v1.responder.resourcemessages._ import org.knora.webapi.messages.v1.responder.valuemessages._ import org.knora.webapi.util.MutableUserADM -import java.util.UUID -import scala.concurrent.duration._ - object DrawingsGodsV1Spec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/other/v2/LumieresLausanneV2E2ESpec.scala b/webapi/src/test/scala/org/knora/webapi/other/v2/LumieresLausanneV2E2ESpec.scala index 6974d49263..808bb2002b 100644 --- a/webapi/src/test/scala/org/knora/webapi/other/v2/LumieresLausanneV2E2ESpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/other/v2/LumieresLausanneV2E2ESpec.scala @@ -12,6 +12,7 @@ import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.model.headers.BasicHttpCredentials import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + import org.knora.webapi.E2ESpec import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.TriplestoreJsonProtocol diff --git a/webapi/src/test/scala/org/knora/webapi/responders/IriLockerSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/IriLockerSpec.scala index f034adcd05..95dffb78a4 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/IriLockerSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/IriLockerSpec.scala @@ -1,7 +1,5 @@ package org.knora.webapi.responders -import org.knora.webapi.IRI -import dsp.errors.ApplicationLockException import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AnyWordSpecLike @@ -10,6 +8,9 @@ import scala.concurrent.Await import scala.concurrent.Future import scala.concurrent.duration._ +import dsp.errors.ApplicationLockException +import org.knora.webapi.IRI + /** * Tests [[IriLocker]]. */ @@ -55,7 +56,7 @@ class IriLockerSpec extends AnyWordSpecLike with Matchers { Await.result(secondTaskResultFuture, 20.seconds) false } catch { - case ale: ApplicationLockException => true + case _: ApplicationLockException => true } assert(secondTaskFailedWithLockTimeout, "Second task did not get a lock timeout") @@ -108,7 +109,7 @@ class IriLockerSpec extends AnyWordSpecLike with Matchers { Await.result(firstTaskResultFuture, 1.second) false } catch { - case e: Exception => true + case _: Exception => true } assert(firstTaskFailed, "First task did not fail") @@ -150,7 +151,7 @@ class IriLockerSpec extends AnyWordSpecLike with Matchers { Await.result(firstTaskResultFuture, 1.second) false } catch { - case e: Exception => true + case _: Exception => true } assert(firstTaskFailed, "First task did not fail") diff --git a/webapi/src/test/scala/org/knora/webapi/responders/admin/GroupsResponderADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/admin/GroupsResponderADMSpec.scala index 0a171306e5..1b7cddcaa1 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/admin/GroupsResponderADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/admin/GroupsResponderADMSpec.scala @@ -13,22 +13,23 @@ import akka.actor.Status.Failure import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import java.util.UUID +import scala.concurrent.duration._ + +import dsp.errors.BadRequestException +import dsp.errors.DuplicateValueException +import dsp.errors.NotFoundException import dsp.valueobjects.Group._ import dsp.valueobjects.Iri._ import dsp.valueobjects.V2 import org.knora.webapi._ -import dsp.errors.BadRequestException -import dsp.errors.DuplicateValueException -import dsp.errors.NotFoundException import org.knora.webapi.messages.admin.responder.groupsmessages._ import org.knora.webapi.messages.admin.responder.usersmessages.UserInformationTypeADM import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.MutableTestIri -import java.util.UUID -import scala.concurrent.duration._ - object GroupsResponderADMSpec { val config: Config = ConfigFactory.parseString(""" @@ -49,9 +50,7 @@ class GroupsResponderADMSpec extends CoreSpec(GroupsResponderADMSpec.config) wit "The GroupsResponder " when { "asked about all groups" should { "return a list" in { - appActor ! GroupsGetRequestADM( - requestingUser = SharedTestDataADM.rootUser - ) + appActor ! GroupsGetRequestADM() val response = expectMsgType[GroupsGetResponseADM](timeout) response.groups.nonEmpty should be(true) diff --git a/webapi/src/test/scala/org/knora/webapi/responders/admin/ListsResponderADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/admin/ListsResponderADMSpec.scala index 3a7b56cf71..9d70c14af4 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/admin/ListsResponderADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/admin/ListsResponderADMSpec.scala @@ -9,13 +9,17 @@ import akka.actor.Status.Failure import akka.testkit._ import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import java.util.UUID +import scala.concurrent.duration._ + +import dsp.errors.BadRequestException +import dsp.errors.DuplicateValueException +import dsp.errors.UpdateNotPerformedException import dsp.valueobjects.Iri._ import dsp.valueobjects.List._ import dsp.valueobjects.V2 import org.knora.webapi._ -import dsp.errors.BadRequestException -import dsp.errors.DuplicateValueException -import dsp.errors.UpdateNotPerformedException import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.listsmessages.ListNodeCreatePayloadADM.ListChildNodeCreatePayloadADM import org.knora.webapi.messages.admin.responder.listsmessages.ListNodeCreatePayloadADM.ListRootNodeCreatePayloadADM @@ -27,9 +31,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataV1._ import org.knora.webapi.util.MutableTestIri -import java.util.UUID -import scala.concurrent.duration._ - /** * Static data for testing [[ListsResponderADM]]. */ 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 479642c402..338f27a816 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 @@ -9,14 +9,21 @@ import akka.actor.Status.Failure import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ +import org.scalatest.PrivateMethodTester + +import java.util.UUID +import scala.collection.Map +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + import dsp.errors.BadRequestException import dsp.errors.DuplicateValueException import dsp.errors.ForbiddenException import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.OntologyConstants.KnoraBase.EntityPermissionAbbreviations -import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.permissionsmessages.PermissionsMessagesUtilADM.PermissionTypeAndCodes import org.knora.webapi.messages.admin.responder.permissionsmessages._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject @@ -27,13 +34,6 @@ import org.knora.webapi.sharedtestdata.SharedPermissionsTestData._ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataV1 import org.knora.webapi.util.cache.CacheUtil -import org.scalatest.PrivateMethodTester - -import java.util.UUID -import scala.collection.Map -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ object PermissionsResponderADMSpec { @@ -50,7 +50,6 @@ class PermissionsResponderADMSpec extends CoreSpec(PermissionsResponderADMSpec.config) with ImplicitSender with PrivateMethodTester { - private val stringFormatter = StringFormatter.getGeneralInstance private val rootUser = SharedTestDataADM.rootUser private val multiuserUser = SharedTestDataADM.multiuserUser @@ -60,8 +59,7 @@ class PermissionsResponderADMSpec /* define private method access */ private val userAdministrativePermissionsGetADM = PrivateMethod[Future[Map[IRI, Set[PermissionADM]]]](Symbol("userAdministrativePermissionsGetADM")) - private val defaultObjectAccessPermissionsForGroupsGetADM = - PrivateMethod[Future[Set[PermissionADM]]](Symbol("defaultObjectAccessPermissionsForGroupsGetADM")) + PrivateMethod[Future[Set[PermissionADM]]](Symbol("defaultObjectAccessPermissionsForGroupsGetADM")) override lazy val rdfDataObjects = List( RdfDataObject( diff --git a/webapi/src/test/scala/org/knora/webapi/responders/admin/ProjectsResponderADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/admin/ProjectsResponderADMSpec.scala index ab8094c304..bb68560364 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/admin/ProjectsResponderADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/admin/ProjectsResponderADMSpec.scala @@ -13,13 +13,16 @@ import akka.actor.Status.Failure import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import dsp.valueobjects.Iri.ProjectIri -import dsp.valueobjects.Project._ -import dsp.valueobjects.V2 -import org.knora.webapi._ + +import java.util.UUID +import scala.concurrent.duration._ + import dsp.errors.BadRequestException import dsp.errors.DuplicateValueException import dsp.errors.NotFoundException +import dsp.valueobjects.Project._ +import dsp.valueobjects.V2 +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.permissionsmessages._ @@ -29,9 +32,6 @@ import org.knora.webapi.messages.store.triplestoremessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.MutableTestIri -import java.util.UUID -import scala.concurrent.duration._ - object ProjectsResponderADMSpec { val config: Config = ConfigFactory.parseString(""" diff --git a/webapi/src/test/scala/org/knora/webapi/responders/admin/SipiResponderADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/admin/SipiResponderADMSpec.scala index fe73e731d9..85b692a8cb 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/admin/SipiResponderADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/admin/SipiResponderADMSpec.scala @@ -8,14 +8,15 @@ package org.knora.webapi.responders.admin import akka.testkit._ import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.duration._ + import org.knora.webapi._ import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectRestrictedViewSettingsADM import org.knora.webapi.messages.admin.responder.sipimessages._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.concurrent.duration._ - object SipiResponderADMSpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" diff --git a/webapi/src/test/scala/org/knora/webapi/responders/admin/UsersResponderADMSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/admin/UsersResponderADMSpec.scala index 23025b4047..9e4ded7ded 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/admin/UsersResponderADMSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/admin/UsersResponderADMSpec.scala @@ -9,13 +9,16 @@ import akka.actor.Status.Failure import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import java.util.UUID +import scala.concurrent.duration._ + import dsp.errors.BadRequestException import dsp.errors.DuplicateValueException import dsp.errors.ForbiddenException import dsp.errors.NotFoundException import dsp.valueobjects.LanguageCode import dsp.valueobjects.User._ -import dsp.valueobjects.V2 import org.knora.webapi._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.groupsmessages.GroupMembersGetRequestADM @@ -27,9 +30,6 @@ import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredenti import org.knora.webapi.routing.Authenticator import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.util.UUID -import scala.concurrent.duration._ - object UsersResponderADMSpec { val config: Config = ConfigFactory.parseString(""" akka.loglevel = "DEBUG" @@ -549,7 +549,7 @@ class UsersResponderADMSpec extends CoreSpec(UsersResponderADMSpec.config) with rootUser, UUID.randomUUID() ) - val membershipUpdateResponse = expectMsgType[UserOperationResponseADM](timeout) + expectMsgType[UserOperationResponseADM](timeout) appActor ! UserProjectMembershipsGetRequestADM(normalUser.id, rootUser) val membershipsAfterUpdate = expectMsgType[UserProjectMembershipsGetResponseADM](timeout) diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/ListsResponderV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/ListsResponderV1Spec.scala index 573d6c37db..2576f8139b 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/ListsResponderV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/ListsResponderV1Spec.scala @@ -8,13 +8,14 @@ package org.knora.webapi.responders.v1 import akka.testkit._ import com.typesafe.config.Config import com.typesafe.config.ConfigFactory + +import scala.concurrent.duration._ + import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.v1.responder.listmessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.concurrent.duration._ - /** * Static data for testing [[ListsResponderV1]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/OntologyResponderV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/OntologyResponderV1Spec.scala index e84dcb5bf2..3d9e04f2ed 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/OntologyResponderV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/OntologyResponderV1Spec.scala @@ -6,8 +6,11 @@ package org.knora.webapi.responders.v1 import akka.testkit._ -import org.knora.webapi._ + +import scala.concurrent.duration._ + import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.MessageUtil import org.knora.webapi.messages.v1.responder.ontologymessages._ @@ -15,8 +18,6 @@ import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.sharedtestdata.SharedTestDataV1 -import scala.concurrent.duration._ - /** * Static data for testing [[OntologyResponderV1]]. */ @@ -1115,7 +1116,7 @@ class OntologyResponderV1Spec extends CoreSpec() with ImplicitSender { userADM = OntologyResponderV1Spec.userProfileWithEnglish ) - expectMsgPF(timeout) { case msg: PropertyTypesForNamedGraphResponseV1 => + expectMsgPF(timeout) { case _: PropertyTypesForNamedGraphResponseV1 => // simply checks that no error occurred when getting the property definitions for all vocabularies () } diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/ProjectsResponderV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/ProjectsResponderV1Spec.scala index 36e2899eeb..6f74ccd0f1 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/ProjectsResponderV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/ProjectsResponderV1Spec.scala @@ -13,13 +13,14 @@ import akka.actor.Status.Failure import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ + +import scala.concurrent.duration._ + import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.messages.v1.responder.projectmessages._ import org.knora.webapi.sharedtestdata.SharedTestDataV1 -import scala.concurrent.duration._ - object ProjectsResponderV1Spec { val config: Config = ConfigFactory.parseString(""" diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1Spec.scala index d6f1e93ea7..a4b9cbc155 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1Spec.scala @@ -8,11 +8,20 @@ package org.knora.webapi.responders.v1 import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ -import org.knora.webapi.config.AppConfig +import spray.json.JsValue +import zio.& +import zio.Runtime +import zio.ZLayer + +import java.util.UUID +import scala.concurrent.duration._ + import dsp.errors.BadRequestException import dsp.errors.NotFoundException import dsp.errors.OntologyConstraintException +import org.knora.webapi._ +import org.knora.webapi.config.AppConfig +import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter @@ -34,20 +43,12 @@ import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.impl.IIIFServiceMockImpl -import org.knora.webapi.util._ -import spray.json.JsValue -import zio.& -import zio.ZLayer -import zio.Runtime - -import java.util.UUID -import scala.concurrent.duration._ import org.knora.webapi.store.triplestore.TriplestoreServiceManager +import org.knora.webapi.store.triplestore.api.TriplestoreService import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.store.triplestore.api.TriplestoreService +import org.knora.webapi.util._ /** * Static data for testing [[ResourcesResponderV1]]. @@ -750,7 +751,7 @@ class ResourcesResponderV1Spec extends CoreSpec(ResourcesResponderV1Spec.config) ( propIri, propValues.sortBy { valueObject: ResourceCreateValueResponseV1 => - val stringValue = valueObject.value.textval.map { case (valType: LiteralValueType.Value, value: String) => + val stringValue = valueObject.value.textval.map { case (_: LiteralValueType.Value, value: String) => value // get string and ignore value type }.head // each value is represented by a map consisting of only one item (e.g. string -> "book title") stringValue @@ -1312,7 +1313,7 @@ class ResourcesResponderV1Spec extends CoreSpec(ResourcesResponderV1Spec.config) iri = newBookResourceIri.get, userADM = SharedTestDataADM.incunabulaProjectAdminUser ) - expectMsgPF(timeout) { case response: ResourceFullResponseV1 => + expectMsgPF(timeout) { case _: ResourceFullResponseV1 => () // If we got a ResourceFullResponseV1, the operation succeeded. } } diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecContextData.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecContextData.scala index 78fbdc52b8..97a442f886 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecContextData.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecContextData.scala @@ -6,15 +6,16 @@ package org.knora.webapi.responders.v1 import akka.actor.ActorSystem -import org.knora.webapi.messages.v1.responder.resourcemessages._ -import org.knora.webapi.settings.KnoraSettings -import org.knora.webapi.settings.KnoraSettingsImpl -import org.knora.webapi.util.FileUtil import spray.json.JsValue import spray.json.JsonParser import java.nio.file.Paths +import org.knora.webapi.messages.v1.responder.resourcemessages._ +import org.knora.webapi.settings.KnoraSettings +import org.knora.webapi.settings.KnoraSettingsImpl +import org.knora.webapi.util.FileUtil + object ResourcesResponderV1SpecContextData { implicit lazy val system: ActorSystem = ActorSystem("webapi") diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecFullData.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecFullData.scala index 56d157627c..16ac6ab2b1 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecFullData.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/ResourcesResponderV1SpecFullData.scala @@ -6,6 +6,7 @@ package org.knora.webapi.responders.v1 import akka.actor.ActorSystem + import org.knora.webapi.messages.v1.responder.resourcemessages._ import org.knora.webapi.messages.v1.responder.valuemessages._ import org.knora.webapi.messages.v2.responder.standoffmessages.MappingXMLtoStandoff diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/SearchResponderV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/SearchResponderV1Spec.scala index c4f733cd0e..273f956d03 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/SearchResponderV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/SearchResponderV1Spec.scala @@ -6,14 +6,15 @@ package org.knora.webapi.responders.v1 import akka.testkit._ + +import scala.concurrent.duration._ + import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.v1.responder.searchmessages._ import org.knora.webapi.sharedtestdata.SharedOntologyTestDataADM._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.concurrent.duration._ - /** * Static data for testing [[SearchResponderV1]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/UsersResponderV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/UsersResponderV1Spec.scala index aa166957b5..98e4c81168 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/UsersResponderV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/UsersResponderV1Spec.scala @@ -13,13 +13,14 @@ import akka.actor.Status.Failure import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory -import org.knora.webapi._ + +import scala.concurrent.duration._ + import dsp.errors.NotFoundException +import org.knora.webapi._ import org.knora.webapi.messages.v1.responder.usermessages._ import org.knora.webapi.sharedtestdata.SharedTestDataV1 -import scala.concurrent.duration._ - object UsersResponderV1Spec { val config: Config = ConfigFactory.parseString(""" @@ -39,15 +40,10 @@ class UsersResponderV1Spec extends CoreSpec(UsersResponderV1Spec.config) with Im private val rootUserIri = rootUser.userData.user_id.get private val rootUserEmail = rootUser.userData.email.get - private val normalUser = SharedTestDataV1.normalUser - private val normalUserIri = normalUser.userData.user_id.get - private val incunabulaUser = SharedTestDataV1.incunabulaProjectAdminUser private val incunabulaUserIri = incunabulaUser.userData.user_id.get private val incunabulaUserEmail = incunabulaUser.userData.email.get - private val imagesProjectIri = SharedTestDataV1.imagesProjectInfo.id - "The UsersResponder " when { "asked about all users" should { diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v1/ValuesResponderV1Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v1/ValuesResponderV1Spec.scala index 88489afad4..f402820f23 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v1/ValuesResponderV1Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v1/ValuesResponderV1Spec.scala @@ -8,9 +8,18 @@ package org.knora.webapi.responders.v1 import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory +import zio.& +import zio.Runtime +import zio.ZLayer + +import java.time.Instant +import java.util.UUID +import scala.concurrent.duration._ + +import dsp.errors._ import org.knora.webapi._ import org.knora.webapi.config.AppConfig -import dsp.errors._ +import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.StringFormatter @@ -27,20 +36,12 @@ import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.impl.IIIFServiceMockImpl -import org.knora.webapi.util.MutableTestIri -import zio.& -import zio.ZLayer -import zio.Runtime - -import java.time.Instant -import java.util.UUID -import scala.concurrent.duration._ import org.knora.webapi.store.triplestore.TriplestoreServiceManager +import org.knora.webapi.store.triplestore.api.TriplestoreService import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.store.triplestore.api.TriplestoreService +import org.knora.webapi.util.MutableTestIri /** * Static data for testing [[ValuesResponderV1]]. @@ -506,7 +507,7 @@ class ValuesResponderV1Spec extends CoreSpec(ValuesResponderV1Spec.config) with apiRequestID = UUID.randomUUID ) - expectMsgPF(timeout) { case msg: CreateValueResponseV1 => + expectMsgPF(timeout) { case _: CreateValueResponseV1 => () } @@ -1336,7 +1337,7 @@ class ValuesResponderV1Spec extends CoreSpec(ValuesResponderV1Spec.config) with apiRequestID = UUID.randomUUID ) - expectMsgPF(timeout) { case ChangeValueResponseV1(newValue: IntegerValueV1, _, newValueIri: IRI, _) => + expectMsgPF(timeout) { case ChangeValueResponseV1(newValue: IntegerValueV1, _, _: IRI, _) => newValue should ===(IntegerValueV1(seqnum)) } } @@ -1370,7 +1371,7 @@ class ValuesResponderV1Spec extends CoreSpec(ValuesResponderV1Spec.config) with apiRequestID = UUID.randomUUID ) - expectMsgPF(timeout) { case ChangeValueResponseV1(newValue: TimeValueV1, _, newValueIri: IRI, _) => + expectMsgPF(timeout) { case ChangeValueResponseV1(newValue: TimeValueV1, _, _: IRI, _) => newValue should ===(TimeValueV1(timeStamp)) } } diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ListsResponderV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ListsResponderV2Spec.scala index 894bb277fc..5b4b1b73fd 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ListsResponderV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ListsResponderV2Spec.scala @@ -6,6 +6,9 @@ package org.knora.webapi.responders.v2 import akka.testkit.ImplicitSender + +import scala.concurrent.duration._ + import org.knora.webapi.CoreSpec import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject @@ -15,8 +18,6 @@ import org.knora.webapi.messages.v2.responder.listsmessages.NodeGetRequestV2 import org.knora.webapi.messages.v2.responder.listsmessages.NodeGetResponseV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.concurrent.duration._ - object ListsResponderV2Spec { private val userProfile = SharedTestDataADM.anythingUser2 } diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/LoadOntologiesRequestV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/LoadOntologiesRequestV2Spec.scala index 38851dd81a..ca55115f67 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/LoadOntologiesRequestV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/LoadOntologiesRequestV2Spec.scala @@ -6,6 +6,9 @@ package org.knora.webapi.responders.v2 import akka.testkit.ImplicitSender + +import scala.concurrent.duration._ + import org.knora.webapi.CoreSpec import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryContent @@ -13,7 +16,6 @@ import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryConten import org.knora.webapi.messages.util.KnoraSystemInstances import org.knora.webapi.messages.v2.responder.SuccessResponseV2 import org.knora.webapi.messages.v2.responder.ontologymessages.LoadOntologiesRequestV2 -import scala.concurrent.duration._ /** * Tests that the [[LoadOntologiesRequestV2]] request does not load invalid data into the cache. diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/OntologyResponderV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/OntologyResponderV2Spec.scala index 48f398fb80..9c53664175 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/OntologyResponderV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/OntologyResponderV2Spec.scala @@ -6,6 +6,11 @@ package org.knora.webapi.responders.v2 import akka.testkit.ImplicitSender + +import java.time.Instant +import java.util.UUID +import scala.concurrent.duration._ + import dsp.constants.SalsahGui import dsp.errors._ import dsp.schema.domain.Cardinality._ @@ -31,11 +36,6 @@ import org.knora.webapi.messages.v2.responder.valuemessages.IntegerValueContentV import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.MutableTestIri -import java.time.Instant -import java.util.UUID -import scala.concurrent.duration._ -import scala.language.postfixOps - /** * Tests [[OntologyResponderV2]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourceUtilV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourceUtilV2Spec.scala index eb31be3c17..50e01dab56 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourceUtilV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourceUtilV2Spec.scala @@ -6,11 +6,12 @@ package org.knora.webapi.responders.v2 import akka.util.Timeout -import org.knora.webapi.CoreSpec -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import scala.concurrent.ExecutionContextExecutor +import org.knora.webapi.CoreSpec +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject + object ResourceUtilV2Spec {} class ResourceUtilV2Spec extends CoreSpec() { diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2Spec.scala index abce93f316..246bff92f5 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2Spec.scala @@ -6,9 +6,22 @@ package org.knora.webapi.responders.v2 import akka.testkit.ImplicitSender +import org.xmlunit.builder.DiffBuilder +import org.xmlunit.builder.Input +import org.xmlunit.diff.Diff +import zio.& +import zio.Runtime +import zio.ZLayer + +import java.time.Instant +import java.time.temporal.ChronoUnit +import java.util.UUID +import scala.concurrent.duration._ + +import dsp.errors._ import org.knora.webapi._ import org.knora.webapi.config.AppConfig -import dsp.errors._ +import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -31,24 +44,12 @@ import org.knora.webapi.store.cache.CacheServiceManager import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.impl.IIIFServiceMockImpl -import org.knora.webapi.util._ -import org.xmlunit.builder.DiffBuilder -import org.xmlunit.builder.Input -import org.xmlunit.diff.Diff -import zio.& -import zio.ZLayer -import zio.Runtime - -import java.time.Instant -import java.time.temporal.ChronoUnit -import java.util.UUID -import scala.concurrent.duration._ import org.knora.webapi.store.triplestore.TriplestoreServiceManager +import org.knora.webapi.store.triplestore.api.TriplestoreService import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.store.triplestore.api.TriplestoreService +import org.knora.webapi.util._ object ResourcesResponderV2Spec { private val incunabulaUserProfile = SharedTestDataADM.incunabulaProjectAdminUser @@ -554,25 +555,6 @@ class ResourcesResponderV2Spec extends CoreSpec() with ImplicitSender { } } - private def getDeleteDate(resourceIri: IRI): Instant = { - val sparqlQuery: String = org.knora.webapi.messages.twirl.queries.sparql.v2.txt - .getDeleteDate( - entityIri = resourceIri - ) - .toString() - - appActor ! SparqlSelectRequest(sparqlQuery) - - expectMsgPF(timeout) { case sparqlSelectResponse: SparqlSelectResult => - val savedDeleteDateStr = sparqlSelectResponse.getFirstRow.rowMap("deleteDate") - - stringFormatter.xsdDateTimeStampToInstant( - savedDeleteDateStr, - throw AssertionException(s"Couldn't parse delete date from triplestore: $savedDeleteDateStr") - ) - } - } - // The default timeout for receiving reply messages from actors. private val timeout = 30.seconds diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2SpecFullData.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2SpecFullData.scala index 3d4a0aec21..4e3c36a65a 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2SpecFullData.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponderV2SpecFullData.scala @@ -1,5 +1,7 @@ package org.knora.webapi.responders.v2 +import java.time.Instant + import org.knora.webapi.InternalSchema import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter @@ -10,8 +12,6 @@ import org.knora.webapi.messages.v2.responder.resourcemessages._ import org.knora.webapi.messages.v2.responder.valuemessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.time.Instant - // FIXME: Rename to something more generic and without spec in the name since it is not a spec and is used in more then one spec class ResourcesResponderV2SpecFullData(implicit stringFormatter: StringFormatter) { diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponseCheckerV2SpecFullData.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponseCheckerV2SpecFullData.scala index 35940c658b..4d29f3f31c 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponseCheckerV2SpecFullData.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ResourcesResponseCheckerV2SpecFullData.scala @@ -1,5 +1,7 @@ package org.knora.webapi.responders.v2 +import java.time.Instant + import org.knora.webapi.InternalSchema import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter @@ -10,8 +12,6 @@ import org.knora.webapi.messages.v2.responder.resourcemessages._ import org.knora.webapi.messages.v2.responder.valuemessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.time.Instant - // FIXME: Rename to something without spec in the name since it is not a spec class ResourcesResponseCheckerV2SpecFullData(implicit stringFormatter: StringFormatter) { diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2Spec.scala index 9eb5a6baf1..4681435b35 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2Spec.scala @@ -6,6 +6,9 @@ package org.knora.webapi.responders.v2 import akka.testkit.ImplicitSender + +import scala.concurrent.duration._ + import org.knora.webapi.ApiV2Complex import org.knora.webapi.CoreSpec import org.knora.webapi.SchemaOptions @@ -19,8 +22,6 @@ import org.knora.webapi.messages.v2.responder.valuemessages.StillImageFileValueC import org.knora.webapi.responders.v2.ResourcesResponseCheckerV2.compareReadResourcesSequenceV2Response import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.concurrent.duration._ - /** * Tests [[SearchResponderV2]]. */ @@ -36,7 +37,6 @@ class SearchResponderV2Spec extends CoreSpec() with ImplicitSender { RdfDataObject(path = "test_data/all_data/books-data.ttl", name = "http://www.knora.org/data/0001/anything") ) private val searchResponderV2SpecFullData = new SearchResponderV2SpecFullData - private val anythingUserProfile = SharedTestDataADM.anythingUser2 // The default timeout for receiving reply messages from actors. private val timeout = 10.seconds diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2SpecFullData.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2SpecFullData.scala index 4490db4a12..32ddfb9b3e 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2SpecFullData.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/SearchResponderV2SpecFullData.scala @@ -1,6 +1,10 @@ package org.knora.webapi.responders.v2 import akka.actor.ActorSystem + +import java.time.Instant +import java.util.UUID + import org.knora.webapi._ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.StringFormatter @@ -11,9 +15,6 @@ import org.knora.webapi.messages.v2.responder.standoffmessages._ import org.knora.webapi.messages.v2.responder.valuemessages._ import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.time.Instant -import java.util.UUID - class SearchResponderV2SpecFullData(implicit stringFormatter: StringFormatter) { implicit lazy val system: ActorSystem = ActorSystem("webapi") diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/StandoffResponderV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/StandoffResponderV2Spec.scala index a241a9ff8e..2a750000e1 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/StandoffResponderV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/StandoffResponderV2Spec.scala @@ -8,23 +8,22 @@ package org.knora.webapi.responders.v2 import akka.pattern.ask import akka.testkit.ImplicitSender import akka.util.Timeout -import org.knora.webapi._ + +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + import dsp.errors._ -import org.knora.webapi.messages.StringFormatter +import org.knora.webapi._ import org.knora.webapi.messages.store.triplestoremessages._ import org.knora.webapi.messages.v2.responder.standoffmessages._ import org.knora.webapi.models.standoffmodels.DefineStandoffMapping import org.knora.webapi.sharedtestdata.SharedTestDataADM -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * Tests [[StandoffResponderV2]]. */ class StandoffResponderV2Spec extends CoreSpec() with ImplicitSender { - private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance // The default timeout for receiving reply messages from actors. private val timeout = 30.seconds diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ValuesResponderV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ValuesResponderV2Spec.scala index fc8324fa6d..a1b69ad833 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ValuesResponderV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ValuesResponderV2Spec.scala @@ -6,9 +6,18 @@ package org.knora.webapi.responders.v2 import akka.testkit.ImplicitSender +import zio.& +import zio.Runtime +import zio.ZLayer + +import java.time.Instant +import java.util.UUID +import scala.concurrent.duration._ + import dsp.errors._ import org.knora.webapi._ import org.knora.webapi.config.AppConfig +import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri @@ -34,20 +43,12 @@ import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.iiif.IIIFServiceManager import org.knora.webapi.store.iiif.errors.SipiException import org.knora.webapi.store.iiif.impl.IIIFServiceMockImpl -import org.knora.webapi.util.MutableTestIri -import zio.& -import zio.ZLayer -import zio.Runtime - -import java.time.Instant -import java.util.UUID -import scala.concurrent.duration._ import org.knora.webapi.store.triplestore.TriplestoreServiceManager +import org.knora.webapi.store.triplestore.api.TriplestoreService import org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl import org.knora.webapi.store.triplestore.upgrade.RepositoryUpdater -import org.knora.webapi.config.AppConfigForTestContainers import org.knora.webapi.testcontainers.FusekiTestContainer -import org.knora.webapi.store.triplestore.api.TriplestoreService +import org.knora.webapi.util.MutableTestIri /** * Tests [[ValuesResponderV2]]. @@ -4375,7 +4376,6 @@ class ValuesResponderV2Spec extends CoreSpec() with ImplicitSender { "delete a link between two resources" in { val resourceIri: IRI = "http://rdfh.ch/0803/cb1a74e3e2f6" - val linkPropertyIri: SmartIri = OntologyConstants.KnoraApiV2Complex.HasLinkTo.toSmartIri val linkValuePropertyIri: SmartIri = OntologyConstants.KnoraApiV2Complex.HasLinkToValue.toSmartIri val maybeResourceLastModDate: Option[Instant] = getResourceLastModificationDate(resourceIri, anythingUser1) val linkValueIRI = linkValueIri.get diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/AddCardinalitiesToClassSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/AddCardinalitiesToClassSpec.scala index 0c87ae8a2d..b635c16dce 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/AddCardinalitiesToClassSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/AddCardinalitiesToClassSpec.scala @@ -5,7 +5,8 @@ package org.knora.webapi.responders.v2.ontology -import akka.util.Timeout +import java.util.UUID + import dsp.schema.domain.Cardinality.MayHaveOne import org.knora.webapi.ApiV2Complex import org.knora.webapi.CoreSpec @@ -19,7 +20,6 @@ import org.knora.webapi.messages.store.triplestoremessages.SparqlSelectRequest import org.knora.webapi.messages.util.rdf.SparqlSelectResult import org.knora.webapi.messages.v2.responder.ontologymessages.AddCardinalitiesToClassRequestV2 import org.knora.webapi.messages.v2.responder.ontologymessages.ClassInfoContentV2 -import org.knora.webapi.messages.v2.responder.ontologymessages.ClassesGetRequestV2 import org.knora.webapi.messages.v2.responder.ontologymessages.OntologyMetadataGetByIriRequestV2 import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality._ import org.knora.webapi.messages.v2.responder.ontologymessages.PredicateInfoV2 @@ -27,17 +27,13 @@ import org.knora.webapi.messages.v2.responder.ontologymessages.ReadOntologyMetad import org.knora.webapi.messages.v2.responder.ontologymessages.ReadOntologyV2 import org.knora.webapi.sharedtestdata.SharedTestDataADM -import java.time.Instant -import java.util.UUID -import scala.concurrent.duration._ - /** * This spec is used to test [[org.knora.webapi.responders.v2.ontology.Cardinalities]]. */ class AddCardinalitiesToClassSpec extends CoreSpec { private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance - private implicit val timeout = 10.seconds + private val freeTestOntology = RdfDataObject( path = "test_data/ontologies/freetest-onto.ttl", name = "http://www.knora.org/ontology/0001/freetest" @@ -99,7 +95,7 @@ class AddCardinalitiesToClassSpec extends CoreSpec { requestingUser = user ) appActor ! addCardinalitiesRequest - val addCardinalitiesResponse = expectMsgType[ReadOntologyV2] + expectMsgType[ReadOntologyV2] // assert that the cardinalities for `:hasAuthor` and `:hasName` is still only once in the triplestore val countAfterwards = getCardinalityCountFromTriplestore(classIri, propertyIri) diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CacheSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CacheSpec.scala index 3cc01bd082..8c1eb44507 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CacheSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CacheSpec.scala @@ -5,31 +5,27 @@ package org.knora.webapi.responders.v2.ontology -import akka.actor.Props +import akka.util.Timeout + +import java.time.Instant +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ +import scala.language.postfixOps + +import dsp.constants.SalsahGui import org.knora.webapi.CoreSpec import org.knora.webapi.InternalSchema - import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.SmartIriLiteralV2 import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 -import org.knora.webapi.messages.util.KnoraSystemInstances import org.knora.webapi.messages.v2.responder.ontologymessages.PredicateInfoV2 import org.knora.webapi.messages.v2.responder.ontologymessages.PropertyInfoContentV2 import org.knora.webapi.messages.v2.responder.ontologymessages.ReadOntologyV2 import org.knora.webapi.messages.v2.responder.ontologymessages.ReadPropertyInfoV2 -import org.knora.webapi.settings.KnoraDispatchers -import org.knora.webapi.util.cache.CacheUtil - -import java.time.Instant -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ -import scala.language.postfixOps -import akka.util.Timeout -import dsp.constants.SalsahGui /** * This spec is used to test [[org.knora.webapi.responders.v2.ontology.Cache]]. diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CardinalitiesSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CardinalitiesSpec.scala index 4fd77e9635..a02ab6903e 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CardinalitiesSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/CardinalitiesSpec.scala @@ -5,15 +5,13 @@ package org.knora.webapi.responders.v2.ontology +import akka.util.Timeout + import org.knora.webapi.CoreSpec import org.knora.webapi.InternalSchema import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject -import org.knora.webapi.settings.KnoraDispatchers -import org.knora.webapi.responders.v2.ontology.CardinalityHandler -import akka.util.Timeout /** * This spec is used to test [[org.knora.webapi.responders.v2.ontology.Cardinalities]]. diff --git a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpersSpec.scala b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpersSpec.scala index 09a992a301..d081de7110 100644 --- a/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpersSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/responders/v2/ontology/OntologyHelpersSpec.scala @@ -5,6 +5,10 @@ package org.knora.webapi.responders.v2.ontology +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + import dsp.schema.domain.Cardinality import dsp.schema.domain.Cardinality._ import org.knora.webapi.CoreSpec @@ -13,13 +17,8 @@ import org.knora.webapi.messages.IriConversions._ import org.knora.webapi.messages.SmartIri import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject -import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality.KnoraCardinalityInfo import org.knora.webapi.responders.v2.ontology.Cache._ -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * This spec is used to test [[org.knora.webapi.responders.v2.ontology.OntologyHelpers]]. */ diff --git a/webapi/src/test/scala/org/knora/webapi/routing/AuthenticatorSpec.scala b/webapi/src/test/scala/org/knora/webapi/routing/AuthenticatorSpec.scala index a5e5e7415c..de8bbbd5e0 100644 --- a/webapi/src/test/scala/org/knora/webapi/routing/AuthenticatorSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/routing/AuthenticatorSpec.scala @@ -7,9 +7,13 @@ package org.knora.webapi.routing import akka.testkit.ImplicitSender import akka.util.Timeout -import org.knora.webapi._ +import org.scalatest.PrivateMethodTester + +import scala.concurrent.Future + import dsp.errors.BadCredentialsException import dsp.errors.BadRequestException +import org.knora.webapi._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.admin.responder.usersmessages.UserIdentifierADM @@ -18,9 +22,6 @@ import org.knora.webapi.messages.v2.routing.authenticationmessages.KnoraCredenti import org.knora.webapi.routing.Authenticator.AUTHENTICATION_INVALIDATION_CACHE_NAME import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.util.cache.CacheUtil -import org.scalatest.PrivateMethodTester - -import scala.concurrent.Future object AuthenticatorSpec { private val rootUser = SharedTestDataADM.rootUser @@ -60,7 +61,7 @@ class AuthenticatorSpec extends CoreSpec("AuthenticationTestSystem") with Implic timeout, executionContext ) - resF map { res => + resF map { _ => assertThrows(BadCredentialsException) } } @@ -104,7 +105,7 @@ class AuthenticatorSpec extends CoreSpec("AuthenticationTestSystem") with Implic appActor, executionContext ) - resF map { res => + resF map { _ => assertThrows(BadCredentialsException) } } @@ -120,7 +121,7 @@ class AuthenticatorSpec extends CoreSpec("AuthenticationTestSystem") with Implic appActor, executionContext ) - resF map { res => + resF map { _ => assertThrows(BadCredentialsException) } } @@ -157,7 +158,7 @@ class AuthenticatorSpec extends CoreSpec("AuthenticationTestSystem") with Implic appActor, executionContext ) - resF map { res => + resF map { _ => assertThrows(BadCredentialsException) } } @@ -169,7 +170,7 @@ class AuthenticatorSpec extends CoreSpec("AuthenticationTestSystem") with Implic appActor, executionContext ) - resF map { res => + resF map { _ => assertThrows(BadCredentialsException) } } diff --git a/webapi/src/test/scala/org/knora/webapi/routing/JWTHelperSpec.scala b/webapi/src/test/scala/org/knora/webapi/routing/JWTHelperSpec.scala index 67f2eb9f41..611635fc75 100644 --- a/webapi/src/test/scala/org/knora/webapi/routing/JWTHelperSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/routing/JWTHelperSpec.scala @@ -8,9 +8,10 @@ package org.knora.webapi.routing import akka.testkit.ImplicitSender import com.typesafe.config.Config import com.typesafe.config.ConfigFactory +import spray.json.JsString + import org.knora.webapi.CoreSpec import org.knora.webapi.sharedtestdata.SharedTestDataADM -import spray.json.JsString object JWTHelperSpec { val config: Config = ConfigFactory.parseString(""" diff --git a/webapi/src/test/scala/org/knora/webapi/sharedtestdata/SharedTestDataADM.scala b/webapi/src/test/scala/org/knora/webapi/sharedtestdata/SharedTestDataADM.scala index fdc9b06ed9..03ed3f8525 100644 --- a/webapi/src/test/scala/org/knora/webapi/sharedtestdata/SharedTestDataADM.scala +++ b/webapi/src/test/scala/org/knora/webapi/sharedtestdata/SharedTestDataADM.scala @@ -5,6 +5,9 @@ package org.knora.webapi.sharedtestdata +import java.time.Instant + +import dsp.constants.SalsahGui import org.knora.webapi.IRI import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.admin.responder.groupsmessages.GroupADM @@ -15,9 +18,6 @@ import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 import org.knora.webapi.messages.util.KnoraSystemInstances -import java.time.Instant -import dsp.constants.SalsahGui - /** * This object holds the same user which are loaded with 'test_data/all_data/admin-data.ttl'. Using this object * in tests, allows easier updating of details as they change over time. diff --git a/webapi/src/test/scala/org/knora/webapi/store/cache/CacheServiceManagerSpec.scala b/webapi/src/test/scala/org/knora/webapi/store/cache/CacheServiceManagerSpec.scala index b6a074664e..c004e51cb8 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/cache/CacheServiceManagerSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/cache/CacheServiceManagerSpec.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.cache import com.typesafe.config.ConfigFactory + import org.knora.webapi._ import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM diff --git a/webapi/src/test/scala/org/knora/webapi/store/cache/config/RedisTestConfig.scala b/webapi/src/test/scala/org/knora/webapi/store/cache/config/RedisTestConfig.scala index d31b064a1b..aab347b38e 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/cache/config/RedisTestConfig.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/cache/config/RedisTestConfig.scala @@ -1,8 +1,9 @@ package org.knora.webapi.store.cache.config +import zio._ + import org.knora.webapi.store.cache.config.RedisConfig import org.knora.webapi.testcontainers.RedisTestContainer -import zio._ object RedisTestConfig { val hardcoded: ULayer[RedisConfig] = ZLayer.succeed(RedisConfig("localhost", 6379)) diff --git a/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala b/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala index a94e5ad312..e666756ab8 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala @@ -5,6 +5,10 @@ package org.knora.webapi.store.cache.impl +import zio.ZLayer +import zio.test.Assertion._ +import zio.test._ + import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM @@ -12,9 +16,6 @@ import org.knora.webapi.messages.admin.responder.usersmessages.UserADM import org.knora.webapi.messages.admin.responder.usersmessages.UserIdentifierADM import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.store.cache.api.CacheService -import zio.ZLayer -import zio.test.Assertion._ -import zio.test._ import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl /** diff --git a/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala b/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala index d2fd0ab2f0..1d0062e654 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala @@ -5,6 +5,10 @@ package org.knora.webapi.store.cache.impl +import zio._ +import zio.test.Assertion._ +import zio.test._ + import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM @@ -14,9 +18,6 @@ import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.store.cache.api.CacheService import org.knora.webapi.store.cache.config.RedisTestConfig import org.knora.webapi.testcontainers.RedisTestContainer -import zio._ -import zio.test.Assertion._ -import zio.test._ /** * This spec is used to test [[org.knora.webapi.store.cache.impl.CacheServiceRedisImpl]]. diff --git a/webapi/src/test/scala/org/knora/webapi/store/cache/serialization/CacheSerializationZSpec.scala b/webapi/src/test/scala/org/knora/webapi/store/cache/serialization/CacheSerializationZSpec.scala index b8174afbce..9a0b575b35 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/cache/serialization/CacheSerializationZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/cache/serialization/CacheSerializationZSpec.scala @@ -5,12 +5,13 @@ package org.knora.webapi.store.cache.serialization -import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM -import org.knora.webapi.messages.admin.responder.usersmessages.UserADM -import org.knora.webapi.sharedtestdata.SharedTestDataADM import zio.test.Assertion._ import zio.test.TestAspect.ignore import zio.test._ + +import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM +import org.knora.webapi.messages.admin.responder.usersmessages.UserADM +import org.knora.webapi.sharedtestdata.SharedTestDataADM import org.knora.webapi.store.cache.serialization.CacheSerialization /** diff --git a/webapi/src/test/scala/org/knora/webapi/store/iiif/impl/IIIFServiceMockImpl.scala b/webapi/src/test/scala/org/knora/webapi/store/iiif/impl/IIIFServiceMockImpl.scala index 0126106310..9a4a66e118 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/iiif/impl/IIIFServiceMockImpl.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/iiif/impl/IIIFServiceMockImpl.scala @@ -5,11 +5,12 @@ package org.knora.webapi.store.iiif.impl +import zio._ + import org.knora.webapi.messages.store.sipimessages._ import org.knora.webapi.messages.v2.responder.SuccessResponseV2 import org.knora.webapi.store.iiif.api.IIIFService import org.knora.webapi.store.iiif.errors.SipiException -import zio._ /** * Can be used in place of [[IIIFServiceSipiImpl]] for tests without an actual Sipi server, by returning hard-coded diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManagerSpec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManagerSpec.scala index 212a91b49e..c0ddd4cd30 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManagerSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/TriplestoreServiceManagerSpec.scala @@ -6,26 +6,27 @@ package org.knora.webapi.store.triplestore import akka.testkit.ImplicitSender -import org.knora.webapi.CoreSpec -import org.knora.webapi.messages.store.triplestoremessages.SimulateTimeoutRequest import scala.concurrent.duration._ + +import org.knora.webapi.CoreSpec import org.knora.webapi.messages.store.triplestoremessages.CheckTriplestoreRequest -import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryContent -import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryContentACK -import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject import org.knora.webapi.messages.store.triplestoremessages.CheckTriplestoreResponse -import org.knora.webapi.messages.store.triplestoremessages.TriplestoreStatus -import org.knora.webapi.messages.store.triplestoremessages.SparqlSelectRequest -import org.knora.webapi.messages.util.rdf.SparqlSelectResult -import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateRequest -import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateResponse -import org.knora.webapi.messages.store.triplestoremessages.InsertRepositoryContent -import org.knora.webapi.messages.store.triplestoremessages.InsertTriplestoreContentACK import org.knora.webapi.messages.store.triplestoremessages.InsertGraphDataContentRequest import org.knora.webapi.messages.store.triplestoremessages.InsertGraphDataContentResponse +import org.knora.webapi.messages.store.triplestoremessages.InsertRepositoryContent +import org.knora.webapi.messages.store.triplestoremessages.InsertTriplestoreContentACK import org.knora.webapi.messages.store.triplestoremessages.NamedGraphDataRequest import org.knora.webapi.messages.store.triplestoremessages.NamedGraphDataResponse +import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject +import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryContent +import org.knora.webapi.messages.store.triplestoremessages.ResetRepositoryContentACK +import org.knora.webapi.messages.store.triplestoremessages.SimulateTimeoutRequest +import org.knora.webapi.messages.store.triplestoremessages.SparqlSelectRequest +import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateRequest +import org.knora.webapi.messages.store.triplestoremessages.SparqlUpdateResponse +import org.knora.webapi.messages.store.triplestoremessages.TriplestoreStatus +import org.knora.webapi.messages.util.rdf.SparqlSelectResult import org.knora.webapi.store.triplestore.errors.TriplestoreTimeoutException class TriplestoreServiceManagerSpec extends CoreSpec() with ImplicitSender { diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImplZSpec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImplZSpec.scala index 81726006b2..96a6aabcdc 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImplZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/impl/TriplestoreServiceHttpConnectorImplZSpec.scala @@ -5,25 +5,14 @@ package org.knora.webapi.store.triplestore.impl -import akka.http.javadsl.server.AuthenticationFailedRejection -import org.knora.webapi.config.AppConfig +import zio._ +import zio.test.Assertion._ +import zio.test._ + import org.knora.webapi.config.AppConfigForTestContainers -import org.knora.webapi.messages.StringFormatter -import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM -import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM -import org.knora.webapi.messages.admin.responder.usersmessages.UserADM -import org.knora.webapi.messages.admin.responder.usersmessages.UserIdentifierADM -import org.knora.webapi.sharedtestdata.SharedTestDataADM -import org.knora.webapi.store.cache.api.CacheService -import org.knora.webapi.store.cache.impl.CacheServiceInMemImpl import org.knora.webapi.store.triplestore.api.TriplestoreService import org.knora.webapi.store.triplestore.errors.TriplestoreTimeoutException import org.knora.webapi.testcontainers.FusekiTestContainer -import zio._ -import zio.test.Assertion._ -import zio.test._ -import org.knora.webapi.store.triplestore.errors.TriplestoreResponseException -import com.github.dockerjava.api.exception.NotFoundException /** * This spec is used to test [[org.knora.webapi.store.triplestore.impl.TriplestoreServiceHttpConnectorImpl]]. diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746Spec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746Spec.scala index 782d0d7d53..88425a0245 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1746Spec.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.LazyLogging + import dsp.errors.AssertionException import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921Spec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921Spec.scala index 012c645c0d..d3babf0241 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR1921Spec.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.LazyLogging + import dsp.errors.AssertionException import org.knora.webapi.messages.util.rdf._ diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018Spec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018Spec.scala index 79ec3e22d5..359f348bce 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2018Spec.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.LazyLogging + import org.knora.webapi.messages.util.rdf._ class UpgradePluginPR2018Spec extends UpgradePluginSpec with LazyLogging { diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079Spec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079Spec.scala index 4c7079b26d..6ca2b57ece 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2079Spec.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.LazyLogging + import dsp.errors.AssertionException import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081Spec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081Spec.scala index 0e13a02098..b7ce769cee 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2081Spec.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.LazyLogging + import dsp.errors.AssertionException import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ @@ -36,12 +37,9 @@ class UpgradePluginPR2081Spec extends UpgradePluginSpec with LazyLogging { val model: RdfModel = trigFileToModel("../test_data/upgrade/pr2081.trig") // Store previous values - val resource1CreationDate = getDateValue(model, resource1, creationDate) - val resource2CreationDate = getDateValue(model, resource2, creationDate) - val resource2LastModificationDate = getDateValue(model, resource2, lastModificationDate) - val resource3CreationDate = getDateValue(model, resource3, creationDate) // only this one should stay the same - val resource3LastModificationDate = getDateValue(model, resource3, lastModificationDate) - val resource3DeletionDate = getDateValue(model, resource3, deletionDate) + val resource1CreationDate = getDateValue(model, resource1, creationDate) + val resource2CreationDate = getDateValue(model, resource2, creationDate) + val resource3CreationDate = getDateValue(model, resource3, creationDate) // only this one should stay the same // Use the plugin to transform the input. val plugin = new UpgradePluginPR2081(log) diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094Spec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094Spec.scala index fd4b51bc5a..4485611b25 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR2094Spec.scala @@ -6,6 +6,7 @@ package org.knora.webapi.store.triplestore.upgrade.plugins import com.typesafe.scalalogging.LazyLogging + import dsp.errors.AssertionException import org.knora.webapi.messages.OntologyConstants import org.knora.webapi.messages.util.rdf._ diff --git a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginSpec.scala b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginSpec.scala index 3ce7dfb19b..5e5540d903 100644 --- a/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginSpec.scala @@ -5,15 +5,15 @@ package org.knora.webapi.store.triplestore.upgrade.plugins -import org.knora.webapi.CoreSpec -import org.knora.webapi.messages.util.ErrorHandlingMap -import org.knora.webapi.messages.util.rdf._ +import com.typesafe.scalalogging.Logger +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpecLike import java.io.BufferedInputStream import java.io.FileInputStream -import org.scalatest.wordspec.AnyWordSpecLike -import org.scalatest.matchers.should.Matchers -import com.typesafe.scalalogging.Logger + +import org.knora.webapi.messages.util.ErrorHandlingMap +import org.knora.webapi.messages.util.rdf._ /** * Provides helper methods for specs that test upgrade plugins. diff --git a/webapi/src/test/scala/org/knora/webapi/testcontainers/FusekiTestContainer.scala b/webapi/src/test/scala/org/knora/webapi/testcontainers/FusekiTestContainer.scala index aef8e30c8d..444e9d6c4b 100644 --- a/webapi/src/test/scala/org/knora/webapi/testcontainers/FusekiTestContainer.scala +++ b/webapi/src/test/scala/org/knora/webapi/testcontainers/FusekiTestContainer.scala @@ -1,13 +1,10 @@ package org.knora.webapi.testcontainers -import org.knora.webapi.http.version.BuildInfo import org.testcontainers.containers.GenericContainer import org.testcontainers.utility.DockerImageName import zio._ -import java.net.NetworkInterface -import java.net.UnknownHostException -import scala.jdk.CollectionConverters._ +import org.knora.webapi.http.version.BuildInfo final case class FusekiTestContainer(container: GenericContainer[Nothing]) @@ -17,13 +14,6 @@ object FusekiTestContainer { * A functional effect that initiates a Fuseki Testcontainer */ val acquire: Task[GenericContainer[Nothing]] = ZIO.attemptBlocking { - // get local IP address, which we need for SIPI - val localIpAddress: String = NetworkInterface.getNetworkInterfaces.asScala.toSeq - .filter(!_.isLoopback) - .flatMap(_.getInetAddresses.asScala.toSeq.filter(_.getAddress.length == 4).map(_.toString)) - .headOption - .getOrElse(throw new UnknownHostException("No suitable network interface found")) - val fusekiImageName: DockerImageName = DockerImageName.parse(BuildInfo.fuseki) val fusekiContainer = new GenericContainer(fusekiImageName) fusekiContainer.withExposedPorts(3030) diff --git a/webapi/src/test/scala/org/knora/webapi/testcontainers/SipiTestContainer.scala b/webapi/src/test/scala/org/knora/webapi/testcontainers/SipiTestContainer.scala index c979455b6a..850e4fdcc7 100644 --- a/webapi/src/test/scala/org/knora/webapi/testcontainers/SipiTestContainer.scala +++ b/webapi/src/test/scala/org/knora/webapi/testcontainers/SipiTestContainer.scala @@ -1,6 +1,5 @@ package org.knora.webapi.testcontainers -import org.knora.webapi.http.version.BuildInfo import org.testcontainers.containers.BindMode import org.testcontainers.containers.GenericContainer import org.testcontainers.utility.DockerImageName @@ -8,8 +7,10 @@ import zio._ import java.net.NetworkInterface import java.net.UnknownHostException -import scala.jdk.CollectionConverters._ import java.nio.file.Paths +import scala.jdk.CollectionConverters._ + +import org.knora.webapi.http.version.BuildInfo final case class SipiTestContainer(container: GenericContainer[Nothing]) diff --git a/webapi/src/test/scala/org/knora/webapi/testservices/TestActorSystemService.scala b/webapi/src/test/scala/org/knora/webapi/testservices/TestActorSystemService.scala index 5658a5b197..8dfe89adf5 100644 --- a/webapi/src/test/scala/org/knora/webapi/testservices/TestActorSystemService.scala +++ b/webapi/src/test/scala/org/knora/webapi/testservices/TestActorSystemService.scala @@ -1,14 +1,8 @@ package org.knora.webapi.testservices import akka.actor.ActorSystem -import zio._ - -import java.util.concurrent.TimeUnit -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.duration.FiniteDuration import com.typesafe.config.ConfigFactory -import dsp.errors.InternalServerException +import zio._ final case class TestActorSystemService(actorSystem: ActorSystem) { @@ -36,8 +30,7 @@ object TestActorSystemService { */ private def release(system: ActorSystem) = (for { - ec <- ZIO.executor.map(_.asExecutionContext) - _ <- ZIO.fromFuture(implicit ec => system.terminate()).timeout(5.seconds).orDie + _ <- ZIO.fromFuture(_ => system.terminate()).timeout(5.seconds).orDie } yield ()).tap(_ => ZIO.logDebug(">>> Release Test Actor System Service <<<")) val layer: ZLayer[Any, Nothing, TestActorSystemService] = diff --git a/webapi/src/test/scala/org/knora/webapi/testservices/TestClientService.scala b/webapi/src/test/scala/org/knora/webapi/testservices/TestClientService.scala index d46e17b70f..800592f88b 100644 --- a/webapi/src/test/scala/org/knora/webapi/testservices/TestClientService.scala +++ b/webapi/src/test/scala/org/knora/webapi/testservices/TestClientService.scala @@ -16,10 +16,20 @@ import org.apache.http.impl.client.CloseableHttpClient import org.apache.http.impl.client.HttpClients import org.apache.http.impl.conn.PoolingHttpClientConnectionManager import org.apache.http.util.EntityUtils -import org.knora.webapi.config.AppConfig +import spray.json.JsObject +import spray.json._ +import zio._ + +import java.nio.file.Path +import java.util.concurrent.TimeUnit +import scala.concurrent.Await +import scala.concurrent.ExecutionContext +import scala.concurrent.duration.FiniteDuration + import dsp.errors.AssertionException import dsp.errors.BadRequestException import dsp.errors.NotFoundException +import org.knora.webapi.config.AppConfig import org.knora.webapi.messages.store.sipimessages.SipiUploadResponse import org.knora.webapi.messages.store.sipimessages.SipiUploadResponseJsonProtocol._ import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject @@ -31,15 +41,6 @@ import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.store.iiif.errors.SipiException import org.knora.webapi.util.SipiUtil -import spray.json.JsObject -import spray.json._ -import zio._ - -import java.nio.file.Path -import java.util.concurrent.TimeUnit -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.duration.FiniteDuration /** * Represents a file to be uploaded to the IIF Service. @@ -98,9 +99,7 @@ final case class TestClientService(config: AppConfig, httpClient: CloseableHttpC duration: zio.Duration = 666.seconds ): Task[akka.http.scaladsl.model.HttpResponse] = ZIO - .fromFuture[akka.http.scaladsl.model.HttpResponse](executionContext => - akka.http.scaladsl.Http().singleRequest(request) - ) + .fromFuture[akka.http.scaladsl.model.HttpResponse](_ => akka.http.scaladsl.Http().singleRequest(request)) .timeout(duration) .some .mapError(error => @@ -205,51 +204,6 @@ final case class TestClientService(config: AppConfig, httpClient: CloseableHttpC } yield sipiResponse } - /** - * Makes an HTTP request to DSP-API and returns the response. - * - * @param request the HTTP request. - * @return DSP-API's response. - */ - private def doDspApiRequest(request: http.HttpRequest): Task[String] = { - val targetHost: HttpHost = - new HttpHost(config.knoraApi.internalHost, config.knoraApi.internalPort, "http") - val httpContext: HttpClientContext = HttpClientContext.create() - var maybeResponse: Option[CloseableHttpResponse] = None - - val response: Task[String] = ZIO.attemptBlocking { - maybeResponse = Some(httpClient.execute(targetHost, request, httpContext)) - - val responseEntityStr: String = Option(maybeResponse.get.getEntity) match { - case Some(responseEntity) => EntityUtils.toString(responseEntity) - case None => "" - } - - val statusCode: Int = maybeResponse.get.getStatusLine.getStatusCode - val statusCategory: Int = statusCode / 100 - - // Was the request successful? - if (statusCategory == 2) { - // Yes. - responseEntityStr - } else { - // No. Throw an appropriate exception. - if (statusCode == 404) { - throw NotFoundException(responseEntityStr) - } else { - throw BadRequestException(s"DSP-API responded with HTTP status code $statusCode: $responseEntityStr") - } - } - } - - maybeResponse match { - case Some(response) => response.close() - case None => () - } - - response - } - /** * Makes an HTTP request to Sipi and returns the response. * diff --git a/webapi/src/test/scala/org/knora/webapi/util/ApacheLuceneSupportZSpec.scala b/webapi/src/test/scala/org/knora/webapi/util/ApacheLuceneSupportZSpec.scala index f9ec1cb355..cd16de34d5 100644 --- a/webapi/src/test/scala/org/knora/webapi/util/ApacheLuceneSupportZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/util/ApacheLuceneSupportZSpec.scala @@ -5,9 +5,8 @@ package org.knora.webapi.util -import org.knora.webapi._ -import zio.test.ZIOSpecDefault import zio._ +import zio.test.ZIOSpecDefault import zio.test._ object ApacheLuceneSupportZSpec extends ZIOSpecDefault { diff --git a/webapi/src/test/scala/org/knora/webapi/util/Base64UrlCheckDigitZSpec.scala b/webapi/src/test/scala/org/knora/webapi/util/Base64UrlCheckDigitZSpec.scala index 07bbf933b7..eeb26d1cb1 100644 --- a/webapi/src/test/scala/org/knora/webapi/util/Base64UrlCheckDigitZSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/util/Base64UrlCheckDigitZSpec.scala @@ -6,10 +6,7 @@ package org.knora.webapi.util import zio.test.ZIOSpecDefault -import zio.Scope import zio.test._ -import zio.test.Spec -import zio.test.TestEnvironment /** * Tests [[Base64UrlCheckDigit]]. diff --git a/webapi/src/test/scala/org/knora/webapi/util/StartupUtils.scala b/webapi/src/test/scala/org/knora/webapi/util/StartupUtils.scala index dcb1578c94..fba141a0e3 100644 --- a/webapi/src/test/scala/org/knora/webapi/util/StartupUtils.scala +++ b/webapi/src/test/scala/org/knora/webapi/util/StartupUtils.scala @@ -9,16 +9,17 @@ import akka.dispatch.MessageDispatcher import akka.pattern.ask import akka.util.Timeout import com.typesafe.scalalogging.LazyLogging + +import scala.concurrent.Await +import scala.concurrent.Future +import scala.concurrent.duration._ + import org.knora.webapi.core.Core import org.knora.webapi.messages.app.appmessages.AppState import org.knora.webapi.messages.app.appmessages.AppStates import org.knora.webapi.messages.app.appmessages.GetAppState import org.knora.webapi.settings.KnoraDispatchers -import scala.concurrent.Await -import scala.concurrent.Future -import scala.concurrent.duration._ - /** * This trait is only used for testing. It is necessary so that E2E tests will only start * after the KnoraService is ready. diff --git a/webapi/src/test/scala/org/knora/webapi/util/StringLiteralSequenceV2Spec.scala b/webapi/src/test/scala/org/knora/webapi/util/StringLiteralSequenceV2Spec.scala index ac78c4b1ca..8a8daea7a3 100644 --- a/webapi/src/test/scala/org/knora/webapi/util/StringLiteralSequenceV2Spec.scala +++ b/webapi/src/test/scala/org/knora/webapi/util/StringLiteralSequenceV2Spec.scala @@ -6,7 +6,6 @@ package org.knora.webapi.util import org.knora.webapi.CoreSpec -import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.store.triplestoremessages.StringLiteralSequenceV2 import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 @@ -14,7 +13,6 @@ import org.knora.webapi.messages.store.triplestoremessages.StringLiteralV2 * Tests [[StringLiteralSequenceV2]]. */ class StringLiteralSequenceV2Spec extends CoreSpec() { - private implicit val stringFormatter: StringFormatter = StringFormatter.getGeneralInstance private val literalSeq: StringLiteralSequenceV2 = StringLiteralSequenceV2( Vector( diff --git a/webapi/src/test/scala/org/knora/webapi/util/TestExtractorMethods.scala b/webapi/src/test/scala/org/knora/webapi/util/TestExtractorMethods.scala index dbc0342c62..3c9f272505 100644 --- a/webapi/src/test/scala/org/knora/webapi/util/TestExtractorMethods.scala +++ b/webapi/src/test/scala/org/knora/webapi/util/TestExtractorMethods.scala @@ -7,11 +7,12 @@ package org.knora.webapi.util import akka.actor.ActorSystem import akka.http.scaladsl.model.HttpResponse -import dsp.errors.InvalidApiJsonException import spray.json.JsString import scala.concurrent.ExecutionContext +import dsp.errors.InvalidApiJsonException + /** * Created by subotic on 06.02.17. */ diff --git a/webapi/src/test/scala/org/knora/webapi/util/cache/CacheUtilSpec.scala b/webapi/src/test/scala/org/knora/webapi/util/cache/CacheUtilSpec.scala index 68663a5c1a..c92cc261f6 100644 --- a/webapi/src/test/scala/org/knora/webapi/util/cache/CacheUtilSpec.scala +++ b/webapi/src/test/scala/org/knora/webapi/util/cache/CacheUtilSpec.scala @@ -10,14 +10,15 @@ import akka.testkit.TestKit import com.typesafe.config.Config import com.typesafe.config.ConfigFactory import com.typesafe.scalalogging.LazyLogging +import org.scalatest.BeforeAndAfterAll +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpecLike + import org.knora.webapi.messages.StringFormatter import org.knora.webapi.routing.Authenticator import org.knora.webapi.settings.KnoraSettings import org.knora.webapi.settings.KnoraSettingsImpl import org.knora.webapi.sharedtestdata.SharedTestDataV1 -import org.scalatest.BeforeAndAfterAll -import org.scalatest.matchers.should.Matchers -import org.scalatest.wordspec.AnyWordSpecLike object CacheUtilSpec { val config: Config = ConfigFactory.parseString("""